From a6326f574ded594727973cafe0a4dc5b3949aa84 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Mon, 28 Oct 2024 16:15:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E7=BD=91=E4=B8=8A=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PmsTemProcessReportServiceImpl.java | 171 +++++++++++++++++- 1 file changed, 167 insertions(+), 4 deletions(-) diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java index f783a01a3..ff51f9fc7 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java @@ -2,26 +2,38 @@ package com.njcn.harmonic.service.upload.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; 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.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.harmonic.mapper.upload.PmsTemProcessReportMapper; import com.njcn.harmonic.mapper.upload.PmsTemUserMapper; import com.njcn.harmonic.pojo.param.upload.PmsTemUserParam; +import com.njcn.harmonic.pojo.po.upload.PmsTemProcessApproval; import com.njcn.harmonic.pojo.po.upload.PmsTemProcessReport; import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTrackPO; import com.njcn.harmonic.pojo.po.upload.PmsTemUserPO; import com.njcn.harmonic.service.upload.IPmsTemProcessReportService; +import com.njcn.harmonic.service.upload.IPmsTemProcessTrackService; +import com.njcn.harmonic.service.upload.IPmsTemUserService; +import com.njcn.harmonic.service.upload.PmsTemProcessApprovalService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.po.Dept; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; import com.njcn.web.enums.GWSendEnum; import com.njcn.web.pojo.param.SendParam; import com.njcn.web.utils.GwSendUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.util.*; import java.util.stream.Collectors; /** @@ -36,7 +48,14 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class PmsTemProcessReportServiceImpl extends ServiceImpl implements IPmsTemProcessReportService { - private final PmsTemUserMapper pmsTemUserMapper; + + private final DeptFeignClient deptFeignClient; + + private final IPmsTemUserService iPmsTemUserService; + + private final IPmsTemProcessTrackService iPmsTemProcessTrackService; + + private final PmsTemProcessApprovalService pmsTemProcessApprovalService; @Override @@ -81,10 +100,154 @@ public class PmsTemProcessReportServiceImpl extends ServiceImpl pmsTemProcessReportList = new ArrayList<>(); + + List data = deptFeignClient.allDeptList().getData(); + + data = data.stream().filter(temp -> Objects.equals(temp.getLevel(), 2)).collect(Collectors.toList()); + + data.forEach(province->{ + province.getChildren().forEach(city->{ + PmsTemProcessReport pmsTemProcessReport = new PmsTemProcessReport(); + pmsTemProcessReport.setProvinceOrg(province.getCode()); + pmsTemProcessReport.setProvinceOrgName(province.getName()); + pmsTemProcessReport.setCityOrg(city.getCode()); + pmsTemProcessReport.setCityOrgName(city.getName()); + pmsTemProcessReport.setStatisticalLevel("4"); + pmsTemProcessReport.setStatisticalType("02"); + pmsTemProcessReport.setStatisticalDate(statisticalDate); - return null; + pmsTemProcessReport.setUploadStatus(DataStateEnum.DELETED.getCode()); + + + + Integer monthCount = iPmsTemUserService.lambdaQuery() + .eq(PmsTemUserPO::getProvinceOrg, province.getCode()) + .eq(PmsTemUserPO::getCityOrg, city.getCode()) + .between(PmsTemUserPO::getReleaseTime, beginTime, endTime).count(); + List list = iPmsTemUserService.lambdaQuery() + .eq(PmsTemUserPO::getProvinceOrg, province.getCode()) + .eq(PmsTemUserPO::getCityOrg, city.getCode()).list(); + pmsTemProcessReport.setNewUserNum(monthCount); + pmsTemProcessReport.setNewUserCount(list.size()); + + List userIds = list.stream().map(PmsTemUserPO::getObjId).collect(Collectors.toList()); + + //规划可研阶段 + Integer auditCount = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) +// .eq(PmsTemProcessTrackPO::getProStage,"01") + .between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime) + .count(); + + Integer allAuditCount = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) +// .eq(PmsTemProcessTrackPO::getProStage,"01") +// .between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime) + .isNotNull(PmsTemProcessTrackPO::getAuditFinalTime) + .count(); + pmsTemProcessReport.setReportAuditNum(auditCount); + pmsTemProcessReport.setReportAuditCount(allAuditCount); + + //规划验收 + Integer approvalAuditNum = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) +// .eq(PmsTemProcessTrackPO::getProStage,"01") + .between(PmsTemProcessTrackPO::getApprovalTime, beginTime, endTime) + .count(); + Integer approvalAuditCount = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) +// .eq(PmsTemProcessTrackPO::getProStage,"01") +// .between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime) + .isNotNull(PmsTemProcessTrackPO::getApprovalTime) + .count(); + pmsTemProcessReport.setApprovalAuditNum(approvalAuditNum); + pmsTemProcessReport.setApprovalAuditCount(approvalAuditCount); + + Integer approvalProblemNum = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) + .eq(PmsTemProcessTrackPO::getApprovalResult,"01") +// .eq(PmsTemProcessTrackPO::getProStage,"01") + .between(PmsTemProcessTrackPO::getApprovalTime, beginTime, endTime) + .count(); + Integer approvalProblemCount = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) + .eq(PmsTemProcessTrackPO::getApprovalResult,"01") +// .eq(PmsTemProcessTrackPO::getProStage,"01") +// .between(PmsTemProcessTrackPO::getAuditFinalTime, beginTime, endTime) + .isNotNull(PmsTemProcessTrackPO::getApprovalTime) + .count(); + pmsTemProcessReport.setApprovalProblemNum(approvalProblemNum); + pmsTemProcessReport.setApprovalProblemCount(approvalProblemCount); + + Integer approvalRectificationProblemNum = pmsTemProcessApprovalService.lambdaQuery() + .in(PmsTemProcessApproval::getTempUserDossierId, userIds) + .eq(PmsTemProcessApproval::getRectificationStatus, "02") +// .eq(PmsTemProcessTrackPO::getProStage,"01") + .between(PmsTemProcessApproval::getRectificationTime, beginTime, endTime) + .count(); + + Integer approvalRectificationProblemCount = pmsTemProcessApprovalService.lambdaQuery() + .in(PmsTemProcessApproval::getTempUserDossierId, userIds) + .eq(PmsTemProcessApproval::getRectificationStatus, "02") +// .eq(PmsTemProcessTrackPO::getProStage,"01") +// .between(PmsTemProcessApproval::getRectificationTime, beginTime, endTime) + .count(); + + pmsTemProcessReport.setApprovalRectificationProblemNum(approvalRectificationProblemNum); + pmsTemProcessReport.setApprovalRectificationProblemCount(approvalRectificationProblemCount); + + //试运行 + Integer testRunUserCount = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) + .eq(PmsTemProcessTrackPO::getProStage,"03") + .between(PmsTemProcessTrackPO::getMonitorDate, beginTime, endTime) + .count(); + Integer testRunOvUserNum = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) + .eq(PmsTemProcessTrackPO::getProStage,"03") + .eq(PmsTemProcessTrackPO::getTestIsOv,"01") + .between(PmsTemProcessTrackPO::getMonitorDate, beginTime, endTime) + .count(); + pmsTemProcessReport.setTestRunUserCount(testRunUserCount); + pmsTemProcessReport.setTestRunOvUserNum(testRunOvUserNum); + pmsTemProcessReport.setTestRunOvUserRate(BigDecimal.valueOf(Double.valueOf(testRunOvUserNum*100)/testRunOvUserNum).setScale(2)); + + Integer runUserCount = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) + .eq(PmsTemProcessTrackPO::getProStage,"04") + .between(PmsTemProcessTrackPO::getOperateDate, beginTime, endTime) + .count(); + Integer runOvUserNum = iPmsTemProcessTrackService.lambdaQuery() + .in(PmsTemProcessTrackPO::getTempUserDossierId, userIds) + .eq(PmsTemProcessTrackPO::getProStage,"04") + .isNotNull(PmsTemProcessTrackPO::getOvIndexs) + .between(PmsTemProcessTrackPO::getOperateDate, beginTime, endTime) + .count(); + + + pmsTemProcessReport.setRunUserCount(runUserCount); + pmsTemProcessReport.setRunOvUserNum(runOvUserNum); + pmsTemProcessReport.setRunOvUserRate(BigDecimal.valueOf(Double.valueOf(runOvUserNum*100)/runUserCount).setScale(2)); + pmsTemProcessReportList.add(pmsTemProcessReport); + + }); + }); + pmsTemProcessReportList.forEach(temp->{ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(PmsTemProcessReport::getProvinceOrg,temp.getProvinceOrg()) + .eq(PmsTemProcessReport::getCityOrg,temp.getCityOrg()) + .eq(PmsTemProcessReport::getStatisticalDate,temp.getStatisticalDate()); + this.update(temp,queryWrapper); + }); + + return true; } }