|
@@ -7,6 +7,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -1106,17 +1107,41 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
|
|
public boolean insertPmBidWinning(PmBidWinningReqVo pmBidWinningReqVo) throws Exception {
|
|
List<Long> pmBidOpeningIdList = pmBidWinningReqVo.getPmBidOpeningIdList();
|
|
List<Long> pmBidOpeningIdList = pmBidWinningReqVo.getPmBidOpeningIdList();
|
|
|
|
+ if (ObjectUtils.isEmpty(pmBidWinningReqVo.getBidWinningAmount())) {
|
|
|
|
+ throw new Exception("中标金额不能为空");
|
|
|
|
+ }
|
|
if (ObjectUtils.isEmpty(pmBidOpeningIdList)) {
|
|
if (ObjectUtils.isEmpty(pmBidOpeningIdList)) {
|
|
throw new Exception("中标单位信息列表不能为空");
|
|
throw new Exception("中标单位信息列表不能为空");
|
|
}
|
|
}
|
|
if (ObjectUtils.isEmpty(pmBidWinningReqVo.getSysFileRefs())) {
|
|
if (ObjectUtils.isEmpty(pmBidWinningReqVo.getSysFileRefs())) {
|
|
throw new Exception("上传附件不能为空");
|
|
throw new Exception("上传附件不能为空");
|
|
}
|
|
}
|
|
- if (ObjectUtils.isEmpty(pmBidWinningReqVo.getBidWinningAmount())) {
|
|
|
|
- throw new Exception("中标金额不能为空");
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
PmBidWinning pmBidWinning = new PmBidWinning();
|
|
PmBidWinning pmBidWinning = new PmBidWinning();
|
|
BeanUtils.copyProperties(pmBidWinningReqVo, pmBidWinning);
|
|
BeanUtils.copyProperties(pmBidWinningReqVo, pmBidWinning);
|
|
|
|
+
|
|
|
|
+ //修改老的中标信息状态
|
|
|
|
+ if(ObjectUtils.isEmpty(pmBidWinningReqVo.getId())){ //属于新增
|
|
|
|
+ LambdaQueryWrapper<PmBidWinning> pmBidWinningLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ pmBidWinningLambdaQueryWrapper.eq(PmBidWinning::getDemandId,pmBidWinningReqVo.getDemandId())
|
|
|
|
+ .eq(PmBidWinning::getStatus,BidWinningStatus.NORMAL.getCode());
|
|
|
|
+ List<PmBidWinning> pmBidWinninglist = pmBidWinningService.list(pmBidWinningLambdaQueryWrapper);
|
|
|
|
+ if(!ObjectUtils.isEmpty(pmBidWinninglist)){
|
|
|
|
+ for(PmBidWinning item : pmBidWinninglist) {
|
|
|
|
+ UpdateWrapper<PmBidWinning> updateWrapper1 = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper1.lambda().set(PmBidWinning::getStatus,BidWinningStatus.BE_REPLACED.getCode())
|
|
|
|
+ .eq(PmBidWinning::getId,item.getId());
|
|
|
|
+ pmBidWinningService.update(updateWrapper1);
|
|
|
|
+
|
|
|
|
+ UpdateWrapper<PmBidWinningOpeningRef> updateWrapper2 = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper2.lambda().set(PmBidWinningOpeningRef::getStatus,BidWinningStatus.BE_REPLACED.getCode())
|
|
|
|
+ .eq(PmBidWinningOpeningRef::getWinningId,item.getId())
|
|
|
|
+ .eq(PmBidWinningOpeningRef::getStatus,BidWinningStatus.NORMAL.getCode());
|
|
|
|
+ pmBidWinningOpeningRefService.update(updateWrapper2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
if (pmBidWinningService.saveOrUpdate(pmBidWinning)) {
|
|
if (pmBidWinningService.saveOrUpdate(pmBidWinning)) {
|
|
List<PmBidWinningOpeningRef> pmBidWinningOpeningRefList = new ArrayList<>();
|
|
List<PmBidWinningOpeningRef> pmBidWinningOpeningRefList = new ArrayList<>();
|
|
for (Long pmBidOpeningId : pmBidOpeningIdList) {
|
|
for (Long pmBidOpeningId : pmBidOpeningIdList) {
|
|
@@ -1136,6 +1161,7 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
pmBidWinningOpeningRefList.add(pmBidWinningOpeningRef);
|
|
pmBidWinningOpeningRefList.add(pmBidWinningOpeningRef);
|
|
}
|
|
}
|
|
if (pmBidWinningOpeningRefService.saveOrUpdateBatch(pmBidWinningOpeningRefList)) {
|
|
if (pmBidWinningOpeningRefService.saveOrUpdateBatch(pmBidWinningOpeningRefList)) {
|
|
|
|
+
|
|
uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(), pmBidWinningReqVo.getSysFileRefs(), pmBidWinningReqVo.getUpdateBy());
|
|
uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(), pmBidWinningReqVo.getSysFileRefs(), pmBidWinningReqVo.getUpdateBy());
|
|
PmDemand pmDemandUpdate = new PmDemand();
|
|
PmDemand pmDemandUpdate = new PmDemand();
|
|
pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
|
|
pmDemandUpdate.setDemandId(pmBidWinningReqVo.getDemandId());
|
|
@@ -1161,53 +1187,79 @@ public class PmDemandServiceImpl extends ServiceImpl<PmDemandMapper, PmDemand> i
|
|
if (ObjectUtils.isEmpty(pmBidOpeningIdList)) {
|
|
if (ObjectUtils.isEmpty(pmBidOpeningIdList)) {
|
|
throw new Exception("中标单位信息列表不能为空");
|
|
throw new Exception("中标单位信息列表不能为空");
|
|
}
|
|
}
|
|
- if (ObjectUtils.isEmpty(pmBidWinningReqVo.getSysFileRefs())) {
|
|
|
|
- throw new Exception("上传附件不能为空");
|
|
|
|
- }
|
|
|
|
if (ObjectUtils.isEmpty(pmBidWinningReqVo.getBidWinningAmount())) {
|
|
if (ObjectUtils.isEmpty(pmBidWinningReqVo.getBidWinningAmount())) {
|
|
throw new Exception("中标金额不能为空");
|
|
throw new Exception("中标金额不能为空");
|
|
}
|
|
}
|
|
|
|
+ if (ObjectUtils.isEmpty(pmBidWinningReqVo.getSysFileRefs())) {
|
|
|
|
+ throw new Exception("上传附件不能为空");
|
|
|
|
+ }
|
|
|
|
|
|
LambdaQueryWrapper<PmBidWinning> lw = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<PmBidWinning> lw = new LambdaQueryWrapper<>();
|
|
- lw.eq(PmBidWinning::getDemandId, pmBidWinningReqVo.getDemandId());
|
|
|
|
- PmBidWinning pmBidWinning = pmBidWinningService.getOne(lw);
|
|
|
|
- if (pmBidWinning == null) {
|
|
|
|
|
|
+ lw.eq(PmBidWinning::getDemandId, pmBidWinningReqVo.getDemandId()).eq(PmBidWinning::getStatus,BidWinningStatus.NORMAL.getCode());
|
|
|
|
+ List<PmBidWinning> pmBidWinninglist = pmBidWinningService.list(lw);
|
|
|
|
+ if (ObjectUtils.isEmpty(pmBidWinninglist)) {
|
|
throw new Exception("原中标信息不存在");
|
|
throw new Exception("原中标信息不存在");
|
|
}
|
|
}
|
|
|
|
+ //修改老的状态
|
|
|
|
+ for(PmBidWinning item : pmBidWinninglist) {
|
|
|
|
+ UpdateWrapper<PmBidWinning> updateWrapper1 = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper1.lambda().set(PmBidWinning::getStatus,BidWinningStatus.BE_REPLACED.getCode())
|
|
|
|
+ .eq(PmBidWinning::getId,item.getId());
|
|
|
|
+ pmBidWinningService.update(updateWrapper1);
|
|
|
|
|
|
|
|
+ UpdateWrapper<PmBidWinningOpeningRef> updateWrapper2 = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper2.lambda().set(PmBidWinningOpeningRef::getStatus,BidWinningStatus.BE_REPLACED.getCode())
|
|
|
|
+ .eq(PmBidWinningOpeningRef::getWinningId,item.getId())
|
|
|
|
+ .eq(PmBidWinningOpeningRef::getStatus,BidWinningStatus.NORMAL.getCode());
|
|
|
|
+ pmBidWinningOpeningRefService.update(updateWrapper2);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //新增
|
|
|
|
+ PmBidWinning pmBidWinning = new PmBidWinning();
|
|
|
|
+ BeanUtils.copyProperties(pmBidWinninglist.get(0),pmBidWinning);
|
|
pmBidWinning.setBidWinningAmount(pmBidWinningReqVo.getBidWinningAmount());
|
|
pmBidWinning.setBidWinningAmount(pmBidWinningReqVo.getBidWinningAmount());
|
|
|
|
+ pmBidWinning.setStatus(BidWinningStatus.NORMAL.getCode());
|
|
pmBidWinning.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
pmBidWinning.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
pmBidWinning.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
pmBidWinning.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
- if (pmBidWinningService.updateById(pmBidWinning)) {
|
|
|
|
- //删除老的:
|
|
|
|
- QueryWrapper<PmBidWinningOpeningRef> queryWrapper = new QueryWrapper<>();
|
|
|
|
- queryWrapper.lambda().eq(PmBidWinningOpeningRef::getWinningId, pmBidWinning.getId());
|
|
|
|
- pmBidWinningOpeningRefService.remove(queryWrapper);
|
|
|
|
-
|
|
|
|
- //添加新的
|
|
|
|
|
|
+ if (pmBidWinningService.save(pmBidWinning)) {
|
|
List<PmBidWinningOpeningRef> pmBidWinningOpeningRefList = new ArrayList<>();
|
|
List<PmBidWinningOpeningRef> pmBidWinningOpeningRefList = new ArrayList<>();
|
|
for (Long pmBidOpeningId : pmBidOpeningIdList) {
|
|
for (Long pmBidOpeningId : pmBidOpeningIdList) {
|
|
PmBidWinningOpeningRef pmBidWinningOpeningRef = new PmBidWinningOpeningRef();
|
|
PmBidWinningOpeningRef pmBidWinningOpeningRef = new PmBidWinningOpeningRef();
|
|
pmBidWinningOpeningRef.setOpeningId(pmBidOpeningId);
|
|
pmBidWinningOpeningRef.setOpeningId(pmBidOpeningId);
|
|
pmBidWinningOpeningRef.setWinningId(pmBidWinning.getId());
|
|
pmBidWinningOpeningRef.setWinningId(pmBidWinning.getId());
|
|
|
|
+ pmBidWinningOpeningRef.setStatus(BidWinningStatus.NORMAL.getCode());
|
|
|
|
+
|
|
pmBidWinningOpeningRef.setCreateBy(pmBidWinningReqVo.getCreateBy());
|
|
pmBidWinningOpeningRef.setCreateBy(pmBidWinningReqVo.getCreateBy());
|
|
pmBidWinningOpeningRef.setCreateTime(pmBidWinningReqVo.getCreateTime());
|
|
pmBidWinningOpeningRef.setCreateTime(pmBidWinningReqVo.getCreateTime());
|
|
pmBidWinningOpeningRef.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
pmBidWinningOpeningRef.setUpdateBy(pmBidWinningReqVo.getUpdateBy());
|
|
pmBidWinningOpeningRef.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
pmBidWinningOpeningRef.setUpdateTime(pmBidWinningReqVo.getUpdateTime());
|
|
pmBidWinningOpeningRefList.add(pmBidWinningOpeningRef);
|
|
pmBidWinningOpeningRefList.add(pmBidWinningOpeningRef);
|
|
}
|
|
}
|
|
|
|
+ LambdaQueryWrapper<SysFileRef> sysFileRefLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ sysFileRefLambdaQueryWrapper.eq(SysFileRef::getType,SysFileRefEnum.PM_BID_WINNING_FILE.getType())
|
|
|
|
+ .eq(SysFileRef::getRedId,pmBidWinninglist.get(0));
|
|
|
|
+ List<SysFileRef> sysFileRefs = sysFileRefService.list(sysFileRefLambdaQueryWrapper);
|
|
|
|
+ uploadFile(pmBidWinning.getId(), SysFileRefEnum.PM_BID_WINNING_FILE.getType(), sysFileRefs, pmBidWinningReqVo.getUpdateBy());
|
|
|
|
+
|
|
return pmBidWinningOpeningRefService.saveBatch(pmBidWinningOpeningRefList);
|
|
return pmBidWinningOpeningRefService.saveBatch(pmBidWinningOpeningRefList);
|
|
} else {
|
|
} else {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 流标
|
|
|
|
+ * @param pmBidFailureReqVo
|
|
|
|
+ * @return
|
|
|
|
+ * @throws Exception
|
|
|
|
+ */
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception {
|
|
public boolean insertPmBidFailure(PmBidFailureReqVo pmBidFailureReqVo) throws Exception {
|
|
PmBidFailure pmBidFailure = new PmBidFailure();
|
|
PmBidFailure pmBidFailure = new PmBidFailure();
|
|
BeanUtils.copyProperties(pmBidFailureReqVo, pmBidFailure);
|
|
BeanUtils.copyProperties(pmBidFailureReqVo, pmBidFailure);
|
|
if (pmBidFailureService.saveOrUpdate(pmBidFailure)) {
|
|
if (pmBidFailureService.saveOrUpdate(pmBidFailure)) {
|
|
|
|
+
|
|
uploadFile(pmBidFailure.getId(), SysFileRefEnum.PM_BID_FAILURE_FILE.getType(), pmBidFailureReqVo.getSysFileRefs(), pmBidFailureReqVo.getUpdateBy());
|
|
uploadFile(pmBidFailure.getId(), SysFileRefEnum.PM_BID_FAILURE_FILE.getType(), pmBidFailureReqVo.getSysFileRefs(), pmBidFailureReqVo.getUpdateBy());
|
|
PmDemand pmDemandUpdate = new PmDemand();
|
|
PmDemand pmDemandUpdate = new PmDemand();
|
|
pmDemandUpdate.setDemandId(pmBidFailureReqVo.getDemandId());
|
|
pmDemandUpdate.setDemandId(pmBidFailureReqVo.getDemandId());
|