From 9fd5ade3b3906b522bd3973eb6deea6a9e6153a1 Mon Sep 17 00:00:00 2001 From: yinhuaiwei Date: Wed, 24 Sep 2025 18:24:02 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0v2=E6=A0=87=E8=AF=86?= =?UTF-8?q?=EF=BC=8C=E5=B0=86=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E4=BB=8E?= =?UTF-8?q?get=E8=B0=83=E6=95=B4=E4=B8=BApost=EF=BC=9B=202.=E4=BC=98?= =?UTF-8?q?=E5=8C=96treeProMainDevicePatrolEquSelect=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=A0=91=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BaseDataAreaController.java | 7 + .../eqpbook/mapper/BasedataEqpBookMapper.java | 2 + .../mapper/BasedataPatrolPointMapper.java | 6 +- .../BasedataPatrolPointPresetMapper.java | 4 +- .../controller/BasedataDeviceController.java | 27 +++ .../impl/BasedataDeviceServiceImpl.java | 184 +++++++++++------- .../mapper/eqpbook/BasedataEqpBookMapper.xml | 10 + .../BasedataPatrolPointMapper.xml | 33 +++- .../BasedataPatrolPointPresetMapper.xml | 11 +- 9 files changed, 210 insertions(+), 74 deletions(-) diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/area/controller/BaseDataAreaController.java b/inspect-metadata/src/main/java/com/inspect/metadata/area/controller/BaseDataAreaController.java index a4ad643..406e3b5 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/area/controller/BaseDataAreaController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/area/controller/BaseDataAreaController.java @@ -55,6 +55,13 @@ public class BaseDataAreaController extends BaseController { return AjaxResult.success(dataAreaList); } + @PostMapping({"/v2/list"}) + public AjaxResult listV2(@RequestBody BaseDataArea area) { + this.paramsSetAreaIdToList(area); + List dataAreaList = this.baseDataAreaService.selectAreaList(area); + return AjaxResult.success(dataAreaList); + } + @RequiresPermissions({"basedata:area:list"}) @GetMapping({"/list/exclude/{areaId}"}) public AjaxResult excludeChild(@PathVariable(value = "areaId", required = false) Long areaId) { diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookMapper.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookMapper.java index f2c8aee..c70dcd2 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookMapper.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/mapper/BasedataEqpBookMapper.java @@ -18,6 +18,8 @@ import org.apache.ibatis.annotations.Param; public interface BasedataEqpBookMapper { BasedataEqpBook selectBasedataEqpBookByEqpBookId(Long bookId); + List selectBasedataEqpBookByEqpBookIds(@Param("bookIds") List bookIds); + List selectBasedataEqpBookList(BasedataEqpBook book); List selectBasedataEqpBookOnlineList(BasedataEqpBookTreeQueryFilterVo filterVo); diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java index b068e52..8bdfaf5 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java @@ -30,9 +30,13 @@ public interface BasedataPatrolPointMapper { BasedataPatrolPoint selectBasedataPatrolPointPresetForOne(BasedataPatrolPoint patrolPoint); + List selectBasedataPatrolPointPresetByMainDeviceIds(@Param("mainDeviceIds") List mainDeviceIds); + + List selectBasedataPatrolPointListByMainDeviceIds(@Param("mainDeviceIds") List mainDeviceIds); + PointStatsVo getInspectPointStats(PointStatsVo pointStatsVo); List pointLatestResult(PointLatestResultVo pointLatestResultVo); int deleteBySendCode(@Param("sendCode") String sendCode); -} +} \ No newline at end of file diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointPresetMapper.java b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointPresetMapper.java index 55b126c..54c1c49 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointPresetMapper.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointPresetMapper.java @@ -23,4 +23,6 @@ public interface BasedataPatrolPointPresetMapper { BasedataPatrolPointPreset selectBasedataPatrolPointPresetByPatrolPointId(Long patrolPointId); int deleteBySendCode(@Param("sendCode") String sendCode); -} + + List selectBasedataPatrolPointPresetListByPointIds(@Param("patrolPointIds") List patrolPointIds); +} \ No newline at end of file diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java index f02d567..045148d 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java @@ -232,6 +232,21 @@ public class BasedataDeviceController extends BaseController { return AjaxResult.success(this.basedataDeviceService.treeProMainDevicePatrolEquSelect(mainDevices)); } + @PostMapping({"/v2/treeProMainDevicePatrolEquSelect"}) + public AjaxResult treeProMainDevicePatrolEquSelectV2(@RequestBody BasedataDevice basedataDevice) { + logger.info("[META] device: {}", basedataDevice); + idToList(basedataDevice); + paramsSetAreaIdToList(basedataDevice); + if (null != basedataDevice.getAreaName()) { + basedataDevice.setAreaName(null); + } + + basedataDevice.setPowerMainEquFlag("Yes"); + List mainDevices = this.basedataDeviceService.selectBasedataDeviceList(basedataDevice); + logger.info("[META] -----------------------------------mainDevices size: {}", mainDevices.size()); + return AjaxResult.success(this.basedataDeviceService.treeProMainDevicePatrolEquSelect(mainDevices)); + } + @GetMapping({"/getMessageByDeviceId"}) public AjaxResult getMessageByDeviceId() { BasedataDevice basedataDevice = new BasedataDevice(); @@ -462,6 +477,18 @@ public class BasedataDeviceController extends BaseController { return AjaxResult.success(list); } + @Log( + title = "设备树查询v2", + businessType = BizType.OTHER + ) + @PostMapping({"/v2/getProDeviceTreeSelect"}) + public AjaxResult getProDeviceTreeSelectV2(@RequestBody BasedataDevice basedataDevice) { + this.idToList(basedataDevice); + this.paramsSetAreaIdToList(basedataDevice); + List list = this.basedataDeviceService.getProDeviceTreeSelect(basedataDevice); + return AjaxResult.success(list); + } + @Log( title = "生产设备全路径名称对应的id", businessType = BizType.OTHER diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java index 0e193cc..39a5525 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java @@ -663,17 +663,18 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { } logger.info("---111-------mainDevices:{}", mainDevices); - // 第一层处理:主设备预置点检查 + List deviceIds = mainDevices.stream().map(BasedataDevice::getDeviceId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + List basedataPatrolpoints = this.basedataPatrolPointMapper.selectBasedataPatrolPointPresetByMainDeviceIds(deviceIds); for (BasedataDevice mainDevice : mainDevices) { - BasedataPatrolPoint patrolPointMainDevQuery = new BasedataPatrolPoint(); - patrolPointMainDevQuery.setMainDeviceId(mainDevice.getDeviceId()); - - // 查询设备下的预置点 - BasedataPatrolPoint basedataPatrolpoint = this.basedataPatrolPointMapper.selectBasedataPatrolPointPresetForOne(patrolPointMainDevQuery); - - if (basedataPatrolpoint != null) { - // 复制设备信息到新对象 + // 查询设备下的预置点是否存在 + boolean exists = basedataPatrolpoints.stream() + .filter(Objects::nonNull) + .anyMatch(device -> mainDevice.getDeviceId().equals(device.getMainDeviceId())); + if (exists) { + // 复制设备信息到新对象 BasedataDevice mainDeviceForQuery = new BasedataDevice(); BeanUtils.copyBeanProp(mainDeviceForQuery, mainDevice); mainDeviceExistPointList.add(mainDeviceForQuery); @@ -695,32 +696,89 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { logger.info("---222------存在预置位的点位设备-mainDeviceExistPointList:{}", mainDeviceExistPointList); // 第二层处理:设备下的点位信息 - for (BasedataDevice mainDevice : mainDeviceExistPointList) { - String mainDeviceName = mainDevice.getDeviceName(); - - BasedataPatrolPoint basedataPatrolpoint = new BasedataPatrolPoint(); - basedataPatrolpoint.setMainDeviceId(mainDevice.getDeviceId()); + if (!mainDeviceExistPointList.isEmpty()) { + // 批量获取所有相关点位信息 + List mainDeviceIds = mainDeviceExistPointList.stream() + .map(BasedataDevice::getDeviceId) + .collect(Collectors.toList()); + // 查询所有设备下的所有点位信息 + List allPatrolPoints = basedataPatrolPointMapper + .selectBasedataPatrolPointListByMainDeviceIds(mainDeviceIds); + + // 按mainDeviceId分组点位信息 + Map> patrolPointsByMainDevice = allPatrolPoints.stream() + .filter(Objects::nonNull) + .collect(Collectors.groupingBy(BasedataPatrolPoint::getMainDeviceId)); + + // 批量获取所有相关点位的预置信息 + List allPatrolPointIds = allPatrolPoints.stream() + .filter(Objects::nonNull) + .map(BasedataPatrolPoint::getPatrolPointId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + + List allPresets = new ArrayList<>(); + if (!allPatrolPointIds.isEmpty()) { + allPresets = basedataPatrolPointPresetMapper + .selectBasedataPatrolPointPresetListByPointIds(allPatrolPointIds); + } - // 查询设备下的所有点位信息 - List patrolpointList = this.basedataPatrolPointMapper.selectBasedataPatrolPointList(basedataPatrolpoint); - if (patrolpointList.isEmpty()) { - continue; + // 按点位ID分组预置信息 + Map> presetsByPointId = allPresets.stream() + .filter(Objects::nonNull) + .collect(Collectors.groupingBy(BasedataPatrolPointPreset::getPatrolPointId)); + + // 批量获取所有相关的设备信息 + List pointDeviceIds = allPatrolPoints.stream() + .filter(Objects::nonNull) + .map(BasedataPatrolPoint::getDeviceId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + + // 批量获取所有相关的设备手册信息 + List eqpBookIds = allPresets.stream() + .filter(Objects::nonNull) + .map(BasedataPatrolPointPreset::getEqpBookId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + + List allEqpBooks = new ArrayList<>(); + if (!eqpBookIds.isEmpty()) { + allEqpBooks = basedataEqpbookMapper.selectBasedataEqpBookByEqpBookIds(eqpBookIds); } - logger.info("---333-------patrolpointList:{}", patrolpointList); + Map eqpBookMap = allEqpBooks.stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(BasedataEqpBook::getEqpBookId, e -> e)); - Map mapDevToPoint = new HashMap<>(); + for (BasedataDevice mainDevice : mainDeviceExistPointList) { + String mainDeviceName = mainDevice.getDeviceName(); + Long mainDeviceId = mainDevice.getDeviceId(); - // 处理每个点位 - for (BasedataPatrolPoint patrolpoint : patrolpointList) { - BasedataPatrolPoint patrolPointIsExistPreset = new BasedataPatrolPoint(); - patrolPointIsExistPreset.setPatrolPointId(patrolpoint.getPatrolPointId()); + List patrolpointList = patrolPointsByMainDevice.getOrDefault( + mainDeviceId, new ArrayList<>()); - // 检查点位是否存在预置信息 - BasedataPatrolPoint patrolPointExistOne = this.basedataPatrolPointMapper.selectBasedataPatrolPointPresetForOne(patrolPointIsExistPreset); + if (patrolpointList.isEmpty()) { + continue; + } + + logger.info("---333-------patrolpointList:{}", patrolpointList); + + Map mapDevToPoint = new HashMap<>(); + + // 合并处理每个点位及其预置位,避免重复查询与循环 + for (BasedataPatrolPoint patrolpoint : patrolpointList) { + Long patrolPointId = patrolpoint.getPatrolPointId(); + List presets = presetsByPointId.getOrDefault( + patrolPointId, new ArrayList<>()); + + if (presets.isEmpty()) { + continue; + } - if (patrolPointExistOne != null) { - Long mainDeviceId = patrolpoint.getMainDeviceId(); Long deviceId = patrolpoint.getDeviceId(); // 处理非主设备的情况 @@ -728,10 +786,11 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { this.recursionGetProMainDevice(mainDeviceId, mainDeviceName, deviceId, mainDevVOS, mapDevToPoint); } + String pointKey = deviceId + "-" + patrolPointId; // 创建点位节点 ProMainDevicePatrolEquTreeSelect pointTreeVO = new ProMainDevicePatrolEquTreeSelect(); - pointTreeVO.setPatrolpointId(patrolpoint.getPatrolPointId()); - pointTreeVO.setDataId(deviceId + "-" + patrolpoint.getPatrolPointId()); + pointTreeVO.setPatrolpointId(patrolPointId); + pointTreeVO.setDataId(pointKey); pointTreeVO.setLabel(patrolpoint.getPatrolPointName()); pointTreeVO.setPatrolpointName(patrolpoint.getPatrolPointName()); pointTreeVO.setMainDeviceName(mainDeviceName); @@ -741,50 +800,35 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { pointTreeVO.setPositionY(patrolpoint.getPositionY()); pointTreeVO.setPositionZ(patrolpoint.getPositionZ()); mainDevVOS.add(pointTreeVO); - } - } - - // 处理点位下的预置位 - for (BasedataPatrolPoint patrolpoint : patrolpointList) { - BasedataPatrolPointPreset basedataPatrolpointPreset = new BasedataPatrolPointPreset(); - basedataPatrolpointPreset.setPatrolPointId(patrolpoint.getPatrolPointId()); - - // 查询点位下的预置位信息 - List patrolpointPresetS = this.basedataPatrolPointPresetMapper.selectBasedataPatrolPointPresetList(basedataPatrolpointPreset); - if (patrolpointPresetS.isEmpty()) { - continue; - } - - logger.info("---444-------patrolpointPresetS:{}", patrolpointPresetS); - Map map = new HashMap<>(); + logger.info("---444-------patrolpointPresetS:{}", presets); - for (BasedataPatrolPointPreset preset : patrolpointPresetS) { - if (map.containsKey(preset.getEqpBookId())) { - continue; - } + // 添加预置位节点(去重eqpBookId) + Set addedEqpBookIds = new HashSet<>(); + for (BasedataPatrolPointPreset preset : presets) { + Long eqpBookId = preset.getEqpBookId(); + if (eqpBookId == null || addedEqpBookIds.contains(eqpBookId)) { + continue; + } - ProMainDevicePatrolEquTreeSelect pointPreSetTreeVO = new ProMainDevicePatrolEquTreeSelect(); - pointPreSetTreeVO.setParentId(patrolpoint.getDeviceId() + "-" + patrolpoint.getPatrolPointId()); - pointPreSetTreeVO.setEqpbookId(preset.getEqpBookId()); - pointPreSetTreeVO.setPresetCode(preset.getPresetCode()); - - logger.info("---555-------BasedataPatrolPointPreset:{}", preset); - - if (preset.getEqpBookId() != null) { - BasedataEqpBook basedataEqpbook = this.basedataEqpbookMapper.selectBasedataEqpBookByEqpBookId(preset.getEqpBookId()); - if (basedataEqpbook != null) { - pointPreSetTreeVO.setPatroldeviceName(basedataEqpbook.getPatrolDeviceName()); - pointPreSetTreeVO.setMainDeviceName(basedataEqpbook.getPatrolDeviceName()); - pointPreSetTreeVO.setLabel(basedataEqpbook.getPatrolDeviceName()); - pointPreSetTreeVO.setPatroldeviceCode(basedataEqpbook.getPatrolDeviceCode()); - pointPreSetTreeVO.setPatroldeviceName(basedataEqpbook.getPatrolDeviceName()); - pointPreSetTreeVO.setDataId(patrolpoint.getDeviceId() + "-" + patrolpoint.getPatrolPointId() + basedataEqpbook.getEqpBookId()); - pointPreSetTreeVO.setPatroldeviceFlag("Yes"); - - map.put(basedataEqpbook.getEqpBookId(), basedataEqpbook.getEqpBookId()); - mainDevVOS.add(pointPreSetTreeVO); + BasedataEqpBook basedataEqpbook = eqpBookMap.get(eqpBookId); + if (basedataEqpbook == null) { + continue; } + + ProMainDevicePatrolEquTreeSelect pointPreSetTreeVO = new ProMainDevicePatrolEquTreeSelect(); + pointPreSetTreeVO.setParentId(pointKey); + pointPreSetTreeVO.setEqpbookId(eqpBookId); + pointPreSetTreeVO.setPresetCode(preset.getPresetCode()); + pointPreSetTreeVO.setPatroldeviceName(basedataEqpbook.getPatrolDeviceName()); + pointPreSetTreeVO.setMainDeviceName(basedataEqpbook.getPatrolDeviceName()); + pointPreSetTreeVO.setLabel(basedataEqpbook.getPatrolDeviceName()); + pointPreSetTreeVO.setPatroldeviceCode(basedataEqpbook.getPatrolDeviceCode()); + pointPreSetTreeVO.setDataId(pointKey + basedataEqpbook.getEqpBookId()); + pointPreSetTreeVO.setPatroldeviceFlag("Yes"); + + mainDevVOS.add(pointPreSetTreeVO); + addedEqpBookIds.add(eqpBookId); } } } diff --git a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml index f82297b..97cfe9d 100644 --- a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml @@ -184,6 +184,16 @@ where eqp_book_id = #{eqpBookId} + + insert into basedata_eqpbook diff --git a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml index cc17671..c1d9578 100644 --- a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml @@ -119,6 +119,16 @@ + + + + + insert into basedata_patrolpoint @@ -415,4 +446,4 @@ - + \ No newline at end of file diff --git a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointPresetMapper.xml b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointPresetMapper.xml index 0f98724..051d867 100644 --- a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointPresetMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointPresetMapper.xml @@ -62,6 +62,15 @@ + + - + \ No newline at end of file