diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java index 1f9847e..3c2dc38 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/TableFieldConstants.java @@ -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 = "合同名称"; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java index 27489ba..214a8a8 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java @@ -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 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 getBySystemContractNumber(@RequestParam("systemContractNumber") String systemContractNumber) { + ContractRespVO contractRespVO = contractService.getBySystemContractNumber(systemContractNumber); + return success(contractRespVO); + } + @PutMapping("update") @Operation(summary = "修改合同") @PreAuthorize("@ss.hasPermission('base:contract:update')") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java index d51fe28..2c3b57c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java @@ -111,4 +111,12 @@ public interface ContractService { * @return 删除结果 */ List delete(List ids); + + /** + * 根据系统合同编号获得合同详情 + * + * @param systemContractNumber 系统合同编号 + * @return 合同信息 + */ + ContractRespVO getBySystemContractNumber(String systemContractNumber); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 78642fd..54576a6 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -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 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 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 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 coefficientDOS = contractCoefficientMapper + .selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId()); + if (coefficientDOS != null && !coefficientDOS.isEmpty()) { + formula.setCoefficients(BeanUtils.toBean(coefficientDOS, CoefficientRespVO.class)); + } + // 查询并设置品位等级价配置 + List gradeDOS = contractGradeMapper + .selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId()); + if (gradeDOS != null && !gradeDOS.isEmpty()) { + formula.setGrades(BeanUtils.toBean(gradeDOS, GradeRespVO.class)); + } + // 查询并设置调整价配置 + List deductDOS = contractDeductMapper + .selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId()); + if (deductDOS != null && !deductDOS.isEmpty()) { + formula.setDeducts(BeanUtils.toBean(deductDOS, DeductRespVO.class)); + } + // 查询并设置市场价配置 + List priceDOS = contractPriceMapper + .selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId()); + if (priceDOS != null && !priceDOS.isEmpty()) { + formula.setPrices(BeanUtils.toBean(priceDOS, PriceRespVO.class)); + } + }); + } + + // 查询并设置参数降级规则 + List demoteDOS = contractDemoteMapper + .selectList(TableFieldConstants.BSE_CTRT_DMOT_CTRT_ID, contractMainDO.getId()); + if (demoteDOS != null && !demoteDOS.isEmpty()) { + respVO.setDemotes(BeanUtils.toBean(demoteDOS, DemoteRespVO.class)); + } + + // 查询并设置品位不计价规则 + List notDOS = contractNotMapper + .selectList(TableFieldConstants.BSE_CTRT_NT_CTRT_ID, contractMainDO.getId()); + if (notDOS != null && !notDOS.isEmpty()) { + respVO.setNots(BeanUtils.toBean(notDOS, NotRespVO.class)); + } + + // 查询并设置合同动态表单 + List 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 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) {