Browse Source

采购执行管理,招标、中标、流标的信息作为公告同步到公告管理和首页中,招标和中标信息都需要上传附件

suntianwu 2 years ago
parent
commit
3b904d6522

+ 43 - 0
purchase-system/src/main/java/com/ozs/pm/service/impl/PmDemandServiceImpl.java

@@ -814,6 +814,10 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         if (ObjectUtils.isEmpty(pmDemand)) {
             throw new Exception("参数错误");
         }
+        if (ObjectUtils.isEmpty(pmReleaseAnnouncementReqVo.getSysFileRefs())) {
+            throw new Exception("上传附件不能为空");
+        }
+
         PmReleaseAnnouncement pmReleaseAnnouncement = new PmReleaseAnnouncement();
         BeanUtils.copyProperties(pmReleaseAnnouncementReqVo, pmReleaseAnnouncement);
         if (pmReleaseAnnouncementService.saveOrUpdate(pmReleaseAnnouncement)) {
@@ -1110,6 +1114,12 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
         }
     }
 
+    /**
+     * 填写中标
+     * @param pmBidWinningReqVo
+     * @return
+     * @throws Exception
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
@@ -1170,6 +1180,23 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             if (pmBidWinningOpeningRefService.saveOrUpdateBatch(pmBidWinningOpeningRefList)) {
 
                 uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(), pmBidWinningReqVo.getSysFileRefs(), pmBidWinningReqVo.getUpdateBy());
+
+
+                //发布公告生成后,会默认将该数据同步到公告管理和首页中
+                PmDemand pmDemand = this.getById(pmBidWinningReqVo.getDemandId());
+                BaseNotice baseNotice = new BaseNotice();
+                baseNotice.setName(pmDemand.getProjectName());
+                baseNotice.setTitle(pmDemand.getProjectName() + "中标公告");
+                LambdaQueryWrapper<BaseNoticeType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+                lambdaQueryWrapper.eq(BaseNoticeType::getName, "中标公告");
+                BaseNoticeType baseNoticeType = baseNoticeTypeService.getOne(lambdaQueryWrapper);
+                if (baseNoticeType == null) {
+                    throw new Exception("中标公告 公告类型不存在");
+                }
+                baseNotice.setType(baseNoticeType.getId());
+                baseNotice.setReleaseTime(pmBidWinningReqVo.getBidAnnouncementTime());
+                 this.baseNoticeService.saveOrUpdate(baseNotice);
+
                 PmDemand pmDemandUpdate = new PmDemand();
                 pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
                 pmDemandUpdate.setProjectStatus(PmProjectStatus.BIDDING_PUBLICITY.getCode());
@@ -1286,6 +1313,22 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
             }
 
             uploadFile(pmBidFailure.getId(), SysFileRefEnum.PM_BID_FAILURE_FILE.getType(), pmBidFailureReqVo.getSysFileRefs(), pmBidFailureReqVo.getUpdateBy());
+
+            //发布公告生成后,会默认将该数据同步到公告管理和首页中
+            PmDemand pmDemand = this.getById(pmBidFailureReqVo.getDemandId());
+            BaseNotice baseNotice = new BaseNotice();
+            baseNotice.setName(pmDemand.getProjectName());
+            baseNotice.setTitle(pmDemand.getProjectName() + "流标公告");
+            LambdaQueryWrapper<BaseNoticeType> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.eq(BaseNoticeType::getName, "流标公告");
+            BaseNoticeType baseNoticeType = baseNoticeTypeService.getOne(lambdaQueryWrapper);
+            if (baseNoticeType == null) {
+                throw new Exception("流标公告 公告类型不存在");
+            }
+            baseNotice.setType(baseNoticeType.getId());
+            baseNotice.setReleaseTime(pmBidFailureReqVo.getBidFailureTime());
+            this.baseNoticeService.saveOrUpdate(baseNotice);
+
             PmDemand pmDemandUpdate = new PmDemand();
             pmDemandUpdate.setDemandId(pmBidFailureReqVo.getDemandId());
             pmDemandUpdate.setProjectStatus(PmProjectStatus.WAIT_ANNOUNCEMENT.getCode());