|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.pms.service;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
|
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
@@ -23,6 +24,7 @@ import cn.iocoder.yudao.module.pms.dal.mysql.IotTreeMapper;
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
|
|
|
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.yanfan.ThingsModelService;
|
|
|
import cn.iocoder.yudao.module.pms.service.yanfan.YfDeviceService;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
|
|
@@ -81,6 +83,8 @@ public class IotDeviceServiceImpl implements IotDeviceService {
|
|
|
private RestTemplate restTemplate;
|
|
|
@Value("${yanfan.url}")
|
|
|
private String yanfanUrl;
|
|
|
+ @Autowired
|
|
|
+ private IotDeviceBomService iotDeviceBomService;
|
|
|
|
|
|
@Override
|
|
|
public List<IotDeviceDO> getMapDevice() {
|
|
@@ -343,6 +347,22 @@ public class IotDeviceServiceImpl implements IotDeviceService {
|
|
|
@Override
|
|
|
public List<IotDeviceRespVO> deviceAssociateBomList(IotDevicePageReqVO pageReqVO) {
|
|
|
List<IotDeviceRespVO> devices = iotDeviceMapper.deviceAssociateBomList(pageReqVO.getDeviceIds(), pageReqVO.getBomFlag());
|
|
|
+ // 查询所有 设备boms节点的所有上级节点名称 拼接出 全路径 的bom节点
|
|
|
+ List<Long> bomNodeIds = new ArrayList<>();
|
|
|
+ if (CollUtil.isNotEmpty(devices)) {
|
|
|
+ devices.forEach(device -> {
|
|
|
+ bomNodeIds.add(Long.valueOf(device.getBomNodeId()));
|
|
|
+ });
|
|
|
+ // 查询 bomNodeIds 集合中每个bom节点的所有上级节点
|
|
|
+ Map<Long, String> bomFullPaths = iotDeviceBomService.buildBomFullPaths(bomNodeIds);
|
|
|
+ devices.forEach(device -> {
|
|
|
+ if (bomFullPaths.containsKey(Long.valueOf(device.getBomNodeId()))) {
|
|
|
+ if (StrUtil.isNotBlank(bomFullPaths.get(Long.valueOf(device.getBomNodeId())))) {
|
|
|
+ device.setName(bomFullPaths.get(Long.valueOf(device.getBomNodeId())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
return devices;
|
|
|
}
|
|
|
|
|
@@ -350,6 +370,22 @@ public class IotDeviceServiceImpl implements IotDeviceService {
|
|
|
public PageResult<IotDeviceRespVO> deviceAssociateBomListPage(IotDevicePageReqVO pageReqVO) {
|
|
|
IPage<IotDeviceRespVO> page = iotDeviceMapper.deviceAssociateBomListPage(new Page<>(pageReqVO.getPageNo(),
|
|
|
pageReqVO.getPageSize()), pageReqVO.getDeviceIds(), pageReqVO.getBomFlag());
|
|
|
+ // 查询所有 设备boms节点的所有上级节点名称 拼接出 全路径 的bom节点
|
|
|
+ List<Long> bomNodeIds = new ArrayList<>();
|
|
|
+ if (CollUtil.isNotEmpty(page.getRecords())) {
|
|
|
+ page.getRecords().forEach(device -> {
|
|
|
+ bomNodeIds.add(Long.valueOf(device.getBomNodeId()));
|
|
|
+ });
|
|
|
+ // 查询 bomNodeIds 集合中每个bom节点的所有上级节点
|
|
|
+ Map<Long, String> bomFullPaths = iotDeviceBomService.buildBomFullPaths(bomNodeIds);
|
|
|
+ page.getRecords().forEach(device -> {
|
|
|
+ if (bomFullPaths.containsKey(Long.valueOf(device.getBomNodeId()))) {
|
|
|
+ if (StrUtil.isNotBlank(bomFullPaths.get(Long.valueOf(device.getBomNodeId())))) {
|
|
|
+ device.setName(bomFullPaths.get(Long.valueOf(device.getBomNodeId())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
return new PageResult<>(page.getRecords(), page.getTotal());
|
|
|
}
|
|
|
|