pms国网上送代码提交

This commit is contained in:
2023-12-19 15:28:25 +08:00
parent 86ef81b701
commit ebc99a8b36
13 changed files with 279 additions and 125 deletions

View File

@@ -17,6 +17,12 @@ import java.util.Date;
public class MonitorLimitDTO { public class MonitorLimitDTO {
private String monitorName;
private String orgName;
private String orgId;
private String id; private String id;
private Date ocDate; private Date ocDate;
private String monitorId; private String monitorId;
@@ -90,4 +96,6 @@ public class MonitorLimitDTO {
private BigDecimal i48Limit; private BigDecimal i48Limit;
private BigDecimal i49Limit; private BigDecimal i49Limit;
private BigDecimal i50Limit; private BigDecimal i50Limit;
private Integer monitorUploadStatus;
} }

View File

@@ -240,7 +240,6 @@ public class MonitorParam {
private String fieldStation; private String fieldStation;
@ApiModelProperty(value = "行业分类") @ApiModelProperty(value = "行业分类")
@NotBlank(message = "行业分类不能为空")
private String tradeCode; private String tradeCode;
@Data @Data

View File

@@ -25,4 +25,8 @@ public class TerminalQueryParam extends BaseParam {
@ApiModelProperty(value = "监测点标签(字典)") @ApiModelProperty(value = "监测点标签(字典)")
private String monitorTag; private String monitorTag;
@ApiModelProperty(value = "监测对象类型")
private String objType;
} }

View File

@@ -38,6 +38,10 @@ public class GeneratrixWire extends BaseEntity {
*/ */
private String generatrixName; private String generatrixName;
/**
* 中台母线id
*/
private Integer status; private Integer status;
/** /**

View File

@@ -230,10 +230,15 @@ public class Monitor extends BaseEntity {
*/ */
private String tradeCode; private String tradeCode;
/** /**
* 0.未上送 1.已上送 2.取消上送 3.待重新上送 * 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于典型负荷)
*/ */
private Integer isUploadHead; private Integer isUploadHead;
/**
* 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于主网监测点)
*/
private Integer monitorUploadStatus;
/** /**
* 牵引站id * 牵引站id

View File

@@ -72,7 +72,7 @@ public class GwMonitorPushController extends BaseController {
@ApiImplicitParam(name = "ids", value = "主网监测点id集合", required = true) @ApiImplicitParam(name = "ids", value = "主网监测点id集合", required = true)
public HttpResult<Object> pushMonitorOverLimit(@RequestBody List<String> ids) { public HttpResult<Object> pushMonitorOverLimit(@RequestBody List<String> ids) {
String methodDescribe = getMethodDescribe("pushMonitorOverLimit"); String methodDescribe = getMethodDescribe("pushMonitorOverLimit");
String msg = gwMonitorPushService.pushMonitor(ids); String msg = gwMonitorPushService.pushMonitorOverLimit(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, msg, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, msg, methodDescribe);
} }

View File

@@ -206,4 +206,20 @@ public class PmsGeneratrixWireController extends BaseController {
List<PmsMidLedger> pmsMidLedgerList = iGeneratrixWireService.getBusBar(stationId); List<PmsMidLedger> pmsMidLedgerList = iGeneratrixWireService.getBusBar(stationId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pmsMidLedgerList, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pmsMidLedgerList, methodDescribe);
} }
/**
* 同步中台母线id
* @author cdf
* @date 2023/12/19
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/batchSync")
@ApiOperation("同步中台母线id")
public HttpResult<Boolean> batchSync() {
String methodDescribe = getMethodDescribe("batchSync");
iGeneratrixWireService.batchSync();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
}
} }

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
@@ -16,7 +17,9 @@ import com.njcn.device.pms.mapper.majornetwork.OverlimitMapper;
import com.njcn.device.pms.pojo.dto.MonitorLimitDTO; import com.njcn.device.pms.pojo.dto.MonitorLimitDTO;
import com.njcn.device.pms.pojo.dto.PushMonitorDTO; import com.njcn.device.pms.pojo.dto.PushMonitorDTO;
import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.gw.OtherUserDto;
import com.njcn.device.pms.service.gwPush.GwMonitorPushService; 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.DicDataFeignClient;
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;
@@ -30,6 +33,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
@@ -45,11 +49,11 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor @RequiredArgsConstructor
public class GwMonitorPushServiceImpl implements GwMonitorPushService { public class GwMonitorPushServiceImpl implements GwMonitorPushService {
private final MonitorMapper monitorMapper; private final IMonitorService monitorService;
private final OverlimitMapper overlimitMapper; private final OverlimitMapper overlimitMapper;
private DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
@Override @Override
@@ -76,11 +80,15 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode());
List<Monitor> monitorList = monitorMapper.selectList(lambdaQueryWrapper); List<Monitor> monitorList = monitorService.list(lambdaQueryWrapper);
if (monitorList.size() > 100) {
throw new BusinessException("一次最多上送100条数据");
}
for (Monitor item : monitorList) { for (Monitor item : monitorList) {
PushMonitorDTO pushMonitorDTO = new PushMonitorDTO(); PushMonitorDTO pushMonitorDTO = new PushMonitorDTO();
pushMonitorDTO.setId(IdUtil.simpleUUID()); pushMonitorDTO.setId(item.getId());
pushMonitorDTO.setMonitorId(item.getId()); pushMonitorDTO.setMonitorId(item.getId());
pushMonitorDTO.setMonitorName(item.getName()); pushMonitorDTO.setMonitorName(item.getName());
pushMonitorDTO.setTerminalCode(item.getTerminalId()); pushMonitorDTO.setTerminalCode(item.getTerminalId());
@@ -146,29 +154,9 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
SendParam sendParam = new SendParam(); SendParam sendParam = new SendParam();
sendParam.setStats(pushResult); 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")) { List<String> mIds = monitorList.stream().map(Monitor::getId).distinct().collect(Collectors.toList());
String succeed = sendRes.get("succeed"); String msg = returnInformation(1, mIds, sendRes);
if (succeed.contains("\\\"")) { return msg;
succeed = succeed.replace("\\\"", "\"");
}
Map mapRes = JSON.parseObject(succeed, Map.class);
String status = mapRes.get("status").toString();
if ("000000".equals(status)) {
/* for (SupvReportM supvReportM : supvReportMList) {
supvReportMMapper.updateId(1, supvReportM.getMonthReportId());
}*/
String result = mapRes.get("result").toString();
Map mapCount = JSON.parseObject(result, Map.class);
String count = mapCount.get("count").toString();
return "操作成功:成功数据" + count + "";
} else {
String errors = mapRes.get("errors").toString();
throw new BusinessException("操作失败:" + status + "_" + errors);
}
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
}
} }
@Override @Override
@@ -182,7 +170,7 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode());
List<Monitor> monitorList = monitorMapper.selectList(lambdaQueryWrapper); List<Monitor> monitorList = monitorService.list(lambdaQueryWrapper);
LambdaQueryWrapper<Overlimit> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Overlimit> queryWrapper = new LambdaQueryWrapper<>();
@@ -201,10 +189,12 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
monitorLimitDTO.setVoltage(String.format("%02d", voltageMap.get(monitor.getVoltageLevel()).getAlgoDescribe())); monitorLimitDTO.setVoltage(String.format("%02d", voltageMap.get(monitor.getVoltageLevel()).getAlgoDescribe()));
} }
Overlimit overlimit = map.get(monitor.getId());
monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit())); monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit()));
monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit())); monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit()));
Overlimit overlimit = map.get(monitor.getId());
monitorLimitDTO.setPltLimit(BigDecimal.valueOf(overlimit.getFlicker())); monitorLimitDTO.setPltLimit(BigDecimal.valueOf(overlimit.getFlicker()));
monitorLimitDTO.setRatedeLimiteUp(BigDecimal.valueOf(overlimit.getFreqDev())); monitorLimitDTO.setRatedeLimiteUp(BigDecimal.valueOf(overlimit.getFreqDev()));
@@ -281,31 +271,10 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
SendParam sendParam = new SendParam(); SendParam sendParam = new SendParam();
sendParam.setStats(pushResult); sendParam.setStats(pushResult);
Map<String, String> sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR); 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);
if (sendRes.containsKey("succeed")) { return msg;
String succeed = sendRes.get("succeed");
if (succeed.contains("\\\"")) {
succeed = succeed.replace("\\\"", "\"");
}
Map mapRes = JSON.parseObject(succeed, Map.class);
String status = mapRes.get("status").toString();
if ("000000".equals(status)) {
/* for (SupvReportM supvReportM : supvReportMList) {
supvReportMMapper.updateId(1, supvReportM.getMonthReportId());
}*/
String result = mapRes.get("result").toString();
Map mapCount = JSON.parseObject(result, Map.class);
String count = mapCount.get("count").toString();
return "操作成功:成功数据" + count + "";
} else {
String errors = mapRes.get("errors").toString();
throw new BusinessException("操作失败:" + status + "_" + errors);
}
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
}
} else { } else {
throw new BusinessException("暂无监测点信息"); throw new BusinessException("暂无监测点信息");
} }
@@ -316,8 +285,15 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
public Page<MonitorLimitDTO> queryMonitorOverLimit(BaseParam baseParam) { public Page<MonitorLimitDTO> queryMonitorOverLimit(BaseParam baseParam) {
Page<MonitorLimitDTO> pageResult = new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)); Page<MonitorLimitDTO> pageResult = new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam));
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.and(StrUtil.isNotBlank(baseParam.getSearchValue()), i -> i.like(Monitor::getName, baseParam.getSearchValue())
.or()
.like(Monitor::getId, baseParam.getSearchValue())
.or()
.like(Monitor::getPowerrName, baseParam.getSearchValue())
.or()
.like(Monitor::getOrgName, baseParam.getSearchValue()));
lambdaQueryWrapper.orderByAsc(Monitor::getOrgName); lambdaQueryWrapper.orderByAsc(Monitor::getOrgName);
Page<Monitor> page = monitorMapper.selectPage(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); Page<Monitor> page = monitorService.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper);
pageResult.setTotal(page.getTotal()); pageResult.setTotal(page.getTotal());
List<Monitor> pageTemList = page.getRecords(); List<Monitor> pageTemList = page.getRecords();
if (CollUtil.isNotEmpty(pageTemList)) { if (CollUtil.isNotEmpty(pageTemList)) {
@@ -331,85 +307,89 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
for (Monitor monitor : pageTemList) { for (Monitor monitor : pageTemList) {
MonitorLimitDTO monitorLimitDTO = new MonitorLimitDTO(); MonitorLimitDTO monitorLimitDTO = new MonitorLimitDTO();
monitorLimitDTO.setId(monitor.getId()); monitorLimitDTO.setId(monitor.getId());
monitorLimitDTO.setOcDate(new Date()); monitorLimitDTO.setMonitorName(monitor.getName());
monitorLimitDTO.setMonitorId(monitor.getId()); monitorLimitDTO.setOrgId(monitor.getOrgId());
monitorLimitDTO.setOrgName(monitor.getOrgName());
//monitorLimitDTO.setOcDate(new Date());
monitorLimitDTO.setMonitorId(monitor.getMonitorId());
monitorLimitDTO.setVoltage(monitor.getVoltageLevel()); monitorLimitDTO.setVoltage(monitor.getVoltageLevel());
monitorLimitDTO.setMonitorUploadStatus(monitor.getMonitorUploadStatus());
monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit())); monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit())); monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit()).setScale(3, RoundingMode.HALF_UP));
Overlimit overlimit = map.get(monitor.getId()); Overlimit overlimit = map.get(monitor.getId());
monitorLimitDTO.setPltLimit(BigDecimal.valueOf(overlimit.getFlicker())); monitorLimitDTO.setPltLimit(BigDecimal.valueOf(overlimit.getFlicker()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setRatedeLimiteUp(BigDecimal.valueOf(overlimit.getFreqDev())); monitorLimitDTO.setRatedeLimiteUp(BigDecimal.valueOf(overlimit.getFreqDev()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setRatedeLimiteDown(BigDecimal.valueOf(-overlimit.getFreqDev())); monitorLimitDTO.setRatedeLimiteDown(BigDecimal.valueOf(-overlimit.getFreqDev()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setVthdLimit(BigDecimal.valueOf(overlimit.getUaberrance())); monitorLimitDTO.setVthdLimit(BigDecimal.valueOf(overlimit.getUaberrance()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setFlucLimit(BigDecimal.valueOf(overlimit.getVoltageFluctuation())); monitorLimitDTO.setFlucLimit(BigDecimal.valueOf(overlimit.getVoltageFluctuation()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setDeltaLimit(BigDecimal.valueOf(overlimit.getVoltageDev())); monitorLimitDTO.setDeltaLimit(BigDecimal.valueOf(overlimit.getVoltageDev()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setVunbanLimit(BigDecimal.valueOf(overlimit.getUbalance())); monitorLimitDTO.setVunbanLimit(BigDecimal.valueOf(overlimit.getUbalance()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setOddHamVPerate(BigDecimal.valueOf(overlimit.getUharm3())); monitorLimitDTO.setOddHamVPerate(BigDecimal.valueOf(overlimit.getUharm3()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setEveHamVPerate(BigDecimal.valueOf(overlimit.getUharm2())); monitorLimitDTO.setEveHamVPerate(BigDecimal.valueOf(overlimit.getUharm2()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI2Limit(BigDecimal.valueOf(overlimit.getIharm2())); monitorLimitDTO.setI2Limit(BigDecimal.valueOf(overlimit.getIharm2()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI3Limit(BigDecimal.valueOf(overlimit.getIharm3())); monitorLimitDTO.setI3Limit(BigDecimal.valueOf(overlimit.getIharm3()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI4Limit(BigDecimal.valueOf(overlimit.getIharm4())); monitorLimitDTO.setI4Limit(BigDecimal.valueOf(overlimit.getIharm4()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI5Limit(BigDecimal.valueOf(overlimit.getIharm5())); monitorLimitDTO.setI5Limit(BigDecimal.valueOf(overlimit.getIharm5()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI6Limit(BigDecimal.valueOf(overlimit.getIharm6())); monitorLimitDTO.setI6Limit(BigDecimal.valueOf(overlimit.getIharm6()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI7Limit(BigDecimal.valueOf(overlimit.getIharm7())); monitorLimitDTO.setI7Limit(BigDecimal.valueOf(overlimit.getIharm7()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI8Limit(BigDecimal.valueOf(overlimit.getIharm8())); monitorLimitDTO.setI8Limit(BigDecimal.valueOf(overlimit.getIharm8()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI9Limit(BigDecimal.valueOf(overlimit.getIharm9())); monitorLimitDTO.setI9Limit(BigDecimal.valueOf(overlimit.getIharm9()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI10Limit(BigDecimal.valueOf(overlimit.getIharm10())); monitorLimitDTO.setI10Limit(BigDecimal.valueOf(overlimit.getIharm10()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI11Limit(BigDecimal.valueOf(overlimit.getIharm11())); monitorLimitDTO.setI11Limit(BigDecimal.valueOf(overlimit.getIharm11()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI12Limit(BigDecimal.valueOf(overlimit.getIharm12())); monitorLimitDTO.setI12Limit(BigDecimal.valueOf(overlimit.getIharm12()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI13Limit(BigDecimal.valueOf(overlimit.getIharm13())); monitorLimitDTO.setI13Limit(BigDecimal.valueOf(overlimit.getIharm13()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI14Limit(BigDecimal.valueOf(overlimit.getIharm14())); monitorLimitDTO.setI14Limit(BigDecimal.valueOf(overlimit.getIharm14()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI15Limit(BigDecimal.valueOf(overlimit.getIharm15())); monitorLimitDTO.setI15Limit(BigDecimal.valueOf(overlimit.getIharm15()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI16Limit(BigDecimal.valueOf(overlimit.getIharm16())); monitorLimitDTO.setI16Limit(BigDecimal.valueOf(overlimit.getIharm16()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI17Limit(BigDecimal.valueOf(overlimit.getIharm17())); monitorLimitDTO.setI17Limit(BigDecimal.valueOf(overlimit.getIharm17()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI18Limit(BigDecimal.valueOf(overlimit.getIharm18())); monitorLimitDTO.setI18Limit(BigDecimal.valueOf(overlimit.getIharm18()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI19Limit(BigDecimal.valueOf(overlimit.getIharm19())); monitorLimitDTO.setI19Limit(BigDecimal.valueOf(overlimit.getIharm19()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI20Limit(BigDecimal.valueOf(overlimit.getIharm20())); monitorLimitDTO.setI20Limit(BigDecimal.valueOf(overlimit.getIharm20()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI21Limit(BigDecimal.valueOf(overlimit.getIharm21())); monitorLimitDTO.setI21Limit(BigDecimal.valueOf(overlimit.getIharm21()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI22Limit(BigDecimal.valueOf(overlimit.getIharm22())); monitorLimitDTO.setI22Limit(BigDecimal.valueOf(overlimit.getIharm22()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI23Limit(BigDecimal.valueOf(overlimit.getIharm23())); monitorLimitDTO.setI23Limit(BigDecimal.valueOf(overlimit.getIharm23()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI24Limit(BigDecimal.valueOf(overlimit.getIharm24())); monitorLimitDTO.setI24Limit(BigDecimal.valueOf(overlimit.getIharm24()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI25Limit(BigDecimal.valueOf(overlimit.getIharm25())); monitorLimitDTO.setI25Limit(BigDecimal.valueOf(overlimit.getIharm25()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI26Limit(BigDecimal.valueOf(overlimit.getIharm26())); monitorLimitDTO.setI26Limit(BigDecimal.valueOf(overlimit.getIharm26()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI27Limit(BigDecimal.valueOf(overlimit.getIharm27())); monitorLimitDTO.setI27Limit(BigDecimal.valueOf(overlimit.getIharm27()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI28Limit(BigDecimal.valueOf(overlimit.getIharm28())); monitorLimitDTO.setI28Limit(BigDecimal.valueOf(overlimit.getIharm28()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI29Limit(BigDecimal.valueOf(overlimit.getIharm29())); monitorLimitDTO.setI29Limit(BigDecimal.valueOf(overlimit.getIharm29()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI30Limit(BigDecimal.valueOf(overlimit.getIharm30())); monitorLimitDTO.setI30Limit(BigDecimal.valueOf(overlimit.getIharm30()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI31Limit(BigDecimal.valueOf(overlimit.getIharm31())); monitorLimitDTO.setI31Limit(BigDecimal.valueOf(overlimit.getIharm31()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI32Limit(BigDecimal.valueOf(overlimit.getIharm32())); monitorLimitDTO.setI32Limit(BigDecimal.valueOf(overlimit.getIharm32()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI33Limit(BigDecimal.valueOf(overlimit.getIharm33())); monitorLimitDTO.setI33Limit(BigDecimal.valueOf(overlimit.getIharm33()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI34Limit(BigDecimal.valueOf(overlimit.getIharm34())); monitorLimitDTO.setI34Limit(BigDecimal.valueOf(overlimit.getIharm34()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI35Limit(BigDecimal.valueOf(overlimit.getIharm35())); monitorLimitDTO.setI35Limit(BigDecimal.valueOf(overlimit.getIharm35()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI36Limit(BigDecimal.valueOf(overlimit.getIharm36())); monitorLimitDTO.setI36Limit(BigDecimal.valueOf(overlimit.getIharm36()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI37Limit(BigDecimal.valueOf(overlimit.getIharm37())); monitorLimitDTO.setI37Limit(BigDecimal.valueOf(overlimit.getIharm37()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI38Limit(BigDecimal.valueOf(overlimit.getIharm38())); monitorLimitDTO.setI38Limit(BigDecimal.valueOf(overlimit.getIharm38()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI39Limit(BigDecimal.valueOf(overlimit.getIharm39())); monitorLimitDTO.setI39Limit(BigDecimal.valueOf(overlimit.getIharm39()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI40Limit(BigDecimal.valueOf(overlimit.getIharm40())); monitorLimitDTO.setI40Limit(BigDecimal.valueOf(overlimit.getIharm40()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI41Limit(BigDecimal.valueOf(overlimit.getIharm41())); monitorLimitDTO.setI41Limit(BigDecimal.valueOf(overlimit.getIharm41()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI42Limit(BigDecimal.valueOf(overlimit.getIharm42())); monitorLimitDTO.setI42Limit(BigDecimal.valueOf(overlimit.getIharm42()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI43Limit(BigDecimal.valueOf(overlimit.getIharm43())); monitorLimitDTO.setI43Limit(BigDecimal.valueOf(overlimit.getIharm43()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI44Limit(BigDecimal.valueOf(overlimit.getIharm44())); monitorLimitDTO.setI44Limit(BigDecimal.valueOf(overlimit.getIharm44()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI45Limit(BigDecimal.valueOf(overlimit.getIharm45())); monitorLimitDTO.setI45Limit(BigDecimal.valueOf(overlimit.getIharm45()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI46Limit(BigDecimal.valueOf(overlimit.getIharm46())); monitorLimitDTO.setI46Limit(BigDecimal.valueOf(overlimit.getIharm46()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI47Limit(BigDecimal.valueOf(overlimit.getIharm47())); monitorLimitDTO.setI47Limit(BigDecimal.valueOf(overlimit.getIharm47()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI48Limit(BigDecimal.valueOf(overlimit.getIharm48())); monitorLimitDTO.setI48Limit(BigDecimal.valueOf(overlimit.getIharm48()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI49Limit(BigDecimal.valueOf(overlimit.getIharm49())); monitorLimitDTO.setI49Limit(BigDecimal.valueOf(overlimit.getIharm49()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setI50Limit(BigDecimal.valueOf(overlimit.getIharm50())); monitorLimitDTO.setI50Limit(BigDecimal.valueOf(overlimit.getIharm50()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setHarmonicVoltageLimit2(BigDecimal.valueOf(overlimit.getInuharm1())); monitorLimitDTO.setHarmonicVoltageLimit2(BigDecimal.valueOf(overlimit.getInuharm1()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTO.setHarmonicVoltageLimit3to16(BigDecimal.valueOf(overlimit.getInuharm3())); monitorLimitDTO.setHarmonicVoltageLimit3to16(BigDecimal.valueOf(overlimit.getInuharm3()).setScale(3, RoundingMode.HALF_UP));
monitorLimitDTOList.add(monitorLimitDTO); monitorLimitDTOList.add(monitorLimitDTO);
@@ -419,4 +399,56 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService {
} }
return pageResult; return pageResult;
} }
/**
* 国网上送返回信息
*
* @param num
* @param ids
* @param send
* @return
*/
private String returnInformation(Integer num, List<String> ids, Map<String, String> send) {
if (send.containsKey("succeed")) {
String succeed = send.get("succeed");
if (succeed.indexOf("\\\"") != -1) {
succeed = succeed.replace("\\\"", "\"");
}
Map mapData = JSON.parseObject(succeed, Map.class);
String status = mapData.get("status").toString();
if ("000000".equals(status)) {
//修改信息状态
updateIsUploadHead(num, ids);
String result = mapData.get("result").toString();
Map mapCount = JSON.parseObject(result, Map.class);
String count = mapCount.get("count").toString();
return "操作成功:成功数据" + count + "";
} else {
String errors = mapData.get("errors").toString();
throw new BusinessException("操作失败:" + status + "_" + errors);
}
} else {
throw new BusinessException("当前时间段国网上送请求过多,请稍后再试");
}
}
/**
* 修改上送信息状态
*
* @param num
* @param ids id集合
*/
private void updateIsUploadHead(Integer num, List<String> ids) {
switch (num) {
case 1:
monitorService.update(new LambdaUpdateWrapper<Monitor>()
.set(Monitor::getMonitorUploadStatus, 1)
.in(Monitor::getId, ids)
);
break;
default:
break;
}
}
} }

View File

@@ -111,4 +111,7 @@ public interface IGeneratrixWireService extends IService<GeneratrixWire> {
*/ */
List<PmsMidLedger> getBusBar(String stationId); List<PmsMidLedger> getBusBar(String stationId);
Boolean batchSync();
} }

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; 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.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
@@ -12,6 +13,8 @@ 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.mapper.majornetwork.PmsMidLedgerMapper;
import com.njcn.device.pms.mapper.majornetwork.StatationStatMapper;
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;
@@ -51,6 +54,9 @@ public class GeneratrixWireImpl extends ServiceImpl<PmsGeneratrixWireMapper, Gen
private final IStatationStatService statationStatService; private final IStatationStatService statationStatService;
private final PmsMidLedgerMapper pmsMidLedgerMapper; private final PmsMidLedgerMapper pmsMidLedgerMapper;
private final StatationStatMapper statationStatMapper;
@Override @Override
public boolean addGeneratrixWire(GeneratrixWireParam generatrixWireParam) { public boolean addGeneratrixWire(GeneratrixWireParam generatrixWireParam) {
checkName(generatrixWireParam, false); checkName(generatrixWireParam, false);
@@ -211,4 +217,65 @@ public class GeneratrixWireImpl extends ServiceImpl<PmsGeneratrixWireMapper, Gen
return new ArrayList<>(); return new ArrayList<>();
} }
@Override
public Boolean batchSync() {
List<GeneratrixWire> poList = new ArrayList<>();
List<StatationStat> statationStatList = statationStatMapper.selectList(new LambdaQueryWrapper<StatationStat>().isNotNull(StatationStat::getMidStationId));
List<String> ids = statationStatList.stream().map(StatationStat::getPowerId).distinct().collect(Collectors.toList());
List<GeneratrixWire> generatrixWireList = this.list(new LambdaQueryWrapper<GeneratrixWire>().in(GeneratrixWire::getStationId,ids));
for(StatationStat statationStat : statationStatList){
LambdaQueryWrapper<PmsMidLedger> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PmsMidLedger::getLevel,1).eq(PmsMidLedger::getState,DataStateEnum.ENABLE.getCode()).in(PmsMidLedger::getPid,statationStat.getMidStationId());
List<PmsMidLedger> pmsMidLedgerList = pmsMidLedgerMapper.selectList(lambdaQueryWrapper);
if(CollUtil.isEmpty(pmsMidLedgerList)){
continue;
}
List<GeneratrixWire> gg = generatrixWireList.stream().filter(item->item.getStationId().equals(statationStat.getPowerId())).collect(Collectors.toList());
if(CollUtil.isEmpty(gg)){
continue;
}
for(GeneratrixWire generatrixWire : gg){
for(PmsMidLedger pmsMidLedger : pmsMidLedgerList){
String tem = generatrixWire.getName().replace("#","");
if(tem.equals(pmsMidLedger.getName())){
generatrixWire.setMidBusId(pmsMidLedger.getId());
break;
}
}
if(StrUtil.isNotBlank(generatrixWire.getMidBusId())){
poList.add(generatrixWire);
}
}
}
for(GeneratrixWire generatrixWire : poList){
LambdaUpdateWrapper<GeneratrixWire> lambdaUpdateWrapper = new LambdaUpdateWrapper();
lambdaUpdateWrapper.set(GeneratrixWire::getMidBusId,generatrixWire.getMidBusId()).eq(GeneratrixWire::getId,generatrixWire.getId());
this.update(lambdaUpdateWrapper);
}
System.out.println("5555");
return true;
}
} }

View File

@@ -180,10 +180,21 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
@Override @Override
public Page<Monitor> getAllMonitorPageList(TerminalQueryParam baseParam) { public Page<Monitor> getAllMonitorPageList(TerminalQueryParam baseParam) {
List<String> objTypeIds = new ArrayList<>();
if(StrUtil.isNotBlank(baseParam.getObjType())){
SysDicTreePO sysDicTreePO = dictTreeFeignClient.queryById(baseParam.getObjType()).getData();
List<DictTreeVO> temList = dictTreeFeignClient.query(sysDicTreePO.getPid()).getData();
List<String> ids = temList.stream().map(DictTreeVO::getId).collect(Collectors.toList());
objTypeIds.add(sysDicTreePO.getId());
objTypeIds.addAll(ids);
}
LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Monitor> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper lambdaQueryWrapper
.eq(StrUtil.isNotBlank(baseParam.getMonitorState()), Monitor::getMonitorState, baseParam.getMonitorState()) .eq(StrUtil.isNotBlank(baseParam.getMonitorState()), Monitor::getMonitorState, baseParam.getMonitorState())
.eq(StrUtil.isNotBlank(baseParam.getMonitorTag()), Monitor::getMonitorTag, baseParam.getMonitorTag()) .eq(StrUtil.isNotBlank(baseParam.getMonitorTag()), Monitor::getMonitorTag, baseParam.getMonitorTag())
.in(StrUtil.isNotBlank(baseParam.getObjType()),Monitor::getObjType,objTypeIds)
.and(StrUtil.isNotBlank(baseParam.getSearchValue()), i -> i.like(Monitor::getName, baseParam.getSearchValue()) .and(StrUtil.isNotBlank(baseParam.getSearchValue()), i -> i.like(Monitor::getName, baseParam.getSearchValue())
.or() .or()
.like(Monitor::getId, baseParam.getSearchValue()) .like(Monitor::getId, baseParam.getSearchValue())
@@ -236,6 +247,8 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
BeanUtils.copyProperties(monitorParam, monitor); BeanUtils.copyProperties(monitorParam, monitor);
checkOther(monitorParam, monitor, false); checkOther(monitorParam, monitor, false);
monitor.setStatus(DataStateEnum.ENABLE.getCode()); monitor.setStatus(DataStateEnum.ENABLE.getCode());
monitor.setIsUploadHead(0);
monitor.setMonitorUploadStatus(0);
//主网测点限值计算 //主网测点限值计算
Overlimit overlimit = overLimitCal(monitorParam, monitor); Overlimit overlimit = overLimitCal(monitorParam, monitor);

View File

@@ -75,5 +75,8 @@ public class SysDicTreePO extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private List<SysDicTreePO> children; private List<SysDicTreePO> children;
@TableField(exist = false)
private Integer level;
} }

View File

@@ -113,13 +113,13 @@ public class SysDicTreePOServiceImpl extends ServiceImpl<SysDicTreePOMapper, Sys
LambdaQueryWrapper<SysDicTreePO> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysDicTreePO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SysDicTreePO::getStatus, 0); lambdaQueryWrapper.eq(SysDicTreePO::getStatus, 0);
List<SysDicTreePO> sysDicTreePOList = this.list(lambdaQueryWrapper); List<SysDicTreePO> sysDicTreePOList = this.list(lambdaQueryWrapper);
List<SysDicTreePO> parent = sysDicTreePOList.stream().filter(item->item.getPid().equals("0") && !item.getCode().equals("Device_Unit")).peek(item->item.setChildren(getChildren(item,sysDicTreePOList))).collect(Collectors.toList()); List<SysDicTreePO> parent = sysDicTreePOList.stream().filter(item->item.getPid().equals("0") && !item.getCode().equals("Device_Unit")).peek(item->{item.setLevel(0);item.setChildren(getChildren(item,sysDicTreePOList));}).collect(Collectors.toList());
return parent.stream().peek(item->item.setChildren(getChildren(item,sysDicTreePOList))).collect(Collectors.toList()); return parent;
} }
private List<SysDicTreePO> getChildren(SysDicTreePO sysDicTreePO,List<SysDicTreePO> all){ private List<SysDicTreePO> getChildren(SysDicTreePO sysDicTreePO,List<SysDicTreePO> all){
return all.stream().filter(item->item.getPid().equals(sysDicTreePO.getId())).peek(item->item.setChildren(getChildren(item,all))).collect(Collectors.toList()); return all.stream().filter(item->item.getPid().equals(sysDicTreePO.getId())).peek(item->{item.setLevel(sysDicTreePO.getLevel()+1);item.setChildren(getChildren(item,all));}).collect(Collectors.toList());
} }
} }