From 83a23dc8a0056a970739457180ffc9cbc036c481 Mon Sep 17 00:00:00 2001 From: wangguangyuan Date: Tue, 10 Mar 2026 09:03:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E7=82=B9=E4=BD=8D=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=AD=97=E6=AE=B5=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../metadata/area/domain/BaseDataArea.java | 20 ++++++++ .../BasedataPatrolPointController.java | 3 ++ .../domain/BasedataPatrolPoint.java | 32 +++++++++++++ .../impl/BasedataPatrolPointServiceImpl.java | 4 +- .../prodevmnt/domain/BasedataDevice.java | 2 + .../impl/BasedataDeviceServiceImpl.java | 47 +++++++++++++++---- .../mapper/area/BaseDataAreaMapper.xml | 12 +++-- .../BasedataPatrolPointMapper.xml | 31 ++++++++---- .../mapper/prodevmnt/BasedataDeviceMapper.xml | 12 +++-- 9 files changed, 133 insertions(+), 30 deletions(-) diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java b/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java index 1a690a9..120ddf1 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java @@ -40,7 +40,9 @@ public class BaseDataArea extends BaseEntity { ) private String deviceTypeCode; private Long parentId; + private Long relationParentId ; private String ancestors; + private String relationAncestors; private String orderNum; private String status; private String delFlag; @@ -71,6 +73,22 @@ public class BaseDataArea extends BaseEntity { return this.ancestors; } + public Long getRelationParentId() { + return relationParentId; + } + + public void setRelationParentId(Long relationParentId) { + this.relationParentId = relationParentId; + } + + public String getRelationAncestors() { + return relationAncestors; + } + + public void setRelationAncestors(String relationAncestors) { + this.relationAncestors = relationAncestors; + } + @NotBlank( message = "部门名称不能为空" ) @@ -149,7 +167,9 @@ public class BaseDataArea extends BaseEntity { ", areaType='" + areaType + '\'' + ", deviceTypeCode='" + deviceTypeCode + '\'' + ", parentId=" + parentId + + ", relationParentId=" + relationParentId + ", ancestors='" + ancestors + '\'' + + ", relationAncestors='" + relationAncestors + '\'' + ", orderNum='" + orderNum + '\'' + ", status='" + status + '\'' + ", delFlag='" + delFlag + '\'' + diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/controller/BasedataPatrolPointController.java b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/controller/BasedataPatrolPointController.java index 62ea886..6679653 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/controller/BasedataPatrolPointController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/controller/BasedataPatrolPointController.java @@ -209,6 +209,9 @@ public class BasedataPatrolPointController extends BaseController { assert basedataDevice != null; basedataPatrolpoint.setMainDeviceId(basedataDevice.getDeviceId()); } + basedataPatrolpoint.setRelationAreaId(basedataPatrolpoint.getAreaId()); + basedataPatrolpoint.setRelationDeviceId(basedataPatrolpoint.getDeviceId()); + basedataPatrolpoint.setRelationMainDeviceId(basedataPatrolpoint.getMainDeviceId()); basedataPatrolPointService.insertBasedataPatrolPoint(basedataPatrolpoint); return null != basedataPatrolpoint.getPatrolPointId() ? AjaxResult.success(basedataPatrolpoint.getPatrolPointId()) : AjaxResult.error("新增异常"); diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java index 5d4c100..6a8d1ab 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java @@ -41,10 +41,14 @@ public class BasedataPatrolPoint extends BaseEntity { name = "主设备id" ) private Long mainDeviceId; + + private Long relationMainDeviceId; @Excel( name = "设备id,真正配置点位的主设备id或者部件id" ) private Long deviceId; + + private Long relationDeviceId; private String deviceName; @Excel( name = "巡检内容" @@ -64,6 +68,7 @@ public class BasedataPatrolPoint extends BaseEntity { @JsonProperty("stdparolPointId") private Long stdParolPointId; private Long areaId; + private Long relationAreaId; private String patrolTypeId; private String pointImptLevel; private String alarmThreshold; @@ -119,6 +124,30 @@ public class BasedataPatrolPoint extends BaseEntity { this.patrolpointName = patrolPointName; } + public Long getRelationMainDeviceId() { + return relationMainDeviceId; + } + + public void setRelationMainDeviceId(Long relationMainDeviceId) { + this.relationMainDeviceId = relationMainDeviceId; + } + + public Long getRelationDeviceId() { + return relationDeviceId; + } + + public void setRelationDeviceId(Long relationDeviceId) { + this.relationDeviceId = relationDeviceId; + } + + public Long getRelationAreaId() { + return relationAreaId; + } + + public void setRelationAreaId(Long relationAreaId) { + this.relationAreaId = relationAreaId; + } + public String getPointTypeName() { return pointTypeName; } @@ -161,13 +190,16 @@ public class BasedataPatrolPoint extends BaseEntity { ", patrolpointName='" + patrolpointName + '\'' + ", deviceTypeId=" + deviceTypeId + ", mainDeviceId=" + mainDeviceId + + ", relationMainDeviceId=" + relationMainDeviceId + ", deviceId=" + deviceId + + ", relationDeviceId=" + relationDeviceId + ", deviceName='" + deviceName + '\'' + ", patrolContent='" + patrolContent + '\'' + ", purpose='" + purpose + '\'' + ", deleteFlag='" + deleteFlag + '\'' + ", stdParolPointId=" + stdParolPointId + ", areaId=" + areaId + + ", relationAreaId=" + relationAreaId + ", patrolTypeId='" + patrolTypeId + '\'' + ", pointImptLevel='" + pointImptLevel + '\'' + ", alarmThreshold='" + alarmThreshold + '\'' + diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/impl/BasedataPatrolPointServiceImpl.java b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/impl/BasedataPatrolPointServiceImpl.java index e7c99fd..0862b39 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/impl/BasedataPatrolPointServiceImpl.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/impl/BasedataPatrolPointServiceImpl.java @@ -135,8 +135,8 @@ public class BasedataPatrolPointServiceImpl implements IBasedataPatrolPointServi public List selectBasedataMonitorRelationList(BasedataPatrolPoint basedataPatrolpoint) { List pointList = basedataPatrolpointMapper.selectBasedataMonitorRelationList(basedataPatrolpoint); logger.info("[META] pointList size: {},pointList: {}", pointList.size(), pointList); - if (null != basedataPatrolpoint.getDeviceId()) { - BasedataDevice basedataDevice = basedataDeviceMapper.selectBasedataDeviceRelationByDeviceId(basedataPatrolpoint.getDeviceId()); + if (null != basedataPatrolpoint.getRelationDeviceId()) { + BasedataDevice basedataDevice = basedataDeviceMapper.selectBasedataDeviceRelationByDeviceId(basedataPatrolpoint.getRelationDeviceId()); if(basedataDevice != null) { basedataPatrolpoint.setDeviceTypeId(basedataDevice.getDeviceTypeId()); List stdPointList = basedataPatrolpointMapper.selectBasedataMonitorUnionList(basedataPatrolpoint); diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/domain/BasedataDevice.java b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/domain/BasedataDevice.java index 8e41c6a..910f470 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/domain/BasedataDevice.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/domain/BasedataDevice.java @@ -56,6 +56,7 @@ public class BasedataDevice extends BaseEntity { private Long parentId; private String ancestors; private Long areaId; + private Long relationAreaId; @JsonProperty("devicetypeId") private Long deviceTypeId; @@ -103,6 +104,7 @@ public class BasedataDevice extends BaseEntity { ", parentId=" + parentId + ", ancestors='" + ancestors + '\'' + ", areaId=" + areaId + + ", relationAreaId='" + relationAreaId + '\'' + ", deviceTypeId=" + deviceTypeId + ", powerMainEquFlag='" + powerMainEquFlag + '\'' + ", phyAssetId='" + phyAssetId + '\'' + 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 7973771..b24d51f 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 @@ -461,7 +461,7 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { List patrolPoints = basedataPatrolPointMapper.selectBasedataPatrolPointRelationListByDeviceIds(new ArrayList<>(deviceIds)); // 按设备ID分组 Map> devicePatrolMap = patrolPoints.stream() - .collect(Collectors.groupingBy(BasedataPatrolPoint::getDeviceId)); + .collect(Collectors.groupingBy(BasedataPatrolPoint::getRelationDeviceId)); // 递归设置统计值 setPointNumRelation(treeList, devicePatrolMap); @@ -514,7 +514,7 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { List patrolPoints = basedataPatrolPointMapper.selectBasedataPatrolPointRelationListByDeviceIds(new ArrayList<>(deviceIds)); // 按设备ID分组 Map> devicePatrolMap = patrolPoints.stream() - .collect(Collectors.groupingBy(BasedataPatrolPoint::getDeviceId)); + .collect(Collectors.groupingBy(BasedataPatrolPoint::getRelationDeviceId)); // 递归设置统计值和点位 setPointNumAndPatrolPoints(treeList, devicePatrolMap); @@ -526,15 +526,16 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { HashMap deviceHashMap = new HashMap<>(); List areaVOS = new ArrayList<>(); + // 根据新的relationParentId和relationAncestors构建树结构 for (BaseDataArea area : areas) { areaIdList.add(area.getAreaId()); areaMap.put(area.getAreaId(), area); AreaDeviceTreeSelect areaVO = new AreaDeviceTreeSelect(); areaVO.setDataId(String.valueOf(area.getAreaId())); - areaVO.setParentId(String.valueOf(area.getParentId())); + areaVO.setParentId(String.valueOf(area.getRelationParentId())); areaVO.setAreaId(area.getAreaId()); areaVO.setAreaFlag("Yes"); - areaVO.setAreaParentId(area.getParentId()); + areaVO.setAreaParentId(area.getRelationParentId()); areaVO.setAreaName(area.getAreaName()); areaVO.setAreaType(area.getAreaType()); areaVOS.add(areaVO); @@ -544,6 +545,7 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { Map params = new HashMap<>(); params.put("areaIdList", areaIdList); basedataDeviceQuery.setParams(params); + // 根据新的relation_area_id查询设备信息,构建树结构 List deviceList = this.basedataDeviceMapper.selectBasedataDeviceRelationList(basedataDeviceQuery); Iterator iterator = deviceList.iterator(); @@ -560,10 +562,10 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { AreaDeviceTreeSelect deviceVO = new AreaDeviceTreeSelect(); StringBuilder idBuilder = new StringBuilder(); StringBuilder pIdBuilder = new StringBuilder(); - this.getAreaDeviceTreeDeviceCode(basedataDevice.getDeviceId(), areaMap, deviceHashMap, idBuilder, pIdBuilder); + this.getAreaDeviceTreeDeviceCodeRelation(basedataDevice.getDeviceId(), areaMap, deviceHashMap, idBuilder, pIdBuilder); deviceVO.setDataId(idBuilder.toString()); deviceVO.setParentId(pIdBuilder.toString()); - deviceVO.setAreaId(basedataDevice.getAreaId()); + deviceVO.setAreaId(basedataDevice.getRelationAreaId()); deviceVO.setDeviceParentId(basedataDevice.getParentId()); deviceVO.setDeviceId(basedataDevice.getDeviceId()); deviceVO.setDeviceName(basedataDevice.getDeviceName()); @@ -596,10 +598,10 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { areaMap.put(area.getAreaId(), area); AreaDeviceTreeSelect areaVO = new AreaDeviceTreeSelect(); areaVO.setDataId(String.valueOf(area.getAreaId())); - areaVO.setParentId(String.valueOf(area.getParentId())); + areaVO.setParentId(String.valueOf(area.getRelationParentId())); areaVO.setAreaId(area.getAreaId()); areaVO.setAreaFlag("Yes"); - areaVO.setAreaParentId(area.getParentId()); + areaVO.setAreaParentId(area.getRelationParentId()); areaVO.setAreaName(area.getAreaName()); areaVO.setAreaType(area.getAreaType()); areaVOS.add(areaVO); @@ -625,10 +627,10 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { AreaDeviceTreeSelect deviceVO = new AreaDeviceTreeSelect(); StringBuilder idBuilder = new StringBuilder(); StringBuilder pIdBuilder = new StringBuilder(); - this.getAreaDeviceTreeDeviceCode(basedataDevice.getDeviceId(), areaMap, deviceHashMap, idBuilder, pIdBuilder); + this.getAreaDeviceTreeDeviceCodeRelation(basedataDevice.getDeviceId(), areaMap, deviceHashMap, idBuilder, pIdBuilder); deviceVO.setDataId(idBuilder.toString()); deviceVO.setParentId(pIdBuilder.toString()); - deviceVO.setAreaId(basedataDevice.getAreaId()); + deviceVO.setAreaId(basedataDevice.getRelationAreaId()); deviceVO.setDeviceParentId(basedataDevice.getParentId()); deviceVO.setDeviceId(basedataDevice.getDeviceId()); deviceVO.setDeviceName(basedataDevice.getDeviceName()); @@ -812,6 +814,31 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { } + private void getAreaDeviceTreeDeviceCodeRelation(Long deviceId, HashMap areaMap, HashMap deviceHashMap, StringBuilder idBuilder, StringBuilder pIdBuilder) { + if (deviceHashMap.containsKey(deviceId)) { + BasedataDevice device = deviceHashMap.get(deviceId); + idBuilder.insert(0, "-" + deviceId); + Long parentId = device.getParentId(); + Long areaId; + if (deviceId.longValue() == parentId.longValue()) { + areaId = device.getRelationAreaId(); + idBuilder.insert(0, areaId); + pIdBuilder.insert(0, areaId); + return; + } + + if (deviceHashMap.containsKey(parentId)) { + pIdBuilder.insert(0, "-" + parentId); + this.getAreaDeviceTreeDeviceCodeRelation(parentId, areaMap, deviceHashMap, idBuilder, pIdBuilder); + } else { + areaId = device.getRelationAreaId(); + idBuilder.insert(0, areaId); + pIdBuilder.insert(0, areaId); + } + } + + } + public List getAreaDeviceList(List areas) { List proDeviceVOS = new ArrayList<>(); List mainDeviceList = this.basedataDeviceMapper.selectBasedataDeviceMainEquBatchByAreas(areas); diff --git a/inspect-metadata/src/main/resources/mapper/area/BaseDataAreaMapper.xml b/inspect-metadata/src/main/resources/mapper/area/BaseDataAreaMapper.xml index 3ddd2cd..de243ac 100644 --- a/inspect-metadata/src/main/resources/mapper/area/BaseDataAreaMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/area/BaseDataAreaMapper.xml @@ -6,6 +6,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -74,9 +76,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select d.area_id, d.parent_id, d.ancestors, d.area_name, d.area_type, d.order_num, d.status, d.del_flag, d.create_by, d.create_time,d.device_type_code,d.area_addr,d.remark,d.area_code ,d.old_area_id, d.old_parent_id - from basedata_area_relation d + from basedata_area d where area_id = #{areaId} update - basedata_area_relation + basedata_area set - parent_id = #{toAreaId} , ancestors = concat(#{ancestors}, ',', #{toAreaId}) + relation_parent_id = #{toAreaId} , relation_ancestors = concat(#{ancestors}, ',', #{toAreaId}) where area_id = #{areaId} diff --git a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml index b25cc7d..9042b29 100644 --- a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml @@ -10,7 +10,9 @@ + + @@ -20,6 +22,7 @@ + @@ -161,8 +164,11 @@ patrol_point_name, device_type_id, main_device_id, + relation_main_device_id, device_id, + relation_device_id, area_id, + relation_area_id, patrol_content, purpose, create_by, @@ -185,8 +191,8 @@ original_main_device_id, alarm_threshold, meter_type - from basedata_patrolpoint_relation - WHERE device_id IN + from basedata_patrolpoint + WHERE relation_device_id IN #{item} @@ -236,9 +242,12 @@ a.patrol_point_id, a.patrol_point_code, a.area_id, + a.relation_area_id, a.patrol_point_name, a.main_device_id, + a.relation_main_device_id, a.device_id, + a.relation_device_id, a.patrol_content, a.purpose, a.std_parol_point_id, @@ -253,14 +262,14 @@ a.dis_ref_picture_path, a.alarm_threshold FROM - basedata_patrolpoint_relation a + basedata_patrolpoint a and a.patrol_point_name like concat('%', #{patrolPointName}, '%') - and a.main_device_id = #{mainDeviceId} - and a.device_id = #{deviceId} - and a.area_id = #{areaId} + and a.relation_main_device_id = #{mainDeviceId} + and a.relation_device_id = #{deviceId} + and a.relation_area_id = #{areaId} and a.point_impt_level = #{pointImptLevel} and a.patrol_type_id = #{patrolTypeId} @@ -343,8 +352,11 @@ patrol_point_name, device_type_id, main_device_id, + relation_main_device_id, device_id, + relation_device_id, area_id, + relation_area_id, patrol_content, purpose, create_by, @@ -373,8 +385,11 @@ #{patrolPointName}, #{deviceTypeId}, #{mainDeviceId}, + #{relationMainDeviceId}, #{deviceId}, + #{relationDeviceId}, #{areaId}, + #{relationAreaId}, #{patrolContent}, #{purpose}, #{createBy}, @@ -436,11 +451,11 @@ - update basedata_patrolpoint_relation set area_id = #{toAreaId} where device_id in (select device_id from basedata_device where device_id = #{deviceId} or parent_id = #{deviceId}) + update basedata_patrolpoint set relation_area_id = #{toAreaId} where device_id in (select device_id from basedata_device where device_id = #{deviceId} or parent_id = #{deviceId}) - update basedata_patrolpoint_relation set area_id = #{toAreaId},device_id = #{toDeviceId},main_device_id = #{toParentId} + update basedata_patrolpoint set relation_area_id = #{toAreaId},relation_device_id = #{toDeviceId},relation_main_device_id = #{toParentId} where patrol_point_id in #{patrolPointId} diff --git a/inspect-metadata/src/main/resources/mapper/prodevmnt/BasedataDeviceMapper.xml b/inspect-metadata/src/main/resources/mapper/prodevmnt/BasedataDeviceMapper.xml index b45366d..3d2c331 100644 --- a/inspect-metadata/src/main/resources/mapper/prodevmnt/BasedataDeviceMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/prodevmnt/BasedataDeviceMapper.xml @@ -12,6 +12,7 @@ + @@ -144,6 +145,7 @@ parent_id, ancestors, area_id, + relation_area_id, area_name, device_type_id, device_type_name, @@ -171,7 +173,7 @@ old_parent_id, old_area_id, old_area_name - from basedata_device_relation + from basedata_device and device_id = #{deviceId} and device_code = #{deviceCode} @@ -215,7 +217,7 @@ - and area_id in + and relation_area_id in #{item} @@ -493,12 +495,12 @@ create_time, update_by, update_time, - order_num + order_num, old_device_id, old_parent_id, old_area_id, old_area_name - from basedata_device_relation + from basedata_device where device_id = #{deviceId} @@ -616,7 +618,7 @@ - update basedata_device_relation set area_id = #{toAreaId} where device_id = #{deviceId} or parent_id = #{deviceId} + update basedata_device set relation_area_id = #{toAreaId} where device_id = #{deviceId} or parent_id = #{deviceId}