招采管理模块审批修改

This commit is contained in:
2025-08-22 22:45:30 +08:00
parent baf0794cce
commit aa2685c2ec
15 changed files with 301 additions and 52 deletions

View File

@ -77,8 +77,8 @@ public class BusListOfWinningBidsController extends BaseController {
@Log(title = "中标项目一览", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@RequestPart("bo") BusListOfWinningBidsBo bo ,@RequestParam(name = "file", required = false) MultipartFile file) {
return toAjax(busListOfWinningBidsService.insertByBo(bo,file));
public R<Void> add(@RequestBody BusListOfWinningBidsBo bo ) {
return toAjax(busListOfWinningBidsService.insertByBo(bo));
}
/**

View File

@ -136,5 +136,57 @@ public class BusListOfWinningBids extends BaseEntity {
*/
private String bidFileName;
/**
* 招标代理机构
*/
private String biddingAgency;
/**
* 招标人
*/
private String tenderer;
/**
* 投标截止时间
*/
private Date biddingDeadline;
/**
* 开标时间
*/
private Date bidOpeningTime;
/**
* 项目概况
*/
private String projectOverview;
/**
* 建设地点
*/
private String constructionSite;
/**
* 计划工期
*/
private String planDuration;
/**
* 答疑截止时间
*/
private Date answeringDeadlineTime;
/**
* 澄清截止时间
*/
private Date clarifyDeadlineTime;
/**
* 是否有投标保证金0有1无
*/
private String whetherDeposit;
}

View File

@ -131,6 +131,7 @@ public class BusListOfWinningBidsBo extends BaseEntity {
* 中标通知书
*/
private String bidFile;
private Long bidFileId;
/**
* 中标通知书名称
@ -139,4 +140,46 @@ public class BusListOfWinningBidsBo extends BaseEntity {
/**
* 招标代理机构
*/
private String biddingAgency;
/**
* 招标人
*/
private String tenderer;
/**
* 投标截止时间
*/
private Date biddingDeadline;
/**
* 开标时间
*/
private Date bidOpeningTime;
/**
* 项目概况
*/
private String projectOverview;
/**
* 建设地点
*/
private String constructionSite;
/**
* 计划工期
*/
private String planDuration;
/**
* 答疑截止时间
*/
private Date answeringDeadlineTime;
/**
* 澄清截止时间
*/
private Date clarifyDeadlineTime;
/**
* 是否有投标保证金0有1无
*/
private String whetherDeposit;
}

View File

@ -165,4 +165,56 @@ public class BusListOfWinningBidsVo implements Serializable {
private String bidFileName;
/**
* 招标代理机构
*/
private String biddingAgency;
/**
* 招标人
*/
private String tenderer;
/**
* 投标截止时间
*/
private Date biddingDeadline;
/**
* 开标时间
*/
private Date bidOpeningTime;
/**
* 项目概况
*/
private String projectOverview;
/**
* 建设地点
*/
private String constructionSite;
/**
* 计划工期
*/
private String planDuration;
/**
* 答疑截止时间
*/
private Date answeringDeadlineTime;
/**
* 澄清截止时间
*/
private Date clarifyDeadlineTime;
/**
* 是否有投标保证金0有1无
*/
private String whetherDeposit;
}

View File

@ -7,7 +7,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
import java.util.Collection;
import java.util.List;
@ -48,11 +47,10 @@ public interface IBusListOfWinningBidsService extends IService<BusListOfWinningB
/**
* 新增中标项目一览
*
* @param bo 中标项目一览
* @param file
* @param bo 中标项目一览
* @return 是否新增成功
*/
Boolean insertByBo(BusListOfWinningBidsBo bo, MultipartFile file);
Boolean insertByBo(BusListOfWinningBidsBo bo);
/**
* 修改中标项目一览

View File

@ -147,7 +147,7 @@ public class BusBiddingLimitVersionsServiceImpl extends ServiceImpl<BusBiddingLi
*
* @param processEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('biddingEquipmentList')")
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('biddingLimitList')")
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
log.info("物资设备清单审核任务执行了{}", processEvent.toString());
String id = processEvent.getBusinessId();
@ -178,7 +178,7 @@ public class BusBiddingLimitVersionsServiceImpl extends ServiceImpl<BusBiddingLi
*
* @param processTaskEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('biddingEquipmentList')")
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('biddingLimitList')")
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
log.info("物资设备清单审核任务创建了{}", processTaskEvent.toString());
}
@ -190,7 +190,7 @@ public class BusBiddingLimitVersionsServiceImpl extends ServiceImpl<BusBiddingLi
*
* @param processDeleteEvent 参数
*/
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('biddingEquipmentList')")
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('biddingLimitList')")
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
log.info("物资设备清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
}

View File

@ -8,7 +8,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.ctr.domain.CtrIncomeContract;
import org.dromara.ctr.service.ICtrIncomeContractService;
import org.dromara.system.domain.vo.SysOssUploadVo;
import org.dromara.system.domain.vo.SysOssVo;
import org.dromara.system.service.ISysOssService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -17,7 +20,6 @@ import org.dromara.bidding.domain.vo.BusListOfWinningBidsVo;
import org.dromara.bidding.domain.BusListOfWinningBids;
import org.dromara.bidding.mapper.BusListOfWinningBidsMapper;
import org.dromara.bidding.service.IBusListOfWinningBidsService;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
@ -40,6 +42,9 @@ public class BusListOfWinningBidsServiceImpl extends ServiceImpl<BusListOfWinnin
@Autowired
private ISysOssService ossService;
@Autowired
private ICtrIncomeContractService ctrIncomeContractService;
/**
* 查询中标项目一览
*
@ -89,25 +94,25 @@ public class BusListOfWinningBidsServiceImpl extends ServiceImpl<BusListOfWinnin
/**
* 新增中标项目一览
*
* @param bo 中标项目一览
* @param file
* @param bo 中标项目一览
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(BusListOfWinningBidsBo bo, MultipartFile file) {
if ("0".equals(bo.getWhetherBid())){
SysOssUploadVo wordEntity = ossService.uploadWithNoSave(file, ossService.minioFileName(FormalitiesAnnex,file));
bo.setBidFile(wordEntity.getUrl());
bo.setBidFileName(wordEntity.getFileName());
}else {
bo.setBidPrice(null);
bo.setBidFile(null);
bo.setBidFileName(null);
public Boolean insertByBo(BusListOfWinningBidsBo bo) {
if (bo.getBidFileId() != null ) {
SysOssVo ossVo = ossService.getById(bo.getBidFileId());
bo.setBidFileName(ossVo.getFileName());
bo.setBidFile(ossVo.getUrl().split("/")[3]);
CtrIncomeContract ctrIncomeContract = new CtrIncomeContract();
ctrIncomeContract.setContractName(bo.getProjectName());
ctrIncomeContract.setContractOwner(bo.getTenderer());
ctrIncomeContract.setProjectId(bo.getProjectId());
ctrIncomeContractService.save(ctrIncomeContract);
}
if (bo.getId() == null) {
BusListOfWinningBids add = MapstructUtils.convert(bo, BusListOfWinningBids.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());

View File

@ -37,6 +37,10 @@ public class CtrIncomeContract extends BaseEntity {
* 合同编号
*/
private String contractCode;
/**
* 项目名称
*/
private String contractName;
/**
* 合同类型

View File

@ -39,6 +39,11 @@ public class CtrIncomeContractBo extends BaseEntity {
*/
private String contractCode;
/**
* 项目名称
*/
private String contractName;
/**
* 合同类型
*/

View File

@ -44,6 +44,10 @@ public class CtrIncomeContractVo implements Serializable {
@ExcelProperty(value = "项目ID")
private Long projectId;
/**
* 项目名称
*/
private String contractName;
/**
* 合同编号
*/

View File

@ -68,9 +68,9 @@ public class BusTenderPlanLimitListController extends BaseController {
* 获取所有版本详细信息
*/
@SaCheckPermission("tender:tenderPlanLimitList:getVersionDetail")
@GetMapping("/getVersionDetail/{id}")
public R<BusBLimitListVersionsVo> getVersionDetail(Long id) {
return R.ok(busBillofquantitiesLimitListService.getVersionDetail(id));
@GetMapping("/getVersionDetail")
public R<BusBLimitListVersionsVo> getVersionDetail(BusBillofquantitiesLimitListBo bo) {
return R.ok(busBillofquantitiesLimitListService.getVersionDetail(bo.getVersions()));
}
/**

View File

@ -67,4 +67,6 @@ public interface IBusBLimitListVersionsService extends IService<BusBLimitListVer
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
BusBLimitListVersionsVo queryByVersion(String versions);
}

View File

@ -100,8 +100,9 @@ public interface IBusBillofquantitiesLimitListService extends IService<BusBillof
/**
* 获取版本详细信息
* @param id
*
* @param versions
* @return
*/
BusBLimitListVersionsVo getVersionDetail(Long id);
BusBLimitListVersionsVo getVersionDetail(String versions);
}

View File

@ -1,5 +1,6 @@
package org.dromara.tender.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
@ -140,6 +141,13 @@ public class BusBLimitListVersionsServiceImpl extends ServiceImpl<BusBLimitListV
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public BusBLimitListVersionsVo queryByVersion(String versions) {
BusBLimitListVersions busBLimitListVersions = baseMapper.selectOne(new LambdaQueryWrapper<BusBLimitListVersions>().eq(BusBLimitListVersions::getVersions, versions));
BusBLimitListVersionsVo vo = BeanUtil.copyProperties(busBLimitListVersions, BusBLimitListVersionsVo.class);
return vo;
}
/**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1'
@ -147,26 +155,16 @@ public class BusBLimitListVersionsServiceImpl extends ServiceImpl<BusBLimitListV
*
* @param processEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('biddingEquipmentList')")
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('bLimitEquipmentList')")
public void processPlansHandlErequipmentList(ProcessEvent processEvent) {
log.info("物资设备清单审核任务执行了{}", processEvent.toString());
String id = processEvent.getBusinessId();
String bus = id.split("_")[0];
LambdaQueryWrapper<BusBLimitListVersions> eq = new LambdaQueryWrapper<BusBLimitListVersions>()
.eq(BusBLimitListVersions::getVersions, id);
.eq(BusBLimitListVersions::getVersions, bus);
BusBLimitListVersions busBLimitListVersions = new BusBLimitListVersions();
busBLimitListVersions.setStatus(processEvent.getStatus());
//
//
boolean update = this.update(busBLimitListVersions, eq);
// BusBiddingPlan biddingPlan = baseMapper.selectById(Long.valueOf(id));
// if (biddingPlan == null) {
// log.error("");
// }
// if (BusinessStatusEnum.DRAFT.getStatus().equals(biddingPlan.getStatus())) {
// biddingPlan.setBidStatus(1);
// }
// biddingPlan.setStatus(processEvent.getStatus());
// baseMapper.updateById(biddingPlan);
baseMapper.update(busBLimitListVersions, eq);
}
/**
@ -179,7 +177,7 @@ public class BusBLimitListVersionsServiceImpl extends ServiceImpl<BusBLimitListV
*
* @param processTaskEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('biddingEquipmentList')")
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('bLimitEquipmentList')")
public void processTaskPlansHandlerEquipmentList(ProcessTaskEvent processTaskEvent) {
log.info("物资设备清单审核任务创建了{}", processTaskEvent.toString());
}
@ -191,8 +189,100 @@ public class BusBLimitListVersionsServiceImpl extends ServiceImpl<BusBLimitListV
*
* @param processDeleteEvent 参数
*/
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('biddingEquipmentList')")
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('bLimitEquipmentList')")
public void processDeletePlansHandlerEquipmentList(ProcessDeleteEvent processDeleteEvent) {
log.info("物资设备清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
}
/**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1'
* 示例为了方便则使用startsWith匹配了全部示例key
*
* @param processEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('xianjiayilan')")
public void processPlansHandlErequipmentList1(ProcessEvent processEvent) {
log.info("物资设备清单审核任务执行了{}", processEvent.toString());
String id = processEvent.getBusinessId();
String bus = id.split("_")[0];
LambdaQueryWrapper<BusBLimitListVersions> eq = new LambdaQueryWrapper<BusBLimitListVersions>()
.eq(BusBLimitListVersions::getVersions, bus);
BusBLimitListVersions busBLimitListVersions = new BusBLimitListVersions();
busBLimitListVersions.setStatus(processEvent.getStatus());
baseMapper.update(busBLimitListVersions, eq);
}
/**
* 执行任务创建监听
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
* 在方法中判断流程节点key
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
* //执行业务逻辑
* }
*
* @param processTaskEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('xianjiayilan')")
public void processTaskPlansHandlerEquipmentList1(ProcessTaskEvent processTaskEvent) {
log.info("物资设备清单审核任务创建了{}", processTaskEvent.toString());
}
/**
* 监听删除流程事件
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
* 示例为了方便则使用startsWith匹配了全部示例key
*
* @param processDeleteEvent 参数
*/
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('xianjiayilan')")
public void processDeletePlansHandlerEquipmentList1(ProcessDeleteEvent processDeleteEvent) {
log.info("物资设备清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
}
/**
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
* 正常使用只需#processEvent.flowCode=='leave1'
* 示例为了方便则使用startsWith匹配了全部示例key
*
* @param processEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('wuziyilan')")
public void processPlansHandlErequipmentList2(ProcessEvent processEvent) {
log.info("物资设备清单审核任务执行了{}", processEvent.toString());
String id = processEvent.getBusinessId();
String bus = id.split("_")[0];
LambdaQueryWrapper<BusBLimitListVersions> eq = new LambdaQueryWrapper<BusBLimitListVersions>()
.eq(BusBLimitListVersions::getVersions, bus);
BusBLimitListVersions busBLimitListVersions = new BusBLimitListVersions();
busBLimitListVersions.setStatus(processEvent.getStatus());
baseMapper.update(busBLimitListVersions, eq);
}
/**
* 执行任务创建监听
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断
* 在方法中判断流程节点key
* if ("xxx".equals(processTaskEvent.getNodeCode())) {
* //执行业务逻辑
* }
*
* @param processTaskEvent 参数
*/
@org.springframework.context.event.EventListener(condition = "#processTaskEvent.flowCode.endsWith('wuziyilan')")
public void processTaskPlansHandlerEquipmentList2(ProcessTaskEvent processTaskEvent) {
log.info("物资设备清单审核任务创建了{}", processTaskEvent.toString());
}
/**
* 监听删除流程事件
* 正常使用只需#processDeleteEvent.flowCode=='leave1'
* 示例为了方便则使用startsWith匹配了全部示例key
*
* @param processDeleteEvent 参数
*/
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('wuziyilan')")
public void processDeletePlansHandlerEquipmentList2(ProcessDeleteEvent processDeleteEvent) {
log.info("物资设备清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
}
}

View File

@ -2,10 +2,6 @@ package org.dromara.tender.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
import org.dromara.common.core.domain.event.ProcessEvent;
import org.dromara.common.core.domain.event.ProcessTaskEvent;
import org.dromara.common.core.enums.BusinessStatusEnum;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -15,15 +11,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.utils.excel.ExcelDynamicReader;
import org.dromara.design.domain.BusBillofquantitiesVersions;
import org.dromara.tender.domain.BusBiddingPlan;
import org.dromara.tender.domain.bo.BusBLimitListVersionsBo;
import org.dromara.tender.domain.bo.TenderAllVersionNumbersReq;
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
import org.dromara.tender.enums.LimitListTypeEnum;
import org.dromara.tender.service.IBusBLimitListVersionsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
@ -252,8 +245,8 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBill
}
@Override
public BusBLimitListVersionsVo getVersionDetail(Long id) {
return busBLimitListVersionsService.queryById(id);
public BusBLimitListVersionsVo getVersionDetail(String versions) {
return busBLimitListVersionsService.queryByVersion(versions);
}
/**