1.中台母线关联

2.国网上送调整
This commit is contained in:
wr
2023-12-19 14:47:07 +08:00
parent 3df352aa32
commit 86ef81b701
10 changed files with 210 additions and 118 deletions

View File

@@ -36,7 +36,7 @@ public class GeneratrixWireParam {
@NotBlank(message = "电压等级不可为空") @NotBlank(message = "电压等级不可为空")
private String scale; private String scale;
@ApiModelProperty(value = "关联中台的母线id",required = true)
private String midBusId;
} }

View File

@@ -246,9 +246,12 @@ public class MonitorParam {
@Data @Data
public static class Info implements Serializable { public static class Info implements Serializable {
@ApiModelProperty(name = "monitorTag",value = "监测点对象标签") @ApiModelProperty(name = "monitorTag",value = "监测点对象标签")
@NotBlank(message = "监测点对象标签不可为空")
private String monitorTag; private String monitorTag;
@ApiModelProperty(name = "objType",value = "监测点对象类型标签")
@NotBlank(message = "监测点对象类型不可为空")
private String objType;
@ApiModelProperty(name = "ids",value = "id集合") @ApiModelProperty(name = "ids",value = "id集合")
// @NotEmpty(message = "id集合不能为空") // @NotEmpty(message = "id集合不能为空")
private List<String> ids; private List<String> ids;

View File

@@ -43,10 +43,13 @@ public class GeneratrixWire extends BaseEntity {
/** /**
* 关联中台的母线id * 关联中台的母线id
*/ */
private String midBusId;
/**
* 关联中台的母线名称
*/
@TableField(exist = false) @TableField(exist = false)
private String relationId; private String midBusName;
@TableField(exist = false) @TableField(exist = false)
private String orgId; private String orgId;

View File

@@ -66,6 +66,10 @@ public class TractionStation extends BaseEntity {
* 铁路线路名称 * 铁路线路名称
*/ */
private String railwayLineName; private String railwayLineName;
/**
* 铁路编号
*/
private String railwayType;
/** /**
* 牵引站变压器接线方式(字典) * 牵引站变压器接线方式(字典)

View File

@@ -69,7 +69,6 @@ public class TractionStationDTO extends Unit {
/*第二个监测点编号 是否必填:否*/ /*第二个监测点编号 是否必填:否*/
@ExcelProperty(value = "第二个监测点编号") @ExcelProperty(value = "第二个监测点编号")
private String monitorNumberTwo; private String monitorNumberTwo;
/*铁路id 是否必填:否*/ /*铁路id 是否必填:否*/
@ExcelProperty(value = "铁路id") @ExcelProperty(value = "铁路id")
private String railwayId; private String railwayId;

View File

@@ -17,6 +17,7 @@ import com.njcn.device.pms.pojo.param.GeneratrixWireParam;
import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.device.pms.pojo.po.GeneratrixWire; import com.njcn.device.pms.pojo.po.GeneratrixWire;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.service.majornetwork.IGeneratrixWireService; import com.njcn.device.pms.service.majornetwork.IGeneratrixWireService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.pojo.param.BaseParam;
@@ -189,4 +190,20 @@ public class PmsGeneratrixWireController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitorInfo, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitorInfo, methodDescribe);
} }
} }
/**
* 根据电站id匹配中台母线信息
* @param stationId
* @return
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getMidBusBar")
@ApiOperation("根据电站id匹配中台母线信息")
@ApiImplicitParam(name = "station", value = "电站id", required = true)
public HttpResult<List<PmsMidLedger>> getBusBar(@RequestParam("station") String stationId) {
String methodDescribe = getMethodDescribe("getBusBar");
List<PmsMidLedger> pmsMidLedgerList = iGeneratrixWireService.getBusBar(stationId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pmsMidLedgerList, methodDescribe);
}
} }

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pms.service.gwPush; package com.njcn.device.pms.service.gwPush;
import com.njcn.device.pms.pojo.param.MonitorParam; import com.njcn.device.pms.pojo.param.MonitorParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.gw.*; import com.njcn.device.pms.pojo.vo.gw.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -21,50 +22,50 @@ public interface MonitorSendService {
/** /**
* @Description: 电能质量风电场台账数据接口 * @Description: 电能质量风电场台账数据接口
* @param ids * @param monitorList
* @return: java.lang.String * @return: java.lang.String
* @Author: wr * @Author: wr
* @Date: 2023/12/7 9:00 * @Date: 2023/12/7 9:00
*/ */
List<WindSourceDto> windSend(List<String> ids, List<String> id); List<WindSourceDto> windSend(List<Monitor> monitorList);
/** /**
* @Description: 电能质量光伏电站台账数据接口 * @Description: 电能质量光伏电站台账数据接口
* @param ids * @param monitorList
* @return: java.lang.String * @return: java.lang.String
* @Author: wr * @Author: wr
* @Date: 2023/12/7 14:18 * @Date: 2023/12/7 14:18
*/ */
List<PhotovoltaicDto> photovoltaicSend(List<String> ids, List<String> id); List<PhotovoltaicDto> photovoltaicSend(List<Monitor> monitorList);
/** /**
* @Description: 电能质量重要、敏感用户台账数据接口 * @Description: 电能质量重要、敏感用户台账数据接口
* @param ids * @param monitorList
* @return: java.lang.String * @return: java.lang.String
* @Author: wr * @Author: wr
* @Date: 2023/12/7 14:18 * @Date: 2023/12/7 14:18
*/ */
List<SensitiveUserDto> sensitiveUserSend(List<String> ids, List<String> id); List<SensitiveUserDto> sensitiveUserSend(List<Monitor> monitorList);
/** /**
* @Description: 电能质量牵引站台账数据接口 * @Description: 电能质量牵引站台账数据接口
* @param ids * @param monitorList
* @return: java.lang.String * @return: java.lang.String
* @Author: wr * @Author: wr
* @Date: 2023/12/7 14:18 * @Date: 2023/12/7 14:18
*/ */
List<TractionStationDTO> tractionStationSend(List<String> ids, List<String> id); List<TractionStationDTO> tractionStationSend(List<Monitor> monitorList);
/** /**
* @Description: 其他干扰用户台账数据接口 * @Description: 其他干扰用户台账数据接口
* @param ids * @param monitorList
* @return: java.lang.String * @return: java.lang.String
* @Author: wr * @Author: wr
* @Date: 2023/12/7 14:18 * @Date: 2023/12/7 14:18
*/ */
List<OtherUserDto> otherUserSend(List<String> ids, List<String> id); List<OtherUserDto> otherUserSend(List<Monitor> monitorList);
/** /**
* 导出国网上送信息 * 导出国网上送信息

View File

@@ -17,9 +17,11 @@ import com.njcn.device.pms.pojo.vo.gw.*;
import com.njcn.device.pms.service.gwPush.MonitorSendService; import com.njcn.device.pms.service.gwPush.MonitorSendService;
import com.njcn.device.pms.service.majornetwork.*; import com.njcn.device.pms.service.majornetwork.*;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum; import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.DictData;
import com.njcn.system.pojo.po.SysDicTreePO;
import com.njcn.system.pojo.vo.DictTreeVO;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.vo.PvTerminalTreeVO; import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import com.njcn.web.enums.GWSendEnum; import com.njcn.web.enums.GWSendEnum;
@@ -33,7 +35,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
@@ -54,64 +55,85 @@ public class MonitorSendServiceImpl implements MonitorSendService {
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
private final IPowerClientService powerClientService; private final IPowerClientService powerClientService;
private final DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
private final DictTreeFeignClient dictTreeFeignClient;
private final IPowerGenerationUserService iPowerGenerationUserService; private final IPowerGenerationUserService iPowerGenerationUserService;
private final ITractionStationService tractionStationService; private final ITractionStationService tractionStationService;
private final IStatationStatService statationStatService;
@Override @Override
public String sendType(MonitorParam.Info param) { public String sendType(MonitorParam.Info param) {
DictData data = dicDataFeignClient.getDicDataById(param.getMonitorTag()).getData(); SysDicTreePO dicTree = dictTreeFeignClient.queryById(param.getObjType()).getData();
DicDataEnum enumValue = DicDataEnum.getDicDataEnumValue(data.getCode()); if(ObjectUtil.isNull(dicTree)){
throw new BusinessException("请检查监测对象类型是否存在");
}
List<DictTreeVO> objType = dictTreeFeignClient.query(param.getObjType()).getData();
List<String> objTypeIds=new ArrayList<>();
objTypeIds.add(param.getObjType());
if(CollUtil.isNotEmpty(objType)){
objTypeIds.addAll(objType.stream().map(DictTreeVO::getId).collect(Collectors.toList()));
}
//获取监测点信息
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.in(StrUtil.isNotBlank(param.getMonitorTag()),Monitor::getMonitorTag, param.getMonitorTag())
.in(Monitor::getObjType, objTypeIds)
.in(CollUtil.isNotEmpty(param.getIds()),Monitor::getId, param.getIds())
);
List<String> powerIds= monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
List<StatationStat> statationStats = statationStatService.listByIds(powerIds);
Map<String, StatationStat> powerMap = statationStats.stream().collect(Collectors
.toMap(StatationStat::getPowerId, Function.identity()));
for (Monitor monitor : monitorList) {
if(powerMap.containsKey(monitor.getPowerrId())){
monitor.setPowerrId(powerMap.get(monitor.getPowerrId()).getMidStationId());
}else{
monitor.setPowerrId("");
}
}
return monitorType(dicTree, monitorList);
}
private String monitorType(SysDicTreePO dicTree, List<Monitor> monitorList) {
String msg; String msg;
switch (enumValue) { switch (dicTree.getCode()) {
case WIND_FARM: case "1401":
List<WindSourceDto> info = this.windSend(param.getIds(), Arrays.asList(data.getId())); List<WindSourceDto> info = this.windSend(monitorList);
if (info.size() > 100) { sendSize(info);
throw new BusinessException("一次最多上送100条数据");
}
SendParam sendParam = new SendParam(); SendParam sendParam = new SendParam();
sendParam.setStats(info); sendParam.setStats(info);
Map<String, String> send = GwSendUtil.send(sendParam, GWSendEnum.WIND_CREATE); Map<String, String> send = GwSendUtil.send(sendParam, GWSendEnum.WIND_CREATE);
List<String> wiIds = info.stream().map(WindSourceDto::getId).distinct().collect(Collectors.toList()); List<String> wiIds = info.stream().map(WindSourceDto::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, wiIds, send); msg = returnInformation(1, wiIds, send);
break; break;
case POWER_STATION: case "1402":
List<PhotovoltaicDto> photovoltaic = this.photovoltaicSend(param.getIds(), Arrays.asList(data.getId())); List<PhotovoltaicDto> photovoltaic = this.photovoltaicSend(monitorList);
if (photovoltaic.size() > 100) { sendSize(photovoltaic);
throw new BusinessException("一次最多上送100条数据");
}
SendParam phSend = new SendParam(); SendParam phSend = new SendParam();
phSend.setStats(photovoltaic); phSend.setStats(photovoltaic);
Map<String, String> phMap = GwSendUtil.send(phSend, GWSendEnum.PHOTOVOLTAIC_CREATE); Map<String, String> phMap = GwSendUtil.send(phSend, GWSendEnum.PHOTOVOLTAIC_CREATE);
List<String> phIds = photovoltaic.stream().map(PhotovoltaicDto::getId).distinct().collect(Collectors.toList()); List<String> phIds = photovoltaic.stream().map(PhotovoltaicDto::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, phIds, phMap); msg = returnInformation(1, phIds, phMap);
break; break;
case SENSITIVE_USERS: case "2400":
List<SensitiveUserDto> sensitive = this.sensitiveUserSend(param.getIds(), Arrays.asList(data.getId())); List<SensitiveUserDto> sensitive = this.sensitiveUserSend(monitorList);
if (sensitive.size() > 100) { sendSize(sensitive);
throw new BusinessException("一次最多上送100条数据");
}
SendParam seSend = new SendParam(); SendParam seSend = new SendParam();
seSend.setStats(sensitive); seSend.setStats(sensitive);
Map<String, String> seMap = GwSendUtil.send(seSend, GWSendEnum.SENSITIVE_USER_CREATE); Map<String, String> seMap = GwSendUtil.send(seSend, GWSendEnum.SENSITIVE_USER_CREATE);
List<String> seIds = sensitive.stream().map(SensitiveUserDto::getId).distinct().collect(Collectors.toList()); List<String> seIds = sensitive.stream().map(SensitiveUserDto::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, seIds, seMap); msg = returnInformation(1, seIds, seMap);
break; break;
case ELECTRIFIED_RAILWAYS: case "1300":
List<TractionStationDTO> traction = this.tractionStationSend(param.getIds(), Arrays.asList(data.getId())); List<TractionStationDTO> traction = this.tractionStationSend(monitorList);
if (traction.size() > 100) { sendSize(traction);
throw new BusinessException("一次最多上送100条数据");
}
SendParam trSend = new SendParam(); SendParam trSend = new SendParam();
trSend.setStats(traction); trSend.setStats(traction);
Map<String, String> trMap = GwSendUtil.send(trSend, GWSendEnum.TRACTION_STATION); Map<String, String> trMap = GwSendUtil.send(trSend, GWSendEnum.TRACTION_STATION);
List<String> trIds = traction.stream().map(TractionStationDTO::getId).distinct().collect(Collectors.toList()); List<String> trIds = traction.stream().map(TractionStationDTO::getId).distinct().collect(Collectors.toList());
msg = returnInformation(1, trIds, trMap); msg = returnInformation(1, trIds, trMap);
break; break;
case LINEAR_LOADS: case "2300":
List<OtherUserDto> other = this.otherUserSend(param.getIds(), Arrays.asList(data.getId())); List<OtherUserDto> other = this.otherUserSend(monitorList);
if (other.size() > 100) { sendSize(other);
throw new BusinessException("一次最多上送100条数据");
}
SendParam otSend = new SendParam(); SendParam otSend = new SendParam();
otSend.setStats(other); otSend.setStats(other);
Map<String, String> otMap = GwSendUtil.send(otSend, GWSendEnum.OTHER_USER_CREATE); Map<String, String> otMap = GwSendUtil.send(otSend, GWSendEnum.OTHER_USER_CREATE);
@@ -124,17 +146,18 @@ public class MonitorSendServiceImpl implements MonitorSendService {
return msg; return msg;
} }
private void sendSize(List info) {
if (CollUtil.isEmpty(info)) {
throw new BusinessException("查询数据为空,请查询数据是否存在!");
}
if (info.size() > 100) {
throw new BusinessException("一次最多上送100条数据");
}
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public List<WindSourceDto> windSend(List<String> ids,List<String> id) { public List<WindSourceDto> windSend(List<Monitor> monitorList) {
//获取监测点信息
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.eq(Monitor::getMonitorTag, id)
.in(CollUtil.isNotEmpty(ids),Monitor::getId, ids)
);
if (CollUtil.isEmpty(monitorList)) {
new BusinessException("为查询数据,请查询数据是否存在!");
}
List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData(); List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity()));
Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
@@ -152,7 +175,7 @@ public class MonitorSendServiceImpl implements MonitorSendService {
sendVO = new WindSourceDto(); sendVO = new WindSourceDto();
//添加部门信息 //添加部门信息
BeanUtil.copyProperties(setOrgProvince(mapCode, mapList, monitor.getOrgId()), sendVO); BeanUtil.copyProperties(setOrgProvince(mapCode, mapList, monitor.getOrgId()), sendVO);
sendVO.setStationName(monitor.getName()); sendVO.setStationName(monitor.getMonitorObjectName());
//电站等级 //电站等级
if (mapVoltage.containsKey(monitor.getVoltageLevel())) { if (mapVoltage.containsKey(monitor.getVoltageLevel())) {
sendVO.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); sendVO.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe()));
@@ -160,10 +183,10 @@ public class MonitorSendServiceImpl implements MonitorSendService {
} }
sendVO.setId(monitor.getId()); sendVO.setId(monitor.getId());
sendVO.setIsSpecial(monitor.getIsSpecialSupplyElectricity().toString()); sendVO.setIsSpecial(monitor.getIsSpecialSupplyElectricity().toString());
// sendVO.setMonitorId(monitor.getId()); sendVO.setMonitorId(monitor.getMonitorId());
sendVO.setStationCapacity(monitor.getUserAgreementCapacity()); sendVO.setStationCapacity(monitor.getUserAgreementCapacity());
sendVO.setStationId(monitor.getId()); sendVO.setStationId(monitor.getId());
// sendVO.setSubstationId(monitor.getPowerrId()); sendVO.setSubstationId(monitor.getPowerrId());
sendVO.setSubstationName(monitor.getPowerrName()); sendVO.setSubstationName(monitor.getPowerrName());
sendVO.setFcId(monitor.getMonitorObjectId()); sendVO.setFcId(monitor.getMonitorObjectId());
sendVO.setFcNo(monitor.getMonitorObjectId()); sendVO.setFcNo(monitor.getMonitorObjectId());
@@ -193,15 +216,7 @@ public class MonitorSendServiceImpl implements MonitorSendService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public List<PhotovoltaicDto> photovoltaicSend(List<String> ids,List<String> id) { public List<PhotovoltaicDto> photovoltaicSend(List<Monitor> monitorList) {
//获取监测点信息
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.eq(Monitor::getMonitorTag, id)
.in(CollUtil.isNotEmpty(ids),Monitor::getId, ids)
);
if (CollUtil.isEmpty(monitorList)) {
throw new BusinessException("为查询数据,请查询数据是否存在!");
}
List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData(); List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity()));
Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
@@ -219,7 +234,7 @@ public class MonitorSendServiceImpl implements MonitorSendService {
sendVO = new PhotovoltaicDto(); sendVO = new PhotovoltaicDto();
//添加部门信息 //添加部门信息
BeanUtil.copyProperties(setOrgProvince(mapCode, mapList, monitor.getOrgId()), sendVO); BeanUtil.copyProperties(setOrgProvince(mapCode, mapList, monitor.getOrgId()), sendVO);
sendVO.setStationName(monitor.getName()); sendVO.setStationName(monitor.getMonitorObjectName());
//电站等级 //电站等级
if (mapVoltage.containsKey(monitor.getVoltageLevel())) { if (mapVoltage.containsKey(monitor.getVoltageLevel())) {
sendVO.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); sendVO.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe()));
@@ -227,10 +242,10 @@ public class MonitorSendServiceImpl implements MonitorSendService {
} }
sendVO.setId(monitor.getId()); sendVO.setId(monitor.getId());
sendVO.setIsSpecial(monitor.getIsSpecialSupplyElectricity().toString()); sendVO.setIsSpecial(monitor.getIsSpecialSupplyElectricity().toString());
// sendVO.setMonitorId(monitor.getId()); sendVO.setMonitorId(monitor.getMonitorId());
sendVO.setStationCapacity(monitor.getUserAgreementCapacity()); sendVO.setStationCapacity(monitor.getUserAgreementCapacity());
sendVO.setStationId(monitor.getId()); sendVO.setStationId(monitor.getId());
// sendVO.setSubstationId(monitor.getPowerrId()); sendVO.setSubstationId(monitor.getPowerrId());
sendVO.setSubstationName(monitor.getPowerrName()); sendVO.setSubstationName(monitor.getPowerrName());
sendVO.setFcId(monitor.getMonitorObjectId()); sendVO.setFcId(monitor.getMonitorObjectId());
sendVO.setFcNo(monitor.getMonitorObjectId()); sendVO.setFcNo(monitor.getMonitorObjectId());
@@ -258,14 +273,8 @@ public class MonitorSendServiceImpl implements MonitorSendService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public List<SensitiveUserDto> sensitiveUserSend(List<String> ids,List<String> id) { public List<SensitiveUserDto> sensitiveUserSend(List<Monitor> monitorList) {
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.eq(Monitor::getMonitorTag, id)
.in(CollUtil.isNotEmpty(ids),Monitor::getId, ids)
);
if (CollUtil.isEmpty(monitorList)) {
throw new BusinessException("为查询数据,请查询数据是否存在!");
}
//根据用户类型进行分组 //根据用户类型进行分组
Map<Integer, List<String>> userMonitor = monitorList.stream().filter(x -> ObjectUtil.isNotNull(x.getIfPowerUser())) Map<Integer, List<String>> userMonitor = monitorList.stream().filter(x -> ObjectUtil.isNotNull(x.getIfPowerUser()))
.collect(Collectors.groupingBy(Monitor::getIfPowerUser, .collect(Collectors.groupingBy(Monitor::getIfPowerUser,
@@ -324,8 +333,8 @@ public class MonitorSendServiceImpl implements MonitorSendService {
} }
sendVO.setSensitiveUserName(monitor.getName()); sendVO.setSensitiveUserName(monitor.getName());
sendVO.setUserProtocolCapacity(monitor.getUserAgreementCapacity()); sendVO.setUserProtocolCapacity(monitor.getUserAgreementCapacity());
// sendVO.setMonitorId(monitor.getId()); sendVO.setMonitorId(monitor.getMonitorId());
// sendVO.setStationId(monitor.getPowerrId()); sendVO.setStationId(monitor.getPowerrId());
sendVO.setStationName(monitor.getPowerrName()); sendVO.setStationName(monitor.getPowerrName());
sendVO.setPubPrivFlag(monitor.getIsSpecialMonitor() + ""); sendVO.setPubPrivFlag(monitor.getIsSpecialMonitor() + "");
//运行状态 //运行状态
@@ -384,15 +393,7 @@ public class MonitorSendServiceImpl implements MonitorSendService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public List<TractionStationDTO> tractionStationSend(List<String> ids,List<String> id) { public List<TractionStationDTO> tractionStationSend(List<Monitor> monitorList) {
//获取牵引站信息
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.eq(Monitor::getMonitorTag, id)
.in(CollUtil.isNotEmpty(ids),Monitor::getId, ids)
);
if (CollUtil.isEmpty(monitorList)) {
throw new BusinessException("为查询数据,请查询数据是否存在!");
}
//获取已存在牵引站的信息 //获取已存在牵引站的信息
List<String> tractionIds = monitorList.stream().map(Monitor::getTractionId).collect(Collectors.toList()); List<String> tractionIds = monitorList.stream().map(Monitor::getTractionId).collect(Collectors.toList());
List<TractionStation> tractionStationList = tractionStationService.list(new LambdaQueryWrapper<TractionStation>() List<TractionStation> tractionStationList = tractionStationService.list(new LambdaQueryWrapper<TractionStation>()
@@ -428,15 +429,15 @@ public class MonitorSendServiceImpl implements MonitorSendService {
sendVO.setConnetGroupWay(dictData.getValue()); sendVO.setConnetGroupWay(dictData.getValue());
} }
sendVO.setIfSpecial(traction.getIfSpecial() + ""); sendVO.setIfSpecial(traction.getIfSpecial() + "");
sendVO.setRailwayId(traction.getRailwayLineId());
sendVO.setRailwayNumber(traction.getRailwayLineId()); sendVO.setRailwayName(traction.getRailwayLineName());
sendVO.setRailwayName(traction.getName()); sendVO.setRailwayType(traction.getRailwayType());
sendVO.setTractionCode(traction.getId()); sendVO.setTractionCode(traction.getId());
sendVO.setTractionSubstationCapacity(traction.getRatedCapacity()); sendVO.setTractionSubstationCapacity(traction.getRatedCapacity());
// sendVO.setTractionSubstationId(traction.getPowerId()); sendVO.setTractionSubstationId(monitor.getPowerrId());
sendVO.setTractionSubstationName(traction.getPowerName()); sendVO.setTractionSubstationName(monitor.getPowerrName());
// sendVO.setMainSubstationId(traction.getPowerId()); sendVO.setMainSubstationId(monitor.getPowerrId());
sendVO.setMainSubstationName(traction.getPowerName()); sendVO.setMainSubstationName(monitor.getPowerrName());
//电压等级 //电压等级
if (mapVoltage.containsKey(traction.getVoltageLevel())) { if (mapVoltage.containsKey(traction.getVoltageLevel())) {
sendVO.setTractionVoltageLevel(String.format("%02d", mapVoltage.get(traction.getVoltageLevel()).getAlgoDescribe())); sendVO.setTractionVoltageLevel(String.format("%02d", mapVoltage.get(traction.getVoltageLevel()).getAlgoDescribe()));
@@ -447,15 +448,15 @@ public class MonitorSendServiceImpl implements MonitorSendService {
sendVO.setTractionVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); sendVO.setTractionVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe()));
sendVO.setMainVolatageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); sendVO.setMainVolatageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe()));
} }
// sendVO.setTractionSubstationId(monitor.getPowerrId()); sendVO.setTractionSubstationId(monitor.getPowerrId());
sendVO.setTractionSubstationName(monitor.getPowerrName()); sendVO.setTractionSubstationName(monitor.getPowerrName());
// sendVO.setMainSubstationId(monitor.getPowerId()); sendVO.setMainSubstationId(monitor.getPowerrId());
sendVO.setMainSubstationName(monitor.getPowerrName()); sendVO.setMainSubstationName(monitor.getPowerrName());
} }
sendVO.setCreateTime(monitor.getCreateTime()); sendVO.setCreateTime(monitor.getCreateTime());
sendVO.setUpdateTime(monitor.getUpdateTime()); sendVO.setUpdateTime(monitor.getUpdateTime());
sendVO.setId(monitor.getId()); sendVO.setId(monitor.getId());
// sendVO.setMonitorNumber(monitor); sendVO.setMonitorNumber(monitor.getMonitorId());
//运行状态 //运行状态
if (mapLineState.containsKey(monitor.getMonitorState())) { if (mapLineState.containsKey(monitor.getMonitorState())) {
@@ -485,14 +486,7 @@ public class MonitorSendServiceImpl implements MonitorSendService {
} }
@Override @Override
public List<OtherUserDto> otherUserSend(List<String> ids,List<String> id) { public List<OtherUserDto> otherUserSend(List<Monitor> monitorList) {
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.eq(Monitor::getMonitorTag, id)
.in(CollUtil.isNotEmpty(ids),Monitor::getId, ids)
);
if (CollUtil.isEmpty(monitorList)) {
throw new BusinessException("为查询数据,请查询数据是否存在!");
}
List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData(); List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity()));
Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
@@ -524,14 +518,14 @@ public class MonitorSendServiceImpl implements MonitorSendService {
dto.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); dto.setGcVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe()));
dto.setSubstationVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe())); dto.setSubstationVoltageLevel(String.format("%02d", mapVoltage.get(monitor.getVoltageLevel()).getAlgoDescribe()));
} }
// dto.setSubstationId(monitor.getPowerrId()); dto.setSubstationId(monitor.getPowerrId());
dto.setSubstationName(monitor.getPowerrName()); dto.setSubstationName(monitor.getPowerrName());
//行业分类 //行业分类
if (mapIndustryType.containsKey(monitor.getTradeCode())) { if (mapIndustryType.containsKey(monitor.getTradeCode())) {
dto.setTradeCode(mapIndustryType.get(monitor.getTradeCode()).getValue()); dto.setTradeCode(mapIndustryType.get(monitor.getTradeCode()).getValue());
} }
dto.setProtocolCapacity(monitor.getUserAgreementCapacity()); dto.setProtocolCapacity(monitor.getUserAgreementCapacity());
// dto.setMonitorId(monitor.getId()); dto.setMonitorId(monitor.getMonitorId());
// dto.setIsMonitoringOnline(); // dto.setIsMonitoringOnline();
// dto.setIsSceneTest(); // dto.setIsSceneTest();
// dto.setHaveDevice(); // dto.setHaveDevice();
@@ -554,28 +548,53 @@ public class MonitorSendServiceImpl implements MonitorSendService {
public void exportSend(HttpServletResponse response) throws IOException { public void exportSend(HttpServletResponse response) throws IOException {
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), WindSourceDto.class).build(); ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), WindSourceDto.class).build();
List<WindSourceDto> wind = this.windSend(new ArrayList<>(), Arrays.asList("1adebade8821a18e4dbb5039fdf00326")); List<WindSourceDto> wind = this.windSend(getMonitors("f3daf821a351da6db44cdc952f90a5cb"));
WriteSheet writeSheet = EasyExcel.writerSheet(0, "风电" ).head(WindSourceDto.class).build(); WriteSheet writeSheet = EasyExcel.writerSheet(0, "风电" ).head(WindSourceDto.class).build();
excelWriter.write(wind, writeSheet); excelWriter.write(wind, writeSheet);
List<PhotovoltaicDto> photovoltaic = this.photovoltaicSend(new ArrayList<>(), Arrays.asList("c5af15b871a5dd880dace02b8f669e2f")); List<PhotovoltaicDto> photovoltaic = this.photovoltaicSend(getMonitors("189b8db113a79738e07946b6ec2bb0da"));
WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "光伏电站" ).head(PhotovoltaicDto.class).build(); WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "光伏电站" ).head(PhotovoltaicDto.class).build();
excelWriter.write(photovoltaic, writeSheet2); excelWriter.write(photovoltaic, writeSheet2);
List<SensitiveUserDto> sensitive = this.sensitiveUserSend(new ArrayList<>(), Arrays.asList("4e9559adbe3fd935fb6ea43e79b704c0")); List<SensitiveUserDto> sensitive = this.sensitiveUserSend(getMonitors("f7ec8d78654629ae76203bf74041db18"));
WriteSheet writeSheet3 = EasyExcel.writerSheet(2, "重或敏感用户" ).head(SensitiveUserDto.class).build(); WriteSheet writeSheet3 = EasyExcel.writerSheet(2, "或敏感用户" ).head(SensitiveUserDto.class).build();
excelWriter.write(sensitive, writeSheet3); excelWriter.write(sensitive, writeSheet3);
List<TractionStationDTO> traction = this.tractionStationSend(new ArrayList<>(), Arrays.asList("2990ed905876f2964393ca64f9bd8d40")); List<TractionStationDTO> traction = this.tractionStationSend(getMonitors("88401081d00e17f1cd926ef5e57fecf9"));
WriteSheet writeSheet4 = EasyExcel.writerSheet(3, "牵引站" ).head(TractionStationDTO.class).build(); WriteSheet writeSheet4 = EasyExcel.writerSheet(3, "牵引站" ).head(TractionStationDTO.class).build();
excelWriter.write(traction, writeSheet4); excelWriter.write(traction, writeSheet4);
List<OtherUserDto> other = this.otherUserSend(new ArrayList<>(), Arrays.asList("08a039a9e3fd4e5038435dfbaa88a8e3")); List<OtherUserDto> other = this.otherUserSend(getMonitors("c22758666cd968b756db67dbfad9be32"));
WriteSheet writeSheet5 = EasyExcel.writerSheet(4, "干扰用户" ).head(OtherUserDto.class).build(); WriteSheet writeSheet5 = EasyExcel.writerSheet(4, "干扰用户" ).head(OtherUserDto.class).build();
excelWriter.write(other, writeSheet5); excelWriter.write(other, writeSheet5);
excelWriter.finish(); excelWriter.finish();
} }
private List<Monitor> getMonitors(String id) {
List<DictTreeVO> objType = dictTreeFeignClient.query(id).getData();
List<String> objTypeIds=new ArrayList<>();
objTypeIds.add(id);
if(CollUtil.isNotEmpty(objType)){
objTypeIds.addAll(objType.stream().map(DictTreeVO::getId).collect(Collectors.toList()));
}
//获取监测点信息
List<Monitor> monitorList = monitorService.list(new LambdaQueryWrapper<Monitor>()
.in(Monitor::getObjType, objTypeIds)
);
List<String> powerIds= monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
List<StatationStat> statationStats = statationStatService.listByIds(powerIds);
Map<String, StatationStat> powerMap = statationStats.stream().collect(Collectors
.toMap(StatationStat::getPowerId, Function.identity()));
for (Monitor monitor : monitorList) {
if(powerMap.containsKey(monitor.getPowerrId())){
monitor.setPowerrId(powerMap.get(monitor.getPowerrId()).getMidStationId());
}else{
monitor.setPowerrId("");
}
}
return monitorList;
}
/** /**
* 省市县,对象添加 * 省市县,对象添加
* *

View File

@@ -10,6 +10,7 @@ import com.njcn.device.pms.pojo.param.GeneratrixWireParam;
import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.device.pms.pojo.po.GeneratrixWire; import com.njcn.device.pms.pojo.po.GeneratrixWire;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.pojo.param.BaseParam;
import java.util.List; import java.util.List;
@@ -103,4 +104,11 @@ public interface IGeneratrixWireService extends IService<GeneratrixWire> {
*/ */
List<GeneratrixAndPowerStationSonDTO> getGeneratrixByCondition(ConditionParam param); List<GeneratrixAndPowerStationSonDTO> getGeneratrixByCondition(ConditionParam param);
/**
* 根据电站id匹配中台母线信息
* @param stationId
* @return
*/
List<PmsMidLedger> getBusBar(String stationId);
} }

View File

@@ -2,6 +2,7 @@ package com.njcn.device.pms.service.majornetwork.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -10,6 +11,7 @@ import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.enums.PmsDeviceResponseEnum; import com.njcn.device.pms.enums.PmsDeviceResponseEnum;
import com.njcn.device.pms.mapper.majornetwork.PmsGeneratrixWireMapper; import com.njcn.device.pms.mapper.majornetwork.PmsGeneratrixWireMapper;
import com.njcn.device.pms.mapper.majornetwork.PmsMidLedgerMapper;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO; import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationSonDTO; import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationSonDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO; import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO;
@@ -18,8 +20,10 @@ import com.njcn.device.pms.pojo.param.GeneratrixWireParam;
import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.device.pms.pojo.po.GeneratrixWire; import com.njcn.device.pms.pojo.po.GeneratrixWire;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.pojo.po.StatationStat; import com.njcn.device.pms.pojo.po.StatationStat;
import com.njcn.device.pms.service.majornetwork.IGeneratrixWireService; import com.njcn.device.pms.service.majornetwork.IGeneratrixWireService;
import com.njcn.device.pms.service.majornetwork.IStatationStatService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.web.factory.PageFactory; import com.njcn.web.factory.PageFactory;
import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.pojo.param.BaseParam;
@@ -27,8 +31,11 @@ import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* pms-device * pms-device
@@ -41,7 +48,9 @@ import java.util.Objects;
public class GeneratrixWireImpl extends ServiceImpl<PmsGeneratrixWireMapper, GeneratrixWire> implements IGeneratrixWireService { public class GeneratrixWireImpl extends ServiceImpl<PmsGeneratrixWireMapper, GeneratrixWire> implements IGeneratrixWireService {
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
private final IStatationStatService statationStatService;
private final PmsMidLedgerMapper pmsMidLedgerMapper;
@Override @Override
public boolean addGeneratrixWire(GeneratrixWireParam generatrixWireParam) { public boolean addGeneratrixWire(GeneratrixWireParam generatrixWireParam) {
checkName(generatrixWireParam, false); checkName(generatrixWireParam, false);
@@ -99,7 +108,23 @@ public class GeneratrixWireImpl extends ServiceImpl<PmsGeneratrixWireMapper, Gen
.or(StrUtil.isNotBlank(baseParam.getSearchValue())) .or(StrUtil.isNotBlank(baseParam.getSearchValue()))
.like(StrUtil.isNotBlank(baseParam.getSearchValue()), GeneratrixWire::getStationName, baseParam.getSearchValue())) .like(StrUtil.isNotBlank(baseParam.getSearchValue()), GeneratrixWire::getStationName, baseParam.getSearchValue()))
.orderByDesc(GeneratrixWire::getCreateTime); .orderByDesc(GeneratrixWire::getCreateTime);
return this.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); Page<GeneratrixWire> page = this.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper);
List<GeneratrixWire> records = page.getRecords();
if(CollUtil.isNotEmpty(records)){
List<String> midIds = records.stream().map(GeneratrixWire::getMidBusId).collect(Collectors.toList());
List<PmsMidLedger> pmsMidLedgers = pmsMidLedgerMapper.selectList(new LambdaQueryWrapper<PmsMidLedger>()
.in(PmsMidLedger::getId, midIds)
);
if(CollUtil.isNotEmpty(pmsMidLedgers)){
Map<String, String> midMap = pmsMidLedgers.stream().collect(Collectors.toMap(PmsMidLedger::getId, PmsMidLedger::getName));
for (GeneratrixWire record : records) {
if(midMap.containsKey(record.getMidBusId())){
record.setMidBusName(midMap.get(record.getMidBusId()));
}
}
}
}
return page;
} }
@@ -173,4 +198,17 @@ public class GeneratrixWireImpl extends ServiceImpl<PmsGeneratrixWireMapper, Gen
return this.baseMapper.getGeneratrixByCondition(data, param); return this.baseMapper.getGeneratrixByCondition(data, param);
} }
@Override
public List<PmsMidLedger> getBusBar(String stationId) {
StatationStat stationStat = statationStatService.getStatationStatById(stationId);
if(ObjectUtil.isNotNull(stationStat)){
if(StrUtil.isNotBlank(stationStat.getMidStationId())){
return pmsMidLedgerMapper.selectList(new LambdaQueryWrapper<PmsMidLedger>()
.eq(PmsMidLedger::getPid, stationStat.getMidStationId())
);
}
}
return new ArrayList<>();
}
} }