Merge remote-tracking branch 'origin/master'

# Conflicts:
#	pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/upload/impl/PmsTemProcessReportServiceImpl.java
This commit is contained in:
2024-10-28 17:54:17 +08:00

View File

@@ -2,27 +2,39 @@ 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 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;
/**
@@ -37,7 +49,14 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class PmsTemProcessReportServiceImpl extends ServiceImpl<PmsTemProcessReportMapper, PmsTemProcessReport> implements IPmsTemProcessReportService {
private final PmsTemUserMapper pmsTemUserMapper;
private final DeptFeignClient deptFeignClient;
private final IPmsTemUserService iPmsTemUserService;
private final IPmsTemProcessTrackService iPmsTemProcessTrackService;
private final PmsTemProcessApprovalService pmsTemProcessApprovalService;
@Override
@@ -82,9 +101,125 @@ public class PmsTemProcessReportServiceImpl extends ServiceImpl<PmsTemProcessRep
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean dayCalReport() {
DateTime beginTime = DateUtil.beginOfMonth(new Date());
DateTime endTime = DateUtil.endOfMonth(new Date());
String statisticalDate = DateUtil.format(new Date(),"yyyy-MM");
List<PmsTemProcessReport> pmsTemProcessReportList = new ArrayList<>();
List<PvTerminalTreeVO> 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);
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<PmsTemUserPO> list = iPmsTemUserService.lambdaQuery()
.eq(PmsTemUserPO::getProvinceOrg, province.getCode())
.eq(PmsTemUserPO::getCityOrg, city.getCode()).list();
pmsTemProcessReport.setNewUserNum(monthCount);
pmsTemProcessReport.setNewUserCount(list.size());
List<String> 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));
return null;
}