|
@@ -763,6 +763,131 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
return results;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询采购需求列表
|
|
|
+ *
|
|
|
+ * @param pmDemandReqVo
|
|
|
+ * @return 采购需求
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<PmDemandResVo> selectPmDemandListDe(PmDemandReqVo pmDemandReqVo) {
|
|
|
+ LambdaQueryWrapper<PmDemand> lw = new LambdaQueryWrapper<>();
|
|
|
+ List<PmAuditDeptRef> list = new ArrayList<>();
|
|
|
+ LambdaQueryWrapper<PmAuditDeptRef> l = new LambdaQueryWrapper<>();
|
|
|
+ l.eq(PmAuditDeptRef::getDeptId, SecurityUtils.getDeptId());
|
|
|
+ l.eq(PmAuditDeptRef::getRefType, "2");
|
|
|
+ list = pmAuditDeptRefService.list(l);
|
|
|
+ if (!pmDemandReqVo.getIsAdmin()) {
|
|
|
+ if (!ObjectUtils.isEmpty(list)) {
|
|
|
+
|
|
|
+ lw.in(PmDemand::getDemandId, list.stream().map(PmAuditDeptRef::getRefId).collect(Collectors.toSet()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtils.isBlank(pmDemandReqVo.getProjectName())) {
|
|
|
+ lw.like(PmDemand::getProjectName, "%" + pmDemandReqVo.getProjectName() + "%");
|
|
|
+ }
|
|
|
+ if (!StringUtils.isBlank(pmDemandReqVo.getPurchaseServices())) {
|
|
|
+ lw.eq(PmDemand::getPurchaseServices, pmDemandReqVo.getPurchaseServices());
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(pmDemandReqVo.getProjectStatus())) {
|
|
|
+ lw.eq(PmDemand::getProjectStatus, pmDemandReqVo.getProjectStatus());
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(pmDemandReqVo.getWarnStatus())) {
|
|
|
+ lw.eq(PmDemand::getWarnStatus, pmDemandReqVo.getWarnStatus());
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(pmDemandReqVo.getIsExcess())) {
|
|
|
+ lw.eq(PmDemand::getIsExcess, pmDemandReqVo.getIsExcess());
|
|
|
+ }
|
|
|
+ if (!StringUtils.isBlank(pmDemandReqVo.getBeginDate())) {
|
|
|
+ lw.apply("(plan_demand_sub_time >= '" + pmDemandReqVo.getBeginDate() + "' or plan_purchase_finish_time >= '" + pmDemandReqVo.getBeginDate() + "' or plan_deliver_time >= '" + pmDemandReqVo.getBeginDate() + "' )");
|
|
|
+ }
|
|
|
+ if (!StringUtils.isBlank(pmDemandReqVo.getEndDate())) {
|
|
|
+ lw.apply("(plan_demand_sub_time <= '" + pmDemandReqVo.getEndDate() + "' or plan_purchase_finish_time <= '" + pmDemandReqVo.getEndDate() + "' or plan_deliver_time <= '" + pmDemandReqVo.getEndDate() + "' )");
|
|
|
+ }
|
|
|
+ lw.apply("(project_status >=6 )");
|
|
|
+
|
|
|
+ lw.last(" order by project_status, plan_demand_sub_time");
|
|
|
+ List<PmDemand> demandList = pmDemandMapper.selectList(lw);
|
|
|
+ List<PmDemandResVo> pmDemandResVosTwo = new LinkedList<>();
|
|
|
+ if (!ObjectUtils.isEmpty(demandList)) {
|
|
|
+ List<PmDemandResVo> pmDemandResVos = demandChangeTo(demandList);
|
|
|
+ for (PmDemandResVo vo : pmDemandResVos) {
|
|
|
+ // 根据项目id 和 部门id 和 参数类型 获取 部门级别
|
|
|
+ List<PmAuditDeptRef> collect = list.stream()
|
|
|
+ .filter(o -> o.getRefId().equals(vo.getDemandId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (!ObjectUtils.isEmpty(collect)) {
|
|
|
+ String deptLevel = collect.get(0).getDeptLevel();
|
|
|
+
|
|
|
+ // 根据项目id 和 参数类型 获取 所有审核数据
|
|
|
+ LambdaQueryWrapper<PmAuditDeptRef> ll = new LambdaQueryWrapper<>();
|
|
|
+ ll.eq(PmAuditDeptRef::getRefId, vo.getDemandId());
|
|
|
+ ll.eq(PmAuditDeptRef::getRefType, "2");
|
|
|
+ List<PmAuditDeptRef> listl = pmAuditDeptRefService.list(l);
|
|
|
+
|
|
|
+ // 判断当前用户是否有审核权限
|
|
|
+ boolean flay = true;
|
|
|
+ List<PmAuditDeptRef> collect1 = listl.stream()
|
|
|
+ .filter(pmAuditDeptRef -> pmAuditDeptRef.getRefId().equals(vo.getDemandId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ for (PmAuditDeptRef pmAuditDeptRef : collect1) {
|
|
|
+ if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) > 0
|
|
|
+ && pmAuditDeptRef.getStatus().equals(Integer.parseInt("0"))) {
|
|
|
+ flay = false;
|
|
|
+ } else if (pmAuditDeptRef.getDeptLevel().compareTo(deptLevel) == 0
|
|
|
+ && pmAuditDeptRef.getStatus().equals(Integer.parseInt("1"))) {
|
|
|
+ flay = false;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setFlay(flay);
|
|
|
+ if (flay == true || vo.getPurchaseDeptId().equals(SecurityUtils.getDeptId())) {
|
|
|
+ LambdaQueryWrapper<PmExpertFeedback> pmExpertFeedbackLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmExpertFeedbackLambdaQueryWrapper.eq(PmExpertFeedback::getDemandId, vo.getDemandId());
|
|
|
+ PmExpertFeedback pmExpertFeedback = this.pmExpertFeedbackService.getOne(pmExpertFeedbackLambdaQueryWrapper);
|
|
|
+ if (pmExpertFeedback != null) {
|
|
|
+ vo.setProjectNumber(pmExpertFeedback.getProjectNumber());
|
|
|
+ vo.setDocumentReviewTime(pmExpertFeedback.getDocumentReviewTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ LambdaQueryWrapper<PmProcurementDocumentsReview> pmProcurementDocumentsReviewLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmProcurementDocumentsReviewLambdaQueryWrapper.eq(PmProcurementDocumentsReview::getDemandId, vo.getDemandId());
|
|
|
+ PmProcurementDocumentsReview pmProcurementDocumentsReview = this.pmProcurementDocumentsReviewService.getOne(pmProcurementDocumentsReviewLambdaQueryWrapper);
|
|
|
+ if (pmProcurementDocumentsReview != null) {
|
|
|
+ vo.setProcurementOfficeApprovalTime(pmProcurementDocumentsReview.getProcurementOfficeApprovalTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Integer.parseInt(vo.getProjectStatus()) > 12 && Integer.parseInt(vo.getProjectStatus()) != 18) {
|
|
|
+ LambdaQueryWrapper<PmReleaseAnnouncement> pmReleaseAnnouncementLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmReleaseAnnouncementLambdaQueryWrapper.eq(PmReleaseAnnouncement::getDemandId, vo.getDemandId())
|
|
|
+ .orderByDesc(PmReleaseAnnouncement::getReleaseTime)
|
|
|
+ .last(" limit 1");
|
|
|
+ PmReleaseAnnouncement pmReleaseAnnouncement = this.pmReleaseAnnouncementService.getOne(pmReleaseAnnouncementLambdaQueryWrapper);
|
|
|
+ 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) {
|
|
|
+ LambdaQueryWrapper<PmBidWinning> pmBidWinningLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ 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) {
|
|
|
+ vo.setBidAnnouncementTime(pmBidWinning.getBidAnnouncementTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pmDemandResVosTwo.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return pmDemandResVosTwo;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 需求建档
|