|
@@ -1,7 +1,6 @@
|
|
|
package com.ozs.pm.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -25,6 +24,7 @@ import com.ozs.common.core.domain.entity.SysRole;
|
|
|
import com.ozs.common.core.domain.entity.SysUser;
|
|
|
import com.ozs.common.core.domain.model.LoginUser;
|
|
|
import com.ozs.common.enums.BidWinningStatus;
|
|
|
+import com.ozs.common.enums.DataIsDelete;
|
|
|
import com.ozs.common.enums.ExpertType;
|
|
|
import com.ozs.common.enums.IsExcess;
|
|
|
import com.ozs.common.enums.NameListType;
|
|
@@ -32,6 +32,7 @@ import com.ozs.common.enums.PlanPurchaseMode;
|
|
|
import com.ozs.common.enums.PmProjectStatus;
|
|
|
import com.ozs.common.enums.ProcurementMethodSuggest;
|
|
|
import com.ozs.common.enums.ProjectAttribute;
|
|
|
+import com.ozs.common.enums.ProjectStatus;
|
|
|
import com.ozs.common.enums.ProjectTypes;
|
|
|
import com.ozs.common.enums.SysFileRefEnum;
|
|
|
import com.ozs.common.enums.WarnStatus;
|
|
@@ -41,10 +42,12 @@ import com.ozs.common.utils.SecurityUtils;
|
|
|
import com.ozs.common.utils.StringUtils;
|
|
|
import com.ozs.common.utils.bean.BeanUtils;
|
|
|
import com.ozs.home.domain.vo.HomeToDoQueryResVo;
|
|
|
+import com.ozs.plan.doman.PlanQuarter;
|
|
|
import com.ozs.plan.doman.PlanYears;
|
|
|
import com.ozs.plan.doman.ProvisionalPlan;
|
|
|
import com.ozs.plan.doman.vo.responseVo.PlanQuarterResponseVo;
|
|
|
import com.ozs.plan.mapper.ProvisionalPlanMapper;
|
|
|
+import com.ozs.plan.service.PlanQuarterService;
|
|
|
import com.ozs.plan.service.PlanYearsService;
|
|
|
import com.ozs.pm.doman.PmAuditDeptRef;
|
|
|
import com.ozs.pm.doman.PmBidFailure;
|
|
@@ -123,6 +126,7 @@ import org.springframework.util.ObjectUtils;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Calendar;
|
|
@@ -202,6 +206,9 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
@Autowired
|
|
|
private PlanYearsService planYearsService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PlanQuarterService planQuarterService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ISysRegionService iSysRegionService;
|
|
|
|
|
@@ -397,10 +404,22 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
}
|
|
|
List<SysDictData> dictDataT = dictTypeService.selectDictDataByType(Constants.SYS_PROJECT_TYPE);
|
|
|
- for (SysDictData data : dictDataT) {
|
|
|
- if (data.getDictValue().equals(baseAgency.getCompanyType() + "")) {
|
|
|
- baseAgency.setCompanyTypeName(data.getDictLabel());
|
|
|
- break;
|
|
|
+ if (baseAgency.getCompanyType().length() == 1) {
|
|
|
+ for (SysDictData data : dictDataT) {
|
|
|
+ if (data.getDictValue().equals(baseAgency.getCompanyType() + "")) {
|
|
|
+ baseAgency.setCompanyTypeName(data.getDictLabel());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (baseAgency.getCompanyType().split(",").length > 1) {
|
|
|
+ String[] split = baseAgency.getCompanyType().split(",");
|
|
|
+ for (String s : split) {
|
|
|
+ for (SysDictData data : dictDataT) {
|
|
|
+ if (data.getDictValue().equals(s)) {
|
|
|
+ baseAgency.setCompanyTypeName(data.getDictLabel());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
pmPurchaseExecutionResVo.setBaseAgency(baseAgency);
|
|
@@ -2109,6 +2128,47 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
return AjaxResult.success(homeRes);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public AjaxResult procurementOfficeWillAlertProject() {
|
|
|
+ List<HomeToDoQueryResVo> homeRes = new ArrayList<>();
|
|
|
+ // 采购需求对接,专家意见反馈,采购文件编制审核,采购公告发布,标前质疑投诉,待开标,评标结果公告,流废标处置,标后质疑
|
|
|
+ List<PmDemandResVo> demandRes = new ArrayList<>();
|
|
|
+ List<String> projectStatus = new ArrayList<>();
|
|
|
+ projectStatus.add(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.EXPERT_FEEDBACK.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.PRE_BID_QUERY.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.WAIT_OPEN_BID.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.WASTE_BID_HANDLE.getCode());
|
|
|
+ projectStatus.add(PmProjectStatus.POST_BID_QUERY.getCode());
|
|
|
+ demandRes = listToVoList(getListByStatusTotalCGB(projectStatus));
|
|
|
+ //计划数据--发函催告
|
|
|
+ List<PlanQuarterResponseVo> planRes = planYearsService.willSendLetter();
|
|
|
+ //转为首页table展示数据
|
|
|
+ if (!ObjectUtils.isEmpty(demandRes) && demandRes.size() > 0) {
|
|
|
+ for (PmDemandResVo demandResVo : demandRes) {
|
|
|
+ if (!demandResVo.getTipsMessage().equals("") && demandResVo.getTipsMessage().length() > 0) {
|
|
|
+ HomeToDoQueryResVo home = new HomeToDoQueryResVo();
|
|
|
+ home.setEvaluation(BigDecimal.valueOf(demandResVo.getEvaluation()));
|
|
|
+ BeanUtils.copyProperties(demandResVo, home);
|
|
|
+ homeRes.add(home);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(planRes) && planRes.size() > 0) {
|
|
|
+ for (PlanQuarterResponseVo planVo : planRes) {
|
|
|
+ if (!planVo.getTipsMessage().equals("") && planVo.getTipsMessage().length() > 0) {
|
|
|
+ HomeToDoQueryResVo home = new HomeToDoQueryResVo();
|
|
|
+ BeanUtils.copyProperties(planVo, home);
|
|
|
+ homeRes.add(home);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.success(homeRes);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public AjaxResult procurementOfficeWillManipulateTotalNum() {
|
|
|
List<StatisticalChartsResVo> result = new ArrayList<>();
|
|
@@ -2491,7 +2551,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public AjaxResult countEveryStatusNum(PmDemandReqVo pmDemandReqVo) {
|
|
|
+ public AjaxResult countEveryStatusNumThisYear(PmDemandReqVo pmDemandReqVo) {
|
|
|
//阶段包括:采购需求对接,专家意见反馈,采购文件编制审核,采购公告发布,标前质疑投诉,待开标,评标结果公告,流废标处置,标后质疑
|
|
|
//是-1就是查询自己及子孙级以下,否则只查询指定部门
|
|
|
if (pmDemandReqVo.getPurchaseDeptId().equals(-1)) {
|
|
@@ -2503,47 +2563,47 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
|
|
|
//项目进行到各个阶段的数量
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum9 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum9 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum9.setColumnName(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum9);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.EXPERT_FEEDBACK.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum10 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum10 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum10.setColumnName(PmProjectStatus.EXPERT_FEEDBACK.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum10);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum11 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum11 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum11.setColumnName(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum11);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum12 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum12 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum12.setColumnName(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum12);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.PRE_BID_QUERY.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum13 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum13 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum13.setColumnName(PmProjectStatus.PRE_BID_QUERY.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum13);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.WAIT_OPEN_BID.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum14 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum14 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum14.setColumnName(PmProjectStatus.WAIT_OPEN_BID.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum14);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum15 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum15 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum15.setColumnName(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum15);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.WASTE_BID_HANDLE.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum16 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum16 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum16.setColumnName(PmProjectStatus.WASTE_BID_HANDLE.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum16);
|
|
|
|
|
|
pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.POST_BID_QUERY.getCode()));
|
|
|
- StatisticalChartsResVo everyStatusNum17 = pmDemandMapper.countEveryStatusNum(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo everyStatusNum17 = pmDemandMapper.countEveryStatusNumThisYear(pmDemandReqVo);
|
|
|
everyStatusNum17.setColumnName(PmProjectStatus.POST_BID_QUERY.getInfo());
|
|
|
everyStatusNum.add(everyStatusNum17);
|
|
|
|
|
@@ -4615,5 +4675,149 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
return demandId;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Map<String, String> demandZGWZPL(PmDemandReqVo pmDemandReqVo) {
|
|
|
+ List<StatisticalChartsResVo> resVos = new ArrayList<>();
|
|
|
+ Long userId = SecurityUtils.getUserId();
|
|
|
+ //是-1就是查询自己及子孙级以下,否则只查询指定部门
|
|
|
+ if (pmDemandReqVo.getPurchaseDeptId().equals(-1)) {
|
|
|
+ pmDemandReqVo.setDeptList(isQueryAll(pmDemandReqVo.getPurchaseDeptId()));
|
|
|
+ } else {
|
|
|
+ pmDemandReqVo.setDemandIdAll(isQueryZD(pmDemandReqVo.getPurchaseDeptId()));
|
|
|
+ }
|
|
|
+ //"采购管理部门“执行率”、“规划执行率”、“完成率”、“滞后率”、“偏差率”、“流废标率”
|
|
|
+ //(1)执行率:年度计划中已提报需求项目占比
|
|
|
+ //项目状态为“需求待审核”及以后的所有项目状态的项目数/年度计划中所有的项目数*100%
|
|
|
+ LambdaQueryWrapper<PlanYears> lw = new LambdaQueryWrapper<PlanYears>();
|
|
|
+ if (!userId.equals(Long.valueOf("1"))) {
|
|
|
+ lw.eq(PlanYears::getCreated, userId);
|
|
|
+ }
|
|
|
+ lw.eq(PlanYears::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
|
|
|
+ lw.orderBy(true, false, PlanYears::getCreateTime);
|
|
|
+ //年度计划中所有的项目数
|
|
|
+ long countPlanYear = planYearsService.count(lw);
|
|
|
+ //状态为“需求待审核”以后的数据
|
|
|
+ List<String> afsh = new ArrayList<>();
|
|
|
+ afsh.add(PmProjectStatus.DEMAND_WAIT_AUDIT.getCode());
|
|
|
+ afsh.add(PmProjectStatus.DEMAND_AUDIT_RETURN.getCode());
|
|
|
+ afsh.add(PmProjectStatus.TASK_WAIT_RELEASE.getCode());
|
|
|
+ afsh.add(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode());
|
|
|
+ afsh.add(PmProjectStatus.EXPERT_FEEDBACK.getCode());
|
|
|
+ afsh.add(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode());
|
|
|
+ afsh.add(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode());
|
|
|
+ afsh.add(PmProjectStatus.PRE_BID_QUERY.getCode());
|
|
|
+ afsh.add(PmProjectStatus.WAIT_OPEN_BID.getCode());
|
|
|
+ afsh.add(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode());
|
|
|
+ afsh.add(PmProjectStatus.WASTE_BID_HANDLE.getCode());
|
|
|
+ afsh.add(PmProjectStatus.POST_BID_QUERY.getCode());
|
|
|
+ afsh.add(PmProjectStatus.WASTE_BID_RETURN.getCode());
|
|
|
+ afsh.add(PmProjectStatus.CONTRACT_WAIT_FILL.getCode());
|
|
|
+ afsh.add(PmProjectStatus.UNDER_CONSTRUCTION.getCode());
|
|
|
+ afsh.add(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(afsh);
|
|
|
+ Map<String, Object> num1 = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
|
|
|
+ int countAfsh = Integer.parseInt(num1.get("countNumber").toString());
|
|
|
+ //执行率
|
|
|
+ String zxl = getPercent(countAfsh, Math.toIntExact(countPlanYear));
|
|
|
+ //(2)规划执行率:年度“规划任务项目”和“重大规划项目”计划中已提报需求项目占比
|
|
|
+ //项目属性为“规划任务项目”和“重大规划项目”,
|
|
|
+ // 并且项目状态为“需求待审核”及以后的所有项目状态的项目数/年度计划中所有的项目数*100%
|
|
|
+ StatisticalChartsResVo resVo1 = pmDemandMapper.ghrwAndZdghProjectByStatus(pmDemandReqVo);
|
|
|
+ //规划执行率
|
|
|
+ String ghzxl = getPercent(resVo1.getNum(), Math.toIntExact(countPlanYear));
|
|
|
+ //(3)完成率:已提报需求项目中完成采购项目占比
|
|
|
+ //项目状态为“合同待填制”及以后的所有项目状态的项目数/项目状态为“需求待审核”及以后的所有项目状态的项目数*100%
|
|
|
+ List<String> afhttz = new ArrayList<>();
|
|
|
+ afhttz.add(PmProjectStatus.CONTRACT_WAIT_FILL.getCode());
|
|
|
+ afhttz.add(PmProjectStatus.UNDER_CONSTRUCTION.getCode());
|
|
|
+ afhttz.add(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(afhttz);
|
|
|
+ //“合同待填制”及以后的所有项目状态的项目数
|
|
|
+ Map<String, Object> num2 = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
|
|
|
+ int countAfhttz = Integer.parseInt(num2.get("countNumber").toString());
|
|
|
+ //完成率
|
|
|
+ String wcl = getPercent(countAfhttz, countAfsh);
|
|
|
+ //(4)滞后率:以需求审核通过项目为基数,实施周期超过 90日的项目占比
|
|
|
+ //进行“任务下达”后,开始计算时间,统计该项目超过90日项目状态没有到“合同待填制”的项目数/任务下达后的总项目数
|
|
|
+ List<String> afRwxd = new ArrayList<>();
|
|
|
+ afRwxd.add(PmProjectStatus.TASK_WAIT_RELEASE.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.EXPERT_FEEDBACK.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.PRE_BID_QUERY.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.WAIT_OPEN_BID.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.WASTE_BID_HANDLE.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.POST_BID_QUERY.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.WASTE_BID_RETURN.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.CONTRACT_WAIT_FILL.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.UNDER_CONSTRUCTION.getCode());
|
|
|
+ afRwxd.add(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(afRwxd);
|
|
|
+ //“任务下达”后
|
|
|
+ Map<String, Object> num3 = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
|
|
|
+ int countAfRwxd = Integer.parseInt(num3.get("countNumber").toString());
|
|
|
+ //该项目超过90日
|
|
|
+ Map<String, Object> num4 = pmDemandMapper.purchaseProjectConducted90Days(pmDemandReqVo);
|
|
|
+ int countAf90xm = Integer.parseInt(num4.get("countNumber").toString());
|
|
|
+ //滞后率
|
|
|
+ String zhhl = getPercent(countAf90xm, countAfRwxd);
|
|
|
+ //(5)偏差率,计划偏差率=(未按计划时间受领数量+临时受理需求数量)/季度计划数量
|
|
|
+ //未按计划时间受领数量:季度计划模块审核通过但没有进行需求提报并超过计划需求提报时间的计划数
|
|
|
+ LambdaQueryWrapper<PlanQuarter> planQuarterLw = new LambdaQueryWrapper<>();
|
|
|
+ if (!userId.equals(Long.valueOf("1"))) {
|
|
|
+ planQuarterLw.eq(PlanQuarter::getCreated, userId);
|
|
|
+ }
|
|
|
+ planQuarterLw.eq(PlanQuarter::getPlanType, "0");
|
|
|
+ planQuarterLw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
|
|
|
+ //季度计划数量
|
|
|
+ long planQuarter = planQuarterService.count(planQuarterLw);
|
|
|
+ //通过审核的季度计划:季度计划审核通过的所有数量
|
|
|
+ planQuarterLw.eq(PlanQuarter::getProjectStatus, ProjectStatus.PLANTOEXAMINE.getCode());
|
|
|
+ List<PlanQuarter> planQuarterList = planQuarterService.list(planQuarterLw);
|
|
|
+ List<Long> planQuarterIds = planQuarterList.stream().map(PlanQuarter::getPlanPracticalId).collect(Collectors.toList());
|
|
|
+ //没有进行需求提报并超过计划需求提报时间的计划数
|
|
|
+ List<String> xqWtj = new ArrayList<>();
|
|
|
+ xqWtj.add(PmProjectStatus.DEMAND_WAIT_FILL.getCode());
|
|
|
+ xqWtj.add(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(xqWtj);
|
|
|
+ pmDemandReqVo.setDemandIdAll(planQuarterIds);
|
|
|
+ Map<String, Object> num5 = pmDemandMapper.purchaseProjectWTB(pmDemandReqVo);
|
|
|
+ int countXmWtj = Integer.parseInt(num5.get("countNumber").toString());
|
|
|
+ //临时受理需求数量:临时计划模块的计划进行需求提报后的计划数量
|
|
|
+ LambdaQueryWrapper<PlanQuarter> planLinshiLw = new LambdaQueryWrapper<>();
|
|
|
+ if (!userId.equals(Long.valueOf("1"))) {
|
|
|
+ planLinshiLw.eq(PlanQuarter::getCreated, userId);
|
|
|
+ }
|
|
|
+ planLinshiLw.eq(PlanQuarter::getPlanType, "1");
|
|
|
+ planLinshiLw.eq(PlanQuarter::getDelFlay, DataIsDelete.DataNOTDelete.getCode());
|
|
|
+ //通过审核的临时计划:临时计划审核通过的所有数量
|
|
|
+ planLinshiLw.eq(PlanQuarter::getProjectStatus, ProjectStatus.PLANTOEXAMINE.getCode());
|
|
|
+ List<PlanQuarter> planLinshiList = planQuarterService.list(planLinshiLw);
|
|
|
+ List<Long> planLinshiIds = planLinshiList.stream().map(PlanQuarter::getPlanPracticalId).collect(Collectors.toList());
|
|
|
+ //进行需求提报的计划
|
|
|
+ pmDemandReqVo.setProjectStatusList(null);
|
|
|
+ pmDemandReqVo.setDemandIdAll(planLinshiIds);
|
|
|
+ Map<String, Object> num6 = pmDemandMapper.purchaseProjectYTB(pmDemandReqVo);
|
|
|
+ int countXmYtj = Integer.parseInt(num6.get("countNumber").toString());
|
|
|
+ String pcl = getPercent((countXmWtj + countXmYtj), Math.toIntExact(planQuarter));
|
|
|
+ //(6)流废标率,出现流废标情况的项目/审核下达采购机构实施的采购项目
|
|
|
+ //项目状态存在过“流废标处置”的项目数/项目状态为“任务已下达”以后的状态的所有项目*100%
|
|
|
+ List<String> lfb = new ArrayList<>();
|
|
|
+ lfb.add(PmProjectStatus.DEMAND_WAIT_FILL.getCode());
|
|
|
+ lfb.add(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(xqWtj);
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> result = new HashMap<>();
|
|
|
+ result.put("zxl", zxl);
|
|
|
+ result.put("ghzxl", ghzxl);
|
|
|
+ result.put("wcl", wcl);
|
|
|
+ result.put("zhhl", zhhl);
|
|
|
+ result.put("pcl", pcl);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|