|
@@ -8,7 +8,9 @@ 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.BaseExpert;
|
|
|
+import com.ozs.base.domain.BaseSupplier;
|
|
|
import com.ozs.base.service.BaseExpertService;
|
|
|
+import com.ozs.base.service.BaseSupplierService;
|
|
|
import com.ozs.common.enums.*;
|
|
|
import com.ozs.common.utils.DateUtils;
|
|
|
import com.ozs.common.utils.RandomUtil;
|
|
@@ -17,6 +19,7 @@ import com.ozs.common.utils.bean.BeanUtils;
|
|
|
import com.ozs.pm.doman.*;
|
|
|
import com.ozs.pm.doman.vo.requestVo.*;
|
|
|
import com.ozs.pm.doman.vo.responseVo.*;
|
|
|
+import com.ozs.pm.mapper.PmBidWinningOpeningRefMapper;
|
|
|
import com.ozs.pm.mapper.PmDemandMapper;
|
|
|
import com.ozs.pm.service.*;
|
|
|
import com.ozs.system.domain.SysFileInfo;
|
|
@@ -75,6 +78,19 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
private PmBidWinningService pmBidWinningService;
|
|
|
@Autowired
|
|
|
private PmBidFailureService pmBidFailureService;
|
|
|
+ @Autowired
|
|
|
+ private PmBidWinningOpeningRefService pmBidWinningOpeningRefService;
|
|
|
+ @Autowired
|
|
|
+ private PmContractInfoService pmContractInfoService;
|
|
|
+ @Autowired
|
|
|
+ private BaseSupplierService baseSupplierService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PmContractUnitRefService pmContractUnitRefService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PmProjectConstructionService pmProjectConstructionService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 查询采购需求
|
|
@@ -278,6 +294,20 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
} else if("5".equals(detailType)) { //合同信息
|
|
|
|
|
|
} else if("6".equals(detailType)) { //建设情况
|
|
|
+ LambdaQueryWrapper<PmProjectConstruction> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(PmProjectConstruction::getDemandId,demandId);
|
|
|
+ PmProjectConstruction pmProjectConstruction = pmProjectConstructionService.getOne(lambdaQueryWrapper);
|
|
|
+ if(pmProjectConstruction != null){
|
|
|
+ PmProjectConstructionResVo pmProjectConstructionResVo = new PmProjectConstructionResVo();
|
|
|
+ BeanUtils.copyProperties(pmProjectConstruction,pmProjectConstructionResVo);
|
|
|
+
|
|
|
+ //建设情况文件
|
|
|
+ HashMap<String, String> projectConstructionFileMap = getFileMap(vo.getDemandId(),SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType());
|
|
|
+ if(projectConstructionFileMap != null){
|
|
|
+ pmProjectConstructionResVo.setFileMap(projectConstructionFileMap);
|
|
|
+ }
|
|
|
+ vo.setPmProjectConstructionResVo(pmProjectConstructionResVo);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -410,6 +440,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean bookBuilding(PmBookBuildingReqVo vo) {
|
|
|
PmDemand pmDemand = this.getById(vo.getDemandId());
|
|
|
String projectType = pmDemand.getProjectType();
|
|
@@ -582,6 +613,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
return moduleName;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
public PmFlowChartResVo getModuleInfo(Long demandId,String moduleName){
|
|
|
PmDemand pmDemand = this.getById(demandId);
|
|
|
String projectType = pmDemand.getProjectType();
|
|
@@ -662,6 +694,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean commit(PmDemandReqVo pmDemandReqVo) {
|
|
|
PmDemand pmDemand = new PmDemand();
|
|
|
pmDemand.setDemandId(pmDemandReqVo.getDemandId());
|
|
@@ -678,6 +711,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean reviewTo(PmDemandReqVo pmDemandReqVo) {
|
|
|
PmDemand pmDemand = new PmDemand();
|
|
|
pmDemand.setDemandId(pmDemandReqVo.getDemandId());
|
|
@@ -698,6 +732,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean reviewReturn(PmDemandReqVo pmDemandReqVo) {
|
|
|
PmDemand pmDemand = new PmDemand();
|
|
|
pmDemand.setDemandId(pmDemandReqVo.getDemandId());
|
|
@@ -716,32 +751,33 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
* @return 结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean releaseTask(PmDemandReqVo pmDemandReqVo) {
|
|
|
PmDemand pmDemand = new PmDemand();
|
|
|
pmDemand.setDemandId(pmDemandReqVo.getDemandId());
|
|
|
pmDemand.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_SELECT_AGENT.getCode()));
|
|
|
List<SysFileRef> sysFileRefs = pmDemandReqVo.getSysFileRefs();
|
|
|
|
|
|
- uploadFile(pmDemandReqVo.getDemandId(), SysFileRefEnum.PM_TAST_RELEASE.getType(), sysFileRefs, pmDemandReqVo.getUpdateBy());
|
|
|
+ uploadFile(pmDemandReqVo.getDemandId(),SysFileRefEnum.PM_TAST_RELEASE.getType(),sysFileRefs,pmDemandReqVo.getUpdateBy());
|
|
|
pmDemand.setUpdateBy(pmDemandReqVo.getUpdateBy());
|
|
|
pmDemand.setUpdateTime(DateUtils.getNowDate());
|
|
|
pmDemand.setAuditTime(DateUtils.getNowDate());
|
|
|
return this.updateById(pmDemand);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
- public boolean uploadFile(Long redId, Integer fileType, List<SysFileRef> sysFileRefs, String upateBy) {
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean uploadFile(Long redId,Integer fileType, List<SysFileRef> sysFileRefs,String upateBy){
|
|
|
|
|
|
if (!ObjectUtils.isEmpty(sysFileRefs)) {
|
|
|
for (SysFileRef ref : sysFileRefs) {
|
|
|
- if (ref.getFileId() == null) {
|
|
|
+ if(ref.getFileId() == null){
|
|
|
continue;
|
|
|
}
|
|
|
QueryWrapper<SysFileRef> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.lambda().eq(SysFileRef::getFileId, ref.getFileId())
|
|
|
- .eq(SysFileRef::getRedId, redId)
|
|
|
- .eq(SysFileRef::getType, fileType);
|
|
|
+ queryWrapper.lambda().eq(SysFileRef::getFileId,ref.getFileId())
|
|
|
+ .eq(SysFileRef::getRedId,redId)
|
|
|
+ .eq(SysFileRef::getType,fileType);
|
|
|
List<SysFileRef> sysFileRefList = sysFileRefService.list(queryWrapper);
|
|
|
if(!CollectionUtils.isEmpty(sysFileRefList)){
|
|
|
sysFileRefService.remove(queryWrapper);
|
|
@@ -762,6 +798,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public boolean insertPmReleaseAnnouncement(PmReleaseAnnouncementReqVo pmReleaseAnnouncementReqVo) throws Exception {
|
|
|
|
|
|
PmReleaseAnnouncement pmReleaseAnnouncement = new PmReleaseAnnouncement();
|
|
@@ -773,8 +810,8 @@ 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 发布公告生成后,会默认将该数据同步到公告管理和首页中
|
|
|
+ return this.updateById(pmDemandUpdate);
|
|
|
+ //TODO 发布公告生成后,会默认将该数据同步到公告管理和首页中
|
|
|
|
|
|
} else {
|
|
|
return false;
|
|
@@ -796,8 +833,12 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
List<PmDemandExpertRef> pmDemandExpertRefList = new ArrayList<>();
|
|
|
Date now = new Date();
|
|
|
for (BaseExpert baseExpert : baseExpertList) {
|
|
|
- if(baseExpert.getStatus().equals(NameListType.WHITE.getCode())){
|
|
|
+ if(NameListType.BLACK.getCode().equals(baseExpert.getStatus())){
|
|
|
throw new Exception("该专家(身份证号:" +baseExpert.getIdNumber() + ")属于黑名单");
|
|
|
+ } else {
|
|
|
+ if(ObjectUtils.isEmpty(baseExpert.getStatus())){
|
|
|
+ baseExpert.setStatus(NameListType.WHITE.getCode());
|
|
|
+ }
|
|
|
}
|
|
|
if(pmDemand.getProjectType().equals(baseExpert.getVarietyPurchase())){
|
|
|
throw new Exception("该专家(身份证号:" +baseExpert.getIdNumber() + ")所属采购品种和项目类型不匹配");
|
|
@@ -823,175 +864,418 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
pmDemandExpertRefList.add(pmDemandExpertRef);
|
|
|
}
|
|
|
|
|
|
- if (baseExpertService.saveOrUpdateBatch(baseExpertList)){
|
|
|
- return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
|
|
|
- } else {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ if (baseExpertService.saveOrUpdateBatch(baseExpertList)){
|
|
|
+ return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean extractExpertBatch(PmBaseExpertExtractReqVo pmBaseExpertExtractReqVo) throws Exception {
|
|
|
- Integer technicalExpertNumber = pmBaseExpertExtractReqVo.getTechnicalExpertNumber();
|
|
|
- if(technicalExpertNumber== null){
|
|
|
- technicalExpertNumber = 0;
|
|
|
- }
|
|
|
- Integer economicExpertNumber = pmBaseExpertExtractReqVo.getEconomicExpertNumber();
|
|
|
- if(economicExpertNumber == null){
|
|
|
- economicExpertNumber = 0;
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean extractExpertBatch(PmBaseExpertExtractReqVo pmBaseExpertExtractReqVo) throws Exception {
|
|
|
+ Integer technicalExpertNumber = pmBaseExpertExtractReqVo.getTechnicalExpertNumber();
|
|
|
+ if(technicalExpertNumber== null){
|
|
|
+ technicalExpertNumber = 0;
|
|
|
+ }
|
|
|
+ Integer economicExpertNumber = pmBaseExpertExtractReqVo.getEconomicExpertNumber();
|
|
|
+ if(economicExpertNumber == null){
|
|
|
+ economicExpertNumber = 0;
|
|
|
+ }
|
|
|
+ Integer legalAffairsExpertNumber = pmBaseExpertExtractReqVo.getLegalAffairsExpertNumber();
|
|
|
+ if(legalAffairsExpertNumber == null){
|
|
|
+ legalAffairsExpertNumber = 0;
|
|
|
+ }
|
|
|
+ Integer spareExpertNumber = pmBaseExpertExtractReqVo.getSpareExpertNumber();
|
|
|
+ if(spareExpertNumber == null){
|
|
|
+ spareExpertNumber = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ String professional = pmBaseExpertExtractReqVo.getProfessional();
|
|
|
+ if(spareExpertNumber > 0 && ObjectUtils.isEmpty(professional)){
|
|
|
+ throw new Exception("抽取备用专家必须选择专家专业");
|
|
|
+ }
|
|
|
+ String localArea = pmBaseExpertExtractReqVo.getLocalArea();
|
|
|
+ if(spareExpertNumber > 0 && ObjectUtils.isEmpty(localArea)){
|
|
|
+ throw new Exception("抽取备用专家必须选择所在区域");
|
|
|
+ }
|
|
|
+
|
|
|
+ PmDemand pmDemand = this.getById(pmBaseExpertExtractReqVo.getDemandId());
|
|
|
+ if(ObjectUtils.isEmpty(pmDemand)){
|
|
|
+ throw new Exception("参数错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ //从专家库中查询符合项目类型的以及是白名单的全部列表
|
|
|
+ LambdaQueryWrapper<BaseExpert> lw = new LambdaQueryWrapper<BaseExpert>();
|
|
|
+ lw.eq(BaseExpert::getVarietyPurchase,pmDemand.getProjectType())
|
|
|
+ .eq(BaseExpert::getStatus,NameListType.WHITE.getCode());
|
|
|
+ List<BaseExpert> baseExpertList = baseExpertService.list(lw);
|
|
|
+ if(ObjectUtils.isEmpty(baseExpertList)){
|
|
|
+ throw new Exception("没抽取到符合条件的专家");
|
|
|
+ }
|
|
|
+
|
|
|
+ //从列表中挑出来各个类型的子列表
|
|
|
+ List<BaseExpert> technicalExpertList = new ArrayList<>();
|
|
|
+ List<BaseExpert> economicExpertList = new ArrayList<>();
|
|
|
+ List<BaseExpert> legalAffairsExpertList = new ArrayList<>();
|
|
|
+ List<BaseExpert> spareExpertList = new ArrayList<>();
|
|
|
+
|
|
|
+ //TODO 所在区域判读
|
|
|
+
|
|
|
+ for(BaseExpert baseExpert : baseExpertList){
|
|
|
+ if(technicalExpertNumber > 0) {
|
|
|
+ if(baseExpert.getExpertType().contains(ExpertType.TECHNICAL_EXPERT.getCode())){
|
|
|
+ technicalExpertList.add(baseExpert);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(economicExpertNumber > 0) {
|
|
|
+ if(baseExpert.getExpertType().contains(ExpertType.ECONOMIC_EXPERT.getCode())){
|
|
|
+ economicExpertList.add(baseExpert);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (legalAffairsExpertNumber > 0) {
|
|
|
+ if(baseExpert.getExpertType().contains(ExpertType.LEGALAFFAIRS_EXPERT.getCode())){
|
|
|
+ legalAffairsExpertList.add(baseExpert);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (spareExpertNumber > 0) {
|
|
|
+ String[] arr = professional.split(",");
|
|
|
+ List<String> professionalList = Arrays.asList(arr);
|
|
|
+ String majorType = baseExpert.getMajorType();
|
|
|
+ if(!ObjectUtils.isEmpty(majorType)){
|
|
|
+ String[] arr2 = majorType.split(",");
|
|
|
+ List<String> majorTypeList = Arrays.asList(arr2);
|
|
|
+ if(hasIntersection(professionalList,majorTypeList)){
|
|
|
+ spareExpertList.add(baseExpert);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //从子列表中随机抽取符合数据量的
|
|
|
+ List<BaseExpert> alltExpertList = new ArrayList<>();
|
|
|
+ if(!ObjectUtils.isEmpty(technicalExpertList)){
|
|
|
+ alltExpertList.addAll(RandomUtil.getRandomList(technicalExpertList,technicalExpertNumber));
|
|
|
+ }
|
|
|
+ if(!ObjectUtils.isEmpty(economicExpertList)){
|
|
|
+ alltExpertList.addAll(RandomUtil.getRandomList(economicExpertList,economicExpertNumber));
|
|
|
+ }
|
|
|
+ if(!ObjectUtils.isEmpty(legalAffairsExpertList)){
|
|
|
+ alltExpertList.addAll(RandomUtil.getRandomList(legalAffairsExpertList,legalAffairsExpertNumber));
|
|
|
+ }
|
|
|
+ if(!ObjectUtils.isEmpty(spareExpertList)){
|
|
|
+ alltExpertList.addAll(RandomUtil.getRandomList(spareExpertList,spareExpertNumber));
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ObjectUtils.isEmpty(alltExpertList)){
|
|
|
+ throw new Exception("没抽取到符合条件的专家");
|
|
|
+ } else {
|
|
|
+ List<PmDemandExpertRef> pmDemandExpertRefList = new ArrayList<>();
|
|
|
+ for(BaseExpert baseExpert :alltExpertList ) {
|
|
|
+ PmDemandExpertRef pmDemandExpertRef = new PmDemandExpertRef();
|
|
|
+ pmDemandExpertRef.setDemandId(pmDemand.getDemandId());
|
|
|
+ pmDemandExpertRef.setExpertId(baseExpert.getId().longValue());
|
|
|
+ pmDemandExpertRef.setCreateBy(pmBaseExpertExtractReqVo.getCreateBy());
|
|
|
+ pmDemandExpertRef.setAccessTime(DateUtils.parseDate(pmBaseExpertExtractReqVo.getAccessTime()));
|
|
|
+ pmDemandExpertRef.setCreateTime(new Date());
|
|
|
+ pmDemandExpertRef.setUpdateBy(pmBaseExpertExtractReqVo.getCreateBy());
|
|
|
+ pmDemandExpertRef.setUpdateTime(pmDemandExpertRef.getCreateTime());
|
|
|
+ pmDemandExpertRefList.add(pmDemandExpertRef);
|
|
|
+ }
|
|
|
+ return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //二个列表是否有交集
|
|
|
+ private boolean hasIntersection(List<String> professionalList, List<String> majorTypeList) {
|
|
|
+ for (String professiona : professionalList) {
|
|
|
+ for(String majorType : majorTypeList) {
|
|
|
+ if(professiona.equals(majorType)){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- Integer legalAffairsExpertNumber = pmBaseExpertExtractReqVo.getLegalAffairsExpertNumber();
|
|
|
- if(legalAffairsExpertNumber == null){
|
|
|
- legalAffairsExpertNumber = 0;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean insertBidOpeningBatch(PmBidOpeningFillReqVo pmBidOpeningFillReqVo) throws Exception {
|
|
|
+ PmDemand pmDemand = this.getById(pmBidOpeningFillReqVo.getDemandId());
|
|
|
+ if(ObjectUtils.isEmpty(pmDemand)){
|
|
|
+ throw new Exception("参数错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ //从发布公告里获取开标时间
|
|
|
+ LambdaQueryWrapper<PmReleaseAnnouncement> lw = new LambdaQueryWrapper<>();
|
|
|
+ lw.eq(PmReleaseAnnouncement::getDemandId,pmDemand.getDemandId()).orderByDesc(PmReleaseAnnouncement::getReleaseTime)
|
|
|
+ .last(" limit 1 ");
|
|
|
+ PmReleaseAnnouncement pmReleaseAnnouncement = this.pmReleaseAnnouncementService.getOne(lw);
|
|
|
+ if(pmReleaseAnnouncement == null){
|
|
|
+ throw new Exception("发布公告不存在");
|
|
|
}
|
|
|
- Integer spareExpertNumber = pmBaseExpertExtractReqVo.getSpareExpertNumber();
|
|
|
- if(spareExpertNumber == null){
|
|
|
- spareExpertNumber = 0;
|
|
|
+ Date tenderOpenTime = pmReleaseAnnouncement.getTenderOpenTime();
|
|
|
+
|
|
|
+ Date now = new Date();
|
|
|
+ List<PmBidOpening> pmBidOpeningList = pmBidOpeningFillReqVo.getPmBidOpeningList();
|
|
|
+ for (PmBidOpening pmBidOpening : pmBidOpeningList) {
|
|
|
+ if(ObjectUtils.isEmpty(pmBidOpening.getBidderName())){
|
|
|
+ throw new Exception("投标人名称不能为空");
|
|
|
+ }
|
|
|
+ if(ObjectUtils.isEmpty(pmBidOpening.getScore())){
|
|
|
+ throw new Exception("分数不能为空");
|
|
|
+ }
|
|
|
+ pmBidOpening.setOpenBidTime(tenderOpenTime);
|
|
|
+ pmBidOpening.setDemandId(pmBidOpeningFillReqVo.getDemandId());
|
|
|
+ pmBidOpening.setCreateBy(pmBidOpeningFillReqVo.getCreateBy());
|
|
|
+ pmBidOpening.setCreateTime(now);
|
|
|
+ pmBidOpening.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
|
|
|
+ pmBidOpening.setUpdateTime(now);
|
|
|
+ }
|
|
|
+ if(pmBidOpeningService.saveBatch(pmBidOpeningList)) {
|
|
|
+ PmDemand pmDemandUpdate = new PmDemand();
|
|
|
+ pmDemandUpdate.setDemandId(pmDemand.getDemandId());
|
|
|
+ pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_BID_ANNOUNCEMENT.getCode()));
|
|
|
+ pmDemandUpdate.setUpdateTime(now);
|
|
|
+ pmDemandUpdate.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
|
|
|
+ return this.updateById(pmDemandUpdate);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
|
|
|
+ List<Long> pmBidOpeningIdList = pmBidWinningReqVo.getPmBidOpeningIdList();
|
|
|
+ if(ObjectUtils.isEmpty(pmBidOpeningIdList)) {
|
|
|
+ throw new Exception("中标单位信息列表不能为空");
|
|
|
}
|
|
|
+ if(ObjectUtils.isEmpty(pmBidWinningReqVo.getSysFileRefs())){
|
|
|
+ throw new Exception("上传附件不能为空");
|
|
|
+ }
|
|
|
+ if(ObjectUtils.isEmpty(pmBidWinningReqVo.getBidWinningAmount())){
|
|
|
+ throw new Exception("中标金额不能为空");
|
|
|
+ }
|
|
|
+ PmBidWinning pmBidWinning = new PmBidWinning();
|
|
|
+ BeanUtils.copyProperties(pmBidWinningReqVo,pmBidWinning);
|
|
|
+ if(pmBidWinningService.save(pmBidWinning)){
|
|
|
+ List<PmBidWinningOpeningRef> pmBidWinningOpeningRefList = new ArrayList<>();
|
|
|
+ for(Long pmBidOpeningId : pmBidOpeningIdList){
|
|
|
+ PmBidWinningOpeningRef pmBidWinningOpeningRef = new PmBidWinningOpeningRef();
|
|
|
+ pmBidWinningOpeningRef.setOpeningId(pmBidOpeningId);
|
|
|
+ pmBidWinningOpeningRef.setWinningId(pmBidWinning.getId());
|
|
|
+ pmBidWinningOpeningRef.setCreateBy(pmBidWinningReqVo.getCreateBy());
|
|
|
+ pmBidWinningOpeningRef.setCreateTime(pmBidWinningReqVo.getCreateTime());
|
|
|
+ pmBidWinningOpeningRef.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
|
+ pmBidWinningOpeningRef.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
|
+ pmBidWinningOpeningRefList.add(pmBidWinningOpeningRef);
|
|
|
+ }
|
|
|
+ if (pmBidWinningOpeningRefService.saveBatch(pmBidWinningOpeningRefList)) {
|
|
|
+ if(uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(),pmBidWinningReqVo.getSysFileRefs(),pmBidWinningReqVo.getUpdateBy())) {
|
|
|
+ PmDemand pmDemandUpdate = new PmDemand();
|
|
|
+ pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
|
|
|
+ pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.BIDDING_PUBLICITY.getCode()));
|
|
|
+ pmDemandUpdate.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
|
+ pmDemandUpdate.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
|
+ return this.updateById(pmDemandUpdate);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- String professional = pmBaseExpertExtractReqVo.getProfessional();
|
|
|
- if(spareExpertNumber > 0 && ObjectUtils.isEmpty(professional)){
|
|
|
- throw new Exception("抽取备用专家必须选择专家专业");
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean updatePmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
|
|
|
+ List<Long> pmBidOpeningIdList = pmBidWinningReqVo.getPmBidOpeningIdList();
|
|
|
+ if(ObjectUtils.isEmpty(pmBidOpeningIdList)) {
|
|
|
+ throw new Exception("中标单位信息列表不能为空");
|
|
|
}
|
|
|
- String localArea = pmBaseExpertExtractReqVo.getLocalArea();
|
|
|
- if(spareExpertNumber > 0 && ObjectUtils.isEmpty(localArea)){
|
|
|
- throw new Exception("抽取备用专家必须选择所在区域");
|
|
|
+ if(ObjectUtils.isEmpty(pmBidWinningReqVo.getSysFileRefs())){
|
|
|
+ throw new Exception("上传附件不能为空");
|
|
|
}
|
|
|
-
|
|
|
- PmDemand pmDemand = this.getById(pmBaseExpertExtractReqVo.getDemandId());
|
|
|
- if(ObjectUtils.isEmpty(pmDemand)){
|
|
|
- throw new Exception("参数错误");
|
|
|
+ if(ObjectUtils.isEmpty(pmBidWinningReqVo.getBidWinningAmount())){
|
|
|
+ throw new Exception("中标金额不能为空");
|
|
|
}
|
|
|
|
|
|
- LambdaQueryWrapper<BaseExpert> lw = new LambdaQueryWrapper<BaseExpert>();
|
|
|
- lw.eq(BaseExpert::getVarietyPurchase,pmDemand.getProjectType())
|
|
|
- .eq(BaseExpert::getStatus,NameListType.WHITE.getCode());
|
|
|
- List<BaseExpert> baseExpertList = baseExpertService.list(lw);
|
|
|
- if(ObjectUtils.isEmpty(baseExpertList)){
|
|
|
- throw new Exception("没抽取到符合条件的专家");
|
|
|
+ LambdaQueryWrapper<PmBidWinning> lw = new LambdaQueryWrapper<>();
|
|
|
+ lw.eq(PmBidWinning::getDemandId,pmBidWinningReqVo.getDemandId());
|
|
|
+ PmBidWinning pmBidWinning = pmBidWinningService.getOne(lw);
|
|
|
+ if(pmBidWinning == null){
|
|
|
+ throw new Exception("原中标信息不存在");
|
|
|
}
|
|
|
|
|
|
- List<BaseExpert> technicalExpertList = new ArrayList<>();
|
|
|
- List<BaseExpert> economicExpertList = new ArrayList<>();
|
|
|
- List<BaseExpert> legalAffairsExpertList = new ArrayList<>();
|
|
|
- List<BaseExpert> spareExpertList = new ArrayList<>();
|
|
|
-
|
|
|
- for(BaseExpert baseExpert : baseExpertList){
|
|
|
- if(technicalExpertNumber > 0) {
|
|
|
- if(ExpertType.TECHNICAL_EXPERT.getCode().equals(baseExpert.getExpertType())){
|
|
|
- technicalExpertList.add(baseExpert);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(economicExpertNumber > 0) {
|
|
|
- if(ExpertType.ECONOMIC_EXPERT.getCode().equals(baseExpert.getExpertType())){
|
|
|
- economicExpertList.add(baseExpert);
|
|
|
- }
|
|
|
+ pmBidWinning.setBidWinningAmount(pmBidWinningReqVo.getBidWinningAmount());
|
|
|
+ pmBidWinning.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
|
+ pmBidWinning.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
|
+ if(pmBidWinningService.updateById(pmBidWinning)){
|
|
|
+ //删除老的:
|
|
|
+ QueryWrapper<PmBidWinningOpeningRef> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(PmBidWinningOpeningRef::getWinningId,pmBidWinning.getId());
|
|
|
+ pmBidWinningOpeningRefService.remove(queryWrapper);
|
|
|
+
|
|
|
+ //添加新的
|
|
|
+ List<PmBidWinningOpeningRef> pmBidWinningOpeningRefList = new ArrayList<>();
|
|
|
+ for(Long pmBidOpeningId : pmBidOpeningIdList){
|
|
|
+ PmBidWinningOpeningRef pmBidWinningOpeningRef = new PmBidWinningOpeningRef();
|
|
|
+ pmBidWinningOpeningRef.setOpeningId(pmBidOpeningId);
|
|
|
+ pmBidWinningOpeningRef.setWinningId(pmBidWinning.getId());
|
|
|
+ pmBidWinningOpeningRef.setCreateBy(pmBidWinningReqVo.getCreateBy());
|
|
|
+ pmBidWinningOpeningRef.setCreateTime(pmBidWinningReqVo.getCreateTime());
|
|
|
+ pmBidWinningOpeningRef.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
|
+ pmBidWinningOpeningRef.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
|
+ pmBidWinningOpeningRefList.add(pmBidWinningOpeningRef);
|
|
|
}
|
|
|
+ return pmBidWinningOpeningRefService.saveBatch(pmBidWinningOpeningRefList);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- if (legalAffairsExpertNumber > 0) {
|
|
|
- if(ExpertType.LEGALAFFAIRS_EXPERT.getCode().equals(baseExpert.getExpertType())){
|
|
|
- legalAffairsExpertList.add(baseExpert);
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception {
|
|
|
+ PmBidFailure pmBidFailure = new PmBidFailure();
|
|
|
+ BeanUtils.copyProperties(pmBidFailureReqVo,pmBidFailure);
|
|
|
+ if(pmBidFailureService.save(pmBidFailure)){
|
|
|
+ return uploadFile(pmBidFailure.getId(), SysFileRefEnum.PM_BID_FAILURE_FILE.getType(),pmBidFailureReqVo.getSysFileRefs(),pmBidFailureReqVo.getUpdateBy());
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- if (spareExpertNumber > 0) {
|
|
|
- String[] arr = professional.split(",");
|
|
|
- List<String> professionalList = Arrays.asList(arr);
|
|
|
- String majorType = baseExpert.getMajorType();
|
|
|
- //TODO 所在区域判读
|
|
|
+ }
|
|
|
|
|
|
- if(!ObjectUtils.isEmpty(majorType)){
|
|
|
- if(professionalList.contains(majorType)){
|
|
|
- spareExpertList.add(baseExpert);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean insertContractInfo(PmContractInfoReqVo pmContractInfoReqVo) throws Exception {
|
|
|
+ Long demandId = pmContractInfoReqVo.getDemandId();
|
|
|
+ if(ObjectUtils.isEmpty(demandId)){
|
|
|
+ throw new Exception("采购需求ID不能为空");
|
|
|
}
|
|
|
|
|
|
- List<BaseExpert> alltExpertList = new ArrayList<>();
|
|
|
- if(!ObjectUtils.isEmpty(technicalExpertList)){
|
|
|
- alltExpertList.addAll(RandomUtil.getRandomList(technicalExpertList,technicalExpertNumber));
|
|
|
- }
|
|
|
- if(!ObjectUtils.isEmpty(economicExpertList)){
|
|
|
- alltExpertList.addAll(RandomUtil.getRandomList(economicExpertList,economicExpertNumber));
|
|
|
+ String contractSignPlaceA = pmContractInfoReqVo.getContractSignPlaceA();
|
|
|
+ if(ObjectUtils.isEmpty(contractSignPlaceA)) {
|
|
|
+ throw new Exception("甲方合同签订地点不能为空");
|
|
|
}
|
|
|
- if(!ObjectUtils.isEmpty(legalAffairsExpertList)){
|
|
|
- alltExpertList.addAll(RandomUtil.getRandomList(legalAffairsExpertList,legalAffairsExpertNumber));
|
|
|
- }
|
|
|
- if(!ObjectUtils.isEmpty(spareExpertList)){
|
|
|
- alltExpertList.addAll(RandomUtil.getRandomList(spareExpertList,spareExpertNumber));
|
|
|
+ Date contractSignDateA = pmContractInfoReqVo.getContractSignDateA();
|
|
|
+ if(ObjectUtils.isEmpty(contractSignDateA)) {
|
|
|
+ throw new Exception("甲方合同签订日期不能为空");
|
|
|
}
|
|
|
|
|
|
- if(ObjectUtils.isEmpty(alltExpertList)){
|
|
|
- throw new Exception("没抽取到符合条件的专家");
|
|
|
- } else {
|
|
|
- List<PmDemandExpertRef> pmDemandExpertRefList = new ArrayList<>();
|
|
|
- for(BaseExpert baseExpert :alltExpertList ) {
|
|
|
- PmDemandExpertRef pmDemandExpertRef = new PmDemandExpertRef();
|
|
|
- pmDemandExpertRef.setDemandId(pmDemand.getDemandId());
|
|
|
- pmDemandExpertRef.setExpertId(baseExpert.getId().longValue());
|
|
|
- pmDemandExpertRef.setCreateBy(pmBaseExpertExtractReqVo.getCreateBy());
|
|
|
- pmDemandExpertRef.setAccessTime(DateUtils.parseDate(pmBaseExpertExtractReqVo.getAccessTime()));
|
|
|
- pmDemandExpertRef.setCreateTime(new Date());
|
|
|
- pmDemandExpertRef.setUpdateBy(pmBaseExpertExtractReqVo.getCreateBy());
|
|
|
- pmDemandExpertRef.setUpdateTime(pmDemandExpertRef.getCreateTime());
|
|
|
- pmDemandExpertRefList.add(pmDemandExpertRef);
|
|
|
- }
|
|
|
- return pmDemandExpertRefService.saveBatch(pmDemandExpertRefList);
|
|
|
+ PmDemand pmDemand = this.getById(demandId);
|
|
|
+ if(ObjectUtils.isEmpty(pmDemand)){
|
|
|
+ throw new Exception("采购需求ID错误");
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean insertBidOpeningBatch(PmBidOpeningFillReqVo pmBidOpeningFillReqVo) throws Exception {
|
|
|
- PmDemand pmDemand = this.getById(pmBidOpeningFillReqVo.getDemandId());
|
|
|
- if(ObjectUtils.isEmpty(pmDemand)){
|
|
|
- throw new Exception("参数错误");
|
|
|
+ List<BaseSupplierReqVo> baseSupplierReqVoList = pmContractInfoReqVo.getBaseSupplierList();
|
|
|
+ if(ObjectUtils.isEmpty(baseSupplierReqVoList)){
|
|
|
+ throw new Exception("乙方信息列表不能为空");
|
|
|
}
|
|
|
- Date now = new Date();
|
|
|
- List<PmBidOpening> pmBidOpeningList = pmBidOpeningFillReqVo.getPmBidOpeningList();
|
|
|
- for (PmBidOpening pmBidOpening : pmBidOpeningList) {
|
|
|
- if(ObjectUtils.isEmpty(pmBidOpening.getBidderName())){
|
|
|
- throw new Exception("投标人名称不能为空");
|
|
|
+ for(BaseSupplierReqVo baseSupplierReqVo : baseSupplierReqVoList) {
|
|
|
+ String contractSignPlaceB = baseSupplierReqVo.getContractSignPlaceB();
|
|
|
+ if(ObjectUtils.isEmpty(contractSignPlaceB)) {
|
|
|
+ throw new Exception("乙方合同签订地点不能为空");
|
|
|
}
|
|
|
- if(ObjectUtils.isEmpty(pmBidOpening.getScore())){
|
|
|
- throw new Exception("分数不能为空");
|
|
|
+ Date contractSignDateB = baseSupplierReqVo.getContractSignDateB();
|
|
|
+ if(ObjectUtils.isEmpty(contractSignDateB)) {
|
|
|
+ throw new Exception("乙方合同签订日期不能为空");
|
|
|
}
|
|
|
- pmBidOpening.setDemandId(pmBidOpeningFillReqVo.getDemandId());
|
|
|
- pmBidOpening.setOpenBidTime(now); //TODO
|
|
|
- pmBidOpening.setCreateBy(pmBidOpeningFillReqVo.getCreateBy());
|
|
|
- pmBidOpening.setCreateTime(now);
|
|
|
- pmBidOpening.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
|
|
|
- pmBidOpening.setUpdateTime(now);
|
|
|
- }
|
|
|
- if(pmBidOpeningService.saveBatch(pmBidOpeningList)) {
|
|
|
- PmDemand pmDemandUpdate = new PmDemand();
|
|
|
- pmDemandUpdate.setDemandId(pmDemand.getDemandId());
|
|
|
- pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.WAIT_BID_ANNOUNCEMENT.getCode()));
|
|
|
- pmDemandUpdate.setUpdateTime(now);
|
|
|
- pmDemandUpdate.setUpdateBy(pmBidOpeningFillReqVo.getUpdateBy());
|
|
|
- return this.updateById(pmDemandUpdate);
|
|
|
- } else {
|
|
|
- return false;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- @Override
|
|
|
- public boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
|
|
|
- uploadFile(pmBidWinningReqVo.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(),pmBidWinningReqVo.getSysFileRefs(),pmBidWinningReqVo.getUpdateBy());
|
|
|
- PmBidWinning pmBidWinning = new PmBidWinning();
|
|
|
- BeanUtils.copyProperties(pmBidWinningReqVo,pmBidWinning);
|
|
|
- if(pmBidWinningService.save(pmBidWinning)){
|
|
|
- if(uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(),pmBidWinningReqVo.getSysFileRefs(),pmBidWinningReqVo.getUpdateBy())) {
|
|
|
+ List<SysFileRef> sysFileRefs = pmContractInfoReqVo.getSysFileRefs();
|
|
|
+ if(ObjectUtils.isEmpty(sysFileRefs)){
|
|
|
+ throw new Exception("上传附件不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ PmContractInfo pmContractInfo = new PmContractInfo();
|
|
|
+ org.springframework.beans.BeanUtils.copyProperties(pmContractInfoReqVo,pmContractInfo);
|
|
|
+
|
|
|
+ if(pmContractInfoService.save(pmContractInfo)){
|
|
|
+ if (this.uploadFile(pmContractInfo.getId(), SysFileRefEnum.PM_CONTRACT_INFO.getType(),sysFileRefs,pmContractInfoReqVo.getUpdateBy())) {
|
|
|
+ PmContractUnitRef pmContractUnitRefA = new PmContractUnitRef();
|
|
|
+ pmContractUnitRefA.setContractInfoId(pmContractInfo.getId());
|
|
|
+ pmContractUnitRefA.setDemandId(demandId);
|
|
|
+ pmContractUnitRefA.setUnitId(pmDemand.getPurchaseDeptId());
|
|
|
+ pmContractUnitRefA.setContractSignPlace(contractSignPlaceA);
|
|
|
+ pmContractUnitRefA.setContractSignDate(contractSignDateA);
|
|
|
+ pmContractUnitRefA.setUnitType("A");
|
|
|
+ pmContractUnitRefA.setCreateBy(pmContractInfoReqVo.getCreateBy());
|
|
|
+ pmContractUnitRefA.setCreateTime(pmContractInfoReqVo.getCreateTime());
|
|
|
+ pmContractUnitRefA.setUpdateTime(pmContractInfoReqVo.getUpdateTime());
|
|
|
+ pmContractUnitRefA.setUpdateBy(pmContractInfoReqVo.getUpdateBy());
|
|
|
+ if(pmContractUnitRefService.save(pmContractUnitRefA)){
|
|
|
+
|
|
|
+ for(BaseSupplierReqVo baseSupplierReqVo : baseSupplierReqVoList) {
|
|
|
+
|
|
|
+ BaseSupplier baseSupplier = new BaseSupplier();
|
|
|
+ BeanUtils.copyProperties(baseSupplierReqVo,baseSupplier);
|
|
|
+
|
|
|
+ if(ObjectUtils.isEmpty(baseSupplier.getSupplierAdvancePurchase())){
|
|
|
+ baseSupplier.setSupplierAdvancePurchase("0"); //关闭
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ObjectUtils.isEmpty(baseSupplier.getSupplierType())){
|
|
|
+ baseSupplier.setSupplierType(pmDemand.getProjectType());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ObjectUtils.isEmpty(baseSupplier.getSupplierState())){
|
|
|
+ baseSupplier.setSupplierState(NameListType.WHITE.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ObjectUtils.isEmpty(baseSupplier.getCreated())){
|
|
|
+ baseSupplier.setCreated(pmContractInfoReqVo.getCreateBy());
|
|
|
+ baseSupplier.setCreateTime(pmContractInfoReqVo.getCreateTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(ObjectUtils.isEmpty(baseSupplier.getUpdated())){
|
|
|
+ baseSupplier.setUpdated(pmContractInfoReqVo.getUpdateBy());
|
|
|
+ baseSupplier.setUpdateTime(pmContractInfoReqVo.getUpdateTime());
|
|
|
+ }
|
|
|
+ if(baseSupplierService.saveOrUpdate(baseSupplier)) {
|
|
|
+ String contractSignPlaceB = baseSupplierReqVo.getContractSignPlaceB();
|
|
|
+ Date contractSignDateB = baseSupplierReqVo.getContractSignDateB();
|
|
|
+
|
|
|
+ PmContractUnitRef pmContractUnitRefB = new PmContractUnitRef();
|
|
|
+ pmContractUnitRefB.setContractInfoId(pmContractInfo.getId());
|
|
|
+ pmContractUnitRefB.setDemandId(demandId);
|
|
|
+ pmContractUnitRefA.setUnitId(baseSupplier.getId().longValue());
|
|
|
+ pmContractUnitRefB.setContractSignPlace(contractSignPlaceB);
|
|
|
+ pmContractUnitRefB.setContractSignDate(contractSignDateB);
|
|
|
+ pmContractUnitRefB.setUnitType("B");
|
|
|
+ pmContractUnitRefB.setCreateBy(pmContractInfoReqVo.getCreateBy());
|
|
|
+ pmContractUnitRefB.setCreateTime(pmContractInfoReqVo.getCreateTime());
|
|
|
+ pmContractUnitRefB.setUpdateTime(pmContractInfoReqVo.getUpdateTime());
|
|
|
+ pmContractUnitRefB.setUpdateBy(pmContractInfoReqVo.getUpdateBy());
|
|
|
+ if(!this.pmContractUnitRefService.save(pmContractUnitRefB)){
|
|
|
+ throw new Exception("保存合同单位关系失败");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new Exception("保存或更新供应商失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ throw new Exception("保存合同单位关系失败");
|
|
|
+ }
|
|
|
+
|
|
|
PmDemand pmDemandUpdate = new PmDemand();
|
|
|
- pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
|
|
|
- pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.BIDDING_PUBLICITY.getCode()));
|
|
|
- pmDemandUpdate.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
|
- pmDemandUpdate.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
|
+ pmDemandUpdate.setDemandId(demandId);
|
|
|
+ pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.UNDER_CONSTRUCTION.getCode()));
|
|
|
+ pmDemandUpdate.setUpdateTime(pmContractInfoReqVo.getUpdateTime());
|
|
|
+ pmDemandUpdate.setUpdateBy(pmContractInfoReqVo.getUpdateBy());
|
|
|
return this.updateById(pmDemandUpdate);
|
|
|
} else {
|
|
|
- return false;
|
|
|
+ throw new Exception("保存附件失败");
|
|
|
}
|
|
|
} else {
|
|
|
return false;
|
|
@@ -999,15 +1283,39 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception {
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean insertProjectConstruction(PmProjectConstructionReqVo pmProjectConstructionReqVo) throws Exception {
|
|
|
+ Long demandId = pmProjectConstructionReqVo.getDemandId();
|
|
|
+ if(ObjectUtils.isEmpty(demandId)){
|
|
|
+ throw new Exception("采购需求ID不能为空");
|
|
|
+ }
|
|
|
|
|
|
- PmBidFailure pmBidFailure = new PmBidFailure();
|
|
|
- BeanUtils.copyProperties(pmBidFailureReqVo,pmBidFailure);
|
|
|
- if(pmBidFailureService.save(pmBidFailure)){
|
|
|
- return uploadFile(pmBidFailure.getId(), SysFileRefEnum.PM_BID_FAILURE_FILE.getType(),pmBidFailureReqVo.getSysFileRefs(),pmBidFailureReqVo.getUpdateBy());
|
|
|
+ PmDemand pmDemand = this.getById(demandId);
|
|
|
+ if(ObjectUtils.isEmpty(pmDemand)){
|
|
|
+ throw new Exception("采购需求ID错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<SysFileRef> sysFileRefs = pmProjectConstructionReqVo.getSysFileRefs();
|
|
|
+ if(ObjectUtils.isEmpty(sysFileRefs)){
|
|
|
+ throw new Exception("上传附件不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ PmProjectConstruction pmProjectConstruction = new PmProjectConstruction();
|
|
|
+ org.springframework.beans.BeanUtils.copyProperties(pmProjectConstructionReqVo,pmProjectConstruction);
|
|
|
+
|
|
|
+ if(pmProjectConstructionService.save(pmProjectConstruction)){
|
|
|
+ if (this.uploadFile(pmProjectConstruction.getId(), SysFileRefEnum.PM_PROJECT_CONSTRUCTION.getType(),sysFileRefs,pmProjectConstructionReqVo.getUpdateBy())) {
|
|
|
+ PmDemand pmDemandUpdate = new PmDemand();
|
|
|
+ pmDemandUpdate.setDemandId(demandId);
|
|
|
+ pmDemandUpdate.setProjectStatus(Long.parseLong(PmProjectStatus.COMPLETION_CONSTRUCTION.getCode()));
|
|
|
+ pmDemandUpdate.setUpdateTime(pmProjectConstructionReqVo.getUpdateTime());
|
|
|
+ pmDemandUpdate.setUpdateBy(pmProjectConstructionReqVo.getUpdateBy());
|
|
|
+ return this.updateById(pmDemandUpdate);
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|