|
@@ -89,6 +89,7 @@ import com.ozs.pm.service.PmBidOpeningService;
|
|
|
import com.ozs.pm.service.PmBidWinningOpeningRefService;
|
|
|
import com.ozs.pm.service.PmBidWinningService;
|
|
|
import com.ozs.pm.service.PmBookBuildingService;
|
|
|
+import com.ozs.pm.service.PmCallQuestionHisService;
|
|
|
import com.ozs.pm.service.PmCallQuestionService;
|
|
|
import com.ozs.pm.service.PmContractInfoService;
|
|
|
import com.ozs.pm.service.PmDemandExpertRefService;
|
|
@@ -101,8 +102,6 @@ import com.ozs.system.domain.SysFileRef;
|
|
|
import com.ozs.system.domain.vo.SysRegionVO;
|
|
|
import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
|
|
|
import com.ozs.system.mapper.SysDeptMapper;
|
|
|
-import com.ozs.system.service.*;
|
|
|
-import com.ozs.system.mapper.SysRoleMapper;
|
|
|
import com.ozs.system.service.ISysDeptService;
|
|
|
import com.ozs.system.service.ISysDictDataService;
|
|
|
import com.ozs.system.service.ISysDictTypeService;
|
|
@@ -211,6 +210,8 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
private PmExpertFeedbackService pmExpertFeedbackService;
|
|
|
@Autowired
|
|
|
private PmProcurementDocumentsReviewService pmProcurementDocumentsReviewService;
|
|
|
+ @Autowired
|
|
|
+ private PmCallQuestionHisService questionHisService;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -807,33 +808,33 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
|| PmProjectStatus.DEMAND_AUDIT_RETURN.getCode().equals(projectStatus)
|
|
|
|| PmProjectStatus.WASTE_BID_RETURN.getCode().equals(projectStatus)) {
|
|
|
moduleName = "需求填制";
|
|
|
- } else if(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.DEMAND_WAIT_COMMIT.getCode().equals(projectStatus)) {
|
|
|
moduleName = "需求提交";
|
|
|
- } else if(PmProjectStatus.DEMAND_WAIT_AUDIT.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.DEMAND_WAIT_AUDIT.getCode().equals(projectStatus)) {
|
|
|
moduleName = "需求审核";
|
|
|
- } else if(PmProjectStatus.TASK_WAIT_RELEASE.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.TASK_WAIT_RELEASE.getCode().equals(projectStatus)) {
|
|
|
moduleName = "任务下达";
|
|
|
- } else if(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode().equals(projectStatus)) {
|
|
|
moduleName = "选取代理";
|
|
|
- } else if(PmProjectStatus.EXPERT_FEEDBACK.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.EXPERT_FEEDBACK.getCode().equals(projectStatus)) {
|
|
|
moduleName = "上传意见反馈单";
|
|
|
- } else if(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode().equals(projectStatus)) {
|
|
|
moduleName = "上传招标文件审批表";
|
|
|
- } else if(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode().equals(projectStatus)) {
|
|
|
moduleName = "采购公告发布";
|
|
|
- } else if(PmProjectStatus.PRE_BID_QUERY.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.PRE_BID_QUERY.getCode().equals(projectStatus)) {
|
|
|
moduleName = "标前质疑投诉";
|
|
|
- } else if(PmProjectStatus.WAIT_OPEN_BID.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.WAIT_OPEN_BID.getCode().equals(projectStatus)) {
|
|
|
moduleName = "填写专家信息,开评标";
|
|
|
- } else if(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode().equals(projectStatus) || PmProjectStatus.WASTE_BID_HANDLE.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode().equals(projectStatus) || PmProjectStatus.WASTE_BID_HANDLE.getCode().equals(projectStatus)) {
|
|
|
moduleName = "评标结果公告";
|
|
|
- } else if(PmProjectStatus.POST_BID_QUERY.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.POST_BID_QUERY.getCode().equals(projectStatus)) {
|
|
|
moduleName = "质疑处理,上传中标通知书";
|
|
|
- } else if(PmProjectStatus.CONTRACT_WAIT_FILL.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.CONTRACT_WAIT_FILL.getCode().equals(projectStatus)) {
|
|
|
moduleName = "合同填制";
|
|
|
- } else if(PmProjectStatus.UNDER_CONSTRUCTION.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.UNDER_CONSTRUCTION.getCode().equals(projectStatus)) {
|
|
|
moduleName = "建设文档填制";
|
|
|
- } else if(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode().equals(projectStatus)) {
|
|
|
+ } else if (PmProjectStatus.COMPLETION_CONSTRUCTION.getCode().equals(projectStatus)) {
|
|
|
moduleName = "项目归档";
|
|
|
}
|
|
|
return moduleName;
|
|
@@ -1989,6 +1990,16 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
StatisticalChartsResVo resVo4 = pmDemandMapper.countProjectExceedAllNum(pmDemandReqVo);
|
|
|
resVo4.setColumnName("累计积压的执行滞后采购任务数");
|
|
|
resVos.add(resVo4);
|
|
|
+ //执行停滞采购任务数量--退回的采购任务数量
|
|
|
+ List<String> tzrw = new ArrayList<>();
|
|
|
+ tzrw.add(PmProjectStatus.DEMAND_AUDIT_RETURN.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(tzrw);
|
|
|
+ Map<String, String> map = pmDemandMapper.purchaseProjectDistribution(pmDemandReqVo);
|
|
|
+ StatisticalChartsResVo resVo5 = new StatisticalChartsResVo();
|
|
|
+ resVo5.setColumnName("执行停滞采购任务数量");
|
|
|
+ resVo5.setNum(Integer.parseInt(map.get("countNumber")));
|
|
|
+ resVo5.setEvaluationTotal(BigDecimal.valueOf(Double.valueOf(map.get("evaluationTotal"))));
|
|
|
+ resVos.add(resVo5);
|
|
|
return AjaxResult.success(resVos);
|
|
|
}
|
|
|
|
|
@@ -2166,37 +2177,70 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
//是-1就是查询自己及子孙级以下,否则只查询指定部门
|
|
|
pmDemandReqVo.setDeptList(isQueryAll(pmDemandReqVo.getPurchaseDeptId()));
|
|
|
List<StatisticalChartsResVo> resVos = new ArrayList<>();
|
|
|
- //数量:指本年度状态为“项目建设完成”的项目属性为“重大规划”的项目数
|
|
|
- //预算金额:指本年度状态为“项目建设完成”的项目属性为“重大规划”的项目累加的预算金额
|
|
|
- StatisticalChartsResVo resVo = new StatisticalChartsResVo();
|
|
|
- pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode()));
|
|
|
- resVo = pmDemandMapper.majorProjectByStatus(pmDemandReqVo);
|
|
|
- resVo.setColumnName("今年已完成数量");
|
|
|
+ //本月度新提报重大规划采购任务数量
|
|
|
+ pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
|
|
|
+ StatisticalChartsResVo resVo = pmDemandMapper.majorProjectByStatusThisMonthNew(pmDemandReqVo);
|
|
|
+ resVo.setColumnName("本月度新提报重大规划采购任务数量");
|
|
|
resVos.add(resVo);
|
|
|
-
|
|
|
- //正常推进项目:指本年度正在进行中的项目属性为“重大规划”的项目数
|
|
|
- //预算金额:指本年度正在进行中的项目属性为“重大规划”的项目累加的预算金额
|
|
|
- StatisticalChartsResVo resVo1 = new StatisticalChartsResVo();
|
|
|
- pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.UNDER_CONSTRUCTION.getCode()));
|
|
|
- resVo1 = pmDemandMapper.majorProjectByStatus(pmDemandReqVo);
|
|
|
- resVo1.setColumnName("正常推进数量");
|
|
|
- resVos.add(resVo1);
|
|
|
-
|
|
|
- //执行滞后数量:指本年度逾期项目中,项目属性为“重大规划”的项目数
|
|
|
- //预算金额:指本年度正在进行中的项目属性为“重大规划”的项目累加的预算金额
|
|
|
- StatisticalChartsResVo resVo2 = new StatisticalChartsResVo();
|
|
|
- resVo2 = pmDemandMapper.countMajorProjectExceed(pmDemandReqVo);
|
|
|
- resVo2.setColumnName("执行滞后数量");
|
|
|
+ //本季度新提报重大规划采购任务数量
|
|
|
+ pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
|
|
|
+ StatisticalChartsResVo resVo2 = pmDemandMapper.majorProjectByStatusThisQuaNew(pmDemandReqVo);
|
|
|
+ resVo2.setColumnName("本季度新提报重大规划采购任务数量");
|
|
|
resVos.add(resVo2);
|
|
|
-
|
|
|
- //上年度重大规划采购任务数量:指上年度项目中,项目属性为“重大规划”的项目数
|
|
|
- //预算金额:指上年度项目中,项目属性为“重大规划”的项目累加的预算(合同)金额
|
|
|
- StatisticalChartsResVo resVo3 = new StatisticalChartsResVo();
|
|
|
- resVo3 = pmDemandMapper.countMajorProjectLastYear(pmDemandReqVo);
|
|
|
- resVo3.setColumnName("上年度重大规划采购任务数量");
|
|
|
+ //本年度新提报重大规划采购任务数量
|
|
|
+ pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.DEMAND_WAIT_COMMIT.getCode()));
|
|
|
+ StatisticalChartsResVo resVo3 = pmDemandMapper.majorProjectByStatusThisYearNew(pmDemandReqVo);
|
|
|
+ resVo3.setColumnName("本年度新提报重大规划采购任务数量");
|
|
|
resVos.add(resVo3);
|
|
|
-
|
|
|
- //resVo2=pmDemandMapper.majorProjectByStatus(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode());
|
|
|
+ //本月度完成重大规划采购任务数量
|
|
|
+ pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.CONTRACT_WAIT_FILL.getCode()));
|
|
|
+ StatisticalChartsResVo resVo4 = pmDemandMapper.majorProjectByStatusThisMonthFi(pmDemandReqVo);
|
|
|
+ resVo4.setColumnName("本月度完成重大规划采购任务数量");
|
|
|
+ resVos.add(resVo4);
|
|
|
+ //本季度完成重大规划采购任务数量
|
|
|
+ pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.CONTRACT_WAIT_FILL.getCode()));
|
|
|
+ StatisticalChartsResVo resVo5 = pmDemandMapper.majorProjectByStatusThisQuaFi(pmDemandReqVo);
|
|
|
+ resVo5.setColumnName("本季度完成重大规划采购任务数量");
|
|
|
+ resVos.add(resVo5);
|
|
|
+ //本年度完成重大规划采购任务数量
|
|
|
+ pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.CONTRACT_WAIT_FILL.getCode()));
|
|
|
+ StatisticalChartsResVo resVo6 = pmDemandMapper.majorProjectByStatusThisYearFi(pmDemandReqVo);
|
|
|
+ resVo6.setColumnName("本年度完成重大规划采购任务数量");
|
|
|
+ resVos.add(resVo6);
|
|
|
+ //上年度结转和本年度新提报重大规划采购任务累计项目数量
|
|
|
+ List<String> yearLastZ = new ArrayList<>();
|
|
|
+ yearLastZ.add(PmProjectStatus.DEMAND_WAIT_AUDIT.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.DEMAND_AUDIT_RETURN.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.TASK_WAIT_RELEASE.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.EXPERT_FEEDBACK.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.PRE_BID_QUERY.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.WAIT_OPEN_BID.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.WASTE_BID_HANDLE.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.POST_BID_QUERY.getCode());
|
|
|
+ yearLastZ.add(PmProjectStatus.WASTE_BID_RETURN.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(yearLastZ);
|
|
|
+ StatisticalChartsResVo resVo7 = pmDemandMapper.majorProjectByStatusLastYear(pmDemandReqVo);
|
|
|
+ resVo7.setColumnName("上年度结转和本年度新提报重大规划采购任务累计项目数量");
|
|
|
+ resVo7.setNum(resVo7.getNum() + resVo3.getNum());
|
|
|
+ resVo7.setEvaluationTotal(resVo7.getEvaluationTotal().add(resVo3.getEvaluationTotal()));
|
|
|
+ resVos.add(resVo7);
|
|
|
+ //今年以来累计完成数量
|
|
|
+ pmDemandReqVo.setProjectStatus(Long.valueOf(PmProjectStatus.CONTRACT_WAIT_FILL.getCode()));
|
|
|
+ StatisticalChartsResVo resVo8 = pmDemandMapper.majorProjectByStatusToThisYear(pmDemandReqVo);
|
|
|
+ resVo8.setColumnName("今年以来累计完成数量");
|
|
|
+ resVos.add(resVo8);
|
|
|
+ //正常推进周期内的重大规划采购任务数量
|
|
|
+ StatisticalChartsResVo resVo9 = pmDemandMapper.majorProjectByStatusWei(pmDemandReqVo);
|
|
|
+ resVo9.setColumnName("正常推进周期内的重大规划采购任务数量");
|
|
|
+ resVos.add(resVo9);
|
|
|
+ //执行滞后的重大规划采购任务数量
|
|
|
+ StatisticalChartsResVo resVo10 = pmDemandMapper.majorProjectByStatusChao(pmDemandReqVo);
|
|
|
+ resVo10.setColumnName("执行滞后的重大规划采购任务数量");
|
|
|
+ resVos.add(resVo10);
|
|
|
return AjaxResult.success(resVos);
|
|
|
}
|
|
|
|
|
@@ -3266,6 +3310,53 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
return byChange;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public AjaxResult exceedReason(PmDemandReqVo pmDemandReqVo) {
|
|
|
+ List<StatisticalChartsResVo> resVos = new ArrayList<>();
|
|
|
+ //是-1就是查询自己及子孙级以下,否则只查询指定部门
|
|
|
+ pmDemandReqVo.setDeptList(isQueryAll(pmDemandReqVo.getPurchaseDeptId()));
|
|
|
+ //统计超过计划完成采购时间的项目中,处在各阶段的数据包括以下内容:
|
|
|
+ //1、需求编制对接数量/涉及金额:状态为“采购需求对接”的数量及预算金额
|
|
|
+ List<String> xqdj = new ArrayList<>();
|
|
|
+ xqdj.add(PmProjectStatus.PURCHASE_DEMAND_DOCKING.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(xqdj);
|
|
|
+ StatisticalChartsResVo resVo = pmDemandMapper.countProjectExceedAndStatus(pmDemandReqVo);
|
|
|
+ resVo.setColumnName("需求编制对接数量");
|
|
|
+ resVos.add(resVo);
|
|
|
+ //2、采购文件编制审核数量/涉及金额:状态为“采购文件编制审核“的数量及预算金额
|
|
|
+ List<String> wjsh = new ArrayList<>();
|
|
|
+ wjsh.add(PmProjectStatus.PROCUREMENT_DOCUMENTS_REVIEW.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(wjsh);
|
|
|
+ StatisticalChartsResVo resVo2 = pmDemandMapper.countProjectExceedAndStatus(pmDemandReqVo);
|
|
|
+ resVo2.setColumnName("采购文件编制审核数量");
|
|
|
+ resVos.add(resVo2);
|
|
|
+ //3、质疑、投诉、复议、信访举报数量/涉及金额:按钮”质疑投诉”进行质疑过的项目及预算金额
|
|
|
+ List<Long> demandIdAll = questionHisService.selectDemandIdAll();
|
|
|
+ pmDemandReqVo.setDemandIdAll(demandIdAll);
|
|
|
+ StatisticalChartsResVo resVo3 = pmDemandMapper.countProjectExceedAndStatus(pmDemandReqVo);
|
|
|
+ resVo3.setColumnName("质疑、投诉、复议、信访举报数量");
|
|
|
+ resVos.add(resVo3);
|
|
|
+ //4、流标废标数量/涉及金额:状态为“流废标处置”的项目及预算金额
|
|
|
+ List<String> fblb = new ArrayList<>();
|
|
|
+ fblb.add(PmProjectStatus.WASTE_BID_HANDLE.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(fblb);
|
|
|
+ StatisticalChartsResVo resVo4 = pmDemandMapper.countProjectExceedAndStatus(pmDemandReqVo);
|
|
|
+ resVo4.setColumnName("流标废标数量");
|
|
|
+ resVos.add(resVo4);
|
|
|
+ //5、其他原因项目数量/涉及金额:统计“专家意见反馈”、“采购公告发布”、”待开标“、”评标结果公告“、“标后质疑”状态的数据
|
|
|
+ List<String> qtyy = new ArrayList<>();
|
|
|
+ qtyy.add(PmProjectStatus.EXPERT_FEEDBACK.getCode());
|
|
|
+ qtyy.add(PmProjectStatus.PROCUREMENT_ANNOUNCEMENT.getCode());
|
|
|
+ qtyy.add(PmProjectStatus.WAIT_OPEN_BID.getCode());
|
|
|
+ qtyy.add(PmProjectStatus.BID_RESULT_ANNOUNCEMENT.getCode());
|
|
|
+ qtyy.add(PmProjectStatus.POST_BID_QUERY.getCode());
|
|
|
+ pmDemandReqVo.setProjectStatusList(qtyy);
|
|
|
+ StatisticalChartsResVo resVo5 = pmDemandMapper.countProjectExceedAndStatus(pmDemandReqVo);
|
|
|
+ resVo5.setColumnName("其他原因项目数量");
|
|
|
+ resVos.add(resVo5);
|
|
|
+ return AjaxResult.success(resVos);
|
|
|
+ }
|
|
|
+
|
|
|
//查询不同状态下的项目数据
|
|
|
public List<PmDemandResVo> getListByStatus(String projectStatus) {
|
|
|
LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<PmDemand>();
|