From ef35d9bdbe19732cf01ac2ced5a67b5cde90da85 Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Wed, 23 Oct 2024 14:23:30 +0800 Subject: [PATCH] =?UTF-8?q?1.pms=E4=B8=BB=E7=BD=91=E6=B5=8B=E7=82=B9?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8A=E9=80=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../njcn/device/pms/api/MonitorClient.java | 9 + .../device/pms/api/PmsTerminalClient.java | 4 + .../MonitorClientFallbackFactory.java | 6 + .../PmsTerminalClientFallbackFactory.java | 6 + .../ledgerManger/PmsMonitorController.java | 24 +- .../ledgerManger/PmsTerminalController.java | 10 + .../service/majornetwork/IMonitorService.java | 2 + .../majornetwork/impl/MonitorServiceImpl.java | 10 + .../pq/service/impl/DeviceServiceImpl.java | 2 +- .../harmonic/api/UploadGwDataFeignClient.java | 3 + .../fallback/UploadGwDataFallbackFactory.java | 6 + .../dto/upload/RUploadMainMonitorDataDTO.java | 111 ++++++++ .../po/upload/RUploadMainMonitorData.java | 97 +++++++ .../upload/RUploadMainMonitorController.java | 63 +++++ .../upload/RUploadMainMonitorDataMapper.java | 17 ++ .../upload/RUploadMainMonitorService.java | 21 ++ .../impl/RUploadCommPointBusServiceImpl.java | 8 +- .../impl/RUploadMainMonitorServiceImpl.java | 242 ++++++++++++++++++ 18 files changed, 633 insertions(+), 8 deletions(-) create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RUploadMainMonitorDataDTO.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadMainMonitorData.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadMainMonitorController.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadMainMonitorDataMapper.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/RUploadMainMonitorService.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadMainMonitorServiceImpl.java diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java index 9516fb2f5..a5d7bb3eb 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/MonitorClient.java @@ -68,6 +68,15 @@ public interface MonitorClient { @PostMapping("getMonitorList") HttpResult> getMonitorList(@RequestBody List monitorIds); + + /** + * 通过同源监测点编码获取监测点信息 + * @author cdf + * @date 2022/11/29 + */ + @PostMapping("getMonitorListByMid") + HttpResult> getMonitorListByMid(@RequestBody List midIds); + @PostMapping("getMonitorPage") HttpResult> getMonitorPage(@RequestBody TerminalQueryParam baseParam); diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/PmsTerminalClient.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/PmsTerminalClient.java index 38802f604..ea5e338b1 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/PmsTerminalClient.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/PmsTerminalClient.java @@ -32,4 +32,8 @@ public interface PmsTerminalClient { */ @PostMapping("/getTerminalSelectList") HttpResult> getTerminalSelectList(@RequestBody PmsBaseParam pmsBaseParam); + + @PostMapping("/getTerminalSelectByIds") + HttpResult> getTerminalSelectByIds(@RequestBody List ids); + } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java index c72f408ea..db577972c 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/MonitorClientFallbackFactory.java @@ -63,6 +63,12 @@ public class MonitorClientFallbackFactory implements FallbackFactory> getMonitorListByMid(List midIds) { + log.error("{}异常,降级处理,异常为:{}", "使用同源监测点编码获取监测点信息 ", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult> getMonitorPage(TerminalQueryParam baseParam) { log.error("{}异常,降级处理,异常为:{}", "分页获取主网监测点数据 ", throwable.toString()); diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/PmsTerminalClientFallbackFactory.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/PmsTerminalClientFallbackFactory.java index 1486d8995..586823d9e 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/PmsTerminalClientFallbackFactory.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/api/fallback/PmsTerminalClientFallbackFactory.java @@ -36,6 +36,12 @@ public class PmsTerminalClientFallbackFactory implements FallbackFactory> getTerminalSelectByIds(List ids) { + log.error("{}异常,降级处理,异常为:{}", "使用装置id集合查询装置信息", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java index b60677c37..c9f8390da 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsMonitorController.java @@ -131,15 +131,27 @@ public class PmsMonitorController extends BaseController { @ApiOperation("获取所有主网监测点(或者指定监测点编号查询)") @ApiImplicitParam(name = "monitorIds",value = "主网监测点编号",required = true) public HttpResult> getMonitorList(@RequestBody List monitorIds) { - String methodDescribe = getMethodDescribe("getAllMonitorList"); + String methodDescribe = getMethodDescribe("getMonitorList"); List monitor= monitorService.getMonitorList(monitorIds); - if (Objects.isNull(monitor)) { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NO_DATA, null, methodDescribe); - } else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); - } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); } + /** + * 使用同源监测点编码获取监测点信息 + * @author cdf + * @date 2022/11/29 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMonitorListByMid") + @ApiOperation("使用同源监测点编码获取监测点信息") + @ApiImplicitParam(name = "midIds",value = "主网监测点编号",required = true) + public HttpResult> getMonitorListByMid(@RequestBody List midIds) { + String methodDescribe = getMethodDescribe("getMonitorListByMid"); + List monitor= monitorService.getMonitorListByMid(midIds); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getMonitorPage") @ApiOperation("获取所有主网监测点(或者指定监测点编号查询)") diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsTerminalController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsTerminalController.java index e11451feb..15b3fc7b9 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsTerminalController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsTerminalController.java @@ -83,6 +83,16 @@ public class PmsTerminalController extends BaseController { } } + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/getTerminalSelectByIds") + @ApiOperation("根据ID集合查询监测终端台账数据") + @ApiImplicitParam(name = "ID集合",value = "ids",required = true) + public HttpResult> getTerminalSelectByIds(@RequestBody List ids){ + String methodDescribe = getMethodDescribe("getTerminalSelectByIds"); + List pmsTerminal = iTerminalService.getTerminalSelectByIds(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pmsTerminal, methodDescribe); + } + /** * 新增监测终端台账信息 * @author hany diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java index bb1ebb423..dc5a1968d 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IMonitorService.java @@ -88,6 +88,8 @@ public interface IMonitorService extends IService { List getMonitorList(List monitorIds); + List getMonitorListByMid(List midIds); + List getPmsCalMonitorList(List monitorIds); 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 6b84ab32c..10a9700fd 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 @@ -302,6 +302,16 @@ public class MonitorServiceImpl extends ServiceImpl impl return monitorList; } + + @Override + public List getMonitorListByMid(List midIds) { + List monitorList; + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()).in(Monitor::getMonitorId,midIds); + monitorList = this.list(lambdaQueryWrapper); + return monitorList; + } + @Override public List getPmsCalMonitorList(List monitorIds) { List monitorList = new ArrayList<>(); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java index 0dbe52acb..72d93b020 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceServiceImpl.java @@ -47,7 +47,7 @@ public class DeviceServiceImpl extends ServiceImpl impleme private final DevVersionMapper devVersionMapper; private final ProgramVersionService programVersionService; - @Value("${socket.port}") + @Value("${socket.port:60000}") private Integer socketPort; @Override diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/UploadGwDataFeignClient.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/UploadGwDataFeignClient.java index 15c527f80..9d12c2915 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/UploadGwDataFeignClient.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/UploadGwDataFeignClient.java @@ -31,4 +31,7 @@ public interface UploadGwDataFeignClient { @PostMapping("/upGwCommPoint") HttpResult upGwCommPoint(@RequestBody UploadDataParam param); + @PostMapping("/upGwMainMonitor") + HttpResult upGwMainMonitor(@RequestBody UploadDataParam param); + } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/fallback/UploadGwDataFallbackFactory.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/fallback/UploadGwDataFallbackFactory.java index 3b3938dbd..d2e48a1fc 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/fallback/UploadGwDataFallbackFactory.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/api/fallback/UploadGwDataFallbackFactory.java @@ -52,6 +52,12 @@ public class UploadGwDataFallbackFactory implements FallbackFactory(CommonResponseEnum.FAIL.getCode(),CommonResponseEnum.FAIL.getMessage()); } + + @Override + public HttpResult upGwMainMonitor(UploadDataParam param) { + log.error("{}异常,降级处理,异常为:{}", "国网上送-主网测点数据", throwable.toString()); + return new HttpResult<>(CommonResponseEnum.FAIL.getCode(),CommonResponseEnum.FAIL.getMessage()); + } }; } } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RUploadMainMonitorDataDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RUploadMainMonitorDataDTO.java new file mode 100644 index 000000000..5ff91535c --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/RUploadMainMonitorDataDTO.java @@ -0,0 +1,111 @@ +package com.njcn.harmonic.pojo.dto.upload; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.Date; + +/** + * 用于河北上送主网测点信息至国网 + */ +@Data +public class RUploadMainMonitorDataDTO { + + + private String objId; + private String provinceOrg; + private String provinceOrgName; + private String cityOrg; + private String cityOrgName; + private String maintOrg; + private String maintOrgName; + private String monitorName; + private String monitorVoltageLevel; + private String monitorId; + private String monitorStatus; + private Date monitorOperateDate; + private Date monitorStopDate; + private String substationId; + private String substationName; + private String busId; + private String busName; + private String outLineIntervalId; + private String outLineIntervalName; + private String monitorObjTypeBig; + private String monitorObjTypeSmall; + private String monitorTag; + private String monitorObjName; + private String monitorObjId; + private String isLine; + private BigDecimal minShortCapacity; + private BigDecimal supplyEquipCapacity; + private BigDecimal userProtocolCapacity; + private String terminalCode; + private String terminalManufacturer; + private String terminalModel; + private String terminalManufactureNum; + private String terminalConnect; + private String neutralGround; + private String evtType; + /** + * 统计日期 + */ + private String statisticalDate; + + /** + * 统计类型(01:年 02:月 03:日) + */ + private String statisticalType; + + + /** + * 监测点是否在线 + */ + private String isMonitorOnline; + + /** + * 监测终端是否在线 + */ + private String isTerminalOnline; + + /** + * 在线监测点数量 + */ + private Integer onlineMonitorNum; + + /** + * 在运监测点数量 + */ + private Integer runMonitorNum; + + /** + * 监测点在线率 + */ + private BigDecimal onlineMonitorRate; + + /** + * 应收采集数 + */ + private Long expectCollectNum; + + /** + * 实收采集数 + */ + private Long actualCollectNum; + + /** + * 监测数据完整率 + */ + private BigDecimal dataFullRate; + + /** + * 计算日期(用于记录算法执行日期) + */ + private LocalDate computeDate; + + /** + * 上送状态 + */ + private Integer uploadStatus; +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadMainMonitorData.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadMainMonitorData.java new file mode 100644 index 000000000..45fd41383 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadMainMonitorData.java @@ -0,0 +1,97 @@ +package com.njcn.harmonic.pojo.po.upload; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; + +import java.math.BigDecimal; +import java.time.LocalDate; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 2.4.1.23接收电能质量主网监测点统计数据接口功能表(日月年数据) + *

+ * + * @author cdf + * @since 2024-10-21 + */ +@Getter +@Setter +@TableName("r_upload_main_monitor_data") +public class RUploadMainMonitorData{ + + private static final long serialVersionUID = 1L; + + private String objId; + + /** + * 统计日期 + */ + @MppMultiId + private String statisticalDate; + + /** + * 统计类型(01:年 02:月 03:日) + */ + @MppMultiId + private String statisticalType; + + /** + * 主网测点id + */ + @MppMultiId + private String monitorId; + + /** + * 监测点是否在线 + */ + private String isMonitorOnline; + + /** + * 监测终端是否在线 + */ + private String isTerminalOnline; + + /** + * 在线监测点数量 + */ + private Integer onlineMonitorNum; + + /** + * 在运监测点数量 + */ + private Integer runMonitorNum; + + /** + * 监测点在线率 + */ + private BigDecimal onlineMonitorRate; + + /** + * 应收采集数 + */ + private Long expectCollectNum; + + /** + * 实收采集数 + */ + private Long actualCollectNum; + + /** + * 监测数据完整率 + */ + private BigDecimal dataFullRate; + + /** + * 计算日期(用于记录算法执行日期) + */ + private LocalDate computeDate; + + /** + * 上送状态 + */ + private Integer uploadStatus; + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadMainMonitorController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadMainMonitorController.java new file mode 100644 index 000000000..38173d003 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadMainMonitorController.java @@ -0,0 +1,63 @@ +package com.njcn.harmonic.controller.upload; + + +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.harmonic.pojo.param.UploadDataParam; +import com.njcn.harmonic.pojo.po.upload.RUploadCommPointBus; +import com.njcn.harmonic.pojo.po.upload.RUploadMainMonitorData; +import com.njcn.harmonic.service.upload.RUploadCommPointBusService; +import com.njcn.harmonic.service.upload.RUploadMainMonitorService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2024-08-15 + */ +@RestController +@RequestMapping("/upload") +@RequiredArgsConstructor +public class RUploadMainMonitorController extends BaseController { + + private final RUploadMainMonitorService rUploadMainMonitorService; + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMainMonitorPage") + @ApiOperation("分页查询主网监测点") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public HttpResult> getMainMonitorPage(@RequestBody @Validated UploadDataParam param) { + String methodDescribe = getMethodDescribe("getMainMonitorPage"); + Page page = rUploadMainMonitorService.getMainMonitorPage(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/upGwMainMonitor") + @ApiOperation("上送国网") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public HttpResult upGwMainMonitor(@RequestBody UploadDataParam param) { + String methodDescribe = getMethodDescribe("upGwMainMonitor"); + rUploadMainMonitorService.upGwMainMonitor(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadMainMonitorDataMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadMainMonitorDataMapper.java new file mode 100644 index 000000000..3978cb3a7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadMainMonitorDataMapper.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.mapper.upload; + + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.upload.RUploadMainMonitorData; + +/** + *

+ * 2.4.1.23接收电能质量主网监测点统计数据接口功能表(日月年数据) Mapper 接口 + *

+ * + * @author cdf + * @since 2024-10-21 + */ +public interface RUploadMainMonitorDataMapper extends MppBaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/RUploadMainMonitorService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/RUploadMainMonitorService.java new file mode 100644 index 000000000..303dd574a --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/RUploadMainMonitorService.java @@ -0,0 +1,21 @@ +package com.njcn.harmonic.service.upload; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.param.UploadDataParam; +import com.njcn.harmonic.pojo.po.upload.RUploadCommPointBus; +import com.njcn.harmonic.pojo.po.upload.RUploadMainMonitorData; + +/** + *

+ * 公共连接点母线电能质量统计 服务类 + *

+ */ + +public interface RUploadMainMonitorService extends IService { + + Page getMainMonitorPage(UploadDataParam param); + + Boolean upGwMainMonitor(UploadDataParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java index cfa214165..0d8c7808c 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadCommPointBusServiceImpl.java @@ -22,6 +22,7 @@ import com.njcn.web.pojo.param.SendParam; import com.njcn.web.utils.GwSendUtil; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -32,7 +33,7 @@ import java.util.stream.Stream; * 公共连接点母线电能质量统计 服务实现类 *

* - * @author xy + * @author cdf * @since 2024-08-15 */ @Service @@ -66,6 +67,11 @@ public class RUploadCommPointBusServiceImpl extends ServiceImpl + * 公共连接点母线电能质量统计 服务实现类 + *

+ * + * @author cdf + * @since 2024-08-15 + */ +@Service +@RequiredArgsConstructor +public class RUploadMainMonitorServiceImpl extends ServiceImpl implements RUploadMainMonitorService { + + private final MonitorClient monitorClient; + + private final DeptFeignClient deptFeignClient; + + private final DicDataFeignClient dicDataFeignClient; + + private final DictTreeFeignClient dictTreeFeignClient; + + private final PmsTerminalClient pmsTerminalClient; + + + @Override + public Page getMainMonitorPage(UploadDataParam param) { + DateTime dateTime = DateUtil.parse(param.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN); + if(param.getDataType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())){ + param.setSearchBeginTime(DateUtil.format(dateTime,DatePattern.NORM_MONTH_PATTERN)); + }else if(param.getDataType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())){ + param.setSearchBeginTime(DateUtil.format(dateTime,DatePattern.NORM_YEAR_PATTERN)); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RUploadMainMonitorData::getStatisticalType,param.getDataType()) + .eq(RUploadMainMonitorData::getStatisticalDate,param.getSearchBeginTime()); + return this.page(new Page<>(PageFactory.getPageNum(param),PageFactory.getPageSize(param)),lambdaQueryWrapper); + } + + @Override + public Boolean upGwMainMonitor(UploadDataParam param) { + if(StrUtil.isBlank(param.getSearchBeginTime())){ + throw new BusinessException("日期不可为空"); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + + if(StrUtil.isBlank(param.getDataType())){ + //类型为空则上送日月年数据 + DateTime dateTime = DateUtil.parse(param.getSearchBeginTime(),DatePattern.NORM_DATE_PATTERN); + String month = DateUtil.format(dateTime,DatePattern.NORM_MONTH_PATTERN); + String year = DateUtil.format(dateTime,DatePattern.NORM_YEAR_PATTERN); + lambdaQueryWrapper.in(RUploadMainMonitorData::getStatisticalDate, Stream.of(param.getSearchBeginTime(),month,year).collect(Collectors.toList())); + }else { + if(param.getDataType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())){ + param.setSearchBeginTime(DateUtil.format(DateUtil.parse(param.getSearchBeginTime(),DatePattern.NORM_DATE_PATTERN),DatePattern.NORM_MONTH_PATTERN)); + }else if(param.getDataType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())){ + param.setSearchBeginTime(DateUtil.format(DateUtil.parse(param.getSearchBeginTime(),DatePattern.NORM_DATE_PATTERN),DatePattern.NORM_YEAR_PATTERN)); + } + lambdaQueryWrapper.eq(RUploadMainMonitorData::getStatisticalType,param.getDataType()) + .eq(RUploadMainMonitorData::getStatisticalDate,param.getSearchBeginTime()); + } + List rUploadMainMonitorDataList = this.list(lambdaQueryWrapper); + if(CollUtil.isEmpty(rUploadMainMonitorDataList)){ + throw new BusinessException("查询数据为空"); + } + + List deptTreeVOList = deptFeignClient.allDeptList().getData(); + Map pvTerminalTreeVOCodeMap = deptTreeVOList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode,Function.identity())); + Map pvTerminalTreeVOIdMap = deptTreeVOList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId,Function.identity())); + + List dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = dictDataList.stream().collect(Collectors.toMap(DictData::getId,Function.identity())); + + List stateList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + Map stateMap = stateList.stream().collect(Collectors.toMap(DictData::getId,Function.identity())); + + //监测点标签 + List tagList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + Map tagMap = tagList.stream().collect(Collectors.toMap(DictData::getId,Function.identity())); + //监测点接线方式 + List wireList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_CONNECT.getCode()).getData(); + Map wireMap = wireList.stream().collect(Collectors.toMap(DictData::getId,Function.identity())); + + + List sysDicTreePOList = dictTreeFeignClient.queryAllByType(Integer.valueOf(DicTreeEnum.HB_PMS_TYPE.getCode())).getData(); + Map dicTreeMap = sysDicTreePOList.stream().collect(Collectors.toMap(SysDicTreePO::getId,Function.identity())); + + + //获取测点map + List monitorIds = rUploadMainMonitorDataList.stream().map(RUploadMainMonitorData::getMonitorId).distinct().collect(Collectors.toList()); + List monitorList = monitorClient.getMonitorListByMid(monitorIds).getData(); + Map monitorMap = monitorList.stream().collect(Collectors.toMap(Monitor::getMonitorId, Function.identity())); + + List terminalIds = monitorList.stream().map(Monitor::getTerminalId).distinct().collect(Collectors.toList()); + List pmsTerminalList = pmsTerminalClient.getTerminalSelectByIds(terminalIds).getData(); + Map pmsTerminalMap = pmsTerminalList.stream().collect(Collectors.toMap(PmsTerminal::getId,Function.identity())); + + List rUploadMainMonitorDataDTOList = new ArrayList<>(); + rUploadMainMonitorDataList.forEach(item->{ + RUploadMainMonitorDataDTO rUploadMainMonitorDataDTO = new RUploadMainMonitorDataDTO(); + BeanUtil.copyProperties(item,rUploadMainMonitorDataDTO); + + if(monitorMap.containsKey(item.getMonitorId())){ + Monitor monitor = monitorMap.get(item.getMonitorId()); + assOrg(pvTerminalTreeVOCodeMap,pvTerminalTreeVOIdMap,rUploadMainMonitorDataDTO,monitor); + rUploadMainMonitorDataDTO.setMonitorName(monitor.getName()); + rUploadMainMonitorDataDTO.setMonitorVoltageLevel(String.format("%02d",voltageMap.get(monitor.getVoltageLevel()).getAlgoDescribe())); + rUploadMainMonitorDataDTO.setMonitorStatus(stateMap.get(monitor.getMonitorState()).getValue()); + rUploadMainMonitorDataDTO.setSubstationId(monitor.getPowerrId()); + rUploadMainMonitorDataDTO.setSubstationName(monitor.getPowerrName()); + rUploadMainMonitorDataDTO.setBusId(monitor.getLineId()); + rUploadMainMonitorDataDTO.setBusName(monitor.getLineName()); + + String objType = monitor.getObjType(); + SysDicTreePO sysDicTreePO = dicTreeMap.get(objType); + rUploadMainMonitorDataDTO.setMonitorObjTypeSmall(sysDicTreePO.getCode()); + if("0".equals(sysDicTreePO.getPid())){ + rUploadMainMonitorDataDTO.setMonitorObjTypeBig(sysDicTreePO.getCode()); + }else { + SysDicTreePO sysDicTreeSmall = dicTreeMap.get(sysDicTreePO.getPid()); + rUploadMainMonitorDataDTO.setMonitorObjTypeBig(sysDicTreeSmall.getCode()); + } + rUploadMainMonitorDataDTO.setMonitorTag(tagMap.get(monitor.getMonitorTag()).getValue()); + rUploadMainMonitorDataDTO.setMonitorObjName(monitor.getMonitorObjectName()); + rUploadMainMonitorDataDTO.setMinShortCapacity(BigDecimal.valueOf(monitor.getMinShortCircuitCapacity())); + rUploadMainMonitorDataDTO.setSupplyEquipCapacity(BigDecimal.valueOf(monitor.getPowerSupplyEqCapacity())); + rUploadMainMonitorDataDTO.setUserProtocolCapacity(BigDecimal.valueOf(monitor.getUserAgreementCapacity())); + + PmsTerminal pmsTerminal = pmsTerminalMap.get(monitor.getTerminalId()); + rUploadMainMonitorDataDTO.setTerminalCode(pmsTerminal.getTerminalCode()); + rUploadMainMonitorDataDTO.setTerminalConnect(wireMap.get(monitor.getTerminalWiringMethod()).getValue()); + } + + rUploadMainMonitorDataDTOList.add(rUploadMainMonitorDataDTO); + }); + + List> list = CollUtil.split(rUploadMainMonitorDataDTOList,100); + for(int i=0;i sendRes = GwSendUtil.newSend(sendParam, GWSendEnum.COMM_POINT); + List ids = list.get(i).stream().map(RUploadMainMonitorDataDTO::getObjId).collect(Collectors.toList()); + int count = GwSendUtil.returnInfoMsg(ids,sendRes); + System.out.println("上送成功,上送成功返回"+count+"条"); + if(count == list.get(i).size()){ + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.set(RUploadMainMonitorData::getUploadStatus,1).in(RUploadMainMonitorData::getObjId,ids); + this.update(lambdaUpdateWrapper); + } + } + return true; + } + + + + private void assOrg(Map pvTerminalTreeVOCodeMap,Map pvTerminalTreeVOIdMap,RUploadMainMonitorDataDTO rUploadMainMonitorDataDTO,Monitor monitor){ + PvTerminalTreeVO pvTerminalTreeVO = pvTerminalTreeVOCodeMap.get(monitor.getOrgId()); + rUploadMainMonitorDataDTO.setMaintOrg(pvTerminalTreeVO.getCode()); + rUploadMainMonitorDataDTO.setMaintOrgName(pvTerminalTreeVO.getName()); + + PvTerminalTreeVO pvTerminalTreeCity = pvTerminalTreeVOIdMap.get(pvTerminalTreeVO.getPid()); + rUploadMainMonitorDataDTO.setCityOrg(pvTerminalTreeCity.getCode()); + rUploadMainMonitorDataDTO.setCityOrgName(pvTerminalTreeCity.getName()); + + PvTerminalTreeVO pvTerminalTreeProvince = pvTerminalTreeVOIdMap.get(pvTerminalTreeCity.getPid()); + rUploadMainMonitorDataDTO.setProvinceOrg(pvTerminalTreeProvince.getCode()); + rUploadMainMonitorDataDTO.setProvinceOrgName(pvTerminalTreeProvince.getName()); + } + + + +}