pms国网上送代码提交

This commit is contained in:
2023-12-19 16:40:22 +08:00
parent 2ac9662268
commit 006e61f2ce
3 changed files with 75 additions and 12 deletions

View File

@@ -239,6 +239,11 @@ public class Monitor extends BaseEntity {
*/
private Integer monitorUploadStatus;
/**
* 0.未上送 1.已上送 2.取消上送 3.待重新上送(限值)
*/
private Integer monitorOverlimitStatus;
/**
* 牵引站id

View File

@@ -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<String> ids) {
@@ -86,13 +94,55 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
throw new BusinessException("一次最多上送100条数据");
}
List<String> stationIds = monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
List<StatationStat> statationStatList = statationStatMapper.selectList(new LambdaQueryWrapper<StatationStat>().in(StatationStat::getPowerId,stationIds));
Map<String,StatationStat> 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<Monitor> monitorList = monitorService.list(lambdaQueryWrapper);
if (monitorList.size() > 100) {
throw new BusinessException("一次最多上送100条数据");
}
LambdaQueryWrapper<Overlimit> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(Overlimit::getId, ids);
@@ -273,7 +322,7 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
sendParam.setStats(pushResult);
Map<String, String> sendRes = GwSendUtil.send(sendParam, GWSendEnum.LIMIT_CREATE);
List<String> 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<Monitor>()
.set(Monitor::getMonitorOverlimitStatus, 1)
.in(Monitor::getId, ids)
);
break;
default:
break;
}

View File

@@ -249,6 +249,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> 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<MonitorMapper, Monitor> impl
monitorPO.setLineId(lineId);
monitorPO.setVoltageLevel(genScale);
monitorPO.setIsUploadHead(0);
monitorPO.setMonitorOverlimitStatus(0);
monitorPO.setMonitorOverlimitStatus(0);
String monitorState = null;
switch (oracleTerminalExcel.getRunFlag()) {