From de2a2e2feaddb402fa237ca2c957ff9e1edd90ad Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Tue, 25 Mar 2025 14:08:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=BD=E5=AE=81=E5=8A=9F=E8=83=BD=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 36 +++- pqs-device/device-boot/pom.xml | 10 +- .../njcn/device/pq/enums/LineBaseEnum.java | 1 + .../njcn/device/pq/pojo/param/LineParam.java | 9 + .../njcn/device/pq/pojo/po/LineDetail.java | 22 +++ .../com/njcn/device/pq/pojo/vo/LineVO.java | 15 ++ .../njcn/device/pq/pojo/vo/TerminalTree.java | 2 + pqs-device/pq-device/pq-device-boot/pom.xml | 8 +- .../pq/controller/TerminalBaseController.java | 8 +- .../com/njcn/device/pq/mapper/LineMapper.java | 2 + .../device/pq/mapper/mapping/LineMapper.xml | 8 + .../device/pq/mapper/mapping/TreeMapper.xml | 3 +- .../pq/service/TerminalBaseService.java | 2 +- .../service/impl/TerminalBaseServiceImpl.java | 113 +++++++++++- .../service/impl/TerminalTreeServiceImpl.java | 170 ++++++++++++++---- .../impl/RGeneralSurveyPlanPOServiceImpl.java | 43 ----- .../api/UserLedgerFeignClient.java | 11 +- .../UserLedgerFeignClientFallbackFactory.java | 17 +- .../pojo/param/user/UserReportParam.java | 7 + .../pojo/po/user/UserReportPO.java | 15 ++ .../pojo/vo/user/UserLedgerVO.java | 24 +++ .../pojo/vo/user/UserReportVO.java | 9 + .../user/UserReportManageController.java | 41 ++++- .../service/user/UserReportPOService.java | 11 +- .../user/impl/UserReportPOServiceImpl.java | 116 +++++++++++- pqs-system/system-boot/Dockerfile | 13 +- .../system/controller/DictTreeController.java | 2 +- 27 files changed, 598 insertions(+), 120 deletions(-) create mode 100644 pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserLedgerVO.java diff --git a/pom.xml b/pom.xml index f0b3cf118..a6dc91a57 100644 --- a/pom.xml +++ b/pom.xml @@ -39,11 +39,24 @@ - - + + + + + 192.168.1.22 - 127.0.0.1 + 192.168.1.127 192.168.1.22 @@ -51,13 +64,18 @@ nacos - nacos + Nacos@#001 - - - fd74182b-1fce-4dba-afa7-2623b0376205 - - + + + + 78588706-e06f-4580-b612-b26d72493fcb + + + + + + ${middle.server.url}:8080 ${service.server.url}:10215 diff --git a/pqs-device/device-boot/pom.xml b/pqs-device/device-boot/pom.xml index 6e6756b5e..6a00a7560 100644 --- a/pqs-device/device-boot/pom.xml +++ b/pqs-device/device-boot/pom.xml @@ -26,11 +26,11 @@ pq-device-boot ${project.version} - - - - - + com.njcn diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/LineBaseEnum.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/LineBaseEnum.java index 5b016929f..49a580062 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/LineBaseEnum.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/enums/LineBaseEnum.java @@ -23,6 +23,7 @@ public enum LineBaseEnum { DEVICE_LEVEL(4, "设备"), SUB_V_LEVEL(5, "母线"), LINE_LEVEL(6, "监测点"), + USER_LEVEL(7,"用户"), INVALID_LEVEL(-1, "非法拓扑等级"), diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java index 9fecfa991..b7a058d6d 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LineParam.java @@ -120,6 +120,15 @@ public class LineParam { @ApiModelProperty(name = "objName",value = "监测点对象名称") private String objName; + @ApiModelProperty(name = "objId",value = "对象id") + private String objId; + + @ApiModelProperty(name = "bigObjType",value = "对象大类") + private String bigObjType; + + @ApiModelProperty(name = "smallObjType",value = "对象小类") + private String smallObjType; + /** * 接线类型(0:星型接法;1:三角型接法;2:开口三角型接法) */ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/LineDetail.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/LineDetail.java index 04642c4e4..93d58aa92 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/LineDetail.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/LineDetail.java @@ -107,8 +107,24 @@ public class LineDetail{ /** * 监测点对象名称 */ + @Deprecated private String objName; + /** + * 监测点对象id + */ + private String objId; + + /** + * 监测对象大类 + */ + private String bigObjType; + + /** + * 监测对象小类 + */ + private String smallObjType; + /** * 人为干预 0 不参与统计 1 参与统计 */ @@ -139,26 +155,31 @@ public class LineDetail{ /** * 上级电站 */ + @Deprecated private String superiorsSubstation; /** * 挂接线路 */ + @Deprecated private String hangLine; /** * 监测点拥有者 */ + @Deprecated private String owner; /** * 拥有者职务 */ + @Deprecated private String ownerDuty; /** * 拥有者联系方式 */ + @Deprecated private String ownerTel; /** @@ -183,6 +204,7 @@ public class LineDetail{ /** * 新能源场站信息ID */ + @Deprecated private String newStationId; /** diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineVO.java index 785843789..7b7253c12 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/LineVO.java @@ -100,6 +100,21 @@ public class LineVO implements Serializable { @ApiModelProperty(name = "objName",value = "监测点对象名称") private String objName; + /** + * 监测点对象id + */ + private String objId; + + /** + * 监测对象大类 + */ + private String bigObjType; + + /** + * 监测对象小类 + */ + private String smallObjType; + /** * 接线类型(0:星型接法;1:三角型接法;2:开口三角型接法) */ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/TerminalTree.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/TerminalTree.java index e6e018b95..ae97d85b1 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/TerminalTree.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/TerminalTree.java @@ -75,4 +75,6 @@ public class TerminalTree implements Serializable { * 电网侧变电站 */ private String objName; + + private String objId; } diff --git a/pqs-device/pq-device/pq-device-boot/pom.xml b/pqs-device/pq-device/pq-device-boot/pom.xml index f3c33f4ae..3d939a062 100644 --- a/pqs-device/pq-device/pq-device-boot/pom.xml +++ b/pqs-device/pq-device/pq-device-boot/pom.xml @@ -45,6 +45,7 @@ 1.0.0 compile + com.njcn.platform message-api @@ -52,7 +53,12 @@ compile - + + com.njcn + supervision-api + 1.0.0 + compile + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java index e4a846ca7..681014fc3 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java @@ -121,13 +121,13 @@ public class TerminalBaseController extends BaseController { } terminalBaseService.addTerminal(addTerminalParam); //新增终端后发送消息给前置重启设备 - if (Objects.nonNull(addTerminalParam.getDeviceParam())) { + /* if (Objects.nonNull(addTerminalParam.getDeviceParam())) { addTerminalParam.getDeviceParam().forEach(temp->{ Line line = terminalBaseService.queryTerminalByName(temp.getName()); terminalBaseService.askRestartDevice(line.getId(), DeviceRebootType.ADD_TERMINAL); }); - } + }*/ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } @@ -192,9 +192,9 @@ public class TerminalBaseController extends BaseController { @ApiOperation("查询终端详情") @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) @GetMapping("queryTerminal") - public HttpResult queryTerminal(@RequestParam("id") String id) { + public HttpResult queryTerminal(@RequestParam("id") String id,@RequestParam(required = false)Integer level) { String methodDescribe = getMethodDescribe("queryTerminal"); - TerminalVO t = terminalBaseService.queryTerminal(id); + TerminalVO t = terminalBaseService.queryTerminal(id,level); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, t, methodDescribe); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java index 7664bcbb1..437ebdd70 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java @@ -569,4 +569,6 @@ public interface LineMapper extends BaseMapper { List selectByName(@Param("param") LineBaseQueryParam param); List getLineByDeviceId(@Param("id") String id); + + List getLineAndLineDetail(); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml index 36706f577..bde90e9a2 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml @@ -1812,4 +1812,12 @@ LEFT JOIN sys_dict_data s1 ON pq_voltage.Scale = s1.id WHERE voltage.Pid = #{id} + + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/TreeMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/TreeMapper.xml index 35e5a5c86..b0c08a5e8 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/TreeMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/TreeMapper.xml @@ -383,7 +383,8 @@ line.pids, CONCAT(voltage.name, '_', line.name) name, comFlag.Com_Flag, - detail.pt_type + detail.pt_type, + detail.obj_id FROM pq_line line, pq_line_detail detail, diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java index 27eb03e3c..572f241c4 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java @@ -47,7 +47,7 @@ public interface TerminalBaseService { * @author cdf * @date 2021/7/19 */ - TerminalVO queryTerminal(String id); + TerminalVO queryTerminal(String id,Integer level); /** * 终端查询操作 diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java index 895f52ced..2d65be649 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java @@ -55,6 +55,9 @@ import com.njcn.oss.utils.FileStorageUtil; import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.util.PoiUtil; import com.njcn.redis.utils.RedisUtil; +import com.njcn.supervision.api.UserLedgerFeignClient; +import com.njcn.supervision.pojo.vo.user.UserLedgerVO; +import com.njcn.supervision.pojo.vo.user.UserReportVO; import com.njcn.system.api.AreaFeignClient; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; @@ -114,6 +117,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple private final NodeDeviceService nodeDeviceService; private final DeviceProcessService deviceProcessService; private final ProduceFeignClient produceFeignClient; + private final UserLedgerFeignClient userLedgerFeignClient; + @Value("${oracle.isSync}") private Boolean isSync; @@ -475,7 +480,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } lineDetailMapper.insert(lineDetail); - + if(StrUtil.isNotBlank(lineDetail.getObjId())){ + userLedgerFeignClient.bindUserStation(lineDetail.getObjId(),subIndex); + } //通过监测点id获取母线电压等级 Voltage voltage = lineMapper.getVoltageByLineId(line.getId()); //监测点限值 @@ -797,6 +804,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } lineDetailMapper.updateById(lineDetail); + if(StrUtil.isNotBlank(lineDetail.getObjId())){ + Line tem = this.getById(lineDetail.getId()); + userLedgerFeignClient.bindUserStation(lineDetail.getObjId(),tem.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]); + } + Overlimit overlimitTem = overlimitMapper.selectById(lineId); if ((!lineDetailRes.getDevCapacity().equals(lineDetail.getDevCapacity())) || ((!lineDetailRes.getShortCapacity().equals(lineDetail.getShortCapacity()))) @@ -952,8 +964,20 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple * @date 2021/7/19 */ @Override - public TerminalVO queryTerminal(String id) { - Line obj = this.getById(id); + public TerminalVO queryTerminal(String id,Integer level) { + Line obj; + if(level == 700){ + obj = new Line(); + UserLedgerVO userLedgerVO = userLedgerFeignClient.selectUserInfo(id).getData(); + if(Objects.nonNull(userLedgerVO)){ + obj.setId(userLedgerVO.getId()); + obj.setLevel(LineBaseEnum.USER_LEVEL.getCode()); + obj.setPid(userLedgerVO.getStationId()); + } + }else { + obj = this.getById(id); + } + if (Objects.isNull(obj)) { throw new BusinessException(CommonResponseEnum.FAIL); } @@ -1052,6 +1076,89 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } terminalVO.setDeviceVO(deviceDTOList); + } else if(obj.getLevel().equals(LineBaseEnum.USER_LEVEL.getCode())){ + //点击用户节点 + + //查询所有子级装置 + LambdaQueryWrapper detailLambdaQueryWrapper = new LambdaQueryWrapper<>(); + detailLambdaQueryWrapper.eq(LineDetail::getObjId,id); + List lineDetailList = lineDetailMapper.selectList(detailLambdaQueryWrapper); + List ids = lineDetailList.stream().map(LineDetail::getId).distinct().collect(Collectors.toList()); + + lineLambdaQueryWrapper.clear(); + lineLambdaQueryWrapper.in(Line::getId, ids) + .eq(Line::getState, DataStateEnum.ENABLE.getCode()) + .orderByAsc(Line::getSort); + List temLineList = this.list(lineLambdaQueryWrapper); + List devIds = temLineList.stream().map(it->it.getPids().split(StrUtil.COMMA)[4]).collect(Collectors.toList()); + + lineLambdaQueryWrapper.clear(); + lineLambdaQueryWrapper.in(Line::getId, devIds) + .eq(Line::getState, DataStateEnum.ENABLE.getCode()) + .orderByAsc(Line::getSort); + List devList = this.list(lineLambdaQueryWrapper); + + List deviceDTOList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(devList)) { + for (Line device : devList) { + DeviceVO deviceVO = new DeviceVO(); + BeanUtils.copyProperties(device, deviceVO); + + + Device deviceDetail = deviceMapper.selectById(device.getId()); + //解密 + //decoderM3d(deviceDetail); + BeanUtils.copyProperties(deviceDetail, deviceVO); + deviceVO.setDevIndex(device.getId()); + //母线 + lineLambdaQueryWrapper.clear(); + lineLambdaQueryWrapper.eq(Line::getPid, device.getId()) + .orderByAsc(Line::getSort) + .eq(Line::getState, DataStateEnum.ENABLE.getCode()); + + List subVoltageList = this.list(lineLambdaQueryWrapper); + if (CollectionUtil.isNotEmpty(subVoltageList)) { + List subVoltageVOS = new ArrayList<>(); + for (Line subVoltage : subVoltageList) { + SubVoltageVO subVoltageVO = new SubVoltageVO(); + BeanUtils.copyProperties(subVoltage, subVoltageVO); + + Voltage voltage = voltageMapper.selectById(subVoltage.getId()); + BeanUtils.copyProperties(voltage, subVoltageVO); + subVoltageVO.setSubvIndex(subVoltage.getId()); + //监测点 + lineLambdaQueryWrapper.clear(); + lineLambdaQueryWrapper.eq(Line::getPid, subVoltage.getId()) + .eq(Line::getState, DataStateEnum.ENABLE.getCode()); + List lineList = this.list(lineLambdaQueryWrapper); + if (CollectionUtil.isNotEmpty(lineList)) { + List lineVOS = new ArrayList<>(); + for (Line line : lineList) { + LineVO lineVO = new LineVO(); + BeanUtils.copyProperties(line, lineVO); + LineDetail lineDetail = lineDetailMapper.selectById(line.getId()); + BeanUtils.copyProperties(lineDetail, lineVO); + + Overlimit overLimit = overlimitMapper.selectById(line.getId()); + lineVO.setVoltageDev(overLimit.getVoltageDev()); + lineVO.setUvoltageDev(overLimit.getUvoltageDev()); + lineVO.setLineIndex(line.getId()); + lineVOS.add(lineVO); + } + subVoltageVO.setLineVO(lineVOS); + } + + subVoltageVOS.add(subVoltageVO); + } + deviceVO.setSubVoltageVOList(subVoltageVOS); + } + deviceDTOList.add(deviceVO); + } + } + terminalVO.setDeviceVO(deviceDTOList); + + commTerminalValue(terminalVO, obj.getPid()); + } else if (obj.getLevel().equals(LineBaseEnum.DEVICE_LEVEL.getCode())) { //点击装置节点 diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java index 7e2fa16ca..99258e847 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalTreeServiceImpl.java @@ -19,11 +19,14 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.po.Line; import com.njcn.device.pq.pojo.po.LineDetail; import com.njcn.device.pq.pojo.vo.DeptLineTreeVO; +import com.njcn.device.pq.pojo.vo.DevAndLine; import com.njcn.device.pq.pojo.vo.TerminalTree; import com.njcn.device.pq.service.TerminalTreeService; import com.njcn.supervision.api.UserLedgerFeignClient; import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.po.user.UserReportPO; +import com.njcn.supervision.pojo.vo.user.UserLedgerVO; +import com.njcn.supervision.pojo.vo.user.UserReportVO; import com.njcn.system.api.AreaFeignClient; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.pojo.enums.StatisticsEnum; @@ -81,27 +84,42 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { List subList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.SUB_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList()); List devList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.DEVICE_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList()); List subvList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.SUB_V_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList()); - List lineList = allList.stream().filter(item -> item.getLevel().equals(LineBaseEnum.LINE_LEVEL.getCode())).sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList()); + + + //处理存在用户的台账 + List newLineList = lineMapper.getLineAndLineDetail(); + List userLineList = newLineList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList()); + List otherLineList = newLineList.stream().filter(it->StrUtil.isBlank(it.getObjId())).collect(Collectors.toList()); + + List devIds = userLineList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList()); + + + List subvUserList = subvList.stream().filter(it->devIds.contains(it.getPid())).collect(Collectors.toList()); + List busBarIds = subvUserList.stream().map(TerminalTree::getId).distinct().collect(Collectors.toList()); + + List devUserList = devList.stream().filter(it->devIds.contains(it.getId())).collect(Collectors.toList()); + + //其他的台账默认时电网侧台账 + List subvOtherList = subvList.stream().filter(it->!busBarIds.contains(it.getId())).collect(Collectors.toList()); + List devOtherList = devList.stream().filter(it->!devIds.contains(it.getId())).collect(Collectors.toList()); + UserReportParam userReportParam = new UserReportParam(); - List userReportPOList = userLedgerFeignClient.selectUserList(userReportParam); + List userReportPOList = userLedgerFeignClient.selectUserList(userReportParam).getData(); userReportPOList = userReportPOList.stream().filter(it->StrUtil.isNotBlank(it.getStationId())).collect(Collectors.toList()); - Map> userMap = userReportPOList.stream().collect(Collectors.groupingBy(UserReportPO::getStationId)); + Map> userMap = userReportPOList.stream().collect(Collectors.groupingBy(UserLedgerVO::getStationId)); + subvOtherList.forEach(subv -> subv.setChildren(getChildren(subv, otherLineList))); + devOtherList.forEach(dev -> dev.setChildren(getChildren(dev, subvOtherList))); - - subvList.forEach(subv -> subv.setChildren(getChildren(subv, lineList))); - devList.forEach(dev -> dev.setChildren(getChildren(dev, subvList))); - - subList.forEach(sub -> sub.setChildren(specialDealSubChildren(sub, devList,userMap.get(sub.getId())))); - + subList.forEach(sub -> sub.setChildren(specialDealSubChildren(sub, userLineList,devOtherList,subvUserList,devUserList,userMap.get(sub.getId())))); //subList.forEach(sub -> sub.setChildren(getChildren(sub, devList))); gdList.forEach(gd -> gd.setChildren(getChildren(gd, subList))); provinceList.forEach(province -> province.setChildren(getChildren(province, gdList))); projectList.forEach(project -> project.setChildren(getChildren(project, provinceList))); - if (CollectionUtil.isNotEmpty(allList)) { + /* if (CollectionUtil.isNotEmpty(allList)) { TerminalTree terminalTree = new TerminalTree(); terminalTree.setId("9999999"); terminalTree.setLevel(0); @@ -110,27 +128,76 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { terminalTree.setChildren(projectList); } taiZhang.add(terminalTree); - } - return taiZhang; + }*/ + return projectList; } - private List specialDealSubChildren(TerminalTree sub,List devList,List userReportPOList){ + private List specialDealSubChildren(TerminalTree sub,List lineUserList,List devOtherList,List busBarList,List devAllList,List userReportPOList){ List list = new ArrayList<>(); - List devTree = devList.stream().filter(it->it.getPid().equals(sub.getId())).collect(Collectors.toList()); + + if(CollUtil.isNotEmpty(userReportPOList)) { + Map userLedgerVOMap = userReportPOList.stream().collect(Collectors.toMap(UserLedgerVO::getId, Function.identity())); + + List userLineList = lineUserList.stream().filter(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()].equals(sub.getId())).collect(Collectors.toList()); + Map> map = userLineList.stream().collect(Collectors.groupingBy(TerminalTree::getObjId)); + + map.forEach((objId, lineList) -> { + List devIds = lineList.stream() + .map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]) + .distinct() + .collect(Collectors.toList()); + List busList = busBarList.stream() + .filter(it -> devIds.contains(it.getPid())) + .collect(Collectors.toList()); + + List temBus = new ArrayList<>(); + busList.forEach(it -> { + TerminalTree busCopy = new TerminalTree(); + busCopy.setName(it.getName()); + busCopy.setId(it.getId()); + busCopy.setPid(it.getPid()); + busCopy.setChildren(getChildren(it, lineList)); + busCopy.setPowerFlag(1); + busCopy.setLevel(LineBaseEnum.SUB_V_LEVEL.getCode()); + temBus.add(busCopy); + }); + List devUsrList = devAllList.stream() + .filter(it -> devIds.contains(it.getId())) + .collect(Collectors.toList()); + + List temDevList = new ArrayList<>(); + devUsrList.forEach(it -> { + TerminalTree devCopy = new TerminalTree(); + devCopy.setName(it.getName()); + devCopy.setId(it.getId()); + devCopy.setPid(it.getPid()); + devCopy.setChildren(getChildren(it, temBus)); + devCopy.setPowerFlag(1); + devCopy.setLevel(LineBaseEnum.DEVICE_LEVEL.getCode()); + temDevList.add(devCopy); + }); + + UserLedgerVO userReportPO = userLedgerVOMap.get(objId); + TerminalTree terminalTree = new TerminalTree(); + terminalTree.setName(userReportPO.getProjectName()); + terminalTree.setId(userReportPO.getId()); + terminalTree.setPid(userReportPO.getStationId()); + terminalTree.setPowerFlag(1); + terminalTree.setLevel(LineBaseEnum.USER_LEVEL.getCode()); + terminalTree.setChildren(temDevList); + list.add(terminalTree); + }); + + } + + + + List devTree = devOtherList.stream().filter(it->it.getPid().equals(sub.getId())).collect(Collectors.toList()); if(CollectionUtil.isNotEmpty(devTree)){ list.addAll(devTree); } - for(UserReportPO userReportPO:userReportPOList){ - List dev = devList.stream().filter(it->it.getPid().equals(userReportPO.getId())).collect(Collectors.toList()); - TerminalTree terminalTree = new TerminalTree(); - terminalTree.setId(userReportPO.getId()); - terminalTree.setPid(userReportPO.getStationId()); - terminalTree.setPowerFlag(1); - terminalTree.setLevel(7); - terminalTree.setChildren(dev); - list.add(terminalTree); - } + return list; } @@ -169,20 +236,52 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { // 通过监测点索引查询监测点信息 List lineList = treeMapper.getLineList(generalDeviceDTO.getLineIndexes()); + List userLineList = lineList.stream().filter(it->StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList()); + List otherLineList = lineList.stream().filter(it->StrUtil.isBlank(it.getObjId())).collect(Collectors.toList()); + + Map> temMap = new HashMap<>(); + if(CollUtil.isNotEmpty(userLineList)) { + Map> objMap = userLineList.stream().collect(Collectors.groupingBy(TerminalTree::getObjId)); + UserReportParam userReportParam = new UserReportParam(); + List userReportPOList = userLedgerFeignClient.selectUserList(userReportParam).getData(); + userReportPOList = userReportPOList.stream().filter(it -> StrUtil.isNotBlank(it.getStationId())).collect(Collectors.toList()); + Map userMap = userReportPOList.stream().collect(Collectors.toMap(UserLedgerVO::getId, Function.identity())); + List temList = new ArrayList<>(); + objMap.forEach((objId, monitorList) -> { + UserLedgerVO userLedgerVO = userMap.get(objId); + TerminalTree tree = new TerminalTree(); + tree.setLevel(LineBaseEnum.USER_LEVEL.getCode()); + tree.setPid(userLedgerVO.getStationId()); + tree.setId(userLedgerVO.getId()); + tree.setChildren(monitorList); + int devSize = monitorList.stream().map(x -> { + // 获取父id字符串,通过 逗号 分割 成一个数组 + String[] pid = x.getPids().split(StrUtil.COMMA); + return pid[LineBaseEnum.DEVICE_LEVEL.getCode()]; + }).distinct().collect(Collectors.toList()).size(); + tree.setName(userLedgerVO.getProjectName() + "(" + devSize + "台装置)"); + temList.add(tree); + }); + + temMap = temList.stream().collect(Collectors.groupingBy(TerminalTree::getPid)); + } + + + //处理变电站 - dealChildrenData(subList, lineList, true); + dealChildrenData(subList, otherLineList, temMap,true); //监测点前面加序号,后面不需要删除下面两行就行 //Integer[] arr = {1}; //subList.forEach(item->item.getChildren().forEach(it->it.setName((arr[0]++ +"_"+it.getName())))); //处理供电公司 - dealChildrenData(gdList, subList, false); + dealChildrenData(gdList, subList, null,false); if (deviceInfoParam.getStatisticalType().getCode().equalsIgnoreCase(StatisticsEnum.POWER_NETWORK.getCode())) { terminalTree.setChildren(gdList); } else { //还需要额外处理省会 - dealChildrenData(proList, gdList, false); + dealChildrenData(proList, gdList, null,false); terminalTree.setChildren(proList); } terminalTree.setId(generalDeviceDTO.getIndex()); @@ -203,7 +302,7 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { * @param childrenData * @param isLine */ - private void dealChildrenData(List targetData, List childrenData, boolean isLine) { + private void dealChildrenData(List targetData, List childrenData,Map> userLineMap, boolean isLine) { // 创建一个map集合,用于封装对象 Map> groupLine; if (isLine) { @@ -218,20 +317,27 @@ public class TerminalTreeServiceImpl implements TerminalTreeService { } //变电站 targetData = targetData.stream().peek(terminalTree -> { - System.out.println(groupLine.get(terminalTree.getId())); - System.out.println(terminalTree.getId()); - List terminalTrees = groupLine.get(terminalTree.getId()).stream().sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList()); + List terminalTrees = new ArrayList<>(); + if(groupLine.containsKey(terminalTree.getId())) { + terminalTrees.addAll(groupLine.get(terminalTree.getId()).stream().sorted(Comparator.comparing(TerminalTree::getSort)).collect(Collectors.toList())); + } if (isLine) { //变电站集合 int size = terminalTrees.stream().map(x -> { // 获取父id字符串,通过 逗号 分割 成一个数组 - String[] pid = x.getPids().split(","); + String[] pid = x.getPids().split(StrUtil.COMMA); return pid[LineBaseEnum.DEVICE_LEVEL.getCode()]; }).distinct().collect(Collectors.toList()).size(); terminalTree.setName(terminalTree.getName() + "(" + size + "台装置)"); + if(userLineMap.containsKey(terminalTree.getId())){ + List devList = userLineMap.get(terminalTree.getId()); + terminalTrees.addAll(devList); + } + terminalTree.setChildren(terminalTrees); + } else { terminalTree.setChildren(groupLine.get(terminalTree.getId())); } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java index 0ab981935..83ade8f97 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java @@ -724,50 +724,7 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl map = new HashMap<>(); - //map.put("applyUser",userId); - for (String planId : planIds) { - //需要判断那些流程已经启动,已经启动的则为驳回后的再次提交审核 - FlowableAss flowableAss = flowableAssMapper.selectOne(new LambdaQueryWrapper().eq(FlowableAss::getThsIndex, planId)); - if (Objects.nonNull(flowableAss)) { - //不为空则认为是驳回后的重新发起 - Task task = iFlowTaskService.getTask(flowableAss.getExecIndex()); - FlowTaskVo flowTaskVo = new FlowTaskVo(); - flowTaskVo.setTaskId(task.getId()); - flowTaskVo.setAssignee(userId); - flowTaskVo.setComment(RequestUtil.getUserNickname() + "重新发起普测计划申请"); - iFlowTaskService.complete(flowTaskVo); - Task taskNext = iFlowTaskService.getTask(flowableAss.getExecIndex()); - FlowTaskVo flowTaskVoNext = new FlowTaskVo(); - flowTaskVoNext.setTaskId(taskNext.getId()); - flowTaskVoNext.setAssignee(rGeneralSurveyPlanAuditUserParam.getAuditUser()); - iFlowTaskService.toNextTaskUser(flowTaskVoNext); - } else { - //开始流程 - FlowFormAss flowFormAss = flowFormAssMapper.selectOne(new LambdaQueryWrapper().eq(FlowFormAss::getFormId, 1)); - if (Objects.isNull(flowFormAss)) { - throw new BusinessException("当前功能未绑定流程,请先绑定流程"); - } - - String processId = iFlowDefinitionService.startProcessInstanceById(flowFormAss.getDefinitionId(), planId, ThsFlowTypeEnum.rGeneralSurvey.getCode(), map); - Task task = iFlowTaskService.getTask(processId); - FlowTaskVo flowTaskVo = new FlowTaskVo(); - flowTaskVo.setTaskId(task.getId()); - flowTaskVo.setInstanceId(processId); - flowTaskVo.setComment(RequestUtil.getUserNickname() + "发起普测计划申请"); - iFlowTaskService.complete(flowTaskVo); - - Task taskNext = iFlowTaskService.getTask(processId); - FlowTaskVo flowTaskVoNext = new FlowTaskVo(); - flowTaskVoNext.setTaskId(taskNext.getId()); - flowTaskVoNext.setAssignee(rGeneralSurveyPlanAuditUserParam.getAuditUser()); - iFlowTaskService.toNextTaskUser(flowTaskVoNext); - } - - - } return true; } diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserLedgerFeignClient.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserLedgerFeignClient.java index c884139e6..10a10b1b5 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserLedgerFeignClient.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/UserLedgerFeignClient.java @@ -1,14 +1,18 @@ package com.njcn.supervision.api; import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; import com.njcn.supervision.api.fallback.TempLineRunTestFeignClientFallbackFactory; import com.njcn.supervision.api.fallback.UserLedgerFeignClientFallbackFactory; import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.po.user.UserReportPO; +import com.njcn.supervision.pojo.vo.user.UserLedgerVO; +import com.njcn.supervision.pojo.vo.user.UserReportVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -22,6 +26,11 @@ public interface UserLedgerFeignClient { @PostMapping("/selectUserList") - List selectUserList(@RequestBody UserReportParam userReportParam); + HttpResult> selectUserList(@RequestBody UserReportParam userReportParam); + @GetMapping("/selectUserInfo") + HttpResult selectUserInfo(@RequestParam("id") String id); + + @PostMapping(value = "/bindUserStation") + HttpResult> bindUserStation(@RequestParam("userId")String userId,@RequestParam("stationId")String stationId); } diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/UserLedgerFeignClientFallbackFactory.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/UserLedgerFeignClientFallbackFactory.java index 7d2c8d0e8..a450c4ee7 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/UserLedgerFeignClientFallbackFactory.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/UserLedgerFeignClientFallbackFactory.java @@ -2,10 +2,13 @@ package com.njcn.supervision.api.fallback; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; import com.njcn.supervision.api.TempLineRunTestFeignClient; import com.njcn.supervision.api.UserLedgerFeignClient; import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.po.user.UserReportPO; +import com.njcn.supervision.pojo.vo.user.UserLedgerVO; +import com.njcn.supervision.pojo.vo.user.UserReportVO; import com.njcn.supervision.utils.SupervisionEnumUtil; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; @@ -29,10 +32,22 @@ public class UserLedgerFeignClientFallbackFactory implements FallbackFactory selectUserList(UserReportParam userReportParam) { + public HttpResult> selectUserList(UserReportParam userReportParam) { log.error("{}异常,降级处理,异常为:{}", "查询用户台账", throwable.toString()); throw new BusinessException(finalExceptionEnum); } + + @Override + public HttpResult selectUserInfo(String id) { + log.error("{}异常,降级处理,异常为:{}", "查询用户台账详情", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> bindUserStation(String userId, String stationId) { + log.error("{}异常,降级处理,异常为:{}", "用户电站信息绑定", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/user/UserReportParam.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/user/UserReportParam.java index 04b875791..cb5c52e19 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/user/UserReportParam.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/user/UserReportParam.java @@ -14,6 +14,7 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import javax.validation.constraints.Pattern; +import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; import java.util.Map; @@ -115,6 +116,12 @@ public class UserReportParam { @ApiModelProperty(value = "预测评估单位") private String evaluationDept; + @ApiModelProperty(value = "经度") + private BigDecimal longitude; + + @ApiModelProperty(value = "纬度") + private BigDecimal latitude; + /** * 预测评估结论 */ diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/user/UserReportPO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/user/UserReportPO.java index 510393b20..6c004b59a 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/user/UserReportPO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/user/UserReportPO.java @@ -5,11 +5,13 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.njcn.db.bo.BaseEntity; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.time.LocalDate; /** @@ -131,6 +133,19 @@ public class UserReportPO extends BaseEntity { */ private String stationId; + + + /** + * 经度 + */ + private BigDecimal longitude; + + + /** + * 纬度 + */ + private BigDecimal latitude; + /** * 终端id */ diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserLedgerVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserLedgerVO.java new file mode 100644 index 000000000..cad88ecd8 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserLedgerVO.java @@ -0,0 +1,24 @@ +package com.njcn.supervision.pojo.vo.user; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author: cdf + * @CreateTime: 2025-03-24 + * @Description: 用户台账 + */ +@Data +public class UserLedgerVO implements Serializable { + private static final long serialVersionUID = 1L; + + private String id; + + private String projectName; + + private String stationId; + + private String city; + +} diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserReportVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserReportVO.java index 9e36ea431..b3a4aa9c2 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserReportVO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/user/UserReportVO.java @@ -14,6 +14,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -95,6 +96,14 @@ public class UserReportVO { @ApiModelProperty(value = "变电站") private String substation; + private String stationId; + + @ApiModelProperty(value = "经度") + private BigDecimal longitude; + + @ApiModelProperty(value = "纬度") + private BigDecimal latitude; + /** * 电压等级 */ diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/user/UserReportManageController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/user/UserReportManageController.java index 4482e04c1..394229ed1 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/user/UserReportManageController.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/user/UserReportManageController.java @@ -10,6 +10,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.po.user.UserReportPO; +import com.njcn.supervision.pojo.vo.user.UserLedgerVO; import com.njcn.supervision.pojo.vo.user.UserReportVO; import com.njcn.supervision.service.user.IUserReportNormalService; import com.njcn.supervision.service.user.UserReportPOService; @@ -244,11 +245,45 @@ public class UserReportManageController extends BaseController { @PostMapping(value = "/selectUserList") @ApiOperation("查询用户台账") - @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) - public HttpResult> selectUserList(@RequestBody UserReportParam userReportParam) { + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult> selectUserList(@RequestBody UserReportParam userReportParam) { String methodDescribe = getMethodDescribe("selectUserList"); - List b = userReportPOService.selectUserList(userReportParam); + List b = userReportPOService.selectUserList(userReportParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, b, methodDescribe); } + @GetMapping(value = "/selectUserInfo") + @ApiOperation("查询用户基本详情") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult selectUserInfo(@RequestParam String id) { + String methodDescribe = getMethodDescribe("selectUserInfo"); + UserLedgerVO b = userReportPOService.selectUserInfo(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, b, methodDescribe); + } + + + @PostMapping(value = "/bindUserStation") + @ApiOperation("绑定用户电站信息") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult> bindUserStation(@RequestParam("userId")String userId,@RequestParam("stationId")String stationId) { + String methodDescribe = getMethodDescribe("bindUserStation"); + userReportPOService.bindUserStation(userId,stationId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getUserLedgerPage") + @ApiOperation("分页查询干扰源用户台账") + @ApiImplicitParam(name = "userReportQueryParam", value = "参数", required = true) + public HttpResult> getUserLedgerPage(@RequestBody @Validated UserReportParam.UserReportQueryParam userReportQueryParam) { + String methodDescribe = getMethodDescribe("getUserLedgerPage"); + Page out = userReportPOService.getUserLedgerPage(userReportQueryParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe); + } + + + + } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/UserReportPOService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/UserReportPOService.java index cda546567..c60106933 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/UserReportPOService.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/UserReportPOService.java @@ -5,7 +5,9 @@ import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam; import com.njcn.bpm.service.IBpmService; import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.po.user.UserReportPO; +import com.njcn.supervision.pojo.vo.user.UserLedgerVO; import com.njcn.supervision.pojo.vo.user.UserReportVO; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -59,5 +61,12 @@ public interface UserReportPOService extends IBpmService { Boolean deleteUserReport(List supervisionId); - List selectUserList(UserReportParam userReportParam); + List selectUserList(UserReportParam userReportParam); + + UserLedgerVO selectUserInfo(String id); + + Boolean bindUserStation(String userId,String stationId); + + + Page getUserLedgerPage(UserReportParam.UserReportQueryParam userReportQueryParam); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/impl/UserReportPOServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/impl/UserReportPOServiceImpl.java index 4b5814de5..3e5bf7de4 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/impl/UserReportPOServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/user/impl/UserReportPOServiceImpl.java @@ -44,6 +44,7 @@ import com.njcn.supervision.pojo.dto.SensitiveUserSExcel; import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; import com.njcn.supervision.pojo.po.user.*; +import com.njcn.supervision.pojo.vo.user.UserLedgerVO; import com.njcn.supervision.pojo.vo.user.UserReportVO; import com.njcn.supervision.service.user.*; import com.njcn.supervision.utils.InstanceUtil; @@ -1155,15 +1156,124 @@ public class UserReportPOServiceImpl extends ServiceImpl selectUserList(UserReportParam userReportParam) { + public List selectUserList(UserReportParam userReportParam) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); if(StrUtil.isNotBlank(userReportParam.getCity())){ lambdaQueryWrapper.in(UserReportPO::getCity,Stream.of(userReportParam.getCity()).collect(Collectors.toList())); } - this.list(lambdaQueryWrapper); - return Collections.emptyList(); + lambdaQueryWrapper.eq(UserReportPO::getState,DataStateEnum.ENABLE.getCode()); + + List list = this.list(lambdaQueryWrapper); + return BeanUtil.copyToList(list,UserLedgerVO.class); + } + + @Override + public UserLedgerVO selectUserInfo(String id) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(UserReportPO::getId,id).eq(UserReportPO::getState,DataStateEnum.ENABLE.getCode()); + UserReportPO userReportPO = this.getById(id); + if(Objects.nonNull(userReportPO)){ + return BeanUtil.copyProperties(userReportPO,UserLedgerVO.class); + } + return null; + } + + @Override + public Boolean bindUserStation(String userId, String stationId) { + UserReportPO userReportPO = new UserReportPO(); + userReportPO.setId(userId); + userReportPO.setStationId(stationId); + return this.updateById(userReportPO); + } + + @Override + public Page getUserLedgerPage(UserReportParam.UserReportQueryParam userReportQueryParam) { + //正则校验 + Pattern pattern = Pattern.compile(PatternRegex.ALL_CHAR_1_20); + Matcher matcher = pattern.matcher(userReportQueryParam.getProjectName()); + if (StringUtils.isNotBlank(userReportQueryParam.getProjectName()) && !matcher.matches()) { + throw new BusinessException(ValidMessage.SEARCH_DATA_ERROR); + } + QueryWrapper userReportVOQueryWrapper = new QueryWrapper<>(); + + //此处仅查询敏感及重要用户 + userReportVOQueryWrapper + .eq("supervision_user_report.state", DataStateEnum.ENABLE.getCode()); + + if (Objects.nonNull(userReportQueryParam)) { + if (StrUtil.isNotBlank(userReportQueryParam.getCity())) { + //查询所有区域下的数据 + userReportVOQueryWrapper.in("supervision_user_report.city", userReportQueryParam.getCity()); + } + if (Objects.nonNull(userReportQueryParam.getDataType())) { + userReportVOQueryWrapper.eq("data_type", userReportQueryParam.getDataType()); + } + userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()), "supervision_user_report.project_name", userReportQueryParam.getProjectName()); + if (StrUtil.isNotBlank(userReportQueryParam.getSearchBeginTime()) && StrUtil.isNotBlank(userReportQueryParam.getSearchEndTime())) { + userReportVOQueryWrapper.and(wrapper -> wrapper.between("supervision_user_report.report_date", + DateUtil.beginOfDay(DateUtil.parse(userReportQueryParam.getSearchBeginTime())), + DateUtil.endOfDay(DateUtil.parse(userReportQueryParam.getSearchEndTime()))) + .or() + .between("supervision_user_report.expected_production_date", + DateUtil.beginOfDay(DateUtil.parse(userReportQueryParam.getSearchBeginTime())), + DateUtil.endOfDay(DateUtil.parse(userReportQueryParam.getSearchEndTime()))) + ); + } + userReportVOQueryWrapper.orderByDesc("supervision_user_report.Update_Time"); + } + userReportVOQueryWrapper.orderByDesc("supervision_user_report.create_time"); + Page page; + page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(userReportQueryParam), PageFactory.getPageSize(userReportQueryParam)), userReportVOQueryWrapper); + page.getRecords().forEach(temp -> { + Integer needGovernance = 0; + if ( + CollectionUtil.newArrayList( + UserNatureEnum.BUILD_POWER_GRID.getCode(), + UserNatureEnum.EXTEND_POWER_GRID.getCode() + ).contains(temp.getUserType())) { + //电网工程类用户额外数据 + needGovernance = userReportProjectPOService.getById(temp.getId()).getNeedGovernance(); + } else if ( + CollectionUtil.newArrayList( + UserNatureEnum.BUILD_NON_LINEAR_LOAD.getCode(), + UserNatureEnum.EXTEND_NON_LINEAR_LOAD.getCode(), + UserNatureEnum.BUILD_NEW_ENERGY_POWER_STATION.getCode(), + UserNatureEnum.EXTEND_NEW_ENERGY_POWER_STATION.getCode() + ).contains(temp.getUserType())) { + //非线性负荷用户 & 新能源发电站用户 + + needGovernance = userReportSubstationPOService.getById(temp.getId()).getNeedGovernance(); + } else if (UserNatureEnum.SENSITIVE_USER.getCode().equals(temp.getUserType())) { + // 敏感及重要用户 + needGovernance = userReportSensitivePOService.getById(temp.getId()).getNeedGovernance(); + } + temp.setNeedGovernance(needGovernance); + //添加治理评估文件,需先判断入网评估是否审核通过 + boolean type = true; + if (1 == temp.getNeedGovernance()) { + List list = userReportNormalMapper.selectList(new LambdaQueryWrapper() + .eq(UserReportNormalPO::getUserReportId, temp.getId()) + .eq(UserReportNormalPO::getState, DataStateEnum.ENABLE.getCode()) + .ne(UserReportNormalPO::getStatus, BpmTaskStatusEnum.CANCEL.getStatus()) + .eq(UserReportNormalPO::getType, 0) + .orderByDesc(UserReportNormalPO::getCreateTime) + ); + if (CollUtil.isNotEmpty(list)) { + List collect = list.stream().filter(x -> !Objects.equals(x.getStatus(), BpmTaskStatusEnum.APPROVE.getStatus())) + .map(UserReportNormalPO::getId) + .collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect)) { + type = false; + } + } else { + type = false; + } + } + temp.setType(type); + }); + return page; } public Map getTreeString(String name, List treeVOS) { diff --git a/pqs-system/system-boot/Dockerfile b/pqs-system/system-boot/Dockerfile index 2c1194041..1c9cbb534 100644 --- a/pqs-system/system-boot/Dockerfile +++ b/pqs-system/system-boot/Dockerfile @@ -1,15 +1,6 @@ FROM openjdk:8-jdk-alpine -FROM eclipse-temurin:8-jdk-ubi9-minimal -MAINTAINER hongawen_13914774158@163.com -ENV JAVA_OPTS="-Xms1024m -Xmx1024m" -# 挂载时区的目录 -VOLUME /usr/share/zoneinfo -# 设置时区为上海 -ENV TZ=Asia/Shanghai -# 设置时区信息 -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ADD target/systemboot.jar systemboot.jar ENTRYPOINT ["java","-jar","/systemboot.jar"] -ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /systemboot.jar EXPOSE 10207 -RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone \ No newline at end of file +RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo 'Asia/Shanghai' >/etc/timezone +#RUN apk add --update ttf-dejavu fontconfig && rm -rf /var/cache/apk/* diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/DictTreeController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/DictTreeController.java index 31b1a6db6..b371e7508 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/DictTreeController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/DictTreeController.java @@ -161,7 +161,7 @@ public class DictTreeController extends BaseController { @GetMapping("/queryAllByType") @ApiOperation("分类查询所有树形字典") public HttpResult> queryAllByType(@RequestParam("type")Integer type) { - String methodDescribe = getMethodDescribe("queryAll"); + String methodDescribe = getMethodDescribe("queryAllByType"); List result = sysDicTreePOService.queryAllByType(type); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); }