国网上送
This commit is contained in:
@@ -2,26 +2,38 @@ package com.njcn.harmonic.service.upload.impl;
|
|||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
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.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.common.pojo.exception.BusinessException;
|
||||||
import com.njcn.harmonic.mapper.upload.PmsTemProcessReportMapper;
|
import com.njcn.harmonic.mapper.upload.PmsTemProcessReportMapper;
|
||||||
import com.njcn.harmonic.mapper.upload.PmsTemUserMapper;
|
import com.njcn.harmonic.mapper.upload.PmsTemUserMapper;
|
||||||
import com.njcn.harmonic.pojo.param.upload.PmsTemUserParam;
|
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.PmsTemProcessReport;
|
||||||
import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTrackPO;
|
import com.njcn.harmonic.pojo.po.upload.PmsTemProcessTrackPO;
|
||||||
import com.njcn.harmonic.pojo.po.upload.PmsTemUserPO;
|
import com.njcn.harmonic.pojo.po.upload.PmsTemUserPO;
|
||||||
import com.njcn.harmonic.service.upload.IPmsTemProcessReportService;
|
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.enums.GWSendEnum;
|
||||||
import com.njcn.web.pojo.param.SendParam;
|
import com.njcn.web.pojo.param.SendParam;
|
||||||
import com.njcn.web.utils.GwSendUtil;
|
import com.njcn.web.utils.GwSendUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.math.BigDecimal;
|
||||||
import java.util.Map;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -36,7 +48,14 @@ import java.util.stream.Collectors;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PmsTemProcessReportServiceImpl extends ServiceImpl<PmsTemProcessReportMapper, PmsTemProcessReport> implements IPmsTemProcessReportService {
|
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
|
@Override
|
||||||
@@ -81,10 +100,154 @@ public class PmsTemProcessReportServiceImpl extends ServiceImpl<PmsTemProcessRep
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean dayCalReport() {
|
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);
|
||||||
|
|
||||||
|
|
||||||
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<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));
|
||||||
|
|
||||||
|
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<PmsTemProcessReport> 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user