From ebc99a8b361c532e8fd92976d0b72eb2d493bccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E6=9C=A8c?= <857448963@qq.com> Date: Tue, 19 Dec 2023 15:28:25 +0800 Subject: [PATCH] =?UTF-8?q?pms=E5=9B=BD=E7=BD=91=E4=B8=8A=E9=80=81?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pms/pojo/dto/MonitorLimitDTO.java | 8 + .../device/pms/pojo/param/MonitorParam.java | 1 - .../pms/pojo/param/TerminalQueryParam.java | 4 + .../device/pms/pojo/po/GeneratrixWire.java | 4 + .../com/njcn/device/pms/pojo/po/Monitor.java | 7 +- .../gwPush/GwMonitorPushController.java | 2 +- .../PmsGeneratrixWireController.java | 16 ++ .../gwPush/impl/GwMonitorPushServiceImpl.java | 270 ++++++++++-------- .../majornetwork/IGeneratrixWireService.java | 3 + .../majornetwork/impl/GeneratrixWireImpl.java | 67 +++++ .../majornetwork/impl/MonitorServiceImpl.java | 13 + .../com/njcn/system/pojo/po/SysDicTreePO.java | 3 + .../service/impl/SysDicTreePOServiceImpl.java | 6 +- 13 files changed, 279 insertions(+), 125 deletions(-) diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorLimitDTO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorLimitDTO.java index 58aac069a..ffb01a27d 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorLimitDTO.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorLimitDTO.java @@ -17,6 +17,12 @@ import java.util.Date; public class MonitorLimitDTO { + private String monitorName; + + private String orgName; + + private String orgId; + private String id; private Date ocDate; private String monitorId; @@ -90,4 +96,6 @@ public class MonitorLimitDTO { private BigDecimal i48Limit; private BigDecimal i49Limit; private BigDecimal i50Limit; + + private Integer monitorUploadStatus; } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java index 020269668..1f7cfc41e 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/MonitorParam.java @@ -240,7 +240,6 @@ public class MonitorParam { private String fieldStation; @ApiModelProperty(value = "行业分类") - @NotBlank(message = "行业分类不能为空") private String tradeCode; @Data diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java index 03d4bc078..1a687c919 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/param/TerminalQueryParam.java @@ -25,4 +25,8 @@ public class TerminalQueryParam extends BaseParam { @ApiModelProperty(value = "监测点标签(字典)") private String monitorTag; + @ApiModelProperty(value = "监测对象类型") + private String objType; + + } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java index e37b304a0..1dc8ac31e 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/GeneratrixWire.java @@ -38,6 +38,10 @@ public class GeneratrixWire extends BaseEntity { */ private String generatrixName; + /** + * 中台母线id + */ + private Integer status; /** diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java index 29197b88a..b4fd3973a 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java @@ -230,10 +230,15 @@ public class Monitor extends BaseEntity { */ private String tradeCode; /** - * 0.未上送 1.已上送 2.取消上送 3.待重新上送 + * 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于典型负荷) */ private Integer isUploadHead; + /** + * 0.未上送 1.已上送 2.取消上送 3.待重新上送(用于主网监测点) + */ + private Integer monitorUploadStatus; + /** * 牵引站id diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/GwMonitorPushController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/GwMonitorPushController.java index 89ee896a2..da71365ec 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/GwMonitorPushController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/gwPush/GwMonitorPushController.java @@ -72,7 +72,7 @@ public class GwMonitorPushController extends BaseController { @ApiImplicitParam(name = "ids", value = "主网监测点id集合", required = true) public HttpResult pushMonitorOverLimit(@RequestBody List ids) { String methodDescribe = getMethodDescribe("pushMonitorOverLimit"); - String msg = gwMonitorPushService.pushMonitor(ids); + String msg = gwMonitorPushService.pushMonitorOverLimit(ids); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, msg, methodDescribe); } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java index 06c08260f..ac902eebc 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsGeneratrixWireController.java @@ -206,4 +206,20 @@ public class PmsGeneratrixWireController extends BaseController { List pmsMidLedgerList = iGeneratrixWireService.getBusBar(stationId); 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 batchSync() { + String methodDescribe = getMethodDescribe("batchSync"); + iGeneratrixWireService.batchSync(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java index 11ac8014f..0b727ad00 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/gwPush/impl/GwMonitorPushServiceImpl.java @@ -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.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.enums.common.DataStateEnum; 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.PushMonitorDTO; 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.majornetwork.IMonitorService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.pojo.po.DictData; @@ -30,6 +33,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.util.*; import java.util.function.Function; @@ -45,11 +49,11 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class GwMonitorPushServiceImpl implements GwMonitorPushService { - private final MonitorMapper monitorMapper; + private final IMonitorService monitorService; private final OverlimitMapper overlimitMapper; - private DicDataFeignClient dicDataFeignClient; + private final DicDataFeignClient dicDataFeignClient; @Override @@ -76,11 +80,15 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); - List monitorList = monitorMapper.selectList(lambdaQueryWrapper); + List monitorList = monitorService.list(lambdaQueryWrapper); + + if (monitorList.size() > 100) { + throw new BusinessException("一次最多上送100条数据"); + } for (Monitor item : monitorList) { PushMonitorDTO pushMonitorDTO = new PushMonitorDTO(); - pushMonitorDTO.setId(IdUtil.simpleUUID()); + pushMonitorDTO.setId(item.getId()); pushMonitorDTO.setMonitorId(item.getId()); pushMonitorDTO.setMonitorName(item.getName()); pushMonitorDTO.setTerminalCode(item.getTerminalId()); @@ -146,29 +154,9 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { SendParam sendParam = new SendParam(); sendParam.setStats(pushResult); Map sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR); - if (sendRes.containsKey("succeed")) { - 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("当前时间段国网上送请求过多,请稍后再试"); - } - + List mIds = monitorList.stream().map(Monitor::getId).distinct().collect(Collectors.toList()); + String msg = returnInformation(1, mIds, sendRes); + return msg; } @Override @@ -182,7 +170,7 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(Monitor::getId, ids).eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); - List monitorList = monitorMapper.selectList(lambdaQueryWrapper); + List monitorList = monitorService.list(lambdaQueryWrapper); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -201,10 +189,12 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { monitorLimitDTO.setVoltage(String.format("%02d", voltageMap.get(monitor.getVoltageLevel()).getAlgoDescribe())); } + Overlimit overlimit = map.get(monitor.getId()); + 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())); @@ -281,31 +271,10 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { SendParam sendParam = new SendParam(); sendParam.setStats(pushResult); - Map sendRes = GwSendUtil.send(sendParam, GWSendEnum.MONITOR); - - - if (sendRes.containsKey("succeed")) { - 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("当前时间段国网上送请求过多,请稍后再试"); - } + Map sendRes = GwSendUtil.send(sendParam, GWSendEnum.LIMIT_CREATE); + List mIds = monitorList.stream().map(Monitor::getId).distinct().collect(Collectors.toList()); + String msg = returnInformation(1, mIds, sendRes); + return msg; } else { throw new BusinessException("暂无监测点信息"); } @@ -316,8 +285,15 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { public Page queryMonitorOverLimit(BaseParam baseParam) { Page pageResult = new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)); LambdaQueryWrapper 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); - Page page = monitorMapper.selectPage(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); + Page page = monitorService.page(new Page<>(PageFactory.getPageNum(baseParam), PageFactory.getPageSize(baseParam)), lambdaQueryWrapper); pageResult.setTotal(page.getTotal()); List pageTemList = page.getRecords(); if (CollUtil.isNotEmpty(pageTemList)) { @@ -331,85 +307,89 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { for (Monitor monitor : pageTemList) { MonitorLimitDTO monitorLimitDTO = new MonitorLimitDTO(); monitorLimitDTO.setId(monitor.getId()); - monitorLimitDTO.setOcDate(new Date()); - monitorLimitDTO.setMonitorId(monitor.getId()); + monitorLimitDTO.setMonitorName(monitor.getName()); + monitorLimitDTO.setOrgId(monitor.getOrgId()); + monitorLimitDTO.setOrgName(monitor.getOrgName()); + //monitorLimitDTO.setOcDate(new Date()); + monitorLimitDTO.setMonitorId(monitor.getMonitorId()); monitorLimitDTO.setVoltage(monitor.getVoltageLevel()); + monitorLimitDTO.setMonitorUploadStatus(monitor.getMonitorUploadStatus()); - monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit())); - monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit())); + monitorLimitDTO.setVoldelimiteUp(BigDecimal.valueOf(monitor.getVoltageDeviationUpperLimit()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setVoldelimiteLow(BigDecimal.valueOf(monitor.getVoltageDeviationLowerLimit()).setScale(3, RoundingMode.HALF_UP)); 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.setPltLimit(BigDecimal.valueOf(overlimit.getFlicker()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setRatedeLimiteUp(BigDecimal.valueOf(overlimit.getFreqDev()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setRatedeLimiteDown(BigDecimal.valueOf(-overlimit.getFreqDev()).setScale(3, RoundingMode.HALF_UP)); - monitorLimitDTO.setVthdLimit(BigDecimal.valueOf(overlimit.getUaberrance())); - monitorLimitDTO.setFlucLimit(BigDecimal.valueOf(overlimit.getVoltageFluctuation())); - monitorLimitDTO.setDeltaLimit(BigDecimal.valueOf(overlimit.getVoltageDev())); + monitorLimitDTO.setVthdLimit(BigDecimal.valueOf(overlimit.getUaberrance()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setFlucLimit(BigDecimal.valueOf(overlimit.getVoltageFluctuation()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setDeltaLimit(BigDecimal.valueOf(overlimit.getVoltageDev()).setScale(3, RoundingMode.HALF_UP)); - monitorLimitDTO.setVunbanLimit(BigDecimal.valueOf(overlimit.getUbalance())); - monitorLimitDTO.setOddHamVPerate(BigDecimal.valueOf(overlimit.getUharm3())); - monitorLimitDTO.setEveHamVPerate(BigDecimal.valueOf(overlimit.getUharm2())); + monitorLimitDTO.setVunbanLimit(BigDecimal.valueOf(overlimit.getUbalance()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setOddHamVPerate(BigDecimal.valueOf(overlimit.getUharm3()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setEveHamVPerate(BigDecimal.valueOf(overlimit.getUharm2()).setScale(3, RoundingMode.HALF_UP)); - 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.setI2Limit(BigDecimal.valueOf(overlimit.getIharm2()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI3Limit(BigDecimal.valueOf(overlimit.getIharm3()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI4Limit(BigDecimal.valueOf(overlimit.getIharm4()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI5Limit(BigDecimal.valueOf(overlimit.getIharm5()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI6Limit(BigDecimal.valueOf(overlimit.getIharm6()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI7Limit(BigDecimal.valueOf(overlimit.getIharm7()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI8Limit(BigDecimal.valueOf(overlimit.getIharm8()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI9Limit(BigDecimal.valueOf(overlimit.getIharm9()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI10Limit(BigDecimal.valueOf(overlimit.getIharm10()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI11Limit(BigDecimal.valueOf(overlimit.getIharm11()).setScale(3, RoundingMode.HALF_UP)); - 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.setI12Limit(BigDecimal.valueOf(overlimit.getIharm12()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI13Limit(BigDecimal.valueOf(overlimit.getIharm13()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI14Limit(BigDecimal.valueOf(overlimit.getIharm14()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI15Limit(BigDecimal.valueOf(overlimit.getIharm15()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI16Limit(BigDecimal.valueOf(overlimit.getIharm16()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI17Limit(BigDecimal.valueOf(overlimit.getIharm17()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI18Limit(BigDecimal.valueOf(overlimit.getIharm18()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI19Limit(BigDecimal.valueOf(overlimit.getIharm19()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI20Limit(BigDecimal.valueOf(overlimit.getIharm20()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI21Limit(BigDecimal.valueOf(overlimit.getIharm21()).setScale(3, RoundingMode.HALF_UP)); - 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.setI22Limit(BigDecimal.valueOf(overlimit.getIharm22()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI23Limit(BigDecimal.valueOf(overlimit.getIharm23()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI24Limit(BigDecimal.valueOf(overlimit.getIharm24()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI25Limit(BigDecimal.valueOf(overlimit.getIharm25()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI26Limit(BigDecimal.valueOf(overlimit.getIharm26()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI27Limit(BigDecimal.valueOf(overlimit.getIharm27()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI28Limit(BigDecimal.valueOf(overlimit.getIharm28()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI29Limit(BigDecimal.valueOf(overlimit.getIharm29()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI30Limit(BigDecimal.valueOf(overlimit.getIharm30()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI31Limit(BigDecimal.valueOf(overlimit.getIharm31()).setScale(3, RoundingMode.HALF_UP)); - 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.setI32Limit(BigDecimal.valueOf(overlimit.getIharm32()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI33Limit(BigDecimal.valueOf(overlimit.getIharm33()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI34Limit(BigDecimal.valueOf(overlimit.getIharm34()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI35Limit(BigDecimal.valueOf(overlimit.getIharm35()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI36Limit(BigDecimal.valueOf(overlimit.getIharm36()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI37Limit(BigDecimal.valueOf(overlimit.getIharm37()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI38Limit(BigDecimal.valueOf(overlimit.getIharm38()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI39Limit(BigDecimal.valueOf(overlimit.getIharm39()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI40Limit(BigDecimal.valueOf(overlimit.getIharm40()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI41Limit(BigDecimal.valueOf(overlimit.getIharm41()).setScale(3, RoundingMode.HALF_UP)); - 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.setI42Limit(BigDecimal.valueOf(overlimit.getIharm42()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI43Limit(BigDecimal.valueOf(overlimit.getIharm43()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI44Limit(BigDecimal.valueOf(overlimit.getIharm44()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI45Limit(BigDecimal.valueOf(overlimit.getIharm45()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI46Limit(BigDecimal.valueOf(overlimit.getIharm46()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI47Limit(BigDecimal.valueOf(overlimit.getIharm47()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI48Limit(BigDecimal.valueOf(overlimit.getIharm48()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI49Limit(BigDecimal.valueOf(overlimit.getIharm49()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setI50Limit(BigDecimal.valueOf(overlimit.getIharm50()).setScale(3, RoundingMode.HALF_UP)); - monitorLimitDTO.setHarmonicVoltageLimit2(BigDecimal.valueOf(overlimit.getInuharm1())); - monitorLimitDTO.setHarmonicVoltageLimit3to16(BigDecimal.valueOf(overlimit.getInuharm3())); + monitorLimitDTO.setHarmonicVoltageLimit2(BigDecimal.valueOf(overlimit.getInuharm1()).setScale(3, RoundingMode.HALF_UP)); + monitorLimitDTO.setHarmonicVoltageLimit3to16(BigDecimal.valueOf(overlimit.getInuharm3()).setScale(3, RoundingMode.HALF_UP)); monitorLimitDTOList.add(monitorLimitDTO); @@ -419,4 +399,56 @@ public class GwMonitorPushServiceImpl implements GwMonitorPushService { } return pageResult; } + + + /** + * 国网上送返回信息 + * + * @param num + * @param ids + * @param send + * @return + */ + private String returnInformation(Integer num, List ids, Map 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 ids) { + switch (num) { + case 1: + monitorService.update(new LambdaUpdateWrapper() + .set(Monitor::getMonitorUploadStatus, 1) + .in(Monitor::getId, ids) + ); + break; + default: + break; + } + } } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java index 6fc2e5ece..e971acc72 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IGeneratrixWireService.java @@ -111,4 +111,7 @@ public interface IGeneratrixWireService extends IService { */ List getBusBar(String stationId); + + Boolean batchSync(); + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java index 6fd14ba4d..d4f808cde 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/GeneratrixWireImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; 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.service.impl.ServiceImpl; 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.mapper.majornetwork.PmsGeneratrixWireMapper; 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.GeneratrixAndPowerStationSonDTO; import com.njcn.device.pms.pojo.dto.PmsGeneratrixDTO; @@ -51,6 +54,9 @@ public class GeneratrixWireImpl extends ServiceImpl(); } + @Override + public Boolean batchSync() { + + + List poList = new ArrayList<>(); + + + + List statationStatList = statationStatMapper.selectList(new LambdaQueryWrapper().isNotNull(StatationStat::getMidStationId)); + List ids = statationStatList.stream().map(StatationStat::getPowerId).distinct().collect(Collectors.toList()); + List generatrixWireList = this.list(new LambdaQueryWrapper().in(GeneratrixWire::getStationId,ids)); + + + + + for(StatationStat statationStat : statationStatList){ + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PmsMidLedger::getLevel,1).eq(PmsMidLedger::getState,DataStateEnum.ENABLE.getCode()).in(PmsMidLedger::getPid,statationStat.getMidStationId()); + List pmsMidLedgerList = pmsMidLedgerMapper.selectList(lambdaQueryWrapper); + if(CollUtil.isEmpty(pmsMidLedgerList)){ + continue; + } + + List 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 lambdaUpdateWrapper = new LambdaUpdateWrapper(); + lambdaUpdateWrapper.set(GeneratrixWire::getMidBusId,generatrixWire.getMidBusId()).eq(GeneratrixWire::getId,generatrixWire.getId()); + this.update(lambdaUpdateWrapper); + } + System.out.println("5555"); + + + return true; + + } + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java index 580690e07..f96d7fa9f 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/MonitorServiceImpl.java @@ -180,10 +180,21 @@ public class MonitorServiceImpl extends ServiceImpl impl @Override public Page getAllMonitorPageList(TerminalQueryParam baseParam) { + + List objTypeIds = new ArrayList<>(); + if(StrUtil.isNotBlank(baseParam.getObjType())){ + SysDicTreePO sysDicTreePO = dictTreeFeignClient.queryById(baseParam.getObjType()).getData(); + List temList = dictTreeFeignClient.query(sysDicTreePO.getPid()).getData(); + List ids = temList.stream().map(DictTreeVO::getId).collect(Collectors.toList()); + objTypeIds.add(sysDicTreePO.getId()); + objTypeIds.addAll(ids); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper .eq(StrUtil.isNotBlank(baseParam.getMonitorState()), Monitor::getMonitorState, baseParam.getMonitorState()) .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()) .or() .like(Monitor::getId, baseParam.getSearchValue()) @@ -236,6 +247,8 @@ public class MonitorServiceImpl extends ServiceImpl impl BeanUtils.copyProperties(monitorParam, monitor); checkOther(monitorParam, monitor, false); monitor.setStatus(DataStateEnum.ENABLE.getCode()); + monitor.setIsUploadHead(0); + monitor.setMonitorUploadStatus(0); //主网测点限值计算 Overlimit overlimit = overLimitCal(monitorParam, monitor); diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/po/SysDicTreePO.java b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/po/SysDicTreePO.java index d3f81fafa..6c4f51185 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/po/SysDicTreePO.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/po/SysDicTreePO.java @@ -75,5 +75,8 @@ public class SysDicTreePO extends BaseEntity { @TableField(exist = false) private List children; + @TableField(exist = false) + private Integer level; + } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java index 37b2e57b7..522b6bc1d 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/SysDicTreePOServiceImpl.java @@ -113,13 +113,13 @@ public class SysDicTreePOServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(SysDicTreePO::getStatus, 0); List sysDicTreePOList = this.list(lambdaQueryWrapper); - List parent = sysDicTreePOList.stream().filter(item->item.getPid().equals("0") && !item.getCode().equals("Device_Unit")).peek(item->item.setChildren(getChildren(item,sysDicTreePOList))).collect(Collectors.toList()); - return parent.stream().peek(item->item.setChildren(getChildren(item,sysDicTreePOList))).collect(Collectors.toList()); + List 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; } private List getChildren(SysDicTreePO sysDicTreePO,List 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()); } }