From d868558c6ebcd4d13b9bec378eb20217bb7d169c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E6=9C=A8c?= <857448963@qq.com> Date: Thu, 21 Sep 2023 09:15:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E5=A4=84=E7=90=86=E5=85=BC=E5=AE=B9pq?= =?UTF-8?q?/pms=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/common/utils/NjcnDateUtils.java | 68 ++ .../commApi/CommTerminalGeneralClient.java | 3 + ...mTerminalGeneralClientFallbackFactory.java | 6 + .../device/biz/pojo/dto/LineDevGetDTO.java | 3 + .../PmsDistributionMonitorController.java | 21 + .../IDistributionMonitorService.java | 2 + .../impl/DistributionMonitorServiceImpl.java | 58 +- .../pq/controller/CommTerminalController.java | 35 +- .../com/njcn/device/pq/mapper/LineMapper.java | 8 + .../device/pq/mapper/mapping/LineMapper.xml | 14 + .../pq/service/CommTerminalService.java | 5 + .../service/impl/CommTerminalServiceImpl.java | 21 +- .../impl/EleAirStrategyServiceImpl.java | 8 +- .../executor/handler/HarmPollutionJob.java | 35 +- .../executor/utils/CommonExecutorUtils.java | 42 + .../harmonic/pojo/param/LineParam.java | 9 +- .../controller/line/DayDataController.java | 27 +- .../controller/line/IntegrityController.java | 16 +- .../mysql/Impl/line/DayDataServiceImpl.java | 835 +++++++++--------- .../mysql/Impl/line/IntegrityServiceImpl.java | 47 +- .../service/mysql/line/DayDataService.java | 14 +- .../service/mysql/line/IntegrityService.java | 2 +- 22 files changed, 771 insertions(+), 508 deletions(-) create mode 100644 pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java b/pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java new file mode 100644 index 000000000..b7a7e6a5a --- /dev/null +++ b/pqs-common/common-core/src/main/java/com/njcn/common/utils/NjcnDateUtils.java @@ -0,0 +1,68 @@ +package com.njcn.common.utils; + +import lombok.extern.slf4j.Slf4j; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2023/9/20 + */ +@Slf4j +public class NjcnDateUtils { + + /** + * 传入两个时间范围,返回这两个时间范围内的所有日期,并保存在一个集合中 + * + * @param beginTime + * @param endTime + * @return + * @throws Exception + */ + public static List findEveryDay(String beginTime, String endTime) { + //创建一个放所有日期的集合 + List dates = new ArrayList<>(); + + //创建时间解析对象规定解析格式 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + //将传入的时间解析成Date类型,相当于格式化 + Date dBegin = null; + Date dEnd = null; + try { + dBegin = sdf.parse(beginTime); + dEnd = sdf.parse(endTime); + } catch (ParseException e) { + log.error("获取两个时间段范围异常,异常信息"+e.getMessage()); + return new ArrayList<>(); + } + + //将格式化后的第一天添加进集合 + dates.add(sdf.format(dBegin)); + + //使用本地的时区和区域获取日历 + Calendar calBegin = Calendar.getInstance(); + + //传入起始时间将此日历设置为起始日历 + calBegin.setTime(dBegin); + + //判断结束日期前一天是否在起始日历的日期之后 + while (dEnd.after(calBegin.getTime())) { + + //根据日历的规则:月份中的每一天,为起始日历加一天 + calBegin.add(Calendar.DAY_OF_MONTH, 1); + + //得到的每一天就添加进集合 + dates.add(sdf.format(calBegin.getTime())); + //如果当前的起始日历超过结束日期后,就结束循环 + } + return dates; + } +} diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java index be254a938..5e1d7a985 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/CommTerminalGeneralClient.java @@ -116,6 +116,9 @@ public interface CommTerminalGeneralClient { @GetMapping("/getRunMonitorIds") HttpResult> getRunMonitorIds(); + + @PostMapping("/getMonitorDetailList") + HttpResult> getMonitorDetailList(@RequestBody List list); /** * 用于返回pq 还是pms系统 * @author cdf diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java index 5bef97b08..ff6e7646d 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java @@ -92,6 +92,12 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory throw new BusinessException(finalExceptionEnum); } + @Override + public HttpResult> getMonitorDetailList(List list) { + log.error("{}异常,降级处理,异常为:{}", "获取监测点详细信息集合", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult isPqOrPms() { log.error("{}异常,降级处理,异常为:{}", "返回pq还是pms系统", throwable.toString()); diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java index 8f07dc1c0..dc9099bd9 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/LineDevGetDTO.java @@ -63,6 +63,9 @@ public class LineDevGetDTO { */ private Integer comFlag; + /** + * 装置数据最新更新时间 + */ private LocalDateTime updateTime; diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java index d51d66b34..d5b115428 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java @@ -21,6 +21,10 @@ import com.njcn.device.pms.pojo.po.TerminalLog; import com.njcn.device.pms.pojo.vo.DoubleUserVO; import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService; import com.njcn.device.pms.service.majornetwork.ITerminalLogService; +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.web.utils.RequestUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -36,6 +40,7 @@ import com.njcn.web.controller.BaseController; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -58,6 +63,7 @@ public class PmsDistributionMonitorController extends BaseController { private final ITerminalLogService iTerminalLogService; + /** * 新增配网监测点表 * @author cdf @@ -294,5 +300,20 @@ public class PmsDistributionMonitorController extends BaseController { } + /** + * 批量给配网监测点录入单位id + * @author cdf + * @date 2023/9/20 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/disMonitorWriteOrgId") + @ApiOperation("批量修改配网里的单位") + public HttpResult disMonitorWriteOrgId() { + String methodDescribe = getMethodDescribe("disMonitorWriteOrgId"); + iDistributionMonitorService.disMonitorWriteOrgId(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + + } + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java index 5e8b88d2c..24d072793 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java @@ -115,4 +115,6 @@ public interface IDistributionMonitorService extends IMppService distributionMonitorList = this.list(); + if(CollectionUtil.isNotEmpty(distributionMonitorList)){ + Map> map = distributionMonitorList.stream().collect(Collectors.groupingBy(DistributionMonitor::getMonitorSort)); + List po = new ArrayList<>(); + + map.forEach((key,val)->{ + if(key.equals("78a96acb276a5fe9d6eff737fdf1973f")){ + List one = map.get("78a96acb276a5fe9d6eff737fdf1973f"); + List oneIds = one.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList()); + List monitorList = monitorMapper.selectList(new LambdaQueryWrapper().in(Monitor::getId,oneIds)); + + for(Monitor monitor:monitorList){ + DistributionMonitor distributionMonitor = new DistributionMonitor(); + distributionMonitor.setMonitorId(monitor.getId()); + distributionMonitor.setOrgId(monitor.getOrgId()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId()); + this.update(updateWrapper); + } + + + }else if(key.equals("a5696acb276a5fe9d6eff74fdf1973f")){ + List two = map.get("a5696acb276a5fe9d6eff74fdf1973f"); + List twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList()); + List monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper().in(PowerDistributionarea::getId,twoIds)); + + for(PowerDistributionarea monitor:monitorList){ + DistributionMonitor distributionMonitor = new DistributionMonitor(); + distributionMonitor.setMonitorId(monitor.getId()); + distributionMonitor.setOrgId(monitor.getOrgId()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId()); + this.update(updateWrapper); + } + + }else { + List two = map.get("a5696acb276a5fe9d6eff74fdf1973f"); + List twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList()); + List monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper().in(PowerDistributionarea::getId,twoIds)); + + } + + + }); + + + } + return true; + } + private void overLimitAdd(String voltageLevel, String id) { DictData voltageDic = dicDataFeignClient.getDicDataById(voltageLevel).getData(); float voltageLevelValue = Float.parseFloat(voltageDic.getValue()); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java index d91e71293..31ec34afd 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/CommTerminalController.java @@ -7,10 +7,13 @@ 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.device.biz.pojo.dto.*; import com.njcn.device.biz.pojo.param.DeptGetLineParam; import com.njcn.device.biz.pojo.po.Overlimit; +import com.njcn.device.pq.mapper.LineDetailMapper; import com.njcn.device.pq.mapper.LineMapper; +import com.njcn.device.pq.pojo.po.LineDetail; import com.njcn.device.pq.service.CommTerminalService; import com.njcn.device.pq.service.LineService; import com.njcn.web.controller.BaseController; @@ -45,14 +48,16 @@ public class CommTerminalController extends BaseController { private final LineMapper lineMapper; + /** - * 通过部门获取所有子集部门所拥有的监测点 + * 通过部门获取所有子集部门所拥有的监测点基本信息 * * @author cdf * @date 2023/4/24 */ @PostMapping("deptGetLineIds") @ApiOperation("通过部门获取所有子集部门所拥有的监测点") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptGetLineList(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { TimeInterval timer = new TimeInterval(); @@ -68,6 +73,8 @@ public class CommTerminalController extends BaseController { * @date 2023/5/10 */ @PostMapping("getDeptChildrenByParent") + @ApiOperation("根据单位获取所有子单位信息") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> getDeptChildrenByParent(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { TimeInterval timer = new TimeInterval(); @@ -78,12 +85,13 @@ public class CommTerminalController extends BaseController { } /** - * 根据单位获取监测点信息 + * 根据单位获取监测点详细信息 * @author cdf * @date 2023/5/10 */ @PostMapping("deptGetLine") @ApiOperation("根据单位获取监测点信息") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptGetLine(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { TimeInterval timer = new TimeInterval(); @@ -103,6 +111,7 @@ public class CommTerminalController extends BaseController { */ @PostMapping("deptGetSubStation") @ApiOperation("根据单位获取所有变电站") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptSubStation(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { TimeInterval timer = new TimeInterval(); @@ -119,6 +128,7 @@ public class CommTerminalController extends BaseController { */ @PostMapping("deptGetBusBar") @ApiOperation("根据单位获取所有母线") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptBusBar(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { TimeInterval timer = new TimeInterval(); @@ -137,6 +147,7 @@ public class CommTerminalController extends BaseController { */ @PostMapping("deptGetDevice") @ApiOperation("根据单位获取所有装置") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptGetDevice(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { TimeInterval timer = new TimeInterval(); @@ -153,6 +164,7 @@ public class CommTerminalController extends BaseController { */ @PostMapping("deptGetDeviceAndMonitor") @ApiOperation("根据单位获取装置以及监测点") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true) public HttpResult> deptGetDeviceAndMonitor(@RequestBody @Validated DeptGetLineParam deptGetLineParam) { TimeInterval timer = new TimeInterval(); @@ -169,6 +181,7 @@ public class CommTerminalController extends BaseController { */ @PostMapping("substationGetLine") @ApiOperation("根据电站获取所有监测点") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "substationId", value = "请求体", required = true) public HttpResult substationGetLine(@RequestParam("substationId")String substationId) { TimeInterval timer = new TimeInterval(); @@ -186,6 +199,7 @@ public class CommTerminalController extends BaseController { */ @PostMapping("busBarGetLine") @ApiOperation("根据母线id获取监测点信息") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiImplicitParam(name = "busBarId", value = "请求体", required = true) public HttpResult busBarGetLine(@RequestParam("busBarId")String busBarId) { TimeInterval timer = new TimeInterval(); @@ -229,4 +243,21 @@ public class CommTerminalController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + + /** + * 根据监测点集合获取监测点详情 + * @author cdf + * @date 2023/9/21 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMonitorDetailList") + @ApiOperation("根据监测点集合获取监测点详情") + @ApiImplicitParam(name = "list", value = "监测点集合") + public HttpResult> getMonitorDetailList(@RequestBody List list) { + String methodDescribe = getMethodDescribe("getMonitorDetailList"); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineMapper.getMonitorListDetail(list), methodDescribe); + } + + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java index 9c2fbe0d6..d22869456 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LineMapper.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.pq.pojo.advanced.UpDevVO; @@ -436,6 +437,13 @@ public interface LineMapper extends BaseMapper { List getLineBySubStation(@Param("subId") String subId); + /** + * 根据监测点集合获取监测详细信息 + * @author cdf + * @date 2023/9/20 + */ + List getMonitorListDetail(@Param("monitorIds") List monitorIds); + /** * 根据条件进行监测筛选出监测点id * diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml index b85f379c9..8b5600ec3 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml @@ -1105,6 +1105,20 @@ + + + +