|
@@ -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;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -336,11 +337,11 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
|
|
|
//专家意见反馈
|
|
|
LambdaQueryWrapper<PmExpertFeedback> pmExpertFeedbackLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- pmExpertFeedbackLambdaQueryWrapper.eq(PmExpertFeedback::getDemandId,demandId);
|
|
|
+ pmExpertFeedbackLambdaQueryWrapper.eq(PmExpertFeedback::getDemandId, demandId);
|
|
|
PmExpertFeedback pmExpertFeedback = pmExpertFeedbackService.getOne(pmExpertFeedbackLambdaQueryWrapper);
|
|
|
- if(!ObjectUtils.isEmpty(pmExpertFeedback)){
|
|
|
+ if (!ObjectUtils.isEmpty(pmExpertFeedback)) {
|
|
|
PmExpertFeedbackResVo pmExpertFeedbackResVo = new PmExpertFeedbackResVo();
|
|
|
- BeanUtils.copyProperties(pmExpertFeedback,pmExpertFeedbackResVo);
|
|
|
+ BeanUtils.copyProperties(pmExpertFeedback, pmExpertFeedbackResVo);
|
|
|
|
|
|
List<SysFileInfo> fileInfos = getSysFileInfoList(pmExpertFeedbackResVo.getId(), SysFileRefEnum.PM_EXPERT_FEEDBACK.getType());
|
|
|
if (!ObjectUtils.isEmpty(fileInfos)) {
|
|
@@ -351,11 +352,11 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
|
|
|
//采购文件编制审核
|
|
|
LambdaQueryWrapper<PmProcurementDocumentsReview> pmProcurementDocumentsReviewLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- pmProcurementDocumentsReviewLambdaQueryWrapper.eq(PmProcurementDocumentsReview::getDemandId,demandId);
|
|
|
+ pmProcurementDocumentsReviewLambdaQueryWrapper.eq(PmProcurementDocumentsReview::getDemandId, demandId);
|
|
|
PmProcurementDocumentsReview pmProcurementDocumentsReview = pmProcurementDocumentsReviewService.getOne(pmProcurementDocumentsReviewLambdaQueryWrapper);
|
|
|
- if(!ObjectUtils.isEmpty(pmProcurementDocumentsReview)){
|
|
|
+ if (!ObjectUtils.isEmpty(pmProcurementDocumentsReview)) {
|
|
|
PmProcurementDocumentsReviewResVo pmProcurementDocumentsReviewResVo = new PmProcurementDocumentsReviewResVo();
|
|
|
- BeanUtils.copyProperties(pmProcurementDocumentsReview,pmProcurementDocumentsReviewResVo);
|
|
|
+ BeanUtils.copyProperties(pmProcurementDocumentsReview, pmProcurementDocumentsReviewResVo);
|
|
|
|
|
|
List<SysFileInfo> fileInfos = getSysFileInfoList(pmProcurementDocumentsReviewResVo.getId(), SysFileRefEnum.PM_BID_FILE.getType());
|
|
|
if (!ObjectUtils.isEmpty(fileInfos)) {
|
|
@@ -387,15 +388,15 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
|
|
|
//标前质疑投诉
|
|
|
LambdaQueryWrapper<PmCallQuestion> pmCallQuestionLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- pmCallQuestionLambdaQueryWrapper.eq(PmCallQuestion::getDemandId,demandId)
|
|
|
- .eq(PmCallQuestion::getType,'0').orderByDesc(PmCallQuestion::getCallQuestionTime);
|
|
|
- List<PmCallQuestion> pmCallQuestionList = pmCallQuestionService.list(pmCallQuestionLambdaQueryWrapper);
|
|
|
- if(!ObjectUtils.isEmpty(pmCallQuestionList)){
|
|
|
+ pmCallQuestionLambdaQueryWrapper.eq(PmCallQuestion::getDemandId, demandId)
|
|
|
+ .eq(PmCallQuestion::getType, '0').orderByDesc(PmCallQuestion::getCallQuestionTime);
|
|
|
+ List<PmCallQuestion> pmCallQuestionList = pmCallQuestionService.list(pmCallQuestionLambdaQueryWrapper);
|
|
|
+ if (!ObjectUtils.isEmpty(pmCallQuestionList)) {
|
|
|
List<PmCallQuestionResVo> pmCallQuestionResVoList = new ArrayList<>();
|
|
|
List<SysFileInfo> fileInfosAll = new ArrayList<>();
|
|
|
- for(PmCallQuestion pmCallQuestion : pmCallQuestionList){
|
|
|
+ for (PmCallQuestion pmCallQuestion : pmCallQuestionList) {
|
|
|
PmCallQuestionResVo pmCallQuestionResVo = new PmCallQuestionResVo();
|
|
|
- BeanUtils.copyProperties(pmCallQuestion,pmCallQuestionResVo);
|
|
|
+ BeanUtils.copyProperties(pmCallQuestion, pmCallQuestionResVo);
|
|
|
List<SysFileInfo> fileInfos = getSysFileInfoList(pmCallQuestionResVo.getId(), SysFileRefEnum.PM_PRE_BID_CALL_QUESTION.getType());
|
|
|
if (!ObjectUtils.isEmpty(fileInfos)) {
|
|
|
fileInfosAll.addAll(fileInfos);
|
|
@@ -439,15 +440,15 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
|
|
|
//标后质疑
|
|
|
LambdaQueryWrapper<PmCallQuestion> pmCallQuestionLambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
|
|
- pmCallQuestionLambdaQueryWrapper2.eq(PmCallQuestion::getDemandId,demandId)
|
|
|
- .eq(PmCallQuestion::getType,'1').orderByDesc(PmCallQuestion::getCallQuestionTime);
|
|
|
- List<PmCallQuestion> pmCallQuestionList2 = pmCallQuestionService.list(pmCallQuestionLambdaQueryWrapper2);
|
|
|
- if(!ObjectUtils.isEmpty(pmCallQuestionList2)){
|
|
|
+ pmCallQuestionLambdaQueryWrapper2.eq(PmCallQuestion::getDemandId, demandId)
|
|
|
+ .eq(PmCallQuestion::getType, '1').orderByDesc(PmCallQuestion::getCallQuestionTime);
|
|
|
+ List<PmCallQuestion> pmCallQuestionList2 = pmCallQuestionService.list(pmCallQuestionLambdaQueryWrapper2);
|
|
|
+ if (!ObjectUtils.isEmpty(pmCallQuestionList2)) {
|
|
|
List<PmCallQuestionResVo> pmCallQuestionResVoList = new ArrayList<>();
|
|
|
List<SysFileInfo> fileInfosAll = new ArrayList<>();
|
|
|
- for(PmCallQuestion pmCallQuestion : pmCallQuestionList2){
|
|
|
+ for (PmCallQuestion pmCallQuestion : pmCallQuestionList2) {
|
|
|
PmCallQuestionResVo pmCallQuestionResVo = new PmCallQuestionResVo();
|
|
|
- BeanUtils.copyProperties(pmCallQuestion,pmCallQuestionResVo);
|
|
|
+ BeanUtils.copyProperties(pmCallQuestion, pmCallQuestionResVo);
|
|
|
List<SysFileInfo> fileInfos = getSysFileInfoList(pmCallQuestionResVo.getId(), SysFileRefEnum.PM_BID_CALL_QEUSTION_FILE.getType());
|
|
|
if (!ObjectUtils.isEmpty(fileInfos)) {
|
|
|
fileInfosAll.addAll(fileInfos);
|
|
@@ -479,7 +480,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
|
|
|
|
|
|
- if("1".equals(pmBidFailure.getCallQuestion())){ //有质疑
|
|
|
+ if ("1".equals(pmBidFailure.getCallQuestion())) { //有质疑
|
|
|
PmCallQuestionResVo pmCallQuestionResVo = new PmCallQuestionResVo();
|
|
|
pmCallQuestionResVo.setCallQuestion(pmBidFailure.getCallQuestion());
|
|
|
pmCallQuestionResVo.setCallQuestionTime(pmBidFailure.getCallQuestionTime());
|
|
@@ -650,39 +651,39 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
|
|
|
LambdaQueryWrapper<PmExpertFeedback> pmExpertFeedbackLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- pmExpertFeedbackLambdaQueryWrapper.eq(PmExpertFeedback::getDemandId,vo.getDemandId());
|
|
|
+ pmExpertFeedbackLambdaQueryWrapper.eq(PmExpertFeedback::getDemandId, vo.getDemandId());
|
|
|
PmExpertFeedback pmExpertFeedback = this.pmExpertFeedbackService.getOne(pmExpertFeedbackLambdaQueryWrapper);
|
|
|
- if(pmExpertFeedback != null){
|
|
|
+ if (pmExpertFeedback != null) {
|
|
|
vo.setProjectNumber(pmExpertFeedback.getProjectNumber());
|
|
|
vo.setDocumentReviewTime(pmExpertFeedback.getDocumentReviewTime());
|
|
|
}
|
|
|
|
|
|
LambdaQueryWrapper<PmProcurementDocumentsReview> pmProcurementDocumentsReviewLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- pmProcurementDocumentsReviewLambdaQueryWrapper.eq(PmProcurementDocumentsReview::getDemandId,vo.getDemandId());
|
|
|
+ pmProcurementDocumentsReviewLambdaQueryWrapper.eq(PmProcurementDocumentsReview::getDemandId, vo.getDemandId());
|
|
|
PmProcurementDocumentsReview pmProcurementDocumentsReview = this.pmProcurementDocumentsReviewService.getOne(pmProcurementDocumentsReviewLambdaQueryWrapper);
|
|
|
- if(pmProcurementDocumentsReview != null){
|
|
|
+ if (pmProcurementDocumentsReview != null) {
|
|
|
vo.setProcurementOfficeApprovalTime(pmProcurementDocumentsReview.getProcurementOfficeApprovalTime());
|
|
|
}
|
|
|
|
|
|
- if(Integer.parseInt(vo.getProjectStatus()) > 12 && Integer.parseInt(vo.getProjectStatus()) != 18){
|
|
|
+ if (Integer.parseInt(vo.getProjectStatus()) > 12 && Integer.parseInt(vo.getProjectStatus()) != 18) {
|
|
|
LambdaQueryWrapper<PmReleaseAnnouncement> pmReleaseAnnouncementLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- pmReleaseAnnouncementLambdaQueryWrapper.eq(PmReleaseAnnouncement::getDemandId,vo.getDemandId())
|
|
|
+ pmReleaseAnnouncementLambdaQueryWrapper.eq(PmReleaseAnnouncement::getDemandId, vo.getDemandId())
|
|
|
.orderByDesc(PmReleaseAnnouncement::getReleaseTime)
|
|
|
- .last(" limit 1");
|
|
|
+ .last(" limit 1");
|
|
|
PmReleaseAnnouncement pmReleaseAnnouncement = this.pmReleaseAnnouncementService.getOne(pmReleaseAnnouncementLambdaQueryWrapper);
|
|
|
- if(pmReleaseAnnouncement != null){
|
|
|
+ if (pmReleaseAnnouncement != null) {
|
|
|
vo.setAnnouncementReleaseTime(pmReleaseAnnouncement.getReleaseTime());
|
|
|
vo.setTenderOpenTime(pmReleaseAnnouncement.getTenderOpenTime());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(Integer.parseInt(vo.getProjectStatus()) > 15 && Integer.parseInt(vo.getProjectStatus()) != 16 && Integer.parseInt(vo.getProjectStatus()) != 18){
|
|
|
+ if (Integer.parseInt(vo.getProjectStatus()) > 15 && Integer.parseInt(vo.getProjectStatus()) != 16 && Integer.parseInt(vo.getProjectStatus()) != 18) {
|
|
|
LambdaQueryWrapper<PmBidWinning> pmBidWinningLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- pmBidWinningLambdaQueryWrapper.eq(PmBidWinning::getDemandId,vo.getDemandId()).eq(PmBidWinning::getStatus,BidWinningStatus.NORMAL.getCode())
|
|
|
+ pmBidWinningLambdaQueryWrapper.eq(PmBidWinning::getDemandId, vo.getDemandId()).eq(PmBidWinning::getStatus, BidWinningStatus.NORMAL.getCode())
|
|
|
.orderByDesc(PmBidWinning::getBidAnnouncementTime)
|
|
|
.last(" limit 1");
|
|
|
PmBidWinning pmBidWinning = this.pmBidWinningService.getOne(pmBidWinningLambdaQueryWrapper);
|
|
|
- if(pmBidWinning != null){
|
|
|
+ if (pmBidWinning != null) {
|
|
|
vo.setBidAnnouncementTime(pmBidWinning.getBidAnnouncementTime());
|
|
|
}
|
|
|
}
|
|
@@ -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;
|
|
@@ -947,11 +948,11 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy,boolean delOld) {
|
|
|
+ public boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy, boolean delOld) {
|
|
|
|
|
|
if (!ObjectUtils.isEmpty(sysFileRefs)) {
|
|
|
//删除老的
|
|
|
- if(delOld){
|
|
|
+ if (delOld) {
|
|
|
QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.lambda().eq(SysFileRef::getRedId, redId)
|
|
|
.eq(SysFileRef::getType, fileType);
|
|
@@ -983,7 +984,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy) {
|
|
|
- return uploadFile(redId, fileType, sysFileRefs, upateBy,false);
|
|
|
+ return uploadFile(redId, fileType, sysFileRefs, upateBy, false);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -1974,16 +1975,32 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
public AjaxResult countProjectExceed(PmDemandReqVo pmDemandReqVo) {
|
|
|
//是-1就是查询自己及子孙级以下,否则只查询指定部门
|
|
|
pmDemandReqVo.setDeptList(isQueryAll(pmDemandReqVo.getPurchaseDeptId()));
|
|
|
- HashMap<String, String> resMap = new HashMap<>();
|
|
|
+ List<StatisticalChartsResVo> resVos = new ArrayList<>();
|
|
|
//执行滞后采购项目:本年度所有的逾期项目数
|
|
|
//预算金额:本年度所有逾期项目累加的预算金额
|
|
|
- StatisticalChartsResVo resVo = pmDemandMapper.countProjectExceed(pmDemandReqVo);
|
|
|
- resMap.put("执行滞后采购项目", resVo.getNum() + "");
|
|
|
- resMap.put("预算金额", resVo.getEvaluationTotal() + "");
|
|
|
- //滞后项目数量占比:指本年度逾期项目数量/本年度所有项目数量
|
|
|
- Integer thisYear = pmDemandMapper.countThisYear(pmDemandReqVo);
|
|
|
- resMap.put("滞后项目数量占比", getPercent(resVo.getNum(), thisYear));
|
|
|
- return AjaxResult.success(resMap);
|
|
|
+ StatisticalChartsResVo resVo = pmDemandMapper.countProjectExceedThisYear(pmDemandReqVo);
|
|
|
+ resVo.setColumnName("本年度执行滞后任务新增数量");
|
|
|
+ resVos.add(resVo);
|
|
|
+ StatisticalChartsResVo resVo2 = pmDemandMapper.countProjectExceedThisQua(pmDemandReqVo);
|
|
|
+ resVo2.setColumnName("本季度执行滞后任务新增数量");
|
|
|
+ resVos.add(resVo2);
|
|
|
+ StatisticalChartsResVo resVo3 = pmDemandMapper.countProjectExceedThisMonth(pmDemandReqVo);
|
|
|
+ resVo3.setColumnName("本月执行滞后任务新增数量");
|
|
|
+ resVos.add(resVo3);
|
|
|
+ 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);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2160,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);
|
|
|
}
|
|
|
|
|
@@ -3260,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>();
|