From ae1796956955135857560a364797062888e77d7c Mon Sep 17 00:00:00 2001 From: cdf <857448963@qq.com> Date: Wed, 17 Apr 2024 20:33:42 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B2=B3=E5=8C=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/pojo/dto/MonitorIntegrityDataDTO.java | 35 ++++++++ .../device/pms/pojo/po/PmsRunStatistic.java | 36 ++++++++ .../LineIntegrityDataController.java | 61 ++++++++++++++ .../majornetwork/RStatIntegrityDMapper.java | 25 ++++++ .../majornetwork/IRStatIntegrityDService.java | 26 ++++++ .../impl/RStatIntegrityDServiceImpl.java | 80 ++++++++++++++++++ .../dim/IRDimBusGlobalDController.java | 4 +- .../mysql/line/PmsRunStatisticMapper.java | 18 ++++ ...ploadPointStatisticalDataDServiceImpl.java | 84 ++++++++++++++----- .../tasks/PmsRunStatisticTaskRunner.java | 30 +++++++ 10 files changed, 378 insertions(+), 21 deletions(-) create mode 100644 pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorIntegrityDataDTO.java create mode 100644 pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsRunStatistic.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/majornetwork/LineIntegrityDataController.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/RStatIntegrityDMapper.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IRStatIntegrityDService.java create mode 100644 pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/RStatIntegrityDServiceImpl.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/PmsRunStatisticTaskRunner.java diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorIntegrityDataDTO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorIntegrityDataDTO.java new file mode 100644 index 000000000..5d6e517c2 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/MonitorIntegrityDataDTO.java @@ -0,0 +1,35 @@ +package com.njcn.device.pms.pojo.dto; + +import com.njcn.web.pojo.param.BaseParam; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * pqs + * + * @author cdf + * @date 2024/4/17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorIntegrityDataDTO extends BaseParam { + + private String monitorName; + + private String monitorId; + + + private String deptId; + + private String deptName; + + private Integer isUpToGrid; + + private String stationName; + + private Float integrityRate; + + private Double limitValue; + + +} diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsRunStatistic.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsRunStatistic.java new file mode 100644 index 000000000..a53f2ff31 --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/PmsRunStatistic.java @@ -0,0 +1,36 @@ +package com.njcn.device.pms.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import com.njcn.db.bo.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDate; + +/** + * pqs + * + * @author cdf + * @date 2024/4/17 + */ +@TableName(value = "pms_run_statistic") +@Data +@EqualsAndHashCode(callSuper = true) +public class PmsRunStatistic extends BaseEntity { + + /** + * + */ + + @MppMultiId + private LocalDate statisticDate; + + @MppMultiId + private String deptId; + + private String runMonitorIds; + + private String runDevIds; + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/majornetwork/LineIntegrityDataController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/majornetwork/LineIntegrityDataController.java new file mode 100644 index 000000000..bc33b00d5 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/majornetwork/LineIntegrityDataController.java @@ -0,0 +1,61 @@ +package com.njcn.device.pms.controller.majornetwork; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pms.pojo.dto.MonitorIntegrityDataDTO; +import com.njcn.device.pms.service.majornetwork.IRStatIntegrityDService; +import com.njcn.device.pq.pojo.param.DeviceInfoParam; +import com.njcn.device.pq.pojo.param.LineIntegrityDataParam; +import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO; +import com.njcn.harmonic.pojo.vo.IntegrityIconVO; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.*; +import java.util.List; + +/** + * 监测点数据完整性列表 + * @author yzh + * @date 2022/9/9 + */ + +@Slf4j +@Api(tags = "监测点数据完整性列表") +@RestController +@RequestMapping("/monitorIntegrity") +@RequiredArgsConstructor +public class LineIntegrityDataController extends BaseController { + + + + private final IRStatIntegrityDService irStatIntegrityDService; + + + /** + * 监测点数据完整性 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMonitorIntegrityData") + @ApiOperation("监测点数据完整性") + @ApiImplicitParam(name = "monitorIntegrityDataDTO", value = "参数实体", required = true) + public HttpResult> getIntegrityData(@RequestBody MonitorIntegrityDataDTO monitorIntegrityDataDTO) { + String methodDescribe = getMethodDescribe("getMonitorIntegrityData"); + Page monitorIntegrityDataDTOList = irStatIntegrityDService.getMonitorIntegrityData(monitorIntegrityDataDTO); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,monitorIntegrityDataDTOList,methodDescribe); + } + + + + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/RStatIntegrityDMapper.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/RStatIntegrityDMapper.java new file mode 100644 index 000000000..7a32fcf98 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/RStatIntegrityDMapper.java @@ -0,0 +1,25 @@ +package com.njcn.device.pms.mapper.majornetwork; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pq.pojo.param.LineBaseQueryParam; +import com.njcn.device.pq.pojo.param.OnlineRateParam; +import com.njcn.device.pq.pojo.po.LineDataIntegrity; +import com.njcn.device.pq.pojo.po.RStatIntegrityD; +import com.njcn.device.pq.pojo.vo.RStatIntegrityVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 数据完整性日表 Mapper 接口 + *

+ * + * @author hongawen + * @since 2023-03-28 + */ +public interface RStatIntegrityDMapper extends BaseMapper { + + +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IRStatIntegrityDService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IRStatIntegrityDService.java new file mode 100644 index 000000000..9398d0d05 --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IRStatIntegrityDService.java @@ -0,0 +1,26 @@ +package com.njcn.device.pms.service.majornetwork; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.device.pms.pojo.dto.MonitorIntegrityDataDTO; +import com.njcn.device.pq.pojo.param.LineBaseQueryParam; +import com.njcn.device.pq.pojo.po.RStatIntegrityD; + +import java.util.List; + +/** + * + * @author cdf + * @since 2024/4/17 + */ +public interface IRStatIntegrityDService extends IService { + + + /** + * + * @author cdf + * @date 2024/4/17 + */ + Page getMonitorIntegrityData(MonitorIntegrityDataDTO monitorIntegrityDataDTO); +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/RStatIntegrityDServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/RStatIntegrityDServiceImpl.java new file mode 100644 index 000000000..3d28468ea --- /dev/null +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/RStatIntegrityDServiceImpl.java @@ -0,0 +1,80 @@ +package com.njcn.device.pms.service.majornetwork.impl; + + + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.biz.commApi.CommLineClient; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.device.pms.mapper.majornetwork.MonitorMapper; +import com.njcn.device.pms.mapper.majornetwork.RStatIntegrityDMapper; +import com.njcn.device.pms.pojo.dto.MonitorIntegrityDataDTO; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pms.service.majornetwork.IRStatIntegrityDService; +import com.njcn.device.pq.pojo.param.LineBaseQueryParam; +import com.njcn.device.pq.pojo.po.RStatIntegrityD; + +import com.njcn.user.api.DeptFeignClient; +import com.njcn.web.factory.PageFactory; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 数据完整性日表 服务实现类 + *

+ * + * @author hongawen + * @since 2023-03-28 + */ +@Service +@RequiredArgsConstructor +public class RStatIntegrityDServiceImpl extends ServiceImpl implements IRStatIntegrityDService { + + private final DeptFeignClient deptFeignClient; + + private final MonitorMapper monitorMapper; + + @Override + public Page getMonitorIntegrityData(MonitorIntegrityDataDTO monitorIntegrityDataDTO) { + Page pageResult =new Page<>(PageFactory.getPageNum(monitorIntegrityDataDTO),PageFactory.getPageSize(monitorIntegrityDataDTO)); + + List deptCodes = deptFeignClient.getDepSonSelfCodetByDeptId(monitorIntegrityDataDTO.getDeptId()).getData(); + List monitorList = monitorMapper.selectList(new LambdaQueryWrapper().select(Monitor::getId,Monitor::getName,Monitor::getOrgName,Monitor::getPowerrName) + .in(Monitor::getOrgId,deptCodes).eq(Objects.nonNull(monitorIntegrityDataDTO.getIsUpToGrid()),Monitor::getIsUpToGrid,monitorIntegrityDataDTO.getIsUpToGrid())); + + List monitorIds = monitorList.stream().map(Monitor::getId).collect(Collectors.toList()); + + Map map = monitorList.stream().collect(Collectors.toMap(Monitor::getId, Function.identity())); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("ROUND(sum(real_time)/sum(due_time),3) as integrityData,line_index as lineIndex").lambda() + .between(RStatIntegrityD::getTimeId,monitorIntegrityDataDTO.getSearchBeginTime(),monitorIntegrityDataDTO.getSearchEndTime()) + .in(RStatIntegrityD::getLineIndex,monitorIds).last("group by lineIndex"); + Page page = this.page(new Page<>(PageFactory.getPageNum(monitorIntegrityDataDTO),PageFactory.getPageSize(monitorIntegrityDataDTO)),queryWrapper); + List monitorIntegrityDataDTOList = page.getRecords().stream().map(item->{ + MonitorIntegrityDataDTO monitorIntegrityDataDTOTem = new MonitorIntegrityDataDTO(); + monitorIntegrityDataDTOTem.setMonitorId(item.getLineIndex()); + + Monitor monitor = map.get(item.getLineIndex()); + monitorIntegrityDataDTOTem.setMonitorName(monitor.getName()); + monitorIntegrityDataDTOTem.setDeptName(monitor.getOrgName()); + monitorIntegrityDataDTOTem.setIntegrityRate(item.getIntegrityData()); + monitorIntegrityDataDTOTem.setStationName(monitor.getPowerrName()); + + return monitorIntegrityDataDTOTem; + }).collect(Collectors.toList()); + pageResult.setRecords(monitorIntegrityDataDTOList); + pageResult.setTotal(page.getTotal()); + return pageResult; + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java index 2d17fbd36..8f15b789f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java @@ -213,13 +213,13 @@ public class IRDimBusGlobalDController extends BaseController { /** - * 新增重算月数据 + * 选择月,会补招这个月每天的数据 * @author cdf * @date 2024/3/22 */ @OperateInfo(info = LogEnum.BUSINESS_COMMON) @GetMapping("/reCalMonthUploadAlgorithm") - @ApiOperation("重新计算四个算法") + @ApiOperation("补招月每天的数据") @ApiImplicitParam(name = "statisticDate", value = "重新计算的月份", required = true) public HttpResult reCalUploadAlgorithmAllMonth(@DateTimeStrValid(format = "yyyy-MM") @RequestParam("statisticDate") String statisticDate,@RequestParam("type") String type) { String methodDescribe = getMethodDescribe("reCalUploadAlgorithmAllMonth"); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java new file mode 100644 index 000000000..b68b6e6e9 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + + + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.device.pms.pojo.po.PmsRunStatistic; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2024-04-17 + */ +public interface PmsRunStatisticMapper extends MppBaseMapper { + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java index ef7823475..48a5ff7aa 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java @@ -6,15 +6,21 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.commApi.CommLineClient; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.dto.LineDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.pms.pojo.po.PmsRunStatistic; import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD; import com.njcn.prepare.harmonic.enums.UploadEnum; import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.PmsRunStatisticMapper; import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadPointStatisticalDataDMapper; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.dto.UploadPointStatisticalParam; @@ -37,6 +43,8 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; + /** *

* 主配网监测点统计数据-日表 服务实现类 @@ -50,13 +58,17 @@ import java.util.stream.Collectors; public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl implements IRUploadPointStatisticalDataDService { private final DeptFeignClient deptFeignClient; - private final ROperatingIndexDPOMapper rOperatingIndexDPOMapper; + private final RStatIntegrityDMapper rStatIntegrityDMapper; private final DictTreeFeignClient dictTreeFeignClient; private final DicDataFeignClient dicDataFeignClient; + private final PmsRunStatisticMapper pmsRunStatisticMapper; + + private final CommLineClient commLineClient; + /** * 此算法用于计算底层数据,方便国网数据上送 * 1.表中存储所有单位,没有数据的暂时设置为0 @@ -65,6 +77,8 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl calculatedParam) { + + List result = new ArrayList<>(); //获取省级单位id Dept data = deptFeignClient.getRootDept().getData(); @@ -75,11 +89,12 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl sysDicTreePOList = dictTreeFeignClient.queryAll().getData(); + //获取所有需要统计的对象类型字典 List temTreeList = sysDicTreePOList.stream().filter(item -> Objects.equals(item.getCode(), DicTreeEnum.Trans_Sub.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Converter.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Ele_Railways.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Wind_Farms.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Power_Station.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Smelting_Load.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Imp_Users.getCode()) - ).collect(Collectors.toList()); + ).collect(toList()); Map> mapKey = new HashMap<>(); List otherIds = new ArrayList<>(); @@ -93,18 +108,19 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl item.getPid().equals(sysDicTreePO.getId()) || item.getId().equals(sysDicTreePO.getId()) - ).collect(Collectors.toList()); + ).collect(toList()); } - List ids = temList.stream().map(SysDicTreePO::getId).distinct().collect(Collectors.toList()); + List ids = temList.stream().map(SysDicTreePO::getId).distinct().collect(toList()); mapKey.put(sysDicTreePO.getCode(), ids); otherIds.addAll(ids); } + //所属场站与对象类型存在联系 List dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.Station_Type.getCode()).getData(); Map dictDataMap = dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity())); @@ -112,28 +128,56 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl deptList = deptFeignClient.getAllDept().getData(); Map> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode)); - //筛选国网上送监测点 - List l1 = calculatedParam.getIdList(); - //获取数据个数 + //获取数据完整性相关数据 List dataList = getStatIntegrityData(calculatedParam.getDataDate()); - l1.forEach(item -> { + + + //下面先从表里获取在运测点相关数据,当表里没数据时候再从接口获取 + //首先获取pms_run_statistic表是否存在执行日期的数据 + List pmsRunStatisticsList = pmsRunStatisticMapper.selectList(new LambdaQueryWrapper().eq(PmsRunStatistic::getStatisticDate,calculatedParam.getDataDate())); + + //筛选国网上送监测点 + List deptAll = calculatedParam.getIdList(); + + Map pmsRunStatisticMap = pmsRunStatisticsList.stream().collect(Collectors.toMap(PmsRunStatistic::getDeptId,Function.identity())); + List monitorIds = CollectionUtil.toList(pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds().split(StrUtil.COMMA)); + List lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData(); + + deptAll.forEach(item -> { + + //筛选出国网 + List newBaseList; + + //调过全国这个单位 if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())) { return; } + if(CollectionUtil.isEmpty(pmsRunStatisticsList)){ + //正常流程 + newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList()); + }else { + String[] monitorTemIds = pmsRunStatisticMap.get(item.getUnitId()).getRunMonitorIds().split(StrUtil.COMMA); + List temIds = Arrays.stream(monitorTemIds).collect(toList()); - List newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList()); + newBaseList = lineDTOList.stream().filter(o -> temIds.contains(o.getLineId())).map(it->{ + LineDevGetDTO lineDevGetDTO = new LineDevGetDTO(); + lineDevGetDTO.setPointId(it.getLineId()); + lineDevGetDTO.setDevId(it.getDevId()); + lineDevGetDTO.setObjType(it.getObjType()); + return lineDevGetDTO; + }).collect(Collectors.toList()); + } + List upMonitorIds = newBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(toList()); + List upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList()); - List upMonitorIds = newBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); - List upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList()); - - + List finalNewBaseList = newBaseList; mapKey.forEach((key, val) -> { - List keyItem = newBaseList.stream().filter(o -> val.contains(o.getObjType())).collect(Collectors.toList()); + List keyItem = finalNewBaseList.stream().filter(o -> val.contains(o.getObjType())).collect(toList()); RUploadPointStatisticalDataD rUploadPointStatisticalDataD = new RUploadPointStatisticalDataD(); switch (key) { case "2100": @@ -178,7 +222,7 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl l3 = dataList.stream().filter(it -> upMonitorIds.contains(it.getLineIndex())).collect(Collectors.toList()); + List l3 = dataList.stream().filter(it -> upMonitorIds.contains(it.getLineIndex())).collect(toList()); int due = l3.stream().mapToInt(RStatIntegrityD::getDueTime).sum(); int real = l3.stream().mapToInt(RStatIntegrityD::getRealTime).sum(); rUploadPointStatisticalDataD.setExpectCollectNum(due); @@ -216,13 +260,13 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl otherMonitor = newBaseList.stream().filter(me -> !otherIds.contains(me.getObjType())).collect(Collectors.toList()); + List otherMonitor = newBaseList.stream().filter(me -> !otherIds.contains(me.getObjType())).collect(toList()); long pointCount = otherMonitor.stream().map(LineDevGetDTO::getPointId).distinct().count(); rUploadPointStatisticalDataD.setRunTerminalNum(upDevIds.size()); rUploadPointStatisticalDataD.setRunMonitorNum(upMonitorIds.size()); - List l3 = dataList.stream().filter(it -> newBaseList.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()).contains(it.getLineIndex())).collect(Collectors.toList()); + List l3 = dataList.stream().filter(it -> newBaseList.stream().map(LineDevGetDTO::getPointId).collect(toList()).contains(it.getLineIndex())).collect(toList()); int due = l3.stream().mapToInt(RStatIntegrityD::getDueTime).sum(); int real = l3.stream().mapToInt(RStatIntegrityD::getRealTime).sum(); rUploadPointStatisticalDataD.setExpectCollectNum(due); @@ -243,6 +287,8 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -434,7 +480,7 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl list = Arrays.stream(map.get(id).get(0).getPids().split(",")).map(String::trim).collect(Collectors.toList()); + List list = Arrays.stream(map.get(id).get(0).getPids().split(",")).map(String::trim).collect(toList()); String parentCode = deptList.stream().filter(o -> Objects.equals(o.getId(), list.get(3))).findFirst().orElse(null).getCode(); rUploadPointStatisticalDataD.setCityId(parentCode); rUploadPointStatisticalDataD.setCityName(map.get(parentCode).get(0).getName()); diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/PmsRunStatisticTaskRunner.java b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/PmsRunStatisticTaskRunner.java new file mode 100644 index 000000000..1ef8877de --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/PmsRunStatisticTaskRunner.java @@ -0,0 +1,30 @@ +package com.njcn.system.timer.tasks; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.system.timer.TimerTaskRunner; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +/** + * pqs + * + * @author cdf + * @date 2024/4/17 + */ +@Component +@RequiredArgsConstructor +public class PmsRunStatisticTaskRunner implements TimerTaskRunner { + + private final CommTerminalGeneralClient commTerminalGeneralClient; + + @Override + public void action(String date) { + if(StrUtil.isBlank(date)){ + date = DateUtil.format(DateUtil.yesterday(),DatePattern.NORM_DATE_PATTERN); + } + commTerminalGeneralClient.runLedgerStatistic(date); + } +}