1.国网上送代码调整

This commit is contained in:
wr
2023-12-25 10:17:58 +08:00
parent c83b89c318
commit f9ac0a5c45
10 changed files with 268 additions and 30 deletions

View File

@@ -2,6 +2,8 @@ package com.njcn.device.pms.service.gwPush.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
@@ -18,6 +20,7 @@ import com.njcn.device.pms.service.gwPush.MonitorSendService;
import com.njcn.device.pms.service.majornetwork.*;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.SysDicTreePO;
@@ -67,6 +70,10 @@ public class MonitorSendServiceImpl implements MonitorSendService {
throw new BusinessException("请检查监测对象类型是否存在");
}
List<DictTreeVO> objType = dictTreeFeignClient.query(param.getObjType()).getData();
//运行状态
List<DictData> lineState = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData();
List<DictData> run = lineState.stream().filter(x -> DicDataEnum.RUN.getCode()
.equals(x.getCode())).collect(Collectors.toList());
List<String> objTypeIds=new ArrayList<>();
objTypeIds.add(param.getObjType());
if(CollUtil.isNotEmpty(objType)){
@@ -76,6 +83,8 @@ public class MonitorSendServiceImpl implements MonitorSendService {
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.in(StrUtil.isNotBlank(param.getMonitorTag()),Monitor::getMonitorTag, param.getMonitorTag())
.in(Monitor::getObjType, objTypeIds)
.eq(Monitor::getIsUpToGrid,1)
.eq(Monitor::getMonitorState,run.get(0).getId())
.in(CollUtil.isNotEmpty(param.getIds()),Monitor::getId, param.getIds())
);
List<String> powerIds= monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
@@ -93,66 +102,78 @@ public class MonitorSendServiceImpl implements MonitorSendService {
}
private String monitorType(SysDicTreePO dicTree, List<Monitor> monitorList) {
String msg;
StrBuilder str=new StrBuilder();
switch (dicTree.getCode()) {
case "1401":
List<WindSourceDto> info = this.windSend(monitorList);
sendSize(info);
SendParam sendParam = new SendParam();
sendParam.setStats(info);
Map<String, String> send = GwSendUtil.send(sendParam, GWSendEnum.WIND_CREATE);
List<String> wiIds = info.stream().map(WindSourceDto::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, wiIds, send);
List<List<WindSourceDto>> split = ListUtil.split(info, 100);
for (int i = 0; i < split.size(); i++) {
SendParam sendParam = new SendParam();
sendParam.setStats(split.get(i));
Map<String, String> send = GwSendUtil.send(sendParam, GWSendEnum.WIND_CREATE);
List<String> wiIds = info.stream().map(WindSourceDto::getId).distinct().collect(Collectors.toList());
str.append(""+(i+1)+"次循环:"+ returnInformation(1, wiIds, send)+";</br>");
}
break;
case "1402":
List<PhotovoltaicDto> photovoltaic = this.photovoltaicSend(monitorList);
sendSize(photovoltaic);
SendParam phSend = new SendParam();
phSend.setStats(photovoltaic);
Map<String, String> phMap = GwSendUtil.send(phSend, GWSendEnum.PHOTOVOLTAIC_CREATE);
List<String> phIds = photovoltaic.stream().map(PhotovoltaicDto::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, phIds, phMap);
List<List<PhotovoltaicDto>> phSplit = ListUtil.split(photovoltaic, 100);
for (int i = 0; i < phSplit.size(); i++) {
SendParam phSend = new SendParam();
phSend.setStats(phSplit.get(i));
Map<String, String> phMap = GwSendUtil.send(phSend, GWSendEnum.PHOTOVOLTAIC_CREATE);
List<String> phIds = photovoltaic.stream().map(PhotovoltaicDto::getId).distinct().collect(Collectors.toList());
str.append(""+(i+1)+"次循环:"+ returnInformation(1, phIds, phMap)+";</br>");
}
break;
case "2400":
List<SensitiveUserDto> sensitive = this.sensitiveUserSend(monitorList);
sendSize(sensitive);
SendParam seSend = new SendParam();
seSend.setStats(sensitive);
Map<String, String> seMap = GwSendUtil.send(seSend, GWSendEnum.SENSITIVE_USER_CREATE);
List<String> seIds = sensitive.stream().map(SensitiveUserDto::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, seIds, seMap);
List<List<SensitiveUserDto>> seSplit = ListUtil.split(sensitive, 100);
for (int i = 0; i < seSplit.size(); i++) {
SendParam seSend = new SendParam();
seSend.setStats(seSplit.get(i));
Map<String, String> seMap = GwSendUtil.send(seSend, GWSendEnum.SENSITIVE_USER_CREATE);
List<String> seIds = sensitive.stream().map(SensitiveUserDto::getId).distinct().collect(Collectors.toList());
str.append(""+(i+1)+"次循环:"+ returnInformation(1, seIds, seMap)+";</br>");
}
break;
case "1300":
List<TractionStationDTO> traction = this.tractionStationSend(monitorList);
sendSize(traction);
SendParam trSend = new SendParam();
trSend.setStats(traction);
Map<String, String> trMap = GwSendUtil.send(trSend, GWSendEnum.TRACTION_STATION);
List<String> trIds = traction.stream().map(TractionStationDTO::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, trIds, trMap);
List<List<TractionStationDTO>> trSplit = ListUtil.split(traction, 100);
for (int i = 0; i < trSplit.size(); i++) {
SendParam trSend = new SendParam();
trSend.setStats(trSplit.get(i));
Map<String, String> trMap = GwSendUtil.send(trSend, GWSendEnum.TRACTION_STATION);
List<String> trIds = traction.stream().map(TractionStationDTO::getId).distinct().collect(Collectors.toList());
str.append(""+(i+1)+"次循环:"+ returnInformation(1, trIds, trMap)+";</br>");
}
break;
case "2300":
List<OtherUserDto> other = this.otherUserSend(monitorList);
sendSize(other);
SendParam otSend = new SendParam();
otSend.setStats(other);
Map<String, String> otMap = GwSendUtil.send(otSend, GWSendEnum.OTHER_USER_CREATE);
List<String> otIds = other.stream().map(OtherUserDto::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, otIds, otMap);
List<List<OtherUserDto>> otSplit = ListUtil.split(other, 100);
for (int i = 0; i < otSplit.size(); i++) {
SendParam otSend = new SendParam();
otSend.setStats(otSplit.get(i));
Map<String, String> otMap = GwSendUtil.send(otSend, GWSendEnum.OTHER_USER_CREATE);
List<String> otIds = other.stream().map(OtherUserDto::getId).distinct().collect(Collectors.toList());
str.append(""+(i++)+"循环:"+ returnInformation(1, otIds, otMap)+";</br>");
}
break;
default:
throw new BusinessException("请选择国网上送的监测点标签上送");
}
return msg;
return str.toString();
}
private void sendSize(List info) {
if (CollUtil.isEmpty(info)) {
throw new BusinessException("查询数据为空,请查询数据是否存在!");
}
if (info.size() > 100) {
throw new BusinessException("一次最多上送100条数据");
}
}
@Override
@@ -456,6 +477,7 @@ public class MonitorSendServiceImpl implements MonitorSendService {
sendVO.setCreateTime(monitor.getCreateTime());
sendVO.setUpdateTime(monitor.getUpdateTime());
sendVO.setId(monitor.getId());
sendVO.setMonitorName(monitor.getName());
sendVO.setMonitorNumber(monitor.getMonitorId());
//运行状态