标后分析自动生成项目

This commit is contained in:
zzz
2025-12-11 20:15:55 +08:00
parent 97898aa395
commit 4588f3f4c0
8 changed files with 103 additions and 1 deletions

View File

@ -45,6 +45,11 @@ public class XzdBidPreProject extends BaseEntity {
*/
private String country;
/**
* 区域码
*/
private Long cityCode;
/**
* 省
*/

View File

@ -41,6 +41,12 @@ public class XzdBidPreProjectBo extends BaseEntity {
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String projectName;
/**
* 区域码
*/
@NotBlank(message = "区域不能为空", groups = { AddGroup.class, EditGroup.class })
private Long cityCode;
/**
* 国家
*/

View File

@ -74,6 +74,11 @@ public class XzdBidPreProjectVo implements Serializable {
@ExcelProperty(value = "区县")
private String district;
/**
* 区域码
*/
private Long cityCode;
/**
* 工程地点
*/

View File

@ -121,6 +121,10 @@ public class XzdPostBidAnalysis extends BaseEntity {
* 备注
*/
private String remark;
/**
* 未中标原因
*/
private String unbidReason;
/**
* 审核状态

View File

@ -124,6 +124,11 @@ public class XzdPostBidAnalysisBo extends BaseEntity {
*/
private String remark;
/**
* 未中标原因
*/
private String unbidReason;
/**
* 审核状态
*/

View File

@ -167,6 +167,12 @@ public class XzdPostBidAnalysisVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
* 未中标原因
*/
private String unbidReason;
/**
* 审核状态
*/

View File

@ -1,10 +1,12 @@
package org.dromara.xzd.biddingManagement.postAnalysis.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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;
@ -14,9 +16,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.utils.BatchNumberGenerator;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.mapper.SysDeptMapper;
import org.dromara.system.service.ISysDeptService;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBidPreProject;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.XzdBqlxProjectInfo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.domain.vo.XzdBidPreProjectVo;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.mapper.XzdBidPreProjectMapper;
import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBqlxProjectInfoService;
import org.dromara.xzd.biddingManagement.biddingDocumentList.domain.XzdBiddingDocument;
import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdBhfxDwpm;
import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis;
@ -27,9 +36,17 @@ import org.dromara.xzd.biddingManagement.postAnalysis.domain.vo.XzdPostBidAnalys
import org.dromara.xzd.biddingManagement.postAnalysis.mapper.XzdPostBidAnalysisMapper;
import org.dromara.xzd.biddingManagement.postAnalysis.service.IXzdBhfxDwpmService;
import org.dromara.xzd.biddingManagement.postAnalysis.service.IXzdPostBidAnalysisService;
import org.dromara.xzd.contractManagement.fenbaohetongxinxi.domain.XzdSubcontract;
import org.dromara.xzd.domain.XzdProject;
import org.dromara.xzd.domain.XzdProjectProfile;
import org.dromara.xzd.domain.bo.XzdProjectProfileBo;
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
import org.dromara.xzd.enums.ZxdEnum;
import org.dromara.xzd.service.IXzdProjectProfileService;
import org.dromara.xzd.service.IXzdProjectService;
import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -52,11 +69,22 @@ public class XzdPostBidAnalysisServiceImpl extends ServiceImpl<XzdPostBidAnalysi
private final IXzdBhfxDwpmService xzdBhfxDwpmService;
private final SysDeptMapper sysDeptMapper;
@Autowired
private SysOssServiceImpl sysOssService;
private final XzdBidPreProjectMapper xzdBidPreProjectMapper;
private final IXzdProjectProfileService xzdProjectProfileService;
private final IXzdBqlxProjectInfoService xzdBqlxProjectInfoService;
@Autowired
@Lazy
private IXzdProjectService xzdProjectService;
/**
* 查询标后分析
*
@ -68,7 +96,7 @@ public class XzdPostBidAnalysisServiceImpl extends ServiceImpl<XzdPostBidAnalysi
XzdPostBidAnalysisVo vo = baseMapper.selectVoById(id);
List<XzdBhfxDwpm> xzdBhfxDwpms = xzdBhfxDwpmService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdBhfxDwpm>().eq(XzdBhfxDwpm::getMasterId, id).orderByAsc(XzdBhfxDwpm::getRanking));
vo.setPm(MapstructUtils.convert(xzdBhfxDwpms, XzdBhfxDwpmVo.class));
getName( vo);
getName(vo);
return vo;
}
@ -245,10 +273,51 @@ public class XzdPostBidAnalysisServiceImpl extends ServiceImpl<XzdPostBidAnalysi
if (vo == null) {
return;
}
// 审核通过并且中标则转换项目数据
if (processEvent.getStatus().equals(BusinessStatusEnum.FINISH.getStatus()) && ZxdEnum.SFZB_F.getTypeValue().equals(vo.getBiddingResult())){
// 查询顶层下的公司id 理论只有一个
List<SysDeptVo> sysDeptVos = sysDeptMapper.selectDeptList(new LambdaQueryWrapper<SysDept>().eq(SysDept::getDelFlag, "0").eq(SysDept::getParentId, "100"));
// 查询投标管理中的项目信息
XzdBqlxProjectInfo xzdBqlxProjectInfo = xzdBqlxProjectInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdBqlxProjectInfo>().eq(XzdBqlxProjectInfo::getBidPreProjectId, vo.getProjectName()));
// 标前立项
XzdBidPreProjectVo xzdBidPreProjectVo = xzdBidPreProjectMapper.selectVoOne(new LambdaQueryWrapper<XzdBidPreProject>().eq(XzdBidPreProject::getId, vo.getProjectName()));
// 项目信息
XzdProject xzdProject = new XzdProject();
xzdProject.setProjectNumber(BatchNumberGenerator.generateBatchNumber("XMXX-"));
xzdProject.setCityCode(xzdBidPreProjectVo.getCityCode());
xzdProject.setProjectName(xzdBidPreProjectVo.getProjectName());
xzdProject.setProjectAttribute(ZxdEnum.XMXX_BHFXLY.getTypeValue());
xzdProject.setProjectType(xzdBidPreProjectVo.getProjectTypeId());
xzdProject.setManagementOrganization(sysDeptVos.getFirst().getDeptId());
xzdProject.setDefaultFinancialOrganization(sysDeptVos.getFirst().getDeptId());
xzdProject.setSsgs(sysDeptVos.getFirst().getDeptId());
xzdProject.setConstructionUnit(xzdBidPreProjectVo.getProjectTypeId());
if (xzdBqlxProjectInfo != null){
xzdProject.setConstructionUnit(xzdBqlxProjectInfo.getConstructionUnit());
}
xzdProjectService.save(xzdProject);
// 项目概况
XzdProjectProfile xzdProjectProfile = new XzdProjectProfile();
xzdProjectProfile.setXzdProjectId(xzdProject.getId());
xzdProjectProfile.setCity(xzdBidPreProjectVo.getCity());
xzdProjectProfile.setCountry(xzdBidPreProjectVo.getCountry());
xzdProjectProfile.setDistrict(xzdBidPreProjectVo.getDistrict());
xzdProjectProfile.setProvince(xzdBidPreProjectVo.getProvince());
xzdProjectProfileService.save(xzdProjectProfile);
}
vo.setAuditStatus(processEvent.getStatus());
this.updateById(vo);
}
/**
* 执行任务创建监听
* 示例:也可通过 @EventListener(condition = "#processTaskEvent.flowCode=='leave1'")进行判断

View File

@ -15,6 +15,8 @@ public enum ZxdEnum {
PURCHASE_PREFIX("采购合同信息前缀","CCTEG(CWZ)"),
SFWJSD_S("决算单","1"),
SFWJSD_TZ("决算单调整","2"),
SFZB_F("中标","1"),
XMXX_BHFXLY("项目属性","标后分析"),
FENBAOHETONG_PREFIX("分包合同信息前缀","CCTEG(CSG)"),
HETONGZTYS("合同状态","正常"),
HETONGZTBG("合同状态","变更"),