From 257619a6a3d9fde06aecf2c4a21bca89d08ce61d Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Sun, 27 Apr 2025 09:16:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=BE=E5=A4=87=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B=E5=8F=B7=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pq/pojo/param/DeviceParam.java | 4 + .../njcn/device/pq/pojo/param/NodeParam.java | 7 ++ .../com/njcn/device/pq/pojo/vo/DeviceVO.java | 3 + .../service/impl/TerminalBaseServiceImpl.java | 79 +++++++++++-------- 4 files changed, 58 insertions(+), 35 deletions(-) diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java index ab65520ff..dcae01664 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceParam.java @@ -56,6 +56,10 @@ public class DeviceParam { @NotNull(message = "前置机索引不能为空") private String nodeId; + @ApiModelProperty(name = "nodeId",value = "所属前置机机进程",required = true) + @NotNull(message = "所属前置机机进程不能为空") + private Integer processNum; + @ApiModelProperty(name = "series",value = "装置识别码,采用3ds加密") private String series; diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/NodeParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/NodeParam.java index 6876cc694..1640e3fe2 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/NodeParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/NodeParam.java @@ -59,6 +59,13 @@ public class NodeParam { @NotNull(message = "前置机支持最大装置数不可为空") private Integer nodeDevNum; + /** + * 前置机支持最大进程数量 + */ + @ApiModelProperty(name = "nodeDevNum",value = "前置机支持最大进程数量") + @NotNull(message = "前置机支持最大进程数量") + private Integer maxProcessNum; + /** * 排序 */ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DeviceVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DeviceVO.java index 66ee067d9..499a37e5d 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DeviceVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DeviceVO.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; @@ -131,6 +132,8 @@ public class DeviceVO implements Serializable { @ApiModelProperty(name = "sort",value = "排序",required = true) private Integer sort; + @ApiModelProperty(value = "所属前置机机进程") + private Integer processNum; @ApiModelProperty(name = "subVoltageVOList",value = "母线集合") 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 4b51d86b0..8b0e52f3d 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 @@ -290,37 +290,37 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple coderM3d(deviceDetail, false); deviceMapper.insert(deviceDetail); //添加装置进程号 - Node nodeById = nodeService.getNodeById(deviceDetail.getNodeId()); - List devices = deviceMapper.selectList(new QueryWrapper().lambda().eq(Device::getNodeId, deviceDetail.getNodeId())); - Integer maxNodeDevNum = nodeById.getNodeDevNum(); - Integer maxProcessNum = nodeById.getMaxProcessNum(); - if (devices.size() >= maxNodeDevNum) { - throw new BusinessException(PvDeviceResponseEnum.OVER_LIMIT); - } - List deviceIdList = devices.stream().map(Device::getId).collect(Collectors.toList()); - List deviceProcessList = deviceProcessService.lambdaQuery().in(DeviceProcess::getId, deviceIdList).list(); - Map processCountMap = null; - if (Objects.nonNull(maxProcessNum)) { - processCountMap = new HashMap<>(); - for (int i = 0; i < maxProcessNum; i++) { - Integer processNum = i + 1; - long count = deviceProcessList.stream().filter(temp -> Objects.equals(temp.getProcessNo(), processNum)).count(); - Integer processCount = Math.toIntExact(count); - processCountMap.put(processNum, processCount); - } - - }else{ - processCountMap = new HashMap<>(); - } - - //获取数量最少的线程号 - Optional minKey = processCountMap.entrySet() - .stream() - .min(Comparator.comparingInt(e -> e.getValue())) - .map(Map.Entry::getKey); +// Node nodeById = nodeService.getNodeById(deviceDetail.getNodeId()); +// List devices = deviceMapper.selectList(new QueryWrapper().lambda().eq(Device::getNodeId, deviceDetail.getNodeId())); +// Integer maxNodeDevNum = nodeById.getNodeDevNum(); +// Integer maxProcessNum = nodeById.getMaxProcessNum(); +// if (devices.size() >= maxNodeDevNum) { +// throw new BusinessException(PvDeviceResponseEnum.OVER_LIMIT); +// } +// List deviceIdList = devices.stream().map(Device::getId).collect(Collectors.toList()); +// List deviceProcessList = deviceProcessService.lambdaQuery().in(DeviceProcess::getId, deviceIdList).list(); +// Map processCountMap = null; +// if (Objects.nonNull(maxProcessNum)) { +// processCountMap = new HashMap<>(); +// for (int i = 0; i < maxProcessNum; i++) { +// Integer processNum = i + 1; +// long count = deviceProcessList.stream().filter(temp -> Objects.equals(temp.getProcessNo(), processNum)).count(); +// Integer processCount = Math.toIntExact(count); +// processCountMap.put(processNum, processCount); +// } +// +// }else{ +// processCountMap = new HashMap<>(); +// } +// +// //获取数量最少的线程号 +// Optional minKey = processCountMap.entrySet() +// .stream() +// .min(Comparator.comparingInt(e -> e.getValue())) +// .map(Map.Entry::getKey); DeviceProcess deviceProcess = new DeviceProcess(); deviceProcess.setId(device.getId()); - deviceProcess.setProcessNo(minKey.orElse(1)); + deviceProcess.setProcessNo(deviceParam.getProcessNum()); deviceProcessService.saveOrUpdate(deviceProcess); //装置功能 List funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData(); @@ -469,8 +469,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple LineDetail lineDetail = new LineDetail(); BeanUtils.copyProperties(lineParam, lineDetail); lineDetail.setId(line.getId()); - - //判断国网监测点id + //判断国网监测点id if (StrUtil.isNotBlank(lineDetail.getMonitorId())) { lineDetail.setMonitorFlag(1); } else { @@ -1224,6 +1223,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple //decoderM3d(deviceDetail); BeanUtils.copyProperties(deviceDetail, deviceVO); deviceVO.setDevIndex(obj.getId()); + DeviceProcess deviceProcess = deviceProcessService.lambdaQuery().eq(DeviceProcess::getId, obj.getId()).one(); + if(Objects.nonNull(deviceProcess)){ + deviceVO.setProcessNum(deviceProcess.getProcessNo()); + } lineLambdaQueryWrapper.clear(); lineLambdaQueryWrapper.eq(Line::getPid, obj.getId()) @@ -1320,6 +1323,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple //decoderM3d(deviceDetail); BeanUtils.copyProperties(deviceDetail, deviceVO); deviceVO.setDevIndex(device.getId()); + DeviceProcess deviceProcess = deviceProcessService.lambdaQuery().eq(DeviceProcess::getId, device.getId()).one(); + if(Objects.nonNull(deviceProcess)){ + deviceVO.setProcessNum(deviceProcess.getProcessNo()); + } + deviceVO.setSubVoltageVOList(subvList); deviceVOList.add(deviceVO); @@ -1371,6 +1379,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple //decoderM3d(deviceDetail); BeanUtils.copyProperties(deviceDetail, deviceVO); deviceVO.setDevIndex(device.getId()); + DeviceProcess deviceProcess = deviceProcessService.lambdaQuery().eq(DeviceProcess::getId, device.getId()).one(); + if(Objects.nonNull(deviceProcess)){ + deviceVO.setProcessNum(deviceProcess.getProcessNo()); + } + deviceVO.setSubVoltageVOList(subVoltageVOS); deviceVOList.add(deviceVO); @@ -1508,10 +1521,6 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple deleteMonitoringPoints(pointIds,logsList); // 2. 通知设备重启 - /* String[] pids = getById(busbarId).getPids().split(","); - if (pids.length > 4) { - askRestartDevice(pids[4], DeviceRebootType.LEDGER_MODIFY); - }*/ } private void deleteMonitoringPoints(List pointIds,List logsList) {