diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java index b4fd3973a..99c19ebc8 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java @@ -239,6 +239,11 @@ public class Monitor extends BaseEntity { */ private Integer monitorUploadStatus; + /** + * 0.未上送 1.已上送 2.取消上送 3.待重新上送(限值) + */ + private Integer monitorOverlimitStatus; + /** * 牵引站id diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java index 0b727ad00..6aa2240eb 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java @@ -14,15 +14,19 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.pms.mapper.majornetwork.MonitorMapper; import com.njcn.device.pms.mapper.majornetwork.OverlimitMapper; +import com.njcn.device.pms.mapper.majornetwork.StatationStatMapper; import com.njcn.device.pms.pojo.dto.MonitorLimitDTO; import com.njcn.device.pms.pojo.dto.PushMonitorDTO; import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pms.pojo.po.StatationStat; import com.njcn.device.pms.pojo.vo.gw.OtherUserDto; import com.njcn.device.pms.service.gwPush.GwMonitorPushService; import com.njcn.device.pms.service.majornetwork.IMonitorService; import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.api.DictTreeFeignClient; import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.pojo.po.DictData; +import com.njcn.system.pojo.po.SysDicTreePO; import com.njcn.web.enums.GWSendEnum; import com.njcn.web.factory.PageFactory; import com.njcn.web.pojo.param.BaseParam; @@ -55,6 +59,10 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { private final DicDataFeignClient dicDataFeignClient; + private final DictTreeFeignClient dictTreeFeignClient; + + private final StatationStatMapper statationStatMapper; + @Override public String pushMonitor(List ids) { @@ -86,13 +94,55 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { throw new BusinessException("一次最多上送100条数据"); } + List stationIds = monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList()); + + List statationStatList = statationStatMapper.selectList(new LambdaQueryWrapper().in(StatationStat::getPowerId,stationIds)); + + Map mapStation = statationStatList.stream().collect(Collectors.toMap(StatationStat::getPowerId,Function.identity())); + + for (Monitor item : monitorList) { PushMonitorDTO pushMonitorDTO = new PushMonitorDTO(); pushMonitorDTO.setId(item.getId()); - pushMonitorDTO.setMonitorId(item.getId()); + pushMonitorDTO.setMonitorId(item.getMonitorId()); pushMonitorDTO.setMonitorName(item.getName()); pushMonitorDTO.setTerminalCode(item.getTerminalId()); - // pushMonitorDTO.setObjectType(); + pushMonitorDTO.setCityId(item.getOrgId()); + pushMonitorDTO.setIsMajorNet("1"); + + + if(mapStation.containsKey(item.getPowerrId())) { + pushMonitorDTO.setSubstationId(mapStation.get(item.getPowerrId()).getMidStationId()); + pushMonitorDTO.setSubstationName(mapStation.get(item.getPowerrId()).getPowerName()); + } + + //终端 + + + if (voltageMap.containsKey(item.getVoltageLevel())) { + pushMonitorDTO.setVoltageLevel(String.format("%02d", voltageMap.get(item.getVoltageLevel()).getAlgoDescribe())); + } + + + //对象类型 + SysDicTreePO sysDicTreePO = dictTreeFeignClient.queryById(item.getObjType()).getData(); + if(sysDicTreePO.getPid().equals("0")){ + pushMonitorDTO.setObjTypePrePre(sysDicTreePO.getCode()); + }else { + pushMonitorDTO.setObjTypePre(sysDicTreePO.getCode()); + SysDicTreePO sysDicTreeParent = dictTreeFeignClient.queryById(sysDicTreePO.getPid()).getData(); + pushMonitorDTO.setObjTypePrePre(sysDicTreeParent.getCode()); + } + pushMonitorDTO.setObjectType("0"); + + if (statusMap.containsKey(item.getMonitorState())) { + pushMonitorDTO.setStatus(statusMap.get(item.getMonitorState()).getValue()); + } + + + + + if (Objects.nonNull(item.getMinShortCircuitCapacity())) { pushMonitorDTO.setMinShortCapacity(BigDecimal.valueOf(item.getMinShortCircuitCapacity())); @@ -111,17 +161,13 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { pushMonitorDTO.setCustomName(item.getMonitorObjectName()); } - if (statusMap.containsKey(item.getMonitorState())) { - pushMonitorDTO.setStatus(statusMap.get(item.getMonitorState()).getValue()); - } + if (tranMap.containsKey(item.getPotentialTransFormerType())) { pushMonitorDTO.setEvtType(tranMap.get(item.getPotentialTransFormerType()).getValue()); } - if (voltageMap.containsKey(item.getVoltageLevel())) { - pushMonitorDTO.setVoltageLevel(String.format("%02d", voltageMap.get(item.getVoltageLevel()).getAlgoDescribe())); - } + if (tranMap.containsKey(item.getPotentialTransFormerType())) { pushMonitorDTO.setEvtType(tranMap.get(item.getPotentialTransFormerType()).getValue()); @@ -132,8 +178,8 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { pushMonitorDTO.setObjTypePrePre(objTagMap.get(item.getMonitorTag()).getValue()); } - pushMonitorDTO.setIsMajorNet("1"); - pushMonitorDTO.setCityId(item.getOrgId()); + + if (StrUtil.isNotBlank(item.getOperationId())) { pushMonitorDTO.setMaintOrg(item.getOperationId()); } @@ -172,6 +218,9 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); List monitorList = monitorService.list(lambdaQueryWrapper); + if (monitorList.size() > 100) { + throw new BusinessException("一次最多上送100条数据"); + } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(Overlimit::getId, ids); @@ -273,7 +322,7 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { sendParam.setStats(pushResult); Map sendRes = GwSendUtil.send(sendParam, GWSendEnum.LIMIT_CREATE); List mIds = monitorList.stream().map(Monitor::getId).distinct().collect(Collectors.toList()); - String msg = returnInformation(1, mIds, sendRes); + String msg = returnInformation(2, mIds, sendRes); return msg; } else { throw new BusinessException("暂无监测点信息"); @@ -314,7 +363,7 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { monitorLimitDTO.setMonitorId(monitor.getMonitorId()); monitorLimitDTO.setVoltage(monitor.getVoltageLevel()); - monitorLimitDTO.setMonitorUploadStatus(monitor.getMonitorUploadStatus()); + monitorLimitDTO.setMonitorUploadStatus(monitor.getMonitorOverlimitStatus()); monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit()).setScale(3, RoundingMode.HALF_UP)); @@ -447,6 +496,12 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { .in(Monitor::getId, ids) ); break; + case 2: + monitorService.update(new LambdaUpdateWrapper() + .set(Monitor::getMonitorOverlimitStatus, 1) + .in(Monitor::getId, ids) + ); + break; default: break; } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java index f96d7fa9f..28fa4815b 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java @@ -249,6 +249,7 @@ public class MonitorServiceImpl extends ServiceImpl impl monitor.setStatus(DataStateEnum.ENABLE.getCode()); monitor.setIsUploadHead(0); monitor.setMonitorUploadStatus(0); + monitor.setMonitorOverlimitStatus(0); //主网测点限值计算 Overlimit overlimit = overLimitCal(monitorParam, monitor); @@ -945,6 +946,8 @@ public class MonitorServiceImpl extends ServiceImpl impl monitorPO.setLineId(lineId); monitorPO.setVoltageLevel(genScale); monitorPO.setIsUploadHead(0); + monitorPO.setMonitorOverlimitStatus(0); + monitorPO.setMonitorOverlimitStatus(0); String monitorState = null; switch (oracleTerminalExcel.getRunFlag()) {