|
@@ -11,6 +11,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.PageUtils;
|
|
|
import cn.iocoder.yudao.module.pms.ThingsModelDTO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.TableDataInfo;
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotdevicerunlog.vo.IotDeviceRunLogRespVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
|
|
@@ -19,6 +20,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotInfoClassifyDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotTreeDO;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceperson.IotDevicePersonDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodel.IotModelDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotmodeltemplateattrs.IotModelTemplateAttrsDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
|
|
@@ -29,14 +31,19 @@ import cn.iocoder.yudao.module.pms.dal.mysql.iotdevicerunlog.IotDeviceRunLogMapp
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.iotmodel.IotModelMapper;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotbom.IotBomService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotdevicebom.IotDeviceBomService;
|
|
|
+import cn.iocoder.yudao.module.pms.service.iotdeviceperson.IotDevicePersonService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotdevicerunlog.IotDeviceRunLogService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotmodeltemplateattrs.IotModelTemplateAttrsService;
|
|
|
import cn.iocoder.yudao.module.pms.service.yanfan.ThingsModelService;
|
|
|
import cn.iocoder.yudao.module.pms.service.yanfan.YfDeviceService;
|
|
|
+import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
|
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
import cn.iocoder.yudao.module.system.enums.ErrorCodeConstants;
|
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
|
|
+import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -101,6 +108,12 @@ public class IotDeviceServiceImpl implements IotDeviceService {
|
|
|
private IotDeviceRunLogMapper iotDeviceRunLogMapper;
|
|
|
@Autowired
|
|
|
private StringRedisTemplate redisTemplate;
|
|
|
+ @Autowired
|
|
|
+ private AdminUserService adminUserService;
|
|
|
+ @Autowired
|
|
|
+ private AdminUserApi adminUserApi;
|
|
|
+ @Autowired
|
|
|
+ private IotDevicePersonService iotDevicePersonService;
|
|
|
private final static String parameter = "lng,lat,today_distance,distance,todayoil,totaloil,online,oil1,oil2,oil3,oil4";
|
|
|
|
|
|
@Override
|
|
@@ -375,9 +388,41 @@ public class IotDeviceServiceImpl implements IotDeviceService {
|
|
|
ids = deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
|
|
|
ids.add(pageReqVO.getDeptId());
|
|
|
}
|
|
|
+ // 根据用户昵称模糊搜索 已经设置过此人作为责任人的设备列表
|
|
|
+ Set<Long> deviceIds = new HashSet<>();
|
|
|
+ if (StrUtil.isNotBlank(pageReqVO.getNickname())) {
|
|
|
+ Set<Long> userIds = new HashSet<>();
|
|
|
+ List<AdminUserDO> users = adminUserService.getUserListByNickname(pageReqVO.getNickname());
|
|
|
+ List<AdminUserRespDTO> partUsers = adminUserApi.getUserListByUsername(pageReqVO.getNickname());
|
|
|
+ if (CollUtil.isNotEmpty(partUsers)) {
|
|
|
+ partUsers.forEach(user -> {
|
|
|
+ userIds.add(user.getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(users)) {
|
|
|
+ users.forEach(user -> {
|
|
|
+ userIds.add(user.getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(userIds)) {
|
|
|
+ // 根据用户id列表查询与用户关联责任人的设备列表
|
|
|
+ IotDevicePersonPageReqVO reqVO = new IotDevicePersonPageReqVO();
|
|
|
+ reqVO.setPersonIds(userIds);
|
|
|
+ List<IotDevicePersonDO> devicePersons = iotDevicePersonService.getByPersonIds(reqVO);
|
|
|
+ if (CollUtil.isNotEmpty(devicePersons)) {
|
|
|
+ devicePersons.forEach(devicePerson -> {
|
|
|
+ deviceIds.add(devicePerson.getDeviceId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 如果 deviceIds 集合为空 说明当前搜索的用户没有关联任何设备
|
|
|
+ if (CollUtil.isEmpty(deviceIds)) {
|
|
|
+ return PageResult.empty();
|
|
|
+ }
|
|
|
+ }
|
|
|
try {
|
|
|
IPage<IotDeviceRespVO> page = iotDeviceMapper.personRelationDevices(
|
|
|
- new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO, ids);
|
|
|
+ new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO, ids, deviceIds);
|
|
|
return new PageResult<>(page.getRecords(), page.getTotal());
|
|
|
} catch (Exception exception) {
|
|
|
if (exception.getMessage().contains("Table does not exist")) {
|