pms国网上送代码提交

This commit is contained in:
2023-12-18 11:08:31 +08:00
parent 2e67d0c968
commit 427e388114
12 changed files with 231 additions and 24 deletions

View File

@@ -63,4 +63,10 @@ public class StatationStatParam {
@ApiModelProperty(value = "维度")
private Double latitude;
/**
* 关联中台的电站
*/
@ApiModelProperty(value = "关联中台的电站")
private String midStationId;
}

View File

@@ -42,6 +42,8 @@ public class PmsMidLedger extends BaseEntity {
*/
private String section;
private String SectionId;
/**
* 名称
*/

View File

@@ -71,10 +71,9 @@ public class StatationStat extends BaseEntity {
/**
* 关联中台的母线id
* 关联中台的电站
*/
@TableField(exist = false)
private String relationId;
private String midStationId;

View File

@@ -43,6 +43,12 @@ public class StatationStatVO implements Serializable {
@ApiModelProperty(value = "维度")
private Double latitude;
/**
* 关联中台的电站
*/
@ApiModelProperty(value = "关联中台的电站")
private String midStationId;
@Data

View File

@@ -1,15 +1,19 @@
package com.njcn.device.pms.controller.gwPush;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
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.pms.pojo.dto.MonitorLimitDTO;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.dto.PushMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.service.gwPush.GwMonitorPushService;
import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -64,11 +68,27 @@ public class GwMonitorPushController extends BaseController {
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/pushMonitorOverLimit")
@ApiOperation("推送主网监测点")
@ApiOperation("推送主网监测点限值")
@ApiImplicitParam(name = "ids", value = "主网监测点id集合", required = true)
public HttpResult<Object> pushMonitorOverLimit(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("pushMonitorOverLimit");
String msg = gwMonitorPushService.pushMonitor(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, msg, methodDescribe);
}
/**
* 推送监测点限值台账数据接口
* @author cdf
* @date 2023/12/13
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryMonitorOverLimit")
@ApiOperation("查询主网监测点限值")
@ApiImplicitParam(name = "baseParam", value = "请求体", required = true)
public HttpResult<Page<MonitorLimitDTO>> queryMonitorOverLimit(@RequestBody BaseParam baseParam) {
String methodDescribe = getMethodDescribe("queryMonitorOverLimit");
Page<MonitorLimitDTO> page = gwMonitorPushService.queryMonitorOverLimit(baseParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
}

View File

@@ -13,6 +13,7 @@ import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.StatationStatParam;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.pojo.po.StatationStat;
import com.njcn.device.pms.pojo.vo.StatationStatVO;
import com.njcn.device.pms.service.majornetwork.IStatationStatService;
@@ -169,5 +170,26 @@ public class PmsStatationStatController extends BaseController {
}
}
/**
* 通过isc单位获取该组织下的电站信息
* @author cdf
* @date 2023/12/15
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getStationByDeptCode")
@ApiOperation("通过isc单位获取该组织下的电站信息")
@ApiImplicitParam(name = "deptCode", value = "isc单位code", required = true)
public HttpResult<List<PmsMidLedger>> getStationByDeptCode(@RequestParam("deptCode") String deptCode) {
String methodDescribe = getMethodDescribe("getStationByDeptCode");
List<PmsMidLedger> pmsMidLedgerList = statationStatService.getStationByDeptCode(deptCode);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pmsMidLedgerList, methodDescribe);
}
}

View File

@@ -0,0 +1,17 @@
package com.njcn.device.pms.mapper.majornetwork;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
/**
* <p>
* 变电站-母线数据中间表 Mapper 接口
* </p>
*
* @author hongawen
* @since 2023-11-15
*/
public interface PmsMidLedgerMapper extends BaseMapper<PmsMidLedger> {
}

View File

@@ -1,5 +1,10 @@
package com.njcn.device.pms.service.gwPush;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pms.pojo.dto.MonitorLimitDTO;
import com.njcn.device.pms.pojo.dto.PushMonitorDTO;
import com.njcn.web.pojo.param.BaseParam;
import java.util.List;
/**
@@ -15,4 +20,7 @@ public interface GwMonitorPushService {
String pushMonitorOverLimit(List<String> ids);
Page<MonitorLimitDTO> queryMonitorOverLimit(BaseParam baseParam);
}

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.pojo.po.Overlimit;
@@ -20,6 +21,8 @@ import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.enums.GWSendEnum;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.pojo.param.BaseParam;
import com.njcn.web.pojo.param.SendParam;
import com.njcn.web.utils.GwSendUtil;
import lombok.Data;
@@ -71,7 +74,6 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
Map<String, DictData> tranMap = tranDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode());
List<Monitor> monitorList = monitorMapper.selectList(lambdaQueryWrapper);
@@ -84,28 +86,28 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
pushMonitorDTO.setTerminalCode(item.getTerminalId());
// pushMonitorDTO.setObjectType();
if(Objects.nonNull(item.getMinShortCircuitCapacity())){
if (Objects.nonNull(item.getMinShortCircuitCapacity())) {
pushMonitorDTO.setMinShortCapacity(BigDecimal.valueOf(item.getMinShortCircuitCapacity()));
}
if(Objects.nonNull(item.getStandShortCapacity())){
if (Objects.nonNull(item.getStandShortCapacity())) {
pushMonitorDTO.setBmShortCapacity(BigDecimal.valueOf(item.getStandShortCapacity()));
}
if(Objects.nonNull(item.getPowerSupplyEqCapacity())){
if (Objects.nonNull(item.getPowerSupplyEqCapacity())) {
pushMonitorDTO.setSupplyEquipCapacity(BigDecimal.valueOf(item.getPowerSupplyEqCapacity()));
}
if(Objects.nonNull(item.getUserAgreementCapacity())){
if (Objects.nonNull(item.getUserAgreementCapacity())) {
pushMonitorDTO.setUserProtocolCapacity(BigDecimal.valueOf(item.getUserAgreementCapacity()));
}
if(Objects.nonNull(item.getMonitorObjectName())){
if (Objects.nonNull(item.getMonitorObjectName())) {
pushMonitorDTO.setCustomName(item.getMonitorObjectName());
}
if(statusMap.containsKey(item.getMonitorState())){
if (statusMap.containsKey(item.getMonitorState())) {
pushMonitorDTO.setStatus(statusMap.get(item.getMonitorState()).getValue());
}
if(tranMap.containsKey(item.getPotentialTransFormerType())) {
if (tranMap.containsKey(item.getPotentialTransFormerType())) {
pushMonitorDTO.setEvtType(tranMap.get(item.getPotentialTransFormerType()).getValue());
}
@@ -113,28 +115,28 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
pushMonitorDTO.setVoltageLevel(String.format("%02d", voltageMap.get(item.getVoltageLevel()).getAlgoDescribe()));
}
if(tranMap.containsKey(item.getPotentialTransFormerType())) {
if (tranMap.containsKey(item.getPotentialTransFormerType())) {
pushMonitorDTO.setEvtType(tranMap.get(item.getPotentialTransFormerType()).getValue());
}
if(objTagMap.containsKey(item.getMonitorTag())){
if (objTagMap.containsKey(item.getMonitorTag())) {
pushMonitorDTO.setObjTypePre(objTagMap.get(item.getMonitorTag()).getValue());
pushMonitorDTO.setObjTypePrePre(objTagMap.get(item.getMonitorTag()).getValue());
}
pushMonitorDTO.setIsMajorNet("1");
pushMonitorDTO.setCityId(item.getOrgId());
if(StrUtil.isNotBlank(item.getOperationId())){
if (StrUtil.isNotBlank(item.getOperationId())) {
pushMonitorDTO.setMaintOrg(item.getOperationId());
}
if(Objects.nonNull(item.getStatisticalInterval())){
if (Objects.nonNull(item.getStatisticalInterval())) {
pushMonitorDTO.setStatisticalInterval(item.getStatisticalInterval().toString());
}
pushMonitorDTO.setBusId(item.getLineId());
pushMonitorDTO.setMonitorTag(objTagMap.get(item.getMonitorTag()).getValue());
if(StrUtil.isNotBlank(item.getMonitorObjectId())){
if (StrUtil.isNotBlank(item.getMonitorObjectId())) {
pushMonitorDTO.setMonitorObjId(item.getMonitorObjectId());
}
pushResult.add(pushMonitorDTO);
@@ -143,7 +145,7 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
SendParam sendParam = new SendParam();
sendParam.setStats(pushResult);
Map<String,String> sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR);
Map<String, String> sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR);
if (sendRes.containsKey("succeed")) {
String succeed = sendRes.get("succeed");
if (succeed.contains("\\\"")) {
@@ -186,10 +188,10 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
LambdaQueryWrapper<Overlimit> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(Overlimit::getId, ids);
List<Overlimit> overlimitList = overlimitMapper.selectList(queryWrapper);
Map<String,Overlimit> map = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId,Function.identity()));
Map<String, Overlimit> map = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
if(CollUtil.isNotEmpty(monitorList)){
for(Monitor monitor : monitorList){
if (CollUtil.isNotEmpty(monitorList)) {
for (Monitor monitor : monitorList) {
MonitorLimitDTO monitorLimitDTO = new MonitorLimitDTO();
monitorLimitDTO.setId(monitor.getId());
monitorLimitDTO.setOcDate(new Date());
@@ -279,7 +281,7 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
SendParam sendParam = new SendParam();
sendParam.setStats(pushResult);
Map<String,String> sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR);
Map<String, String> sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR);
if (sendRes.containsKey("succeed")) {
@@ -304,9 +306,117 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
}
}else {
} else {
throw new BusinessException("暂无监测点信息");
}
}
@Override
public Page<MonitorLimitDTO> queryMonitorOverLimit(BaseParam baseParam) {
Page<MonitorLimitDTO> pageResult = new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam));
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.orderByAsc(Monitor::getOrgName);
Page<Monitor> page = monitorMapper.selectPage(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper);
pageResult.setTotal(page.getTotal());
List<Monitor> pageTemList = page.getRecords();
if (CollUtil.isNotEmpty(pageTemList)) {
List<String> ids = pageTemList.stream().map(Monitor::getId).distinct().collect(Collectors.toList());
LambdaQueryWrapper<Overlimit> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(Overlimit::getId, ids);
List<Overlimit> overlimitList = overlimitMapper.selectList(queryWrapper);
Map<String, Overlimit> map = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity()));
List<MonitorLimitDTO> monitorLimitDTOList = new ArrayList<>();
for (Monitor monitor : pageTemList) {
MonitorLimitDTO monitorLimitDTO = new MonitorLimitDTO();
monitorLimitDTO.setId(monitor.getId());
monitorLimitDTO.setOcDate(new Date());
monitorLimitDTO.setMonitorId(monitor.getId());
monitorLimitDTO.setVoltage(monitor.getVoltageLevel());
monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit()));
monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit()));
Overlimit overlimit = map.get(monitor.getId());
monitorLimitDTO.setPltLimit(BigDecimal.valueOf(overlimit.getFlicker()));
monitorLimitDTO.setRatedeLimiteUp(BigDecimal.valueOf(overlimit.getFreqDev()));
monitorLimitDTO.setRatedeLimiteDown(BigDecimal.valueOf(-overlimit.getFreqDev()));
monitorLimitDTO.setVthdLimit(BigDecimal.valueOf(overlimit.getUaberrance()));
monitorLimitDTO.setFlucLimit(BigDecimal.valueOf(overlimit.getVoltageFluctuation()));
monitorLimitDTO.setDeltaLimit(BigDecimal.valueOf(overlimit.getVoltageDev()));
monitorLimitDTO.setVunbanLimit(BigDecimal.valueOf(overlimit.getUbalance()));
monitorLimitDTO.setOddHamVPerate(BigDecimal.valueOf(overlimit.getUharm3()));
monitorLimitDTO.setEveHamVPerate(BigDecimal.valueOf(overlimit.getUharm2()));
monitorLimitDTO.setI2Limit(BigDecimal.valueOf(overlimit.getIharm2()));
monitorLimitDTO.setI3Limit(BigDecimal.valueOf(overlimit.getIharm3()));
monitorLimitDTO.setI4Limit(BigDecimal.valueOf(overlimit.getIharm4()));
monitorLimitDTO.setI5Limit(BigDecimal.valueOf(overlimit.getIharm5()));
monitorLimitDTO.setI6Limit(BigDecimal.valueOf(overlimit.getIharm6()));
monitorLimitDTO.setI7Limit(BigDecimal.valueOf(overlimit.getIharm7()));
monitorLimitDTO.setI8Limit(BigDecimal.valueOf(overlimit.getIharm8()));
monitorLimitDTO.setI9Limit(BigDecimal.valueOf(overlimit.getIharm9()));
monitorLimitDTO.setI10Limit(BigDecimal.valueOf(overlimit.getIharm10()));
monitorLimitDTO.setI11Limit(BigDecimal.valueOf(overlimit.getIharm11()));
monitorLimitDTO.setI12Limit(BigDecimal.valueOf(overlimit.getIharm12()));
monitorLimitDTO.setI13Limit(BigDecimal.valueOf(overlimit.getIharm13()));
monitorLimitDTO.setI14Limit(BigDecimal.valueOf(overlimit.getIharm14()));
monitorLimitDTO.setI15Limit(BigDecimal.valueOf(overlimit.getIharm15()));
monitorLimitDTO.setI16Limit(BigDecimal.valueOf(overlimit.getIharm16()));
monitorLimitDTO.setI17Limit(BigDecimal.valueOf(overlimit.getIharm17()));
monitorLimitDTO.setI18Limit(BigDecimal.valueOf(overlimit.getIharm18()));
monitorLimitDTO.setI19Limit(BigDecimal.valueOf(overlimit.getIharm19()));
monitorLimitDTO.setI20Limit(BigDecimal.valueOf(overlimit.getIharm20()));
monitorLimitDTO.setI21Limit(BigDecimal.valueOf(overlimit.getIharm21()));
monitorLimitDTO.setI22Limit(BigDecimal.valueOf(overlimit.getIharm22()));
monitorLimitDTO.setI23Limit(BigDecimal.valueOf(overlimit.getIharm23()));
monitorLimitDTO.setI24Limit(BigDecimal.valueOf(overlimit.getIharm24()));
monitorLimitDTO.setI25Limit(BigDecimal.valueOf(overlimit.getIharm25()));
monitorLimitDTO.setI26Limit(BigDecimal.valueOf(overlimit.getIharm26()));
monitorLimitDTO.setI27Limit(BigDecimal.valueOf(overlimit.getIharm27()));
monitorLimitDTO.setI28Limit(BigDecimal.valueOf(overlimit.getIharm28()));
monitorLimitDTO.setI29Limit(BigDecimal.valueOf(overlimit.getIharm29()));
monitorLimitDTO.setI30Limit(BigDecimal.valueOf(overlimit.getIharm30()));
monitorLimitDTO.setI31Limit(BigDecimal.valueOf(overlimit.getIharm31()));
monitorLimitDTO.setI32Limit(BigDecimal.valueOf(overlimit.getIharm32()));
monitorLimitDTO.setI33Limit(BigDecimal.valueOf(overlimit.getIharm33()));
monitorLimitDTO.setI34Limit(BigDecimal.valueOf(overlimit.getIharm34()));
monitorLimitDTO.setI35Limit(BigDecimal.valueOf(overlimit.getIharm35()));
monitorLimitDTO.setI36Limit(BigDecimal.valueOf(overlimit.getIharm36()));
monitorLimitDTO.setI37Limit(BigDecimal.valueOf(overlimit.getIharm37()));
monitorLimitDTO.setI38Limit(BigDecimal.valueOf(overlimit.getIharm38()));
monitorLimitDTO.setI39Limit(BigDecimal.valueOf(overlimit.getIharm39()));
monitorLimitDTO.setI40Limit(BigDecimal.valueOf(overlimit.getIharm40()));
monitorLimitDTO.setI41Limit(BigDecimal.valueOf(overlimit.getIharm41()));
monitorLimitDTO.setI42Limit(BigDecimal.valueOf(overlimit.getIharm42()));
monitorLimitDTO.setI43Limit(BigDecimal.valueOf(overlimit.getIharm43()));
monitorLimitDTO.setI44Limit(BigDecimal.valueOf(overlimit.getIharm44()));
monitorLimitDTO.setI45Limit(BigDecimal.valueOf(overlimit.getIharm45()));
monitorLimitDTO.setI46Limit(BigDecimal.valueOf(overlimit.getIharm46()));
monitorLimitDTO.setI47Limit(BigDecimal.valueOf(overlimit.getIharm47()));
monitorLimitDTO.setI48Limit(BigDecimal.valueOf(overlimit.getIharm48()));
monitorLimitDTO.setI49Limit(BigDecimal.valueOf(overlimit.getIharm49()));
monitorLimitDTO.setI50Limit(BigDecimal.valueOf(overlimit.getIharm50()));
monitorLimitDTO.setHarmonicVoltageLimit2(BigDecimal.valueOf(overlimit.getInuharm1()));
monitorLimitDTO.setHarmonicVoltageLimit3to16(BigDecimal.valueOf(overlimit.getInuharm3()));
monitorLimitDTOList.add(monitorLimitDTO);
}
pageResult.setRecords(monitorLimitDTOList);
}
return pageResult;
}
}

View File

@@ -6,6 +6,7 @@ import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO;
import com.njcn.device.pms.pojo.param.PmsBaseParam;
import com.njcn.device.pms.pojo.param.StatationStatParam;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
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.pojo.vo.StatationStatVO;
@@ -139,4 +140,8 @@ public interface IStatationStatService extends IService<StatationStat> {
* @Date: 2023/8/8 14:56
*/
List<StatationStatVO.Curve> getStatationStatCurve(String subID,String voltageLevel,Integer type);
List<PmsMidLedger> getStationByDeptCode(String deptCode);
}

View File

@@ -890,6 +890,7 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
monitorPO.setLineName(lineName);
monitorPO.setLineId(lineId);
monitorPO.setVoltageLevel(genScale);
monitorPO.setIsUploadHead(0);
String monitorState = null;
switch (oracleTerminalExcel.getRunFlag()) {

View File

@@ -79,6 +79,8 @@ public class StatationStatServiceImpl extends ServiceImpl<StatationStatMapper, S
private final IDataVService iDataVService;
private final DataHarmPowerPService dataHarmPowerPService;
private final PmsMidLedgerMapper pmsMidLedgerMapper;
/**
* 获取指定的变电站信息
@@ -404,6 +406,15 @@ public class StatationStatServiceImpl extends ServiceImpl<StatationStatMapper, S
return curves;
}
@Override
public List<PmsMidLedger> getStationByDeptCode(String deptCode) {
LambdaQueryWrapper<PmsMidLedger> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PmsMidLedger::getSectionId,deptCode).eq(PmsMidLedger::getLevel,0)
.eq(PmsMidLedger::getState,DataStateEnum.ENABLE.getCode()).last("and id not in (select Mid_Station_Id from pms_statation_stat where Mid_Station_Id is not null)");
List<PmsMidLedger> pmsMidLedgerList =pmsMidLedgerMapper.selectList(lambdaQueryWrapper);
return pmsMidLedgerList;
}
private Map<String, String> voltageLevel() {
//获取电压指定电压id
Map<String, String> voltageIDs = new HashMap<>();