From fc75a7084d201532f59d78769355cfecb39a7a1d Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Tue, 6 May 2025 14:09:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=BD=AE=E6=9C=BA=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../njcn/device/pq/pojo/dto/DeviceInfo.java | 6 +- .../pq/pojo/dto/NodeProcessDeviceTree.java | 33 ++++ .../pq/pojo/dto/PqsTerminalPushLogDTO.java | 43 ++++++ .../device/pq/pojo/param/DeviceParam.java | 6 +- .../device/pq/pojo/po/PqsTerminalLogs.java | 2 +- .../pq/controller/NodeDeviceController.java | 20 ++- .../pq/controller/TerminalBaseController.java | 7 +- .../device/pq/mapper/mapping/NodeMapper.xml | 5 +- .../device/pq/service/NodeDeviceService.java | 6 + .../pq/service/TerminalBaseService.java | 2 +- .../service/impl/NodeDeviceServiceImpl.java | 37 +++++ .../service/impl/TerminalBaseServiceImpl.java | 145 ++++++++++++------ 12 files changed, 254 insertions(+), 58 deletions(-) create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/NodeProcessDeviceTree.java create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PqsTerminalPushLogDTO.java diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DeviceInfo.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DeviceInfo.java index 04333928d..9a7dc6616 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DeviceInfo.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/DeviceInfo.java @@ -26,8 +26,10 @@ public class DeviceInfo { private String port; //终端端口 private String stationName; - //变电站名 + //终端名称 private String name; + //电站名称 + private String subName; //终端序列号 private String updateTime; //数据更新时间 @@ -40,6 +42,8 @@ public class DeviceInfo { private String devKey; private Integer processNo; + + private Integer maxProcessNum; // private List monitorData; diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/NodeProcessDeviceTree.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/NodeProcessDeviceTree.java new file mode 100644 index 000000000..eb310384f --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/NodeProcessDeviceTree.java @@ -0,0 +1,33 @@ +package com.njcn.device.pq.pojo.dto; + + +import com.njcn.device.pq.pojo.param.NodeParam; +import com.njcn.device.pq.pojo.po.Node; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * Description: + * Date: 2024/11/4 21:01【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class NodeProcessDeviceTree { + + private Node node; + + private List processDeviceList; + @Data + @EqualsAndHashCode(callSuper = false) + public static class ProcessDevice { + private Integer processNo; + private Integer processState; + private List deviceInfoList; + } + + +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PqsTerminalPushLogDTO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PqsTerminalPushLogDTO.java new file mode 100644 index 000000000..b792b9571 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PqsTerminalPushLogDTO.java @@ -0,0 +1,43 @@ +package com.njcn.device.pq.pojo.dto; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author hongawen + * @since 2023-04-12 + */ +@Data +public class PqsTerminalPushLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 终端运维日志Id + */ + private String id; + + private String nodeId; + + private Integer processNum; + + + private String devId; + + /** + * 新增,修改,删除 + */ + private String operateType; + + + +} 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 dcae01664..8ca93d6c2 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,9 +56,9 @@ public class DeviceParam { @NotNull(message = "前置机索引不能为空") private String nodeId; - @ApiModelProperty(name = "nodeId",value = "所属前置机机进程",required = true) - @NotNull(message = "所属前置机机进程不能为空") - private Integer processNum; +// @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/po/PqsTerminalLogs.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/PqsTerminalLogs.java index 82fdda4dd..83f2982b3 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/PqsTerminalLogs.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/po/PqsTerminalLogs.java @@ -50,7 +50,7 @@ public class PqsTerminalLogs extends BaseEntity implements Serializable { private String logsType; /** - * 是否推送 + * 是否推送 0未推送1已推送 */ private Integer isPush; diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/NodeDeviceController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/NodeDeviceController.java index b40f5fb54..6257e3038 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/NodeDeviceController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/NodeDeviceController.java @@ -7,8 +7,10 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.dto.NodeProcessDeviceTree; import com.njcn.device.pq.pojo.param.NodeDeviceParam; +import com.njcn.device.pq.pojo.po.DeviceProcess; import com.njcn.device.pq.service.NodeDeviceService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; @@ -49,6 +51,15 @@ public class NodeDeviceController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } + @ApiOperation("查询前置-进程-设备-设备树") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + @PostMapping("nodeDeviceTree") + public HttpResult nodeDeviceTree(@RequestParam("nodeId") String nodeId){ + String methodDescribe = getMethodDescribe("nodeDeviceTree"); + NodeProcessDeviceTree list = nodeDeviceService.nodeDeviceTree(nodeId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + @ApiOperation("一键分配装置所属进程号") @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) @PostMapping("oneKeyDistribution") @@ -58,7 +69,14 @@ public class NodeDeviceController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } - + @ApiOperation("更新设备进程号") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + @PostMapping("updateDeviceProcess") + public HttpResult updateDeviceProcess(@RequestBody DeviceProcess deviceProcess){ + String methodDescribe = getMethodDescribe("nodeDeviceTree"); + Boolean flag = nodeDeviceService.updateDeviceProcess(deviceProcess); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } } 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 39a7706fd..0b358ad69 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 @@ -444,23 +444,22 @@ public class TerminalBaseController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } - @ApiOperation("请求前置设备设备") + @ApiOperation("请求前置设备重启") @PostMapping(value = "askRestartDevice") @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE) @ApiImplicitParams({ @ApiImplicitParam(name = "devId", value = "设备id", required = true), @ApiImplicitParam(name = "deviceRebootType", value = "重启类型", required = true) }) - public HttpResult askRestartDevice(@RequestParam("devId")String devId,@RequestParam("deviceRebootType")String deviceRebootType) { + public HttpResult askRestartDevice(@RequestParam("devId")List devIds,@RequestParam("deviceRebootType")String deviceRebootType,@RequestParam("processNo")Integer processNo) { String methodDescribe = getMethodDescribe("askRestartDevice"); - terminalBaseService.askRestartDevice(devId,deviceRebootType); + terminalBaseService.askRestartDevice(devIds,deviceRebootType,processNo); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } @ApiOperation("台账变更推送") @PostMapping(value = "ledgerChangePush") @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY) - public HttpResult ledgerChangePush() { String methodDescribe = getMethodDescribe("ledgerChangePush"); terminalBaseService.ledgerChangePush(); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml index 8853b9679..e9cd4942b 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/NodeMapper.xml @@ -10,16 +10,19 @@ s1.Name devType, pq_device.Port port, pq_line.Name name, + sub.Name subName, pq_device.Update_Time updateTime, s2.Name manufacturer, pq_device.Com_Flag status, pq_device.Series series, pq_device_process.process_no processNo, - pq_device.Dev_Key devKey + pq_device.Dev_Key devKey, + pq_node.max_Process_Num maxProcessNum FROM pq_device LEFT JOIN pq_node ON pq_node.Id = pq_device.Node_Id LEFT JOIN pq_line on pq_device.id = pq_line.id + LEFT JOIN pq_line sub on pq_line.pid = sub.id LEFT JOIN pq_device_process on pq_device_process.id = pq_device.id LEFT JOIN sys_dict_data s1 ON pq_device.Dev_Type = s1.id LEFT JOIN sys_dict_data s2 ON pq_device.Manufacturer = s2.id diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/NodeDeviceService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/NodeDeviceService.java index aa93abe62..e3be8d14c 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/NodeDeviceService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/NodeDeviceService.java @@ -1,7 +1,9 @@ package com.njcn.device.pq.service; import com.njcn.device.pq.pojo.dto.DeviceInfo; +import com.njcn.device.pq.pojo.dto.NodeProcessDeviceTree; import com.njcn.device.pq.pojo.param.NodeDeviceParam; +import com.njcn.device.pq.pojo.po.DeviceProcess; import org.springframework.stereotype.Service; import java.util.List; @@ -18,4 +20,8 @@ public interface NodeDeviceService { List nodeDeviceList(NodeDeviceParam nodeDeviceParam); void oneKeyDistribution(String nodeId); + + NodeProcessDeviceTree nodeDeviceTree(String nodeId); + + Boolean updateDeviceProcess(DeviceProcess deviceProcess); } 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 202d83769..f859a1b2c 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 @@ -287,7 +287,7 @@ public interface TerminalBaseService { //通知前置重启设备 void askRestartProcess(Integer processNo,String processType,String deviceRebootType); - void askRestartDevice(String devId, String deviceRebootType); + void askRestartDevice(List devId, String deviceRebootType,Integer processNo); void ledgerChangePush(); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/NodeDeviceServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/NodeDeviceServiceImpl.java index e71d04fdc..4b7bb4e75 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/NodeDeviceServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/NodeDeviceServiceImpl.java @@ -7,6 +7,7 @@ import com.njcn.device.pq.mapper.LineMapper; import com.njcn.device.pq.mapper.NodeMapper; import com.njcn.device.pq.pojo.dto.DeviceInfo; import com.njcn.device.pq.pojo.dto.MonitorInfo; +import com.njcn.device.pq.pojo.dto.NodeProcessDeviceTree; import com.njcn.device.pq.pojo.param.NodeDeviceParam; import com.njcn.device.pq.pojo.po.Device; import com.njcn.device.pq.pojo.po.DeviceProcess; @@ -14,13 +15,16 @@ import com.njcn.device.pq.pojo.po.Node; import com.njcn.device.pq.service.DeviceProcessService; import com.njcn.device.pq.service.IDeviceService; import com.njcn.device.pq.service.NodeDeviceService; +import com.njcn.redis.utils.RedisUtil; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -38,6 +42,8 @@ public class NodeDeviceServiceImpl implements NodeDeviceService { private final LineMapper lineMapper; private final IDeviceService iDeviceService; private final DeviceProcessService deviceProcessService; + + private final RedisUtil redisUtil; @Override public List nodeDeviceList(NodeDeviceParam nodeDeviceParam) { @@ -82,4 +88,35 @@ public class NodeDeviceServiceImpl implements NodeDeviceService { deviceProcessService.updateBatchById(collect); } + + @Override + public NodeProcessDeviceTree nodeDeviceTree(String nodeId) { + Node node = nodeMapper.selectById(nodeId); + + NodeProcessDeviceTree nodeProcessDeviceTree = new NodeProcessDeviceTree(); + nodeProcessDeviceTree.setNode(node); + NodeDeviceParam nodeDeviceParam = new NodeDeviceParam(); + nodeDeviceParam.setIp(node.getIp()); + List list = nodeMapper.nodeDeviceList(nodeDeviceParam); + List processDeviceLis = new ArrayList<>(); + for (int i = 1; i <= node.getMaxProcessNum(); i++) { + NodeProcessDeviceTree.ProcessDevice processDevice= new NodeProcessDeviceTree.ProcessDevice(); + processDevice.setProcessNo(i); + int finalI = i; + List collect = list.stream().filter(deviceInfo -> Objects.equals(deviceInfo.getProcessNo(), finalI)).collect(Collectors.toList()); + processDevice.setDeviceInfoList(collect); + processDeviceLis.add(processDevice); +// redisUtil.getObjectByKey() + } + nodeProcessDeviceTree.setProcessDeviceList(processDeviceLis); + + + + return nodeProcessDeviceTree; + } + + @Override + public Boolean updateDeviceProcess(DeviceProcess deviceProcess) { + return deviceProcessService.updateById(deviceProcess); + } } 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 8b0e52f3d..218c903f9 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 @@ -40,6 +40,7 @@ import com.njcn.device.pq.pojo.bo.excel.OverLimitExcel; import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel; import com.njcn.device.pq.pojo.dto.DeviceInfo; import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO; +import com.njcn.device.pq.pojo.dto.PqsTerminalPushLogDTO; import com.njcn.device.pq.pojo.param.*; import com.njcn.device.pq.pojo.param.oracle.*; import com.njcn.device.pq.pojo.po.*; @@ -318,10 +319,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple // .stream() // .min(Comparator.comparingInt(e -> e.getValue())) // .map(Map.Entry::getKey); - DeviceProcess deviceProcess = new DeviceProcess(); - deviceProcess.setId(device.getId()); - deviceProcess.setProcessNo(deviceParam.getProcessNum()); - deviceProcessService.saveOrUpdate(deviceProcess); +// DeviceProcess deviceProcess = new DeviceProcess(); +// deviceProcess.setId(device.getId()); +// deviceProcess.setProcessNo(deviceParam.getProcessNum()); +// deviceProcessService.saveOrUpdate(deviceProcess); //装置功能 List funList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_FUN.getName()).getData(); if (CollectionUtil.isEmpty(funList)) { @@ -706,9 +707,15 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple BeanUtils.copyProperties(updateDeviceParam, deviceDetail); deviceDetail.setId(updateDeviceParam.getDevIndex()); coderM3d(deviceDetail,true); + this.updateById(device); deviceMapper.updateById(deviceDetail); +// DeviceProcess deviceProcess = new DeviceProcess(); +// deviceProcess.setId(updateDeviceParam.getDevIndex()); +// deviceProcess.setProcessNo(updateDeviceParam.getProcessNum()); +// deviceProcessService.saveOrUpdate(deviceProcess); + } //母线 @@ -1416,7 +1423,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple // 2. 查询并删除所有省份 List provinces = findChildren(project.getId()); - if (CollectionUtil.isEmpty(provinces)) return; + if (CollectionUtil.isEmpty(provinces)) { + return; + } List provinceIds = provinces.stream() .map(Line::getId) @@ -1433,7 +1442,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple // 1. 查询并删除所有供电公司 List powerCompanies = findChildren(provinceId); - if (CollectionUtil.isEmpty(powerCompanies)) return; + if (CollectionUtil.isEmpty(powerCompanies)) { + return; + } List companyIds = powerCompanies.stream() .map(Line::getId) @@ -1449,7 +1460,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple this.removeById(companyId); // 1. 查询并删除所有变电站 List substations = findChildren(companyId); - if (CollectionUtil.isEmpty(substations)) return; + if (CollectionUtil.isEmpty(substations)) { + return; + } List substationIds = substations.stream() .map(Line::getId) @@ -1467,7 +1480,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple substationMapper.deleteById(substationId); // 1. 查询并删除所有装置 List devices = findChildren(substationId); - if (CollectionUtil.isEmpty(devices)) return; + if (CollectionUtil.isEmpty(devices)) { + return; + } logsList.addAll(devices); @@ -1486,10 +1501,12 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple private void deleteDeviceAndChildren(String deviceId,List logsList) { this.removeById(deviceId); deviceMapper.deleteById(deviceId); - + deviceProcessService.removeById(deviceId); // 1. 查询并删除所有母线 List busbars = findChildren(deviceId); - if (CollectionUtil.isEmpty(busbars)) return; + if (CollectionUtil.isEmpty(busbars)) { + return; + } List busbarIds = busbars.stream() .map(Line::getId) @@ -1510,7 +1527,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple voltageMapper.deleteById(busbarId); // 1. 查询并删除所有监测点 List monitoringPoints = findChildren(busbarId); - if (CollectionUtil.isEmpty(monitoringPoints)) return; + if (CollectionUtil.isEmpty(monitoringPoints)) { + return; + } logsList.addAll(monitoringPoints); @@ -3641,65 +3660,99 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple @Override - @Async - public void askRestartDevice(String devId, String deviceRebootType) { - DeviceProcess one = deviceProcessService.lambdaQuery().eq(DeviceProcess::getId, devId).one(); +// @Async + public void askRestartDevice(List devId, String deviceRebootType,Integer processNum) { + DeviceRebootMessage deviceRebootMessage = new DeviceRebootMessage(); deviceRebootMessage.setCode(deviceRebootType); if(Objects.equals(deviceRebootType, DeviceRebootType.DELETE_TERMINAL)){ - DeviceRebootMessage.DeviceInfo deviceInfo = new DeviceRebootMessage.DeviceInfo(); - deviceInfo.setId(devId); List list = new ArrayList<>(); - list.add(deviceInfo); + + devId.forEach(temp->{ + DeviceRebootMessage.DeviceInfo deviceInfo = new DeviceRebootMessage.DeviceInfo(); + deviceInfo.setId(temp); + list.add(deviceInfo); + }); + deviceRebootMessage.setData(list); - deviceRebootMessage.setIndex(one.getProcessNo()); + deviceRebootMessage.setIndex(processNum); produceFeignClient.askRestartDevice(deviceRebootMessage); //删除设备进程关系 - deviceProcessService.removeById(devId); + deviceProcessService.removeByIds(devId); }else { - NodeDeviceParam nodeDeviceParam = new NodeDeviceParam(); - nodeDeviceParam.setDevId(devId); - List deviceInfos = nodeDeviceService.nodeDeviceList(nodeDeviceParam); - if (CollectionUtil.isNotEmpty(deviceInfos)){ - deviceRebootMessage.setIndex(one.getProcessNo()); - DeviceInfo deviceInfo = deviceInfos.get(0); - DeviceRebootMessage.DeviceInfo deviceInfo1 = new DeviceRebootMessage.DeviceInfo(); - BeanUtils.copyProperties(deviceInfo,deviceInfo1); - List monitorInfoList=deviceInfo.getMonitorData().stream().map(tempMonitorInfo->{ - DeviceRebootMessage.DeviceInfo.MonitorInfo m = new DeviceRebootMessage.DeviceInfo.MonitorInfo(); - BeanUtils.copyProperties(tempMonitorInfo,m); - return m; - }).collect(Collectors.toList()); - deviceInfo1.setMonitorData(monitorInfoList); - List list = new ArrayList<>(); - list.add(deviceInfo1); + List list = new ArrayList<>(); + + devId.forEach(temp->{ + NodeDeviceParam nodeDeviceParam = new NodeDeviceParam(); + nodeDeviceParam.setDevId(temp); + List deviceInfos = nodeDeviceService.nodeDeviceList(nodeDeviceParam); + if (CollectionUtil.isNotEmpty(deviceInfos)) { + deviceRebootMessage.setIndex(processNum); + DeviceInfo deviceInfo = deviceInfos.get(0); + DeviceRebootMessage.DeviceInfo deviceInfo1 = new DeviceRebootMessage.DeviceInfo(); + BeanUtils.copyProperties(deviceInfo, deviceInfo1); + List monitorInfoList = deviceInfo.getMonitorData().stream().map(tempMonitorInfo -> { + DeviceRebootMessage.DeviceInfo.MonitorInfo m = new DeviceRebootMessage.DeviceInfo.MonitorInfo(); + BeanUtils.copyProperties(tempMonitorInfo, m); + return m; + }).collect(Collectors.toList()); + deviceInfo1.setMonitorData(monitorInfoList); + list.add(deviceInfo1); + } + }); deviceRebootMessage.setData(list); produceFeignClient.askRestartDevice(deviceRebootMessage); - } } - - - } + @Override @Transactional public void ledgerChangePush() { - QueryWrapper queryWrapper= new QueryWrapper(); + QueryWrapper queryWrapper= new QueryWrapper<>(); queryWrapper.lambda().eq(PqsTerminalLogs::getState, 1).eq(PqsTerminalLogs::getIsPush, 0).in(PqsTerminalLogs::getTerminalType,Stream.of(4,6).collect(Collectors.toList())); + + List list = pqsTerminalLogsMapper.selectList(queryWrapper); + +// list.forEach(temp->{ +// PqsTerminalPushLogDTO pqsTerminalPushLogDTO = new PqsTerminalPushLogDTO(); +// if(Objects.equals(temp.getTerminalType(),6)){ +// pqsTerminalPushLogDTO.setId(temp.getId()); +// pqsTerminalPushLogDTO.setNodeId(); +// pqsTerminalPushLogDTO.setProcessNum(); +// pqsTerminalPushLogDTO.setDevId(); +// pqsTerminalPushLogDTO.setOperateType(DeviceRebootType.LEDGER_MODIFY); +// +// +// } +// +// }); + + if(!CollectionUtils.isEmpty(list)){ + //一个是删除操作,其余都算终端设备更新操作 List delDevice = list.stream().filter(temp -> Objects.equals(temp.getOperateType(), Param.DEL) && Objects.equals(temp.getTerminalType(), 4)).distinct().collect(Collectors.toList()); List delDevIds = new ArrayList<>(); if(!CollectionUtils.isEmpty(delDevice)){ - delDevice.forEach(temp->{ - this.askRestartDevice(temp.getObjIndex(), DeviceRebootType.DELETE_TERMINAL); - delDevIds.add(temp.getObjIndex()); - } - ); + List collect = delDevice.stream().map(PqsTerminalLogs::getObjIndex).collect(Collectors.toList()); + delDevIds.addAll(collect); + List deviceProcessList = deviceProcessService.lambdaQuery().in(DeviceProcess::getId, collect).list(); + //根据进程号分组,每个进程发送一条信息给前置,如果该进程修改的设备数超过10台则直接重启该进程; + Map> collect1 = deviceProcessList.stream().collect(Collectors.groupingBy(DeviceProcess::getProcessNo)); + //根据进程号 + collect1.forEach((k,v)->{ +// this.askRestartDevice(temp.getObjIndex(), DeviceRebootType.DELETE_TERMINAL); + if(v.size()>=10){ +// this.askRestartProcess(k,); + }else { +// this.askRestartDevice(); + } + }); + } List updateDevIds = new ArrayList<>(); List lineIds = list.stream().filter(temp -> Objects.equals(temp.getTerminalType(), 6)).map(PqsTerminalLogs::getObjIndex).distinct().collect(Collectors.toList()); @@ -3719,7 +3772,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple updateDevIds.removeAll(delDevIds); } updateDevIds.stream().distinct().forEach(temp->{ - this.askRestartDevice(temp, DeviceRebootType.LEDGER_MODIFY); +// this.askRestartDevice(temp, DeviceRebootType.LEDGER_MODIFY); } ); list.forEach(temp->{