From 2f19b720bac565755de472d43672555aecb1bd2b Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Fri, 8 Dec 2023 10:56:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E9=85=8D=E7=BD=91=E7=9B=91=E6=B5=8B?= =?UTF-8?q?=E7=82=B9=E7=BB=9F=E8=AE=A1=E6=95=B0=E6=8D=AE=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CommTerminalServiceImpl.java | 1 + .../pojo/dto/MonitorStatisticalDTO.java | 57 +++++++ .../upload/RUploadPointStatisticalDataD.java | 129 ++++++++++++++ .../PointStatisticalDataController.java | 51 ++++++ .../upload/PointStatisticalDataService.java | 14 ++ .../impl/PointStatisticalDataServiceImpl.java | 21 +++ .../prepare/harmonic/enums/UploadEnum.java | 52 ++++++ .../prepare/executor/OrgPointExecutor.java | 15 ++ .../RUploadPointStatisticalDataDMapper.java | 16 ++ .../IRUploadPointStatisticalDataDService.java | 24 +++ ...ploadPointStatisticalDataDServiceImpl.java | 157 ++++++++++++++++++ 11 files changed, 537 insertions(+) create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/MonitorStatisticalDTO.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadPointStatisticalDataD.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/PointStatisticalDataController.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/PointStatisticalDataService.java create mode 100644 pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java create mode 100644 pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadPointStatisticalDataDMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadPointStatisticalDataDService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java index 9ca8a7bb1..91c104bf7 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java @@ -138,6 +138,7 @@ public class CommTerminalServiceImpl implements CommTerminalService { deptGetChildrenMoreDTO.setUnitId(item.getUnitId()); deptGetChildrenMoreDTO.setUnitName(item.getUnitName()); deptGetChildrenMoreDTO.setUnitChildrenList(item.getUnitChildrenList()); + deptGetChildrenMoreDTO.setDeptLevel(item.getDeptLevel()); List deptIds = item.getUnitChildrenList(); if (CollectionUtil.isNotEmpty(deptIds)) { List lineList = new ArrayList<>(); diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/MonitorStatisticalDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/MonitorStatisticalDTO.java new file mode 100644 index 000000000..2e1d91b04 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/MonitorStatisticalDTO.java @@ -0,0 +1,57 @@ +package com.njcn.harmonic.pojo.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 类的介绍:上送国网-接收电能质量主配网监测点统计数据接口list实体 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/12/7 8:52 + */ +@Data +public class MonitorStatisticalDTO { + + private String id; + + private String provinceId; + + private String provinceName; + + private String cityId; + + private String cityName; + + private String countyId; + + private String countyName; + + private Integer runTerminalNum; + + private Integer onlineMonitorNum; + + private Integer runMonitorNum; + + private BigDecimal onlineMonitorRate; + + private Integer expectCollectNum; + + private Integer actualCollectNum; + + private BigDecimal dataFullRate; + + private String stationType; + + private Integer stationMonitorNum; + + private String statisticalDate; + + private String statisticalLevel; + + private String statisticalType; + + private String distributionFlag; + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadPointStatisticalDataD.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadPointStatisticalDataD.java new file mode 100644 index 000000000..f1dbca7db --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/upload/RUploadPointStatisticalDataD.java @@ -0,0 +1,129 @@ +package com.njcn.harmonic.pojo.po.upload; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +/** + *

+ * 主配网监测点统计数据-日表 + *

+ * + * @author xuyang + * @since 2023-12-07 + */ +@Data +@TableName("r_upload_point_statistical_data_d") +public class RUploadPointStatisticalDataD { + + private static final long serialVersionUID = 1L; + + /** + * uuid + */ + private String dataId; + + /** + * 省级单位id + */ + @MppMultiId + private String provinceId; + + /** + * 省级单位名称 + */ + private String provinceName; + + /** + * 市级单位id + */ + @MppMultiId + private String cityId; + + /** + * 市级单位名称 + */ + private String cityName; + + /** + * 县级单位id + */ + @MppMultiId + private String countyId; + + /** + * 县级单位名称 + */ + private String countyName; + + /** + * 在运监测终端数量 + */ + private Integer runTerminalNum; + + /** + * 在线监测点个数 + */ + private Integer onlineMonitorNum; + + /** + * 在运监测点个数 + */ + private Integer runMonitorNum; + + /** + * 监测点在线率 + */ + private Double onlineMonitorRate; + + /** + * 数据应收数 + */ + private Integer expectCollectNum; + + /** + * 数据实收数 + */ + private Integer actualCollectNum; + + /** + * 完整率 + */ + private Double dataFullRate; + + /** + * 所属站别 + */ + private String stationType; + + /** + * 所属站别下的监测点个数 + */ + private Integer stationMonitorNum; + + /** + * 统计日期 + */ + @MppMultiId + private String statisticalDate; + + /** + * 统计层级 + */ + @MppMultiId + private String statisticalLevel; + + /** + * 统计类型 + */ + @MppMultiId + private String statisticalType; + + /** + * 主配网标识 + */ + @MppMultiId + private String distributionFlag; + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/PointStatisticalDataController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/PointStatisticalDataController.java new file mode 100644 index 000000000..c3ff8a9c9 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/upload/PointStatisticalDataController.java @@ -0,0 +1,51 @@ +package com.njcn.harmonic.controller.upload; + +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.common.utils.LogUtil; +import com.njcn.harmonic.service.upload.PointStatisticalDataService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +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; + +/** + * 类的介绍:国网指标数据上送 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/12/7 9:05 + */ +@Validated +@Slf4j +@RestController +@RequestMapping("/upload") +@Api(tags = "国网指标数据上送") +@AllArgsConstructor +public class PointStatisticalDataController extends BaseController { + + private final PointStatisticalDataService pointStatisticalDataService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/statisticalCreate") + @ApiOperation("主配网监测点统计数据(2.4.1.17)") + @ApiImplicitParam(name = "param", value = "实体参数", required = true) + public HttpResult statisticalCreate(@RequestBody Object param) { + String methodDescribe = getMethodDescribe("statisticalCreate"); + LogUtil.njcnDebug(log, "{},实体参数:{}", methodDescribe, param); + pointStatisticalDataService.getPointStatisticalData(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/PointStatisticalDataService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/PointStatisticalDataService.java new file mode 100644 index 000000000..5d19a1df5 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/PointStatisticalDataService.java @@ -0,0 +1,14 @@ +package com.njcn.harmonic.service.upload; + +/** + * @author xuyang + */ +public interface PointStatisticalDataService { + + /** + * 2.4.1.17接收电能质量主配网监测点统计数据接口 + * @param param + */ + void getPointStatisticalData(Object param); + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java new file mode 100644 index 000000000..b4a6da39c --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PointStatisticalDataServiceImpl.java @@ -0,0 +1,21 @@ +package com.njcn.harmonic.service.upload.impl; + +import com.njcn.harmonic.service.upload.PointStatisticalDataService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author xuyang + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class PointStatisticalDataServiceImpl implements PointStatisticalDataService { + + @Override + public void getPointStatisticalData(Object param) { + + } + +} diff --git a/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java new file mode 100644 index 000000000..d938a246e --- /dev/null +++ b/pqs-prepare/prepare-api/src/main/java/com/njcn/prepare/harmonic/enums/UploadEnum.java @@ -0,0 +1,52 @@ +package com.njcn.prepare.harmonic.enums; + +import lombok.Getter; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/12/7 14:32 + */ +@Getter +public enum UploadEnum { + + /** + * 统计层级 + */ + STATISTICAL_LEVEL_3("3","省"), + STATISTICAL_LEVEL_4("4","市"), + STATISTICAL_LEVEL_5("5","县"), + + NJCN_DEPT_LEVEL_1("1","全国"), + NJCN_DEPT_LEVEL_2("2","省级"), + NJCN_DEPT_LEVEL_3("3","市级"), + NJCN_DEPT_LEVEL_4("4","县级"), + + /** + * 统计类型 + */ + STATISTICAL_TYPE_01("01","年数据"), + STATISTICAL_TYPE_02("02","月数据"), + STATISTICAL_TYPE_03("03","日数据"), + + /** + * 主配网标识 + */ + DISTRIBUTION_FLAG_01("01","主网"), + DISTRIBUTION_FLAG_02("02","配网"), + + ; + + private final String code; + + private final String message; + + UploadEnum(String code, String message) { + this.code = code; + this.message = message; + } + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java index 5318d4306..605aed896 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java @@ -12,6 +12,7 @@ import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService; import com.njcn.prepare.harmonic.service.mysql.dim.*; import com.njcn.prepare.harmonic.service.mysql.line.PollutionService; import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*; +import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowMethod; import com.yomahub.liteflow.core.NodeComponent; @@ -67,6 +68,7 @@ public class OrgPointExecutor extends BaseExecutor{ private final RDimBusStationEventStartisDPOService rDimBusStationEventStartisDPOService; private final RDimBusStationEventStartisMPOService rDimBusStationEventStartisMPOService; private final RDimBusStationEventStartisYPOService rDimBusStationEventStartisYPOService; + private final IRUploadPointStatisticalDataDService irUploadPointStatisticalDataDService; /** * * 3.3.2. 单位标数据质量 @@ -599,5 +601,18 @@ public class OrgPointExecutor extends BaseExecutor{ } } + /** + * 河北国网上送接口 + * 2.4.1.17接收电能质量主配网监测点统计数据接口 + * xuyang + */ + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rUploadPointStatisticalData", nodeType = NodeTypeEnum.COMMON) + public boolean rUploadPointStatisticalDataAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rUploadPointStatisticalData", nodeType = NodeTypeEnum.COMMON) + public void rUploadPointStatisticalDataProcess(NodeComponent bindCmp) { + irUploadPointStatisticalDataDService.insertPointStatisticalDataDay(bindCmp.getRequestData()); + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadPointStatisticalDataDMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadPointStatisticalDataDMapper.java new file mode 100644 index 000000000..6cf3c3593 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/upload/RUploadPointStatisticalDataDMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.mysql.upload; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD; + +/** + *

+ * 主配网监测点统计数据-日表 Mapper 接口 + *

+ * + * @author xuyang + * @since 2023-12-07 + */ +public interface RUploadPointStatisticalDataDMapper extends MppBaseMapper { + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadPointStatisticalDataDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadPointStatisticalDataDService.java new file mode 100644 index 000000000..66e6f8770 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IRUploadPointStatisticalDataDService.java @@ -0,0 +1,24 @@ +package com.njcn.prepare.harmonic.service.mysql.upload; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + +/** + *

+ * 主配网监测点统计数据-日表 服务类 + *

+ * + * @author xuyang + * @since 2023-12-07 + */ +public interface IRUploadPointStatisticalDataDService extends IService { + + /** + * 插入日表数据 + * @param calculatedParam + */ + void insertPointStatisticalDataDay(CalculatedParam calculatedParam); + +} 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 new file mode 100644 index 000000000..003f3c2e4 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java @@ -0,0 +1,157 @@ +package com.njcn.prepare.harmonic.service.mysql.upload.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.pq.pojo.po.RStatIntegrityD; +import com.njcn.harmonic.pojo.po.ROperatingIndexDPO; +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.upload.RUploadPointStatisticalDataDMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.po.Dept; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + *

+ * 主配网监测点统计数据-日表 服务实现类 + *

+ * + * @author xuyang + * @since 2023-12-07 + */ +@Service +@RequiredArgsConstructor +public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl implements IRUploadPointStatisticalDataDService { + + private final DeptFeignClient deptFeignClient; + private final ROperatingIndexDPOMapper rOperatingIndexDPOMapper; + private final RStatIntegrityDMapper rStatIntegrityDMapper; + + /** + * 此算法用于计算底层数据,方便国网数据上送 + * 1.表中存储所有单位,没有数据的暂时设置为0 + * 2.r_operating_index_d表中获取终端、监测点个数 + * 3.r_stat_integrity_d表中获取数据应收数、实收数 + */ + @Override + public void insertPointStatisticalDataDay(CalculatedParam calculatedParam) { + List result = new ArrayList<>(); + //获取省级单位id + Dept data = deptFeignClient.getRootDept().getData(); + String provinceId = deptFeignClient.getDepSonIdByDeptId(data.getId()).getData().get(0); + String code = deptFeignClient.getDeptById(provinceId).getData().getCode(); + //获取监测点、终端个数 + List devList = getOperatingIndexData(calculatedParam.getDataDate()); + Map> devMap = devList.stream().collect(Collectors.groupingBy(ROperatingIndexDPO::getOrgNo)); + //获取数据个数 + List dataList = getStatIntegrityData(calculatedParam.getDataDate()); + //获取所有单位 + List list = calculatedParam.getIdList(); + list.forEach(item->{ + if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()),item.getDeptLevel())){ + return; + } + RUploadPointStatisticalDataD rUploadPointStatisticalDataD = new RUploadPointStatisticalDataD(); + rUploadPointStatisticalDataD.setDataId(IdUtil.simpleUUID()); + rUploadPointStatisticalDataD.setProvinceId(code); + rUploadPointStatisticalDataD.setStatisticalDate(calculatedParam.getDataDate()); + rUploadPointStatisticalDataD.setStatisticalLevel(judgeLevel(item.getDeptLevel())); + rUploadPointStatisticalDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode()); + //fixme 主配网标识文档中没有,先随便定义一个,后期调整 + rUploadPointStatisticalDataD.setDistributionFlag(UploadEnum.DISTRIBUTION_FLAG_01.getCode()); + //fixme over + if (Objects.equals(item.getDeptLevel(),Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_2.getCode()))) { + rUploadPointStatisticalDataD.setCityId(""); + rUploadPointStatisticalDataD.setCountyId(""); + } else if (Objects.equals(item.getDeptLevel(),Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_3.getCode()))) { + rUploadPointStatisticalDataD.setCityId(item.getUnitId()); + rUploadPointStatisticalDataD.setCountyId(""); + } else if (Objects.equals(item.getDeptLevel(),Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()))) { + rUploadPointStatisticalDataD.setCityId(""); + rUploadPointStatisticalDataD.setCountyId(item.getUnitId()); + } + List l1 = devMap.get(item.getUnitId()); + if (CollectionUtil.isNotEmpty(l1)){ + ROperatingIndexDPO po = l1.get(0); + rUploadPointStatisticalDataD.setRunTerminalNum(po.getOnlineMeasurementPoints()); + rUploadPointStatisticalDataD.setOnlineMonitorNum(po.getTransitMeasurementPoints()); + rUploadPointStatisticalDataD.setRunMonitorNum(po.getMeasurementRunPoints()); + rUploadPointStatisticalDataD.setOnlineMonitorRate(BigDecimal.valueOf(po.getMeasurementRunPoints()*100.0/po.getTransitMeasurementPoints()).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); + } + //获取当前单位下所有的监测点,匹配监测点数据 + List l2 = item.getLineBaseList(); + if (CollectionUtil.isNotEmpty(l2)){ + List l3 = dataList.stream().filter(it -> l2.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()).contains(it.getLineIndex())).collect(Collectors.toList()); + int due = l3.stream().mapToInt(RStatIntegrityD::getDueTime).sum(); + int real = l3.stream().mapToInt(RStatIntegrityD::getRealTime).sum(); + rUploadPointStatisticalDataD.setExpectCollectNum(due); + rUploadPointStatisticalDataD.setActualCollectNum(real); + rUploadPointStatisticalDataD.setDataFullRate(BigDecimal.valueOf(real*100.0/due).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue()); + rUploadPointStatisticalDataD.setStationMonitorNum(l3.size()); + } + result.add(rUploadPointStatisticalDataD); + }); + if (CollectionUtil.isNotEmpty(result)){ + //查询数据如果有数据,将data_id置为null,这样就保留之前的唯一id + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RUploadPointStatisticalDataD::getStatisticalDate,calculatedParam.getDataDate()); + List oldData = this.list(lambdaQueryWrapper); + if (CollectionUtil.isNotEmpty(oldData)){ + result.forEach(item->{ + item.setDataId(null); + }); + } + this.saveOrUpdateBatchByMultiId(result); + } + } + + /** + * r_operating_index_d表中获取终端、监测点个数 + */ + public List getOperatingIndexData(String time) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ROperatingIndexDPO::getDataDate,time); + return rOperatingIndexDPOMapper.selectList(lambdaQueryWrapper); + } + + /** + * r_stat_integrity_d表中获取数据应收数、实收数 + */ + public List getStatIntegrityData(String time) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RStatIntegrityD::getTimeId,time); + return rStatIntegrityDMapper.selectList(lambdaQueryWrapper); + } + + /** + * 判断单位层级 + */ + public String judgeLevel(Integer level) { + String result = ""; + if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_2.getCode()))){ + result = UploadEnum.STATISTICAL_LEVEL_3.getCode(); + } else if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_3.getCode()))) { + result = UploadEnum.STATISTICAL_LEVEL_4.getCode(); + } else if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()))) { + result = UploadEnum.STATISTICAL_LEVEL_5.getCode(); + } + return result; + } + +}