根据系统合同编号获得合同详情口

This commit is contained in:
guojunyun
2025-10-14 16:11:56 +08:00
parent a25e85cb8e
commit db04862660
4 changed files with 112 additions and 2 deletions

View File

@@ -11,6 +11,8 @@ public class TableFieldConstants {
public static final String ID = "ID";
/* 合同主信息表 */
// 系统合同编号;自动生成,校验唯一
public static final String BSE_CTRT_MAIN_SYS_CTRT_NUM = "SYS_CTRT_NUM";
// 合同名称;与ERP(HTMC)对应,校验唯一
public static final String BSE_CTRT_MAIN_CTRT_NAME = "CTRT_NAME";
public static final String BSE_CTRT_MAIN_CTRT_NAME_LABEL = "合同名称";

View File

@@ -9,7 +9,6 @@ import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import com.zt.plat.module.contractorder.service.contract.ContractService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
@@ -71,13 +70,20 @@ public class ContractController implements BusinessControllerMarker {
@GetMapping("/get")
@Operation(summary = "获得合同详情")
@Parameter(name = "id", description = "合同ID", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('base:contract:get')")
public CommonResult<ContractRespVO> get(@RequestParam("id") Long id) {
ContractRespVO contractRespVO = contractService.get(id);
return success(contractRespVO);
}
@GetMapping("/get/by-system-contract-number")
@Operation(summary = "根据系统合同编号获得合同详情")
@PreAuthorize("@ss.hasPermission('base:contract:get')")
public CommonResult<ContractRespVO> getBySystemContractNumber(@RequestParam("systemContractNumber") String systemContractNumber) {
ContractRespVO contractRespVO = contractService.getBySystemContractNumber(systemContractNumber);
return success(contractRespVO);
}
@PutMapping("update")
@Operation(summary = "修改合同")
@PreAuthorize("@ss.hasPermission('base:contract:update')")

View File

@@ -111,4 +111,12 @@ public interface ContractService {
* @return 删除结果
*/
List<JSONObject> delete(List<Long> ids);
/**
* 根据系统合同编号获得合同详情
*
* @param systemContractNumber 系统合同编号
* @return 合同信息
*/
ContractRespVO getBySystemContractNumber(String systemContractNumber);
}

View File

@@ -368,6 +368,100 @@ public class ContractServiceImpl implements ContractService {
return respVO;
}
@Override
public ContractRespVO getBySystemContractNumber(String systemContractNumber) {
// 返回结果
ContractRespVO respVO = new ContractRespVO();
// 查询并设置合同主信息
ContractMainDO contractMainDO = contractMainMapper.selectOne(TableFieldConstants.BSE_CTRT_MAIN_SYS_CTRT_NUM,systemContractNumber);
if (contractMainDO == null) {
throw exception(CONTRACT_NOT_EXISTS);
}
BeanUtils.copyProperties(contractMainDO, respVO);
// 查询并设置合同明细
List<ContractDetailDO> detailDOS = contractDetailMapper
.selectList(TableFieldConstants.BSE_CTRT_DTL_CTRT_MAIN_ID, contractMainDO.getId());
if (detailDOS != null && !detailDOS.isEmpty()) {
respVO.setDetail(BeanUtils.toBean(detailDOS, DetailRespVO.class));
respVO.getDetail().forEach(detail -> {
// 查询并设置交货计划
List<ContractPlanDO> planDOS = contractPlanMapper
.selectList(TableFieldConstants.BSE_CTRT_PLN_CTRT_DTL_ID, detail.getId());
if (planDOS != null && !planDOS.isEmpty()) {
detail.setPlans(BeanUtils.toBean(planDOS, PlanRespVO.class));
}
});
}
// 查询并设置价款结算条款
List<ContractFormulaDO> formulaDOS = contractFormulaMapper
.selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_ID, contractMainDO.getId());
if (formulaDOS != null && !formulaDOS.isEmpty()) {
respVO.setFormulas(BeanUtils.toBean(formulaDOS, FormulaRespVO.class));
respVO.getFormulas().forEach(formula -> {
// 查询并设置基础系数配置
List<ContractCoefficientDO> coefficientDOS = contractCoefficientMapper
.selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId());
if (coefficientDOS != null && !coefficientDOS.isEmpty()) {
formula.setCoefficients(BeanUtils.toBean(coefficientDOS, CoefficientRespVO.class));
}
// 查询并设置品位等级价配置
List<ContractGradeDO> gradeDOS = contractGradeMapper
.selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId());
if (gradeDOS != null && !gradeDOS.isEmpty()) {
formula.setGrades(BeanUtils.toBean(gradeDOS, GradeRespVO.class));
}
// 查询并设置调整价配置
List<ContractDeductDO> deductDOS = contractDeductMapper
.selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId());
if (deductDOS != null && !deductDOS.isEmpty()) {
formula.setDeducts(BeanUtils.toBean(deductDOS, DeductRespVO.class));
}
// 查询并设置市场价配置
List<ContractPriceDO> priceDOS = contractPriceMapper
.selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId());
if (priceDOS != null && !priceDOS.isEmpty()) {
formula.setPrices(BeanUtils.toBean(priceDOS, PriceRespVO.class));
}
});
}
// 查询并设置参数降级规则
List<ContractDemoteDO> demoteDOS = contractDemoteMapper
.selectList(TableFieldConstants.BSE_CTRT_DMOT_CTRT_ID, contractMainDO.getId());
if (demoteDOS != null && !demoteDOS.isEmpty()) {
respVO.setDemotes(BeanUtils.toBean(demoteDOS, DemoteRespVO.class));
}
// 查询并设置品位不计价规则
List<ContractNotDO> notDOS = contractNotMapper
.selectList(TableFieldConstants.BSE_CTRT_NT_CTRT_ID, contractMainDO.getId());
if (notDOS != null && !notDOS.isEmpty()) {
respVO.setNots(BeanUtils.toBean(notDOS, NotRespVO.class));
}
// 查询并设置合同动态表单
List<TemplateInstanceDataDO> templateInstanceDataDOS = templateInstanceDataMapper
.selectList(TableFieldConstants.BSE_TMPL_INSC_DAT_INSC_ID, contractMainDO.getInstanceId());
if (templateInstanceDataDOS != null && !templateInstanceDataDOS.isEmpty()) {
respVO.setDynamicsFields(BeanUtils.toBean(templateInstanceDataDOS, TemplateInstanceDataRespVO.class));
}
// 查询并设置合同动态条款
List<TemplateInstanceItemDO> templateInstanceItemDOS = templateInstanceItemMapper
.selectList(TableFieldConstants.BSE_TMPL_INSC_ITM_INSC_ID, contractMainDO.getInstanceId());
if (templateInstanceItemDOS != null && !templateInstanceItemDOS.isEmpty()) {
respVO.setDynamicsItems(BeanUtils.toBean(templateInstanceItemDOS, TemplateInstanceItemRespVO.class));
}
return respVO;
}
@Transactional
@Override
public Boolean update(ContractSaveReqVO reqVO) {