From 0dd324c7ef1e6fa2e2835cab566de914734692b9 Mon Sep 17 00:00:00 2001 From: cdf <857448963@qq.com> Date: Tue, 18 Jun 2024 17:04:22 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=B8=8B=E5=8F=91=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=202.=E5=B7=A5=E5=8D=95=E6=8E=A5=E5=8F=A3=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/njcn/web/enums/GWSendEnum.java | 5 + .../java/com/njcn/web/utils/GwSendUtil.java | 36 + .../pojo/dto/upload/FeedbackInfoDTO.java | 43 ++ .../pojo/param/upload/DimBusBarParam.java | 24 +- .../param/upload/RUploadWorkOrderParam.java | 182 +++++ .../pojo/po/upload/RUploadWorkOrderPO.java | 177 +++++ .../harmonic/pojo/vo/upload/DimBusBarVO.java | 83 ++- .../upload/EvaluationDownController.java | 42 +- .../upload/RUploadWorkOrderController.java | 135 ++++ .../mapping/RUploadEvaluationDataDMapper.xml | 100 ++- .../upload/RUploadEvaluationDataDMapper.java | 1 + .../mapper/upload/RUploadWorkOrderMapper.java | 17 + .../upload/IEvaluationDataService.java | 16 +- .../upload/IRUploadWorkOrderService.java | 36 + .../impl/REvaluationDataServiceImpl.java | 676 ++++++++++++++---- .../impl/RUploadWorkOrderServiceImpl.java | 109 +++ .../njcn/process/pojo/po/SupvPlanReturn.java | 40 +- .../controller/SupvPlanReturnController.java | 22 +- .../service/ISupvPlanReturnService.java | 28 + .../impl/SupvPlanReturnServiceImpl.java | 36 + .../com/njcn/system/enums/DicDataEnum.java | 11 + 21 files changed, 1630 insertions(+), 189 deletions(-) create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/FeedbackInfoDTO.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadWorkOrderController.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadWorkOrderMapper.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadWorkOrderService.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/RUploadWorkOrderServiceImpl.java create mode 100644 pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvPlanReturnService.java create mode 100644 pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanReturnServiceImpl.java diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java b/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java index b9183c0f4..864a938c1 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/enums/GWSendEnum.java @@ -35,6 +35,11 @@ public enum GWSendEnum { SUBSTATION_MONITOR("pqSubstationMonitorCreate", "/WMCenter/powerQuality/substationMonitor/create"), //接收其他干扰用户台账数据接口 OTHER_USER_CREATE("pqOtherUserCreate", "/WMCenter/powerQuality/archivalInformation/otherUserCreate"), + + + + //调用总部下发工单的反馈单接口 + WORK_ORDER_FEEDBACK("workOrderFeedBack", "/pms-ghq-powerquality-start/powerQuality/workOrder/receiveFeedbackInfo"), ; diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/utils/GwSendUtil.java b/pqs-common/common-web/src/main/java/com/njcn/web/utils/GwSendUtil.java index 20c4c9187..8dc8bc1ef 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/utils/GwSendUtil.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/utils/GwSendUtil.java @@ -1,5 +1,6 @@ package com.njcn.web.utils; +import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.ObjectUtil; import com.alibaba.csb.sdk.*; import com.alibaba.fastjson.JSON; @@ -10,9 +11,12 @@ import com.njcn.web.pojo.param.SendParam; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; +import java.time.LocalDate; import java.util.HashMap; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; /** * @author wr @@ -106,4 +110,36 @@ public class GwSendUtil { } return token; } + + + /** + * 用于单次调用的返回 + * @author cdf + * @date 2024/6/18 + */ + public static Integer returnInfoMsg(List ids, Map res) { + if (res.containsKey("succeed")) { + String succeed = res.get("succeed"); + if (succeed.contains("\\\"")) { + succeed = succeed.replace("\\\"", "\""); + } + Map mapData = JSON.parseObject(succeed, Map.class); + String status = mapData.get("status").toString(); + if ("000000".equals(status)) { + //修改数据上送状态 + String result = mapData.get("result").toString(); + Map mapCount = JSON.parseObject(result, Map.class); + String count = mapCount.get("count").toString(); + return Integer.valueOf(count); + } else { + String errors = mapData.get("errors").toString(); + String errorMsg = " 上送" + ids.size()+"条数据失败,错误信息:" + status + "_" + errors + " ;"; + throw new BusinessException(errorMsg); + } + } else { + throw new BusinessException("当前时间段国网上送请求过多,请稍后再试"); + } + + + } } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/FeedbackInfoDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/FeedbackInfoDTO.java new file mode 100644 index 000000000..6ac141a4c --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/upload/FeedbackInfoDTO.java @@ -0,0 +1,43 @@ +package com.njcn.harmonic.pojo.dto.upload; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2024/6/18 + */ +@Data +public class FeedbackInfoDTO { + + /** + * 主键 + */ + private String objId; + + /** + * 工单编号 + */ + private String orderId; + + /** + * 是否反馈 + */ + private String isFeedback; + + /** + * 反馈人员 + */ + private String feedbackUser; + + /** + * 反馈时间 + */ + private String feedbackTime; + + /** + * 处理措施 + */ + private String handlingMeasures; +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/DimBusBarParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/DimBusBarParam.java index b3ba6b6b7..bec0422a2 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/DimBusBarParam.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/DimBusBarParam.java @@ -13,38 +13,44 @@ import java.util.List; @Data public class DimBusBarParam { - private String deployState; + private Integer pageNum; + private Integer pageSize; private String endTime; private String startTime; private String orgId; private String orgLevel; + + private String deployState; private String statType; - + private String dataSource; + private String indexType; + private Integer harmonicNum; + private String stationName; + private String voltageLevel; private String busId; + + private List busIds; private String busName; - private String dataSource; + private String detailType; - private Integer harmonicNum; - private String indexType; + private String monitorId; private String nodeId; private String nodeLevel; private List seqs; private String statDate; - private String stationName; - private String voltageLevel; - private Integer pageNum; - private Integer pageSize; + + private List onlineBusIds; diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java new file mode 100644 index 000000000..8ef16698f --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/upload/RUploadWorkOrderParam.java @@ -0,0 +1,182 @@ +package com.njcn.harmonic.pojo.param.upload; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.web.pojo.param.BaseParam; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + *

+ * 用于存储总部下发的工单信息 + *

+ * + * @author cdf + * @since 2024-06-18 + */ +@Data +public class RUploadWorkOrderParam { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private String objId; + + /** + * 省公司id + */ + private String provinceId; + + /** + * 省公司名称 + */ + private String provinceName; + + /** + * 市公司 + */ + private String cityOrgId; + + /** + * 市公司名称 + */ + private String cityOrgName; + + /** + * 运维单位ID + */ + private String maintainerId; + + /** + * 运维单位名称 + */ + private String maintainerName; + + /** + * 运维班组Id + */ + private String maintcrewId; + + /** + * 运维班组名称 + */ + private String maintcrewName; + + /** + * 工单编号 + */ + private String orderId; + + /** + * 工单类型(字典) + */ + private String orderType; + + /** + * 工单来源(字典) + */ + private String orderSource; + + /** + * 业务分类(字典) + */ + private String businessType; + + /** + * 工单内容 + */ + private String orderContent; + + /** + * 事件时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate eventTime; + + /** + * 下发时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime distributeTime; + + /** + * 闭环时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate closedLoopTime; + + + /** + * 3-省,4-市 + */ + private String orgLevel; + + /** + * 0-否,1-是 + */ + private String isFeedback; + + /** + * 反馈人员 + */ + private String feedbackUser; + + /** + * 反馈时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate feedbackTime; + + /** + * 处理措施 + */ + private String handlingMeasures; + + /** + * 接收时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime receiveTime; + + /** + * 0-否,1-是 + */ + private String uploadStatus; + + /** + * 工单状态(字典) + */ + private String orderStatus; + + /** + * 上报时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate uploadTime; + + /** + * 下发人员 + */ + private String distributeUser; + + /** + * 要求整改时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate planRectificationTime; + + + + @Data + public static class RUploadWorkOrderQuery extends BaseParam { + + } + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java new file mode 100644 index 000000000..48646e924 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadWorkOrderPO.java @@ -0,0 +1,177 @@ +package com.njcn.harmonic.pojo.po.upload; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 用于存储总部下发的工单信息 + *

+ * + * @author cdf + * @since 2024-06-18 + */ +@Getter +@Setter +@TableName("r_upload_work_order") +public class RUploadWorkOrderPO { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId("obj_Id") + private String objId; + + /** + * 省公司id + */ + private String provinceId; + + /** + * 省公司名称 + */ + private String provinceName; + + /** + * 市公司 + */ + private String cityOrgId; + + /** + * 市公司名称 + */ + private String cityOrgName; + + /** + * 运维单位ID + */ + private String maintainerId; + + /** + * 运维单位名称 + */ + private String maintainerName; + + /** + * 运维班组Id + */ + private String maintcrewId; + + /** + * 运维班组名称 + */ + private String maintcrewName; + + /** + * 工单编号 + */ + private String orderId; + + /** + * 工单类型(字典) + */ + private String orderType; + + /** + * 工单来源(字典) + */ + private String orderSource; + + /** + * 业务分类(字典) + */ + private String businessType; + + /** + * 工单内容 + */ + private String orderContent; + + /** + * 事件时间 + */ + private LocalDate eventTime; + + /** + * 下发时间 + */ + private LocalDateTime distributeTime; + + /** + * 闭环时间 + */ + private LocalDate closedLoopTime; + + private LocalDateTime ctime; + + private LocalDateTime mtime; + + /** + * 0.删除 1.正常 + */ + private Boolean isDeleted; + + /** + * 3-省,4-市 + */ + private String orgLevel; + + /** + * 0-否,1-是 + */ + private String isFeedback; + + /** + * 反馈人员 + */ + private String feedbackUser; + + /** + * 反馈时间 + */ + private LocalDate feedbackTime; + + /** + * 处理措施 + */ + private String handlingMeasures; + + /** + * 接收时间 + */ + private LocalDateTime receiveTime; + + /** + * 0-否,1-是 + */ + private String uploadStatus; + + /** + * 工单状态(字典) + */ + private String orderStatus; + + /** + * 上报时间 + */ + private LocalDate uploadTime; + + /** + * 下发人员 + */ + private String distributeUser; + + /** + * 要求整改时间 + */ + private LocalDate planRectificationTime; + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java index f190d005e..e67a69111 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/upload/DimBusBarVO.java @@ -11,6 +11,9 @@ import lombok.Data; @Data public class DimBusBarVO { + private String midId; + private String lineId; + private String astId; private String busName; private String busVoltageLevel; @@ -64,7 +67,6 @@ public class DimBusBarVO { private String whetherOptimalName; - private String maintOrg; private String maintOrgName; private String monitorId; @@ -80,7 +82,7 @@ public class DimBusBarVO { @Data public static class DimBusBarMonitorVoltageVO{ - private String actualCollectNum; + private String busId; private String busName; private String busVoltageLevel; @@ -103,4 +105,81 @@ public class DimBusBarVO { private String whetherOptimalName; } + + /** + * 母线下有效测点 + * @author cdf + * @date 2024/6/17 + */ + @Data + public static class DimBusBarEffectMonitorVO{ + private String busId; + private String busName; + private String busVoltageLevel; + private String busVoltageLevelName; + private String cityOrg; + private String cityOrgName; + private String maintOrg; + private String maintOrgName; + private String monitorId; + private String monitorName; + private String stationId; + private String stationName; + private String status; + private String statusName; + } + + + /** + * 母线下有效测点 + * @author cdf + * @date 2024/6/17 + */ + @Data + public static class DimBusBarMonitorScaleVO{ + private Integer actualCollectNum; + private String busId; + private String busName; + private String busVoltageLevel; + private String busVoltageLevelName; + private String cityOrg; + private String cityOrgName; + private String monitorId; + private String monitorName; + private Double dataFullRate; + private Integer expectCollectNum; + private String maintOrg; + private String maintOrgName; + private String statDate; + private String stationId; + private String stationName; + private String status; + private String statusName; + private String whetherOptimal; + private String whetherOptimalName; + } + + + @Data + public static class DimBusBarMonitorAvgVO{ + private String busName; + private String cityOrg; + private String cityOrgName; + private String harmonicNum; + private String indexValue; + private String lineVoltage; + private String maintOrg; + private String maintOrgName; + private String monitorId; + private String monitorName; + private String seq; + private String statDate; + private String stationId; + private String stationName; + private String status; + private String statusName; + private String terminalConnect; + private String terminalConnectName; + } + } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java index ab7fbcef3..af3c7d95b 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/EvaluationDownController.java @@ -38,53 +38,63 @@ public class EvaluationDownController extends BaseController { */ @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getBaseEvaOnlineBusDetail") - @ApiOperation("国网上送-接收总部基准水平评估在运母线数量详情下穿接口") + @ApiOperation("国网上送-在运母线数量详情下穿接口") @ApiImplicitParam(name = "param", value = "实体参数", required = true) - public PmsHttpResult> getBaseEvaOnlineBusDetail(@RequestBody DimBusBarParam param) { + public PmsHttpResult> getBaseEvaOnlineBusDetail(@RequestBody DimBusBarParam param) { String methodDescribe = getMethodDescribe("getBaseEvaOnlineBusDetail"); - Page page = evaluationDataService.getBaseEvaOnlineBusDetail(param); + PmsPage page = evaluationDataService.getBaseEvaOnlineBusDetail(param); return new PmsHttpResult<>(0, page); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getBaseEvaMonitorBusDetail") - @ApiOperation("国网上送-接收总部基准水平评估监测母线列表详情下穿接口") + @ApiOperation("国网上送-监测母线列表详情下穿接口") @ApiImplicitParam(name = "param", value = "实体参数", required = true) - public PmsHttpResult> getBaseEvaMonitorBusDetail(@RequestBody DimBusBarParam param) { - String methodDescribe = getMethodDescribe("getBaseEvaOnlineBusDetail"); - Page page = evaluationDataService.getBaseEvaMonitorBusDetail(param); + public PmsHttpResult> getBaseEvaMonitorBusDetail(@RequestBody DimBusBarParam param) { + String methodDescribe = getMethodDescribe("getBaseEvaMonitorBusDetail"); + PmsPage page = evaluationDataService.getBaseEvaMonitorBusDetail(param); return new PmsHttpResult<>(0, page); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getBusListByVoltageLevel") - @ApiOperation("国网上送-接收总部基准水平评估监测母线列表详情下穿接口") + @ApiOperation("国网上送-根据交流均值查询母线详情下穿接口") @ApiImplicitParam(name = "param", value = "实体参数", required = true) - public PmsHttpResult> getBusListByVoltageLevel(@RequestBody DimBusBarParam param) { + public PmsHttpResult> getBusListByVoltageLevel(@RequestBody DimBusBarParam param) { String methodDescribe = getMethodDescribe("getBusListByVoltageLevel"); - Page page = evaluationDataService.getBusListByVoltageLevel(param); + PmsPage page = evaluationDataService.getBusListByVoltageLevel(param); return new PmsHttpResult<>(0, page); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getMonitorListByBus") - @ApiOperation("国网上送-接收总部基准水平评估监测母线下有效监测点详情下穿接口") + @ApiOperation("国网上送-监测母线下有效监测点详情下穿接口") @ApiImplicitParam(name = "param", value = "实体参数", required = true) - public PmsHttpResult> getMonitorListByBus(@RequestBody DimBusBarParam param) { + public PmsHttpResult> getMonitorListByBus(@RequestBody DimBusBarParam param) { String methodDescribe = getMethodDescribe("getMonitorListByBus"); - PmsPage page = evaluationDataService.getMonitorListByBus(param); + PmsPage page = evaluationDataService.getMonitorListByBus(param); return new PmsHttpResult<>(0, page); } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/getBaseEvaBusMonitorList") - @ApiOperation("国网上送-接收总部基准水平评估电压等级母线监测点列表详情下穿接口") + @ApiOperation("国网上送-电压等级母线监测点列表详情下穿接口") @ApiImplicitParam(name = "param", value = "实体参数", required = true) - public PmsHttpResult> getBaseEvaBusMonitorList(@RequestBody DimBusBarParam param) { + public PmsHttpResult> getBaseEvaBusMonitorList(@RequestBody DimBusBarParam param) { String methodDescribe = getMethodDescribe("getBaseEvaBusMonitorList"); - PmsPage page = evaluationDataService.getBaseEvaBusMonitorList(param); + PmsPage page = evaluationDataService.getBaseEvaBusMonitorList(param); + return new PmsHttpResult<>(0, page); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getBusAvgListByMonitorId") + @ApiOperation("国网上送-根据母线id查询均值列表详情下穿接口") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public PmsHttpResult> getBusAvgListByMonitorId(@RequestBody DimBusBarParam param) { + String methodDescribe = getMethodDescribe("getBusAvgListByMonitorId"); + PmsPage page = evaluationDataService.getBusAvgListByMonitorId(param); return new PmsHttpResult<>(0, page); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadWorkOrderController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadWorkOrderController.java new file mode 100644 index 000000000..d5f4a7722 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/RUploadWorkOrderController.java @@ -0,0 +1,135 @@ +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.constant.OperateType; +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.common.utils.LogUtil; +import com.njcn.harmonic.pojo.param.UploadDataParam; +import com.njcn.harmonic.pojo.param.upload.RUploadWorkOrderParam; +import com.njcn.harmonic.pojo.po.upload.RUploadWorkOrderPO; +import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo; +import com.njcn.harmonic.service.upload.IRUploadWorkOrderService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +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; +import com.njcn.web.controller.BaseController; + +import java.util.List; + +import static org.reflections.Reflections.log; + +/** + *

+ * 用于存储总部下发的工单信息 前端控制器 + *

+ * + * @author cdf + * @since 2024-06-18 + */ +@RestController +@RequestMapping("/pms-tech-powerquality-start/pqWorkorderDistributeSuperviseController/") +@RequiredArgsConstructor +@Slf4j +public class RUploadWorkOrderController extends BaseController { + + private final IRUploadWorkOrderService irUploadWorkOrderService; + + /** + * 用于总部调用省级下发工单信息(总部调用) + * @author cdf + * @date 2024/6/18 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/insertWorkorderDistributeSupervise") + @ApiOperation("用于总部调用省级下发工单信息") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public HttpResult insertWorkorderDistributeSupervise(@RequestBody RUploadWorkOrderParam param) { + String methodDescribe = getMethodDescribe("insertWorkorderDistributeSupervise"); + LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); + boolean result = irUploadWorkOrderService.insertWorkorderDistributeSupervise(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + /** + * 总部下发工单后的闭环操作(总部调用) + * @author cdf + * @date 2024/6/18 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE) + @PostMapping("/closeWorkorderDistributeSupervise") + @ApiOperation("总部下发工单后的闭环操作") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public HttpResult closeWorkorderDistributeSupervise(@RequestBody RUploadWorkOrderParam param) { + String methodDescribe = getMethodDescribe("closeWorkorderDistributeSupervise"); + LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); + boolean result = irUploadWorkOrderService.closeWorkorderDistributeSupervise(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + + /** + * 调用总部反馈接口(总部调用) + * @author cdf + * @date 2024/6/18 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/receiveFeedbackInfo") + @ApiOperation("上送反馈工单处理措施") + @ApiImplicitParam(name = "ids", value = "工单主键", required = true) + public HttpResult receiveFeedbackInfo(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("receiveFeedbackInfo"); + LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, ids); + boolean result = irUploadWorkOrderService.receiveFeedbackInfo(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + /** + * 分页查询 + * @author cdf + * @date 2024/6/18 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/pageList") + @ApiOperation("分页查询工单") + @ApiImplicitParam(name = "rUploadWorkOrderQuery", value = "请求参数", required = true) + public HttpResult> pageList(@RequestBody RUploadWorkOrderParam.RUploadWorkOrderQuery rUploadWorkOrderQuery) { + String methodDescribe = getMethodDescribe("pageList"); + Page result = irUploadWorkOrderService.pageList(rUploadWorkOrderQuery); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + /** + * 填写反馈措施 + * @author cdf + * @date 2024/6/18 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.UPDATE) + @PostMapping("/feedBackAdd") + @ApiOperation("填写反馈措施") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public HttpResult feedBackAdd(@RequestBody RUploadWorkOrderParam param) { + String methodDescribe = getMethodDescribe("feedBackAdd"); + LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); + boolean result = irUploadWorkOrderService.feedBackAdd(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml index 245971be2..7a25e1e39 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RUploadEvaluationDataDMapper.xml @@ -5,23 +5,31 @@ + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java index 1781dbc3b..6c8d02bb4 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadEvaluationDataDMapper.java @@ -20,4 +20,5 @@ public interface RUploadEvaluationDataDMapper extends BaseMapper getBaseEvaOnlineBusDetail(@Param("page") Page page, @Param("param") DimBusBarParam param); + DimBusBarVO getDetail(@Param("param") DimBusBarParam param); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadWorkOrderMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadWorkOrderMapper.java new file mode 100644 index 000000000..767ecf3bb --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/upload/RUploadWorkOrderMapper.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.mapper.upload; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.upload.RUploadWorkOrderPO; + +/** + *

+ * 用于存储总部下发的工单信息 Mapper 接口 + *

+ * + * @author cdf + * @since 2024-06-18 + */ +public interface RUploadWorkOrderMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java index 69eeb61d4..39f8970d4 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IEvaluationDataService.java @@ -32,22 +32,28 @@ public interface IEvaluationDataService extends IService */ String uploadEvaluationData(UploadParam param); + + + /** *接收总部基准水平评估在运母线数量详情下穿接口 */ - Page getBaseEvaOnlineBusDetail(DimBusBarParam param); + PmsPage getBaseEvaOnlineBusDetail(DimBusBarParam param); /** *接收总部基准水平评估监测母线列表详情下穿接口 */ - PagegetBaseEvaMonitorBusDetail(DimBusBarParam param); + PmsPagegetBaseEvaMonitorBusDetail(DimBusBarParam param); - Page getBusListByVoltageLevel(DimBusBarParam param); + PmsPage getBusListByVoltageLevel(DimBusBarParam param); - PmsPage getMonitorListByBus(DimBusBarParam param); + PmsPage getMonitorListByBus(DimBusBarParam param); + + PmsPage getBaseEvaBusMonitorList(DimBusBarParam param); + + PmsPage getBusAvgListByMonitorId(DimBusBarParam param); - PmsPage getBaseEvaBusMonitorList(DimBusBarParam param); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadWorkOrderService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadWorkOrderService.java new file mode 100644 index 000000000..b56c65805 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/IRUploadWorkOrderService.java @@ -0,0 +1,36 @@ +package com.njcn.harmonic.service.upload; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.harmonic.pojo.param.upload.RUploadWorkOrderParam; +import com.njcn.harmonic.pojo.po.upload.RUploadWorkOrderPO; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + *

+ * 用于存储总部下发的工单信息 服务类 + *

+ * + * @author cdf + * @since 2024-06-18 + */ +public interface IRUploadWorkOrderService extends IService { + + + Boolean insertWorkorderDistributeSupervise(RUploadWorkOrderParam param); + + + Boolean closeWorkorderDistributeSupervise(RUploadWorkOrderParam param); + + Boolean receiveFeedbackInfo(List ids); + + Page pageList(RUploadWorkOrderParam.RUploadWorkOrderQuery query); + + Boolean feedBackAdd(RUploadWorkOrderParam param); + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java index 6026d7410..4d174d215 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/REvaluationDataServiceImpl.java @@ -13,20 +13,29 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.baomidou.mybatisplus.extension.api.R; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.pms.api.LineIntegrityDataClient; import com.njcn.device.pms.api.MonitorClient; import com.njcn.device.pms.api.PmsMidLedgerClient; +import com.njcn.device.pms.pojo.param.DataQualityDetailsParam; import com.njcn.device.pms.pojo.param.TerminalQueryParam; import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.po.PmsMidLedger; +import com.njcn.device.pq.pojo.po.RStatIntegrityD; +import com.njcn.harmonic.mapper.RStatDataVDMapper; +import com.njcn.harmonic.mapper.RStatLimitRateDMapper; import com.njcn.harmonic.mapper.upload.*; import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO; import com.njcn.harmonic.pojo.dto.upload.RDimUpDTO; import com.njcn.harmonic.pojo.param.UploadDataParam; import com.njcn.harmonic.pojo.param.UploadParam; import com.njcn.harmonic.pojo.param.upload.DimBusBarParam; +import com.njcn.harmonic.pojo.po.RStatDataVD; +import com.njcn.harmonic.pojo.po.day.RStatDataVDPO; +import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO; import com.njcn.harmonic.pojo.po.upload.*; import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO; import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo; @@ -34,6 +43,7 @@ import com.njcn.harmonic.service.upload.IEvaluationDataService; import com.njcn.harmonic.service.upload.IRUploadDataLogService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.pojo.po.DictData; import com.njcn.user.api.DeptFeignClient; import com.njcn.user.pojo.po.Dept; @@ -48,6 +58,8 @@ import org.apache.commons.collections4.ListUtils; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.DecimalFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -91,7 +103,11 @@ public class REvaluationDataServiceImpl extends ServiceImpl l = dtoList.stream().map(PqEvaluationCreateDTO::getId).collect(Collectors.toList()); - returnInformation(i, l, send,resultLog,resultFlag,localDate); + returnInformation(i, l, send, resultLog, resultFlag, localDate); } - if(resultFlag.get()){ - resultLog.append(" 上送" + list.size()+ "条数据成功"); - assUploadLog(localDate,resultLog,resultFlag); + if (resultFlag.get()) { + resultLog.append(" 上送" + list.size() + "条数据成功"); + assUploadLog(localDate, resultLog, resultFlag); } return "上送成功:成功数据" + list.size() + "条"; } - private void assUploadLog(LocalDate statisticDate,StrBuilder msg,AtomicBoolean resultFlag){ + private void assUploadLog(LocalDate statisticDate, StrBuilder msg, AtomicBoolean resultFlag) { RUploadDataLog rUploadDataLog = new RUploadDataLog(); rUploadDataLog.setStatisticDate(statisticDate); rUploadDataLog.setBigType(0); rUploadDataLog.setSmallType(0); rUploadDataLog.setCreateTime(LocalDateTime.now()); - rUploadDataLog.setResult(resultFlag.get()?1:0); + rUploadDataLog.setResult(resultFlag.get() ? 1 : 0); rUploadDataLog.setResultMsg(msg.toString()); irUploadDataLogService.saveOrUpdateByMultiId(rUploadDataLog); } @Override - public Page getBaseEvaOnlineBusDetail(DimBusBarParam param) { + public PmsPage getBaseEvaOnlineBusDetail(DimBusBarParam param) { + PmsPage pmsPage = new PmsPage<>(param.getPageNum(), param.getPageSize()); List temBusIds = new ArrayList<>(); - LocalDate begin = LocalDate.parse(param.getStartTime()); if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_D.getCode())) { //具体日期投运,监测台账查询 @@ -228,7 +244,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl(Arrays.asList(pmsRunStatisticD.getRunBusIds().split(StrUtil.COMMA))); + temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getRunBusIds().split(StrUtil.COMMA))); } } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())) { @@ -238,7 +254,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl(Arrays.asList(pmsRunStatisticM.getRunBusIds().split(StrUtil.COMMA))); + temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticM.getRunBusIds().split(StrUtil.COMMA))); } } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())) { @@ -248,62 +264,135 @@ public class REvaluationDataServiceImpl extends ServiceImpl(Arrays.asList(pmsRunStatisticY.getOnlineBusMidIds().split(StrUtil.COMMA))); + temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticY.getOnlineBusMidIds().split(StrUtil.COMMA))); } } if (CollectionUtil.isEmpty(temBusIds)) { - return new Page<>(); + return new PmsPage<>(); } param.setOnlineBusIds(temBusIds); - return this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + if (CollUtil.isNotEmpty(page.getRecords())) { + List voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + List monitorDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + Map monitorDicMap = monitorDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + for (DimBusBarVO dimBusBarVO : page.getRecords()) { + dimBusBarVO.setBusVoltageLevelName(voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getName()); + dimBusBarVO.setStationVoltageLevelName(voltageMap.get(dimBusBarVO.getStationVoltageLevel()).getName()); + dimBusBarVO.setBusVoltageLevel(String.format("%02d", voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getAlgoDescribe())); + dimBusBarVO.setStationVoltageLevel(String.format("%02d", voltageMap.get(dimBusBarVO.getStationVoltageLevel()).getAlgoDescribe())); + dimBusBarVO.setPsrStateName(monitorDicMap.get(dimBusBarVO.getPsrStateName()).getName()); + } + } + BeanUtil.copyProperties(page, pmsPage); + pmsPage.setList(page.getRecords()); + return pmsPage; } @Override - public Page getBaseEvaMonitorBusDetail(DimBusBarParam param) { + public PmsPage getBaseEvaMonitorBusDetail(DimBusBarParam param) { + PmsPage pmsPage = new PmsPage<>(param.getPageNum(), param.getPageSize()); List temBusIds = new ArrayList<>(); + Map effectMap = new HashMap<>(); + LocalDate begin = LocalDate.parse(param.getStartTime()); if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_D.getCode())) { //具体日期投运,监测台账查询 LambdaQueryWrapper dayLam = new LambdaQueryWrapper<>(); - dayLam.select(PmsRunStatisticD::getOnlineBusIds) + dayLam.select(PmsRunStatisticD::getOnlineBusMidIds) .eq(PmsRunStatisticD::getStatisticDate, begin) .eq(PmsRunStatisticD::getDeptId, param.getOrgId()); PmsRunStatisticD pmsRunStatisticD = pmsRunStatisticDMapper.selectOne(dayLam); if (Objects.nonNull(pmsRunStatisticD)) { - temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getOnlineBusIds().split(StrUtil.COMMA))); + if (StrUtil.isNotBlank(pmsRunStatisticD.getOnlineBusMidIds())) { + temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticD.getOnlineBusMidIds().split(StrUtil.COMMA))); + + List rDimBusUpDList = rDimBusUpDMapper.selectList(new LambdaQueryWrapper().in(RDimBusUpD::getMidBusId, temBusIds) + .eq(RDimBusUpD::getStatisticDate, param.getStartTime()).eq(RDimBusUpD::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpD::getBusId, RDimBusUpD::getEffectIds)); + } } + } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())) { //具体日期投运,监测台账查询 LambdaQueryWrapper dayLam = new LambdaQueryWrapper<>(); - dayLam.select(PmsRunStatisticM::getOnlineBusIds) + dayLam.select(PmsRunStatisticM::getOnlineBusMidIds) .eq(PmsRunStatisticM::getStatisticDate, begin).eq(PmsRunStatisticM::getDeptId, param.getOrgId()); PmsRunStatisticM pmsRunStatisticM = pmsRunStatisticMMapper.selectOne(dayLam); if (Objects.nonNull(pmsRunStatisticM)) { - temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticM.getOnlineBusIds().split(StrUtil.COMMA))); + if (StrUtil.isNotBlank(pmsRunStatisticM.getOnlineBusMidIds())) { + temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticM.getOnlineBusMidIds().split(StrUtil.COMMA))); + + List rDimBusUpDList = rDimBusUpMMapper.selectList(new LambdaQueryWrapper().in(RDimBusUpM::getMidBusId, temBusIds) + .eq(RDimBusUpM::getStatisticDate, param.getStartTime()).eq(RDimBusUpM::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpM::getBusId, RDimBusUpM::getEffectIds)); + } } } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())) { //具体日期投运,监测台账查询 LambdaQueryWrapper dayLam = new LambdaQueryWrapper<>(); - dayLam.select(PmsRunStatisticY::getOnlineBusIds) + dayLam.select(PmsRunStatisticY::getOnlineBusMidIds) .eq(PmsRunStatisticY::getStatisticDate, begin).eq(PmsRunStatisticY::getDeptId, param.getNodeId()); PmsRunStatisticY pmsRunStatisticY = pmsRunStatisticYMapper.selectOne(dayLam); if (Objects.nonNull(pmsRunStatisticY)) { - temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticY.getOnlineBusIds().split(StrUtil.COMMA))); + if (StrUtil.isNotBlank(pmsRunStatisticY.getOnlineBusMidIds())) { + temBusIds = new ArrayList<>(Arrays.asList(pmsRunStatisticY.getOnlineBusMidIds().split(StrUtil.COMMA))); + + List rDimBusUpDList = rDimBusUpYMapper.selectList(new LambdaQueryWrapper().in(RDimBusUpY::getMidBusId, temBusIds) + .eq(RDimBusUpY::getStatisticDate, param.getStartTime()).eq(RDimBusUpY::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpY::getBusId, RDimBusUpY::getEffectIds)); + } } } if (CollectionUtil.isEmpty(temBusIds)) { - return new Page<>(); + return new PmsPage<>(); } param.setOnlineBusIds(temBusIds); - return this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + if (CollUtil.isNotEmpty(page.getRecords())) { + List voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + List monitorDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + Map monitorDicMap = monitorDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + for (DimBusBarVO dimBusBarVO : page.getRecords()) { + dimBusBarVO.setBusVoltageLevelName(voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getName()); + dimBusBarVO.setStationVoltageLevelName(voltageMap.get(dimBusBarVO.getStationVoltageLevel()).getName()); + dimBusBarVO.setBusVoltageLevel(String.format("%02d", voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getAlgoDescribe())); + dimBusBarVO.setStationVoltageLevel(String.format("%02d", voltageMap.get(dimBusBarVO.getStationVoltageLevel()).getAlgoDescribe())); + dimBusBarVO.setPsrStateName(monitorDicMap.get(dimBusBarVO.getPsrStateName()).getName()); + + String tem = effectMap.get(dimBusBarVO.getLineId()); + int count = 0; + if (tem.length() > 0) { + for (int i = 0; i < tem.length(); i++) { + if (tem.charAt(i) == ',') { + count++; + } + } + } + dimBusBarVO.setBusEfectiveMnitorNum(count); + + } + } + + BeanUtil.copyProperties(page, pmsPage); + pmsPage.setList(page.getRecords()); + return pmsPage; } @Override - public Page getBusListByVoltageLevel(DimBusBarParam param) { + public PmsPage getBusListByVoltageLevel(DimBusBarParam param) { + PmsPage result = new PmsPage<>(param.getPageNum(), param.getPageSize()); + List temBusIds = new ArrayList<>(); List rDimUpDTOList = new ArrayList<>(); @@ -320,12 +409,20 @@ public class REvaluationDataServiceImpl extends ServiceImpl(); + return result; } param.setOnlineBusIds(temBusIds); Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); if (CollectionUtil.isNotEmpty(page.getRecords())) { Map map = rDimUpDTOList.stream().collect(Collectors.toMap(RDimUpDTO::getBusMidId, Function.identity())); + + List voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + List monitorDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData(); + Map monitorDicMap = monitorDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + page.getRecords().forEach(it -> { if (map.containsKey(it.getAstId())) { RDimUpDTO rDimUpDTO = map.get(it.getAstId()); @@ -333,74 +430,309 @@ public class REvaluationDataServiceImpl extends ServiceImpl getMonitorListByBus(DimBusBarParam param) { - if(StrUtil.isBlank(param.getBusId())){ - return new PmsPage<>(); - } - - PmsPage result = new PmsPage<>(param.getPageNum(),param.getPageSize()); - - List rDimUpDTOList = new ArrayList<>(); - List midBusIds = this.busTargetAss(param, Stream.of(param.getBusId()).collect(Collectors.toList()), rDimUpDTOList); - if(CollectionUtil.isEmpty(midBusIds)){ - return new PmsPage<>(); - } - List pmsMidLedgerList = pmsMidLedgerClient.getPmsMidLedgerList(midBusIds).getData(); - if(CollectionUtil.isEmpty(pmsMidLedgerList)){ - return new PmsPage<>(); - } - Map midLedgerMap = pmsMidLedgerList.stream().collect(Collectors.toMap(PmsMidLedger::getId,Function.identity())); - List effectIds = rDimUpDTOList.stream().map(RDimUpDTO::getEffectIds).filter(Objects::nonNull).collect(Collectors.toList()); - - List effectId = rDimUpDTOList.stream().map(RDimUpDTO::getEffectId).filter(Objects::nonNull).collect(Collectors.toList()); - - - Map busMap = rDimUpDTOList.stream().collect(Collectors.toMap(RDimUpDTO::getBusId,Function.identity())); - - List monitorIds = new ArrayList<>(); - effectIds.forEach(it-> monitorIds.addAll(Arrays.asList(it.split(StrUtil.COMMA)))); - - TerminalQueryParam terminalQueryParam = new TerminalQueryParam(); - terminalQueryParam.setMonitorIds(monitorIds); - Page page = monitorClient.getMonitorPage(terminalQueryParam).getData(); - List temList = new ArrayList<>(); - page.getRecords().forEach(it->{ - DimBusBarVO.DimBusBarMonitorVO tem = new DimBusBarVO.DimBusBarMonitorVO(); - tem.setMonitorId(it.getMonitorId()); - RDimUpDTO rDimUpDTO = busMap.get(it.getLineId()); - PmsMidLedger pmsMidLedger = midLedgerMap.get(rDimUpDTO.getBusMidId()); - tem.setBusId(pmsMidLedger.getId()); - tem.setBusName(pmsMidLedger.getName()); - tem.setId(IdUtil.simpleUUID()); - tem.setCityOrg(pmsMidLedger.getCityOrg()); - tem.setCityOrgName(pmsMidLedger.getCityOrgName()); - tem.setMaintOrg(pmsMidLedger.getSectionId()); - tem.setMaintOrgName(pmsMidLedger.getSection()); - tem.setStatDate(param.getStatDate()); - tem.setStatus("01"); - tem.setStatusName("投运"); - - if(effectId.contains(it.getId())){ - tem.setWhetherOptimal("是"); - tem.setWhetherOptimalName(it.getName()); - } - tem.setMonitorName(it.getName()); - temList.add(tem); - }); - result.setTotal(page.getTotal()); - result.setList(temList); + BeanUtil.copyProperties(page, result); + result.setList(page.getRecords()); return result; } @Override - public PmsPage getBaseEvaBusMonitorList(DimBusBarParam param) { - return null; + public PmsPage getMonitorListByBus(DimBusBarParam param) { + PmsPage result = new PmsPage<>(param.getPageNum(), param.getPageSize()); + if (StrUtil.isBlank(param.getBusId())) { + return result; + } + List voList = new ArrayList<>(); + + Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + if (CollUtil.isNotEmpty(page.getRecords())) { + Map effectMap = new HashMap<>(); + if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_D.getCode())) { + //具体日期投运,监测台账查询 + List rDimBusUpDList = rDimBusUpDMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpD::getMidBusId, param.getBusId()) + .eq(RDimBusUpD::getStatisticDate, param.getStartTime()).eq(RDimBusUpD::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpD::getBusId, RDimBusUpD::getEffectIds)); + } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())) { + List rDimBusUpDList = rDimBusUpMMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpM::getMidBusId, param.getBusId()) + .eq(RDimBusUpM::getStatisticDate, param.getStartTime()).eq(RDimBusUpM::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpM::getBusId, RDimBusUpM::getEffectIds)); + } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())) { + List rDimBusUpDList = rDimBusUpYMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpY::getMidBusId, param.getBusId()) + .eq(RDimBusUpY::getStatisticDate, param.getStartTime()).eq(RDimBusUpY::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpY::getBusId, RDimBusUpY::getEffectIds)); + } + + DimBusBarVO dimBusBarVO = page.getRecords().get(0); + if (effectMap.containsKey(dimBusBarVO.getLineId())) { + String effectIds = effectMap.get(dimBusBarVO.getLineId()); + if (StrUtil.isNotBlank(effectIds)) { + List monitorIds = new ArrayList<>(Arrays.asList(effectIds.split(StrUtil.COMMA))); + + List monitorList = monitorClient.getMonitorList(monitorIds).getData(); + if (CollUtil.isNotEmpty(monitorList)) { + List ids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + harmMonitorTarget(param, queryWrapper); + queryWrapper.in("my_index", ids); + List rStatLimitRateDPOList = rStatLimitRateDMapper.selectList(queryWrapper); + if (CollUtil.isNotEmpty(rStatLimitRateDPOList)) { + Map> map = rStatLimitRateDPOList.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)); + + List voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + for (Monitor monitor : monitorList) { + if (map.containsKey(monitor.getId())) { + DimBusBarVO.DimBusBarEffectMonitorVO vo = new DimBusBarVO.DimBusBarEffectMonitorVO(); + vo.setBusId(dimBusBarVO.getMidId()); + vo.setBusName(dimBusBarVO.getBusName()); + vo.setBusVoltageLevelName(voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getName()); + vo.setBusVoltageLevel(String.format("%02d", voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getAlgoDescribe())); + vo.setCityOrg(dimBusBarVO.getCityOrg()); + vo.setCityOrgName(dimBusBarVO.getCityOrgName()); + vo.setMaintOrg(dimBusBarVO.getMaintOrg()); + vo.setMaintOrgName(dimBusBarVO.getMaintOrgName()); + vo.setMonitorId(monitor.getMonitorId()); + vo.setMonitorName(monitor.getName()); + vo.setStationId(dimBusBarVO.getStationId()); + vo.setStationName(dimBusBarVO.getStationName()); + vo.setStatus("01"); + vo.setStatusName("运行"); + voList.add(vo); + } + } + } + } + } + + } + + + } + result.setTotal(voList.size()); + result.setList(voList); + return result; + } + + @Override + public PmsPage getBaseEvaBusMonitorList(DimBusBarParam param) { + PmsPage result = new PmsPage<>(param.getPageNum(), param.getPageSize()); + if (StrUtil.isBlank(param.getBusId())) { + return result; + } + Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + if (CollUtil.isNotEmpty(page.getRecords())) { + List voList = new ArrayList<>(); + DimBusBarVO dimBusBarVO = page.getRecords().get(0); + Map effectMap = new HashMap<>(); + if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_D.getCode())) { + //具体日期投运,监测台账查询 + List rDimBusUpDList = rDimBusUpDMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpD::getMidBusId, param.getBusId()) + .eq(RDimBusUpD::getStatisticDate, param.getStartTime()).eq(RDimBusUpD::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpD::getBusId, RDimBusUpD::getEffectIds)); + } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())) { + List rDimBusUpDList = rDimBusUpMMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpM::getMidBusId, param.getBusId()) + .eq(RDimBusUpM::getStatisticDate, param.getStartTime()).eq(RDimBusUpM::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpM::getBusId, RDimBusUpM::getEffectIds)); + } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())) { + List rDimBusUpDList = rDimBusUpYMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpY::getMidBusId, param.getBusId()) + .eq(RDimBusUpY::getStatisticDate, param.getStartTime()).eq(RDimBusUpY::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpY::getBusId, RDimBusUpY::getEffectIds)); + } + + if (effectMap.containsKey(dimBusBarVO.getLineId())) { + String effectIds = effectMap.get(dimBusBarVO.getLineId()); + if (StrUtil.isNotBlank(effectIds)) { + List monitorIds = new ArrayList<>(Arrays.asList(effectIds.split(StrUtil.COMMA))); + + List monitorList = monitorClient.getMonitorList(monitorIds).getData(); + if (CollUtil.isNotEmpty(monitorList)) { + List ids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList()); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + harmMonitorTarget(param, queryWrapper); + queryWrapper.in("my_index", ids); + List rStatLimitRateDPOList = rStatLimitRateDMapper.selectList(queryWrapper); + if (CollUtil.isNotEmpty(rStatLimitRateDPOList)) { + Map> map = rStatLimitRateDPOList.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)); + + + if (CollUtil.isNotEmpty(monitorList)) { + DataQualityDetailsParam dataQualityDetailsParam = new DataQualityDetailsParam(); + dataQualityDetailsParam.setCheckRules(monitorIds); + dataQualityDetailsParam.setStartTime(param.getStartTime()); + dataQualityDetailsParam.setEndTime(param.getEndTime()); + List rStatIntegrityDList = lineIntegrityDataClient.getIntegrityData(dataQualityDetailsParam).getData(); + Map> stringListMap = rStatIntegrityDList.stream().collect(Collectors.groupingBy(RStatIntegrityD::getLineIndex)); + + List voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDic.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + for (Monitor monitor : monitorList) { + if (map.containsKey(monitor.getId())) { + + + DimBusBarVO.DimBusBarMonitorVO tem = new DimBusBarVO.DimBusBarMonitorVO(); + tem.setMonitorId(monitor.getMonitorId()); + + if (monitor.getId().equals(monitorIds.get(monitorIds.size() - 1))) { + tem.setWhetherOptimal("1"); + tem.setWhetherOptimalName("是"); + } else { + tem.setWhetherOptimal("0"); + tem.setWhetherOptimalName("否"); + } + + List temR = stringListMap.get(monitor.getId()); + int due = temR.stream().mapToInt(RStatIntegrityD::getDueTime).sum(); + int real = temR.stream().mapToInt(RStatIntegrityD::getRealTime).sum(); + + tem.setActualCollectNum(real); + tem.setExpectCollectNum(due); + if (due == 0) { + tem.setDataFullRate(0.000f); + } else { + DecimalFormat decimalFormat = new DecimalFormat("#0.000"); + String rate = decimalFormat.format((float) real / due * 100); + tem.setDataFullRate(Float.valueOf(rate)); + } + tem.setBusId(dimBusBarVO.getMidId()); + tem.setBusName(dimBusBarVO.getBusName()); + tem.setId(IdUtil.simpleUUID()); + tem.setCityOrg(dimBusBarVO.getCityOrg()); + tem.setCityOrgName(dimBusBarVO.getCityOrgName()); + tem.setMaintOrg(dimBusBarVO.getCityOrg()); + tem.setMaintOrgName(dimBusBarVO.getCityOrgName()); + + tem.setStationId(dimBusBarVO.getStationId()); + tem.setStationName(dimBusBarVO.getStationName()); + + tem.setBusVoltageLevelName(voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getName()); + tem.setBusVoltageLevel(String.format("%02d", voltageMap.get(dimBusBarVO.getBusVoltageLevel()).getAlgoDescribe())); + + tem.setStatus("01"); + tem.setStatusName("运行"); + tem.setMonitorName(monitor.getName()); + tem.setStatDate(param.getStatDate()); + voList.add(tem); + } + result.setList(voList); + result.setTotal(voList.size()); + } + } + } + } + } + } + } + + return result; + } + + @Override + public PmsPage getBusAvgListByMonitorId(DimBusBarParam param) { + PmsPage result = new PmsPage<>(param.getPageNum(), param.getPageSize()); + if (StrUtil.isBlank(param.getBusId())) { + return result; + } + List voList = new ArrayList<>(); + + Page page = this.baseMapper.getBaseEvaOnlineBusDetail(new Page<>(param.getPageNum(), param.getPageSize()), param); + if (CollUtil.isNotEmpty(page.getRecords())) { + Map effectMap = new HashMap<>(); + if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_D.getCode())) { + //具体日期投运,监测台账查询 + List rDimBusUpDList = rDimBusUpDMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpD::getMidBusId, param.getBusId()) + .eq(RDimBusUpD::getStatisticDate, param.getStartTime()).eq(RDimBusUpD::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpD::getBusId, RDimBusUpD::getEffectIds)); + } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_M.getCode())) { + List rDimBusUpDList = rDimBusUpMMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpM::getMidBusId, param.getBusId()) + .eq(RDimBusUpM::getStatisticDate, param.getStartTime()).eq(RDimBusUpM::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpM::getBusId, RDimBusUpM::getEffectIds)); + } else if (param.getStatType().equals(DicDataEnum.STATISTICAL_TYPE_Y.getCode())) { + List rDimBusUpDList = rDimBusUpYMapper.selectList(new LambdaQueryWrapper().eq(RDimBusUpY::getMidBusId, param.getBusId()) + .eq(RDimBusUpY::getStatisticDate, param.getStartTime()).eq(RDimBusUpY::getPhasicType, "A")); + effectMap = rDimBusUpDList.stream().collect(Collectors.toMap(RDimBusUpY::getBusId, RDimBusUpY::getEffectIds)); + } + + DimBusBarVO dimBusBarVO = page.getRecords().get(0); + if (effectMap.containsKey(dimBusBarVO.getLineId())) { + String effectIds = effectMap.get(dimBusBarVO.getLineId()); + if (StrUtil.isNotBlank(effectIds)) { + List monitorIds = new ArrayList<>(Arrays.asList(effectIds.split(StrUtil.COMMA))); + + List monitorList = monitorClient.getMonitorList(monitorIds).getData(); + if (CollUtil.isNotEmpty(monitorList)) { + List ids = monitorList.stream().map(Monitor::getId).collect(Collectors.toList()); + + Map> map; + if (StrUtil.isNotBlank(param.getIndexType())) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + harmMonitorTarget(param, queryWrapper); + queryWrapper.in("my_index", ids); + List rStatLimitRateDPOList = rStatLimitRateDMapper.selectList(queryWrapper); + if (CollUtil.isNotEmpty(rStatLimitRateDPOList)) { + map = rStatLimitRateDPOList.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)); + } else { + map = new HashMap<>(); + } + monitorList = monitorList.stream().filter(item -> map.containsKey(item.getId())).collect(Collectors.toList()); + } + + if (CollUtil.isNotEmpty(monitorList)) { + List temIds = monitorList.stream().map(Monitor::getId).collect(Collectors.toList()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("avg(rms) as rms,line_id").in("line_id", temIds).between("time", param.getStartTime(), param.getEndTime()).in("phasic_type", Stream.of("A", "B", "C").collect(Collectors.toList())).eq("value_type", "AVG").groupBy("line_id"); + List rStatDataVDPOList = rStatDataVDMapper.selectList(queryWrapper); + Map rStatDataVDMap = rStatDataVDPOList.stream().collect(Collectors.toMap(RStatDataVD::getLineId, Function.identity())); + + List dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_CONNECT.getCode()).getData(); + Map terminalWireMap = dictDataList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + for (Monitor monitor : monitorList) { + DimBusBarVO.DimBusBarMonitorAvgVO vo = new DimBusBarVO.DimBusBarMonitorAvgVO(); + vo.setBusName(dimBusBarVO.getBusName()); + vo.setCityOrg(dimBusBarVO.getCityOrg()); + vo.setCityOrgName(dimBusBarVO.getCityOrgName()); + vo.setMaintOrg(dimBusBarVO.getMaintOrg()); + vo.setMaintOrgName(dimBusBarVO.getMaintOrgName()); + vo.setMonitorId(monitor.getMonitorId()); + vo.setMonitorName(monitor.getName()); + vo.setStationId(dimBusBarVO.getStationId()); + vo.setStationName(dimBusBarVO.getStationName()); + vo.setSeq(CollUtil.isNotEmpty(param.getSeqs()) ? String.join(StrUtil.COMMA, param.getSeqs()):""); + vo.setHarmonicNum(Objects.nonNull(param.getHarmonicNum())? param.getHarmonicNum().toString():""); + vo.setStatDate(param.getStatDate()); + vo.setStatus("01"); + vo.setStatusName("运行"); + if (rStatDataVDMap.containsKey(monitor.getId())) { + RStatDataVD rStatDataVD = rStatDataVDMap.get(monitor.getId()); + vo.setLineVoltage(rStatDataVD.getRms().setScale(4, RoundingMode.HALF_UP).toString()); + vo.setIndexValue(rStatDataVD.getRms().divide(BigDecimal.valueOf(Math.sqrt(3)), 4, RoundingMode.HALF_UP).toString()); + } + DictData dictData = terminalWireMap.get(monitor.getTerminalWiringMethod()); + vo.setTerminalConnect(dictData.getValue()); + vo.setTerminalConnectName(dictData.getName()); + voList.add(vo); + + } + } + } + } + + } + + } + result.setTotal(voList.size()); + result.setList(voList); + return result; } @@ -411,62 +743,62 @@ public class REvaluationDataServiceImpl extends ServiceImpl busTargetAss(DimBusBarParam param, List temBusIds, List rDimUpDTOList) { - String statisticType = param.getStatType(); - if (DicDataEnum.STATISTICAL_TYPE_D.getCode().equals(statisticType)) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - this.harmTarget(param, temBusIds, queryWrapper); - List rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper); - Map> map = rDimBusUpDList.stream().collect(Collectors.groupingBy(RDimBusUpD::getBusId)); - map.forEach((key,val)->{ - RDimUpDTO rDimUpDTO = new RDimUpDTO(); - rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); - rDimUpDTO.setEffectId(val.get(0).getEffectId()); - rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); - rDimUpDTO.setBusId(val.get(0).getBusId()); - rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpD::getV).filter(it->it!=3.14159).average().orElse(3.14159)); - rDimUpDTOList.add(rDimUpDTO); - }); + String statisticType = param.getStatType(); + if (DicDataEnum.STATISTICAL_TYPE_D.getCode().equals(statisticType)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpDList = rDimBusUpDMapper.selectList(queryWrapper); + Map> map = rDimBusUpDList.stream().collect(Collectors.groupingBy(RDimBusUpD::getBusId)); + map.forEach((key, val) -> { + RDimUpDTO rDimUpDTO = new RDimUpDTO(); + rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); + rDimUpDTO.setEffectId(val.get(0).getEffectId()); + rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); + rDimUpDTO.setBusId(val.get(0).getBusId()); + rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpD::getV).filter(it -> it != 3.14159).average().orElse(3.14159)); + rDimUpDTOList.add(rDimUpDTO); + }); - temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList()); - this.harmTarget(param, temBusIds, queryWrapper); - } else if (DicDataEnum.STATISTICAL_TYPE_M.getCode().equals(statisticType)) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - this.harmTarget(param, temBusIds, queryWrapper); - List rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper); - Map> map = rDimBusUpMList.stream().collect(Collectors.groupingBy(RDimBusUpM::getBusId)); - map.forEach((key,val)->{ - RDimUpDTO rDimUpDTO = new RDimUpDTO(); - rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); - rDimUpDTO.setBusId(val.get(0).getBusId()); - rDimUpDTO.setEffectId(val.get(0).getEffectId()); - rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); - rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpM::getV).filter(it->it!=3.14159).average().orElse(3.14159)); - rDimUpDTOList.add(rDimUpDTO); - }); - temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList()); - } else if (DicDataEnum.STATISTICAL_TYPE_Y.getCode().equals(statisticType)) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - this.harmTarget(param, temBusIds, queryWrapper); - List rDimBusUpYList = rDimBusUpYMapper.selectList(queryWrapper); - Map> map = rDimBusUpYList.stream().collect(Collectors.groupingBy(RDimBusUpY::getBusId)); - map.forEach((key,val)->{ - RDimUpDTO rDimUpDTO = new RDimUpDTO(); - rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); - rDimUpDTO.setBusId(val.get(0).getBusId()); - rDimUpDTO.setEffectId(val.get(0).getEffectId()); - rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); - rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpY::getV).filter(it->it!=3.14159).average().orElse(3.14159)); - rDimUpDTOList.add(rDimUpDTO); - }); - temBusIds = rDimBusUpYList.stream().map(RDimBusUpY::getMidBusId).distinct().collect(Collectors.toList()); - } + temBusIds = rDimBusUpDList.stream().map(RDimBusUpD::getMidBusId).distinct().collect(Collectors.toList()); + this.harmTarget(param, temBusIds, queryWrapper); + } else if (DicDataEnum.STATISTICAL_TYPE_M.getCode().equals(statisticType)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpMList = rDimBusUpMMapper.selectList(queryWrapper); + Map> map = rDimBusUpMList.stream().collect(Collectors.groupingBy(RDimBusUpM::getBusId)); + map.forEach((key, val) -> { + RDimUpDTO rDimUpDTO = new RDimUpDTO(); + rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); + rDimUpDTO.setBusId(val.get(0).getBusId()); + rDimUpDTO.setEffectId(val.get(0).getEffectId()); + rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); + rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpM::getV).filter(it -> it != 3.14159).average().orElse(3.14159)); + rDimUpDTOList.add(rDimUpDTO); + }); + temBusIds = rDimBusUpMList.stream().map(RDimBusUpM::getMidBusId).distinct().collect(Collectors.toList()); + } else if (DicDataEnum.STATISTICAL_TYPE_Y.getCode().equals(statisticType)) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + this.harmTarget(param, temBusIds, queryWrapper); + List rDimBusUpYList = rDimBusUpYMapper.selectList(queryWrapper); + Map> map = rDimBusUpYList.stream().collect(Collectors.groupingBy(RDimBusUpY::getBusId)); + map.forEach((key, val) -> { + RDimUpDTO rDimUpDTO = new RDimUpDTO(); + rDimUpDTO.setBusMidId(val.get(0).getMidBusId()); + rDimUpDTO.setBusId(val.get(0).getBusId()); + rDimUpDTO.setEffectId(val.get(0).getEffectId()); + rDimUpDTO.setEffectIds(val.get(0).getEffectIds()); + rDimUpDTO.setV(val.stream().mapToDouble(RDimBusUpY::getV).filter(it -> it != 3.14159).average().orElse(3.14159)); + rDimUpDTOList.add(rDimUpDTO); + }); + temBusIds = rDimBusUpYList.stream().map(RDimBusUpY::getMidBusId).distinct().collect(Collectors.toList()); + } return temBusIds; } private List getOnlineBusIds(String nodeId, LocalDate begin, Class clazz) { QueryWrapper dayLam = new QueryWrapper<>(); - dayLam.eq("statisticDate", begin).eq("deptId", nodeId); + dayLam.eq("statistic_Date", begin).eq("dept_Id", nodeId); Object pmsRunStatistic = null; if (PmsRunStatisticD.class.equals(clazz)) { pmsRunStatistic = pmsRunStatisticDMapper.selectOne((QueryWrapper) dayLam); @@ -484,7 +816,7 @@ public class REvaluationDataServiceImpl extends ServiceImpl temBusIds, QueryWrapper queryWrapper) { //稳态指标条件筛选 String target = "", harmV = ""; @@ -516,6 +898,12 @@ public class REvaluationDataServiceImpl extends ServiceImpl voltageDic = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map voltageMap = voltageDic.stream().collect(Collectors.toMap(item -> String.format("%02d", item.getAlgoDescribe()), Function.identity())); + String voltage = voltageMap.get(param.getVoltageLevel()).getId(); + queryWrapper.in("voltage_level", voltage); + } queryWrapper.in("mid_bus_id", temBusIds); queryWrapper.eq("statistic_date", LocalDate.parse(param.getStartTime())); @@ -559,9 +947,9 @@ public class REvaluationDataServiceImpl extends ServiceImpl ids, Map send,StrBuilder resultLog,AtomicBoolean resultFlag,LocalDate localDate) { + private void returnInformation(Integer step, List ids, Map send, StrBuilder resultLog, AtomicBoolean resultFlag, LocalDate localDate) { int start = step * 100; int end = (step + 1) * 100; if (send.containsKey("succeed")) { @@ -625,15 +1013,15 @@ public class REvaluationDataServiceImpl extends ServiceImpl + * 用于存储总部下发的工单信息 服务实现类 + *

+ * + * @author cdf + * @since 2024-06-18 + */ +@Service +@RequiredArgsConstructor +public class RUploadWorkOrderServiceImpl extends ServiceImpl implements IRUploadWorkOrderService { + + @Override + public Boolean insertWorkorderDistributeSupervise(RUploadWorkOrderParam param) { + RUploadWorkOrderPO rUploadWorkOrderPO = new RUploadWorkOrderPO(); + BeanUtil.copyProperties(param,rUploadWorkOrderPO); + return this.saveOrUpdate(rUploadWorkOrderPO); + } + + @Override + public Boolean closeWorkorderDistributeSupervise(RUploadWorkOrderParam param) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(RUploadWorkOrderPO::getOrderId,param.getOrderContent()).set(RUploadWorkOrderPO::getClosedLoopTime, LocalDate.now()); + return this.update(updateWrapper); + } + + @Override + public Boolean receiveFeedbackInfo(List ids) { + List poList = this.listByIds(ids); + if(poList.size()>100){ + throw new BusinessException(CommonResponseEnum.FAIL,"最多支持一百条工单同时反馈!"); + } + long count = poList.stream().filter(item-> Objects.nonNull(item.getClosedLoopTime())).count(); + if(count>0){ + throw new BusinessException(CommonResponseEnum.FAIL,"请选择未完结的工单进行反馈!"); + } + + List feedbackInfoDTOList = BeanUtil.copyToList(poList, FeedbackInfoDTO.class); + SendParam sendParam = new SendParam(); + sendParam.setStats(feedbackInfoDTOList); + Map result = GwSendUtil.send(sendParam, GWSendEnum.WORK_ORDER_FEEDBACK); + GwSendUtil.returnInfoMsg(ids,result); + + List newPoList = new ArrayList<>(); + for(RUploadWorkOrderPO rUploadWorkOrderPO : poList){ + RUploadWorkOrderPO newPo = new RUploadWorkOrderPO(); + newPo.setObjId(rUploadWorkOrderPO.getObjId()); + newPo.setFeedbackTime(LocalDate.now()); + newPoList.add(newPo); + } + this.updateBatchById(newPoList); + return true; + } + + @Override + public Page pageList(RUploadWorkOrderParam.RUploadWorkOrderQuery query) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.between(RUploadWorkOrderPO::getDistributeTime, DateUtil.beginOfDay(DateUtil.parse(query.getSearchBeginTime(), DatePattern.NORM_DATE_PATTERN)),DateUtil.endOfDay(DateUtil.parse(query.getSearchEndTime(), DatePattern.NORM_DATE_PATTERN))); + return this.page(new Page<>(PageFactory.getPageNum(query),PageFactory.getPageSize(query)),lambdaQueryWrapper); + } + + @Override + public Boolean feedBackAdd(RUploadWorkOrderParam param) { + RUploadWorkOrderPO rUploadWorkOrderPO = new RUploadWorkOrderPO(); + BeanUtil.copyProperties(param,rUploadWorkOrderPO); + rUploadWorkOrderPO.setObjId(param.getObjId()); + rUploadWorkOrderPO.setIsFeedback("1"); + rUploadWorkOrderPO.setFeedbackUser(RequestUtil.getUserNickname()); + rUploadWorkOrderPO.setFeedbackTime(LocalDate.now()); + rUploadWorkOrderPO.setHandlingMeasures(param.getHandlingMeasures()); + rUploadWorkOrderPO.setOrderStatus(DicDataEnum.WORK_ORDER_STATUS_ING.getCode()); + this.updateById(rUploadWorkOrderPO); + return true; + } +} diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/SupvPlanReturn.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/SupvPlanReturn.java index 639eca7df..47077f6ef 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/SupvPlanReturn.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/SupvPlanReturn.java @@ -1,8 +1,18 @@ package com.njcn.process.pojo.po; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import lombok.Data; +import java.time.LocalDateTime; + /** * pqs * 计划回退 @@ -10,10 +20,38 @@ import lombok.Data; * @date 2024/5/30 */ @Data -@TableName("") +@TableName("supv_plan_return") public class SupvPlanReturn { + + /** + * 主键 + */ + @TableId private String id; + + /** + * 计划主键 + */ private String planId; + + /** + * 拒绝理由 + */ private String rejectReason; + + /** + * 评论 + */ private String rejectComment; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + @JsonSerialize(using = LocalDateTimeSerializer.class) + private LocalDateTime createTime; + + } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvPlanReturnController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvPlanReturnController.java index 12a893c36..f72a7aa93 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvPlanReturnController.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/SupvPlanReturnController.java @@ -1,5 +1,6 @@ package com.njcn.process.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.enums.common.LogEnum; @@ -8,7 +9,9 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.process.mapper.SupvPlanReturnMapper; import com.njcn.process.pojo.po.SupvPlanReturn; +import com.njcn.process.service.ISupvPlanReturnService; import com.njcn.web.controller.BaseController; +import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; @@ -31,15 +34,26 @@ import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor public class SupvPlanReturnController extends BaseController { - private final SupvPlanReturnMapper supvPlanReturnMapper; + private final ISupvPlanReturnService iSupvPlanReturnService; @PostMapping("reject") @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) @ApiOperation("新增技术监督计划") - @ApiImplicitParam(name = "supvPlanParam",value = "请求体",required = true) - public HttpResult reject(@RequestBody @Validated SupvPlanReturn supvPlanReturn){ + @ApiImplicitParam(name = "supvPlanReturn",value = "请求体",required = true) + public HttpResult reject(@RequestBody SupvPlanReturn supvPlanReturn){ String methodDescribe = getMethodDescribe("reject"); - supvPlanReturnMapper.insert(supvPlanReturn); + iSupvPlanReturnService.add(supvPlanReturn); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + + + @PostMapping("pageList") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("新增技术监督计划") + @ApiImplicitParam(name = "supvPlanReturn",value = "请求体",required = true) + public HttpResult> pageList(@RequestBody BaseParam baseParam){ + String methodDescribe = getMethodDescribe("pageList"); + Page page = iSupvPlanReturnService.pageList(baseParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvPlanReturnService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvPlanReturnService.java new file mode 100644 index 000000000..3ab83fdba --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ISupvPlanReturnService.java @@ -0,0 +1,28 @@ +package com.njcn.process.service; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.process.pojo.po.SupvPlanReturn; +import com.njcn.web.pojo.param.BaseParam; + +/** + *

+ * 总部监督计划退回表 服务类 + *

+ * + * @author cdf + * @since 2024-06-17 + */ +public interface ISupvPlanReturnService extends IService { + + + boolean add(SupvPlanReturn supvPlanReturn); + + + + Page pageList(BaseParam baseParam); + + + +} diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanReturnServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanReturnServiceImpl.java new file mode 100644 index 000000000..d5d67c3c2 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/SupvPlanReturnServiceImpl.java @@ -0,0 +1,36 @@ +package com.njcn.process.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.process.mapper.SupvPlanReturnMapper; +import com.njcn.process.pojo.po.SupvPlanReturn; +import com.njcn.process.service.ISupvPlanReturnService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.web.factory.PageFactory; +import com.njcn.web.pojo.param.BaseParam; +import org.springframework.stereotype.Service; + +/** + *

+ * 总部监督计划退回表 服务实现类 + *

+ * + * @author cdf + * @since 2024-06-17 + */ +@Service +public class SupvPlanReturnServiceImpl extends ServiceImpl implements ISupvPlanReturnService { + + @Override + public boolean add(SupvPlanReturn supvPlanReturn) { + return this.save(supvPlanReturn); + } + + @Override + public Page pageList(BaseParam baseParam) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.between(SupvPlanReturn::getCreateTime,baseParam.getSearchBeginTime(),baseParam.getSearchEndTime()); + return this.page(new Page<>(PageFactory.getPageNum(baseParam),PageFactory.getPageSize(baseParam)),lambdaQueryWrapper); + } +} diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java index d8126e6d0..e0399e1b3 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java @@ -614,6 +614,17 @@ public enum DicDataEnum { COMMUNICATION("通讯","Communication"), ELECTRIC_POWER("电力","Electric_Power"), OTHER_INDUSTRY("其他","Other_Industry"), + + + + + + //河北工单相关 + //3.67工单状态 + WORK_ORDER_STATUS_NO("未处理","01"), + WORK_ORDER_STATUS_ING("处理中","02"), + WORK_ORDER_STATUS_HAS("已上报","03"), + WORK_ORDER_STATUS_CLOSE("已闭环","04"), ; private final String name;