|
@@ -7,13 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.ozs.base.domain.BaseAgency;
|
|
|
-import com.ozs.base.domain.BaseExpert;
|
|
|
-import com.ozs.base.domain.BaseSupplier;
|
|
|
-import com.ozs.base.domain.BaseUnitInformation;
|
|
|
-import com.ozs.base.service.BaseAgencyService;
|
|
|
-import com.ozs.base.service.BaseExpertService;
|
|
|
-import com.ozs.base.service.BaseSupplierService;
|
|
|
+import com.ozs.base.domain.*;
|
|
|
+import com.ozs.base.service.*;
|
|
|
import com.ozs.common.enums.*;
|
|
|
import com.ozs.common.utils.DateUtils;
|
|
|
import com.ozs.common.utils.RandomUtil;
|
|
@@ -96,8 +91,12 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
private BaseAgencyService baseAgencyService;
|
|
|
|
|
|
@Autowired
|
|
|
- private PmProjectConstructionService pmProjectConstructionService;
|
|
|
+ private BaseNoticeService baseNoticeService;
|
|
|
+ @Autowired
|
|
|
+ private BaseNoticeTypeService baseNoticeTypeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PmProjectConstructionService pmProjectConstructionService;
|
|
|
|
|
|
/**
|
|
|
* 查询采购需求
|
|
@@ -298,11 +297,87 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
} else if("4".equals(detailType)) { //中标信息
|
|
|
PmPurchaseExecutionResVo pmPurchaseExecutionResVo = new PmPurchaseExecutionResVo();
|
|
|
+
|
|
|
+ //代理商信息
|
|
|
BaseAgency baseAgency = this.baseAgencyService.getById(pmDemand.getAgencyId());
|
|
|
pmPurchaseExecutionResVo.setBaseAgency(baseAgency);
|
|
|
|
|
|
+ //发布公告列表
|
|
|
+ LambdaQueryWrapper<PmReleaseAnnouncement> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(PmReleaseAnnouncement::getDemandId,demandId);
|
|
|
+ List<PmReleaseAnnouncement> pmReleaseAnnouncementList = this.pmReleaseAnnouncementService.list(lambdaQueryWrapper);
|
|
|
+ if(!ObjectUtils.isEmpty(pmReleaseAnnouncementList)){
|
|
|
+ List<PmReleaseAnnouncementResVo> pmReleaseAnnouncementResVoList = new ArrayList<>();
|
|
|
+ for (PmReleaseAnnouncement pmReleaseAnnouncement : pmReleaseAnnouncementList) {
|
|
|
+ PmReleaseAnnouncementResVo pmReleaseAnnouncementResVo = new PmReleaseAnnouncementResVo();
|
|
|
+ BeanUtils.copyProperties(pmReleaseAnnouncement,pmReleaseAnnouncementResVo);
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmReleaseAnnouncement.getId(),SysFileRefEnum.PM_ANNOUNCEMENT_FILE.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ pmReleaseAnnouncementResVo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ pmReleaseAnnouncementResVoList.add(pmReleaseAnnouncementResVo);
|
|
|
+ }
|
|
|
+ pmPurchaseExecutionResVo.setPmReleaseAnnouncementResVoList(pmReleaseAnnouncementResVoList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //专家信息列表
|
|
|
+ List<PmBaseExpertResVo> pmBaseExpertResVoList = this.pmDemandExpertRefService.getPmBaseExpertResVoList(demandId);
|
|
|
+ pmPurchaseExecutionResVo.setPmBaseExpertResVoList(pmBaseExpertResVoList);
|
|
|
+
|
|
|
+ //开标信息列表
|
|
|
+ List<PmBidOpeningResVo> pmBidOpeningResVoList = this.pmBidOpeningService.getPmBidOpeningResVoList(demandId);
|
|
|
+ pmPurchaseExecutionResVo.setPmBidOpeningResVoList(pmBidOpeningResVoList);
|
|
|
+
|
|
|
+ //中标信息列表
|
|
|
+ LambdaQueryWrapper<PmBidWinning> lambdaQueryWrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper1.eq(PmBidWinning::getDemandId,demandId).orderByDesc(PmBidWinning::getBidAnnouncementTime);
|
|
|
+ List<PmBidWinning> pmBidWinningList = this.pmBidWinningService.list(lambdaQueryWrapper1);
|
|
|
+ if (!ObjectUtils.isEmpty(pmBidWinningList)) {
|
|
|
+ List<PmBidWinningResVo> pmBidWinningResVoList = new ArrayList<>();
|
|
|
+ for(PmBidWinning pmBidWinning : pmBidWinningList) {
|
|
|
+ PmBidWinningResVo pmBidWinningResVo = new PmBidWinningResVo();
|
|
|
+ BeanUtils.copyProperties(pmBidWinning, pmBidWinningResVo);
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmBidWinning.getId(),SysFileRefEnum.PM_BID_WINNING_FILE.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ pmBidWinningResVo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ pmBidWinningResVoList.add(pmBidWinningResVo);
|
|
|
+ }
|
|
|
+ pmPurchaseExecutionResVo.setPmBidWinningResVoList(pmBidWinningResVoList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //质疑情况
|
|
|
+ HashMap<String, String> callRequestFileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_CALL_QEUSTION_FILE.getType());
|
|
|
+ if(callRequestFileMap != null){
|
|
|
+ pmPurchaseExecutionResVo.setCallRequestFileMap(callRequestFileMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ //流标情况
|
|
|
+ LambdaQueryWrapper<PmBidFailure> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper2.eq(PmBidFailure::getDemandId,demandId).orderByDesc(PmBidFailure::getBidFailureTime);
|
|
|
+ List<PmBidFailure> pmBidFailureList = this.pmBidFailureService.list(lambdaQueryWrapper2);
|
|
|
+ if (!ObjectUtils.isEmpty(pmBidFailureList)) {
|
|
|
+ List<PmBidFailureResVo> pmBidFailureResVoList = new ArrayList<>();
|
|
|
+ for(PmBidFailure pmBidFailure : pmBidFailureList) {
|
|
|
+ PmBidFailureResVo pmBidFailureResVo = new PmBidFailureResVo();
|
|
|
+ BeanUtils.copyProperties(pmBidFailure, pmBidFailureResVo);
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmBidFailure.getId(),SysFileRefEnum.PM_BID_FAILURE_FILE.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ pmBidFailureResVo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ pmBidFailureResVoList.add(pmBidFailureResVo);
|
|
|
+ }
|
|
|
+ pmPurchaseExecutionResVo.setPmBidFailureResVoList(pmBidFailureResVoList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //中标通知书
|
|
|
+ HashMap<String, String> pmBidWinningNotificationFileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_WINNING_NOTIFICATION.getType());
|
|
|
+ if(pmBidWinningNotificationFileMap != null){
|
|
|
+ pmPurchaseExecutionResVo.setPmBidWinningNotificationFileMap(pmBidWinningNotificationFileMap);
|
|
|
+ }
|
|
|
|
|
|
vo.setPmPurchaseExecutionResVo(pmPurchaseExecutionResVo);
|
|
|
+
|
|
|
} else if("5".equals(detailType)) { //合同信息
|
|
|
LambdaQueryWrapper<PmContractInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
lambdaQueryWrapper.eq(PmContractInfo::getDemandId,demandId);
|
|
@@ -312,7 +387,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
BeanUtils.copyProperties(pmContractInfo,pmContractInfoResVo);
|
|
|
|
|
|
// todo
|
|
|
- BaseUnitInformation baseUnitInformation = null;
|
|
|
+ BaseUnitInformation baseUnitInformation = new BaseUnitInformation();
|
|
|
|
|
|
PmBaseUnitInformationVo pmBaseUnitInformationVo = new PmBaseUnitInformationVo();
|
|
|
BeanUtils.copyProperties(baseUnitInformation, pmBaseUnitInformationVo);
|
|
@@ -348,10 +423,11 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
|
|
|
//合同信息文件
|
|
|
- HashMap<String, String> pmContractInfoFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_CONTRACT_INFO.getType());
|
|
|
+ HashMap<String, String> pmContractInfoFileMap = getFileMap(pmContractInfo.getId(),SysFileRefEnum.PM_CONTRACT_INFO.getType());
|
|
|
if(pmContractInfoFileMap != null){
|
|
|
pmContractInfoResVo.setFileMap(pmContractInfoFileMap);
|
|
|
}
|
|
|
+
|
|
|
vo.setPmContractInfoResVo(pmContractInfoResVo);
|
|
|
}
|
|
|
} else if("6".equals(detailType)) { //建设情况
|
|
@@ -363,7 +439,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
BeanUtils.copyProperties(pmProjectConstruction,pmProjectConstructionResVo);
|
|
|
|
|
|
//建设情况文件
|
|
|
- HashMap<String, String> projectConstructionFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
|
|
|
+ HashMap<String, String> projectConstructionFileMap = getFileMap(pmProjectConstruction.getId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
|
|
|
if(projectConstructionFileMap != null){
|
|
|
pmProjectConstructionResVo.setFileMap(projectConstructionFileMap);
|
|
|
}
|
|
@@ -412,11 +488,11 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
} else if(reqType== 2) { //任务下达列表
|
|
|
lw.apply("(project_status = 8 or project_status = 9 )");
|
|
|
} else if(reqType== 3) { //采购执行列表
|
|
|
- lw.apply("(project_status = 9 or project_status = 10 )");
|
|
|
+ lw.apply("(project_status = 9 or project_status = 10 or project_status = 11 or project_status = 12 or project_status = 13 or project_status = 14 or project_status = 15)");
|
|
|
} else if(reqType== 4) { //合同信息列表
|
|
|
- lw.apply("(project_status = 10 or project_status = 11 )");
|
|
|
+ lw.apply("(project_status = 15 or project_status = 16 )");
|
|
|
} else if(reqType== 5) { //项目建设列表
|
|
|
- lw.apply("(project_status = 11 or project_status = 12 )");
|
|
|
+ lw.apply("(project_status = 16 or project_status = 17 )");
|
|
|
}
|
|
|
|
|
|
IPage<PmDemand> pageRes = this.page(new Page<>(pmDemandReqVo.getPageNum(), pmDemandReqVo.getPageSize()), lw);
|
|
@@ -742,10 +818,105 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
vo.setFileMap(fileMap);
|
|
|
}
|
|
|
} else if("任务下达".equals(moduleName)) {
|
|
|
- //todo
|
|
|
+ HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_TAST_RELEASE.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ vo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ } else if("选取代理".equals(moduleName)) {
|
|
|
+ //do nothing
|
|
|
+ } else if("上传招标文件".equals(moduleName)) {
|
|
|
+ HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_FILE.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ vo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ } else if("发布公告".equals(moduleName)) {
|
|
|
+ LambdaQueryWrapper<PmReleaseAnnouncement> pmReleaseAnnouncementLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmReleaseAnnouncementLambdaQueryWrapper.eq(PmReleaseAnnouncement::getDemandId,demandId);
|
|
|
+ List<PmReleaseAnnouncement> pmReleaseAnnouncementList = pmReleaseAnnouncementService.list(pmReleaseAnnouncementLambdaQueryWrapper);
|
|
|
+ if(!ObjectUtils.isEmpty(pmReleaseAnnouncementList)) {
|
|
|
+ HashMap<String, String> fileMapAll = new HashMap<>();
|
|
|
+ for(PmReleaseAnnouncement pmReleaseAnnouncement :pmReleaseAnnouncementList ){
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmReleaseAnnouncement.getId(), SysFileRefEnum.PM_ANNOUNCEMENT_FILE.getType());
|
|
|
+ if(!ObjectUtils.isEmpty(fileMap)){
|
|
|
+ fileMap.forEach((k, v) -> fileMapAll.merge(k, v, (v1, v2) -> v2));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (fileMapAll != null) {
|
|
|
+ vo.setFileMap(fileMapAll);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if("填写专家信息".equals(moduleName)) {
|
|
|
+ //do nothing
|
|
|
+ } else if("填写开标信息".equals(moduleName)) {
|
|
|
+ //do nothing
|
|
|
+ } else if("填写中标信息".equals(moduleName)) {
|
|
|
+ HashMap<String, String> fileMapAll = new HashMap<>();
|
|
|
+
|
|
|
+ LambdaQueryWrapper<PmBidWinning> pmBidWinningLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmBidWinningLambdaQueryWrapper.eq(PmBidWinning::getDemandId,demandId);
|
|
|
+ List<PmBidWinning> pmBidWinningList = pmBidWinningService.list(pmBidWinningLambdaQueryWrapper);
|
|
|
+ if(!ObjectUtils.isEmpty(pmBidWinningList)) {
|
|
|
+ for(PmBidWinning pmBidWinning : pmBidWinningList) {
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmBidWinning.getId(),SysFileRefEnum.PM_BID_WINNING_FILE.getType());
|
|
|
+ if(!ObjectUtils.isEmpty(fileMap)){
|
|
|
+ fileMap.forEach((k, v) -> fileMapAll.merge(k, v, (v1, v2) -> v2));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ LambdaQueryWrapper<PmBidFailure> pmBidFailureLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmBidFailureLambdaQueryWrapper.eq(PmBidFailure::getDemandId,demandId);
|
|
|
+ List<PmBidFailure> pmBidFailureList = pmBidFailureService.list(pmBidFailureLambdaQueryWrapper);
|
|
|
+ if(!ObjectUtils.isEmpty(pmBidFailureService)) {
|
|
|
+ for(PmBidFailure pmBidFailure : pmBidFailureList) {
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmBidFailure.getId(),SysFileRefEnum.PM_BID_FAILURE_FILE.getType());
|
|
|
+ if(!ObjectUtils.isEmpty(fileMap)){
|
|
|
+ fileMap.forEach((k, v) -> fileMapAll.merge(k, v, (v1, v2) -> v2));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!ObjectUtils.isEmpty(fileMapAll)){
|
|
|
+ vo.setFileMap(fileMapAll);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if("质疑处理".equals(moduleName)) {
|
|
|
+ HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_CALL_QEUSTION_FILE.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ vo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ } else if("上传中标通知书".equals(moduleName)) {
|
|
|
+ HashMap<String, String> fileMap = getFileMap(demandId,SysFileRefEnum.PM_BID_WINNING_NOTIFICATION.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ vo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ } else if("合同填制".equals(moduleName)) {
|
|
|
+ LambdaQueryWrapper<PmContractInfo> pmContractInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmContractInfoLambdaQueryWrapper.eq(PmContractInfo::getDemandId,demandId);
|
|
|
+ PmContractInfo pmContractInfo = pmContractInfoService.getOne(pmContractInfoLambdaQueryWrapper);
|
|
|
+ if(pmContractInfo != null){
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmContractInfo.getId(),SysFileRefEnum.PM_CONTRACT_INFO.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ vo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if("建设文档填制".equals(moduleName)) {
|
|
|
+ LambdaQueryWrapper<PmProjectConstruction> pmProjectConstructionLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ pmProjectConstructionLambdaQueryWrapper.eq(PmProjectConstruction::getDemandId,demandId);
|
|
|
+ PmProjectConstruction pmProjectConstruction = pmProjectConstructionService.getOne(pmProjectConstructionLambdaQueryWrapper);
|
|
|
+ if(pmProjectConstruction != null){
|
|
|
+ HashMap<String, String> fileMap = getFileMap(pmProjectConstruction.getId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
|
|
|
+ if(fileMap != null){
|
|
|
+ vo.setFileMap(fileMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if("项目归档".equals(moduleName)) {
|
|
|
+ //do nothing
|
|
|
}
|
|
|
|
|
|
- return vo;
|
|
|
+ return vo;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -861,7 +1032,10 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean insertPmReleaseAnnouncement(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo) throws Exception {
|
|
|
-
|
|
|
+ PmDemand pmDemand = this.getById(pmReleaseAnnouncementReqVo.getDemandId());
|
|
|
+ if(ObjectUtils.isEmpty(pmDemand)){
|
|
|
+ throw new Exception("参数错误");
|
|
|
+ }
|
|
|
PmReleaseAnnouncement pmReleaseAnnouncement = new PmReleaseAnnouncement();
|
|
|
BeanUtils.copyProperties(pmReleaseAnnouncementReqVo,pmReleaseAnnouncement);
|
|
|
if(pmReleaseAnnouncementService.save(pmReleaseAnnouncement)){
|
|
@@ -871,8 +1045,23 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_OPEN_BID.getCode()));
|
|
|
pmDemandUpdate.setUpdateTime(pmReleaseAnnouncementReqVo.getUpdateTime());
|
|
|
pmDemandUpdate.setUpdateBy(pmReleaseAnnouncementReqVo.getUpdateBy());
|
|
|
- return this.updateById(pmDemandUpdate);
|
|
|
- //TODO 发布公告生成后,会默认将该数据同步到公告管理和首页中
|
|
|
+ if(this.updateById(pmDemandUpdate)){
|
|
|
+ //发布公告生成后,会默认将该数据同步到公告管理和首页中
|
|
|
+ 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(pmReleaseAnnouncement.getReleaseTime());
|
|
|
+ return this.baseNoticeService.save(baseNotice);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
} else {
|
|
|
return false;
|