From 47f445e2bba1e90f4d4cfb7f1e5019e99c00de64 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Sat, 11 Oct 2025 11:25:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8C=E9=80=9A=E8=BF=87=E5=90=88=E5=90=8C=E7=BC=96?= =?UTF-8?q?=E5=8F=B7=E8=8E=B7=E5=8F=96=E5=AF=B9=E5=BA=94=E7=9A=84=E7=BB=93?= =?UTF-8?q?=E7=AE=97=E6=9D=A1=E6=AC=BE=E6=95=B0=E6=8D=AEfeign=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/dto/ContractCoefficientRespDTO.java | 18 ++---- .../api/dto/ContractDeductRespDTO.java | 32 ++--------- .../api/dto/ContractGradeRespDTO.java | 29 +++++----- .../api/dto/ContractPriceRespDTO.java | 3 - .../contractorder/api/ContractApiImpl.java | 3 +- .../contract/vo/contract/GradeRespVO.java | 2 - .../contract/vo/contract/PriceRespVO.java | 3 - .../contract/vo/contract/PriceSaveReqVO.java | 3 - .../dataobject/contract/ContractPriceDO.java | 5 -- .../service/contract/ContractService.java | 9 +++ .../service/contract/ContractServiceImpl.java | 55 +++++++++++++++++++ 11 files changed, 91 insertions(+), 71 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractCoefficientRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractCoefficientRespDTO.java index 6a5b9c6..39ab702 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractCoefficientRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractCoefficientRespDTO.java @@ -1,7 +1,6 @@ package com.zt.plat.module.contractorder.api.dto; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotEmpty; import lombok.Data; import java.math.BigDecimal; @@ -13,9 +12,6 @@ public class ContractCoefficientRespDTO { @Schema(description = "主键") private Long id; - @Schema(description = "配置主键") - private Long parameterId; - @Schema(description = "条款主键") private Long formulaId; @@ -28,25 +24,21 @@ public class ContractCoefficientRespDTO { @Schema(description = "金属元素名称") private String elementName; - @Schema(description = "系数值") - private String settlementCoefficient; - @Schema(description = "系数上限") private BigDecimal coefficientUp; @Schema(description = "系数下限") private BigDecimal coefficientDown; - @Schema(description = "是否包含上限") - private String isInUp; - - @Schema(description = "是否包含下限") - private String isInDown; + @Schema(description = "区间方式(字典:STLM_RNG_WY)") + private String rangeWay; @Schema(description = "是否省内") - @NotEmpty(message = "是否省内不能为空") private String inState; @Schema(description = "类型") private String type; + + @Schema(description = "系数值") + private BigDecimal settlementCoefficient; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractDeductRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractDeductRespDTO.java index eb3c09d..ea3409f 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractDeductRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractDeductRespDTO.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; +import java.time.LocalDateTime; @Schema(description = "RPC 服务 - 调整价配置 Response DTO") @Data @@ -12,39 +13,18 @@ public class ContractDeductRespDTO { @Schema(description = "主键") private Long id; - @Schema(description = "配置主键") - private Long parameterId; - @Schema(description = "条款主键") private Long formulaId; - @Schema(description = "物料编码;推送ERP") - private String materialNumber; - - @Schema(description = "物料名称") - private String materialName; - - @Schema(description = "上限") - private BigDecimal gradeUp; - - @Schema(description = "下限") - private BigDecimal gradeDown; - - @Schema(description = "是否包含上限") - private String isInUp; - - @Schema(description = "是否包含下限") - private String isInDown; - - @Schema(description = "方式") - private String way; - - @Schema(description = "类型") - private String type; + @Schema(description = "数据项类型(字典:GRD_CFG_TP)") + private String configType; @Schema(description = "是否省内") private String inState; @Schema(description = "调整价") private BigDecimal gradeAmount; + + @Schema(description = "创建时间") + private LocalDateTime createTime; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractGradeRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractGradeRespDTO.java index ea97fde..c54efa8 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractGradeRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractGradeRespDTO.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; +import java.time.LocalDateTime; @Schema(description = "RPC 服务 - 品位等级价配置 Response DTO") @Data @@ -12,9 +13,6 @@ public class ContractGradeRespDTO { @Schema(description = "主键") private Long id; - @Schema(description = "配置主键") - private Long parameterId; - @Schema(description = "条款主键") private Long formulaId; @@ -36,27 +34,30 @@ public class ContractGradeRespDTO { @Schema(description = "品位下限") private BigDecimal gradeDown; - @Schema(description = "是否包含上限;包含则是大于等于,不包含则是大于") - private String isInUp; + @Schema(description = "区间方式(字典:STLM_RNG_WY)") + private String rangeWay; - @Schema(description = "是否包含下限;包含则是小于等于,不包含则是小于") - private String isInDown; - - @Schema(description = "默认计价品位;计价方式为加时,默认为为下限,计价方式为减时,默认为为上限,可手动填写") + @Schema(description = "默认计价品位") private BigDecimal gradeDefault; - @Schema(description = "系数;计价类型为阶梯价使用,标识没上升多少系数进行加款还是减款") + @Schema(description = "系数值") private BigDecimal settlementCoefficient; - @Schema(description = "不足系数值按比例计算") + @Schema(description = "是否比例计算(字典:ERP_CTRT_YN)") private String useCoefficient; - @Schema(description = "计价类型") + @Schema(description = "计价类型(字典:STLM_GRD_TP)") private String priceType; - @Schema(description = "是否省内") + @Schema(description = "是否省内(字典:ERP_CTRT_YN)") private String inState; - @Schema(description = "等级单价") + @Schema(description = "等级单价", example = "3565") private BigDecimal unitPrice; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @Schema(description = "数据项类型(字典:GRD_CFG_TP)") + private String configType; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractPriceRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractPriceRespDTO.java index 40f3469..98cc044 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractPriceRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/ContractPriceRespDTO.java @@ -13,9 +13,6 @@ public class ContractPriceRespDTO { @Schema(description = "主键") private Long id; - @Schema(description = "配置主键") - private Long parameterId; - @Schema(description = "条款主键") private Long formulaId; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 9bdaccd..7f659f8 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -19,7 +19,6 @@ public class ContractApiImpl implements ContractApi { @Override public List getFormulas(String contractPaperNumber) { - System.out.println("contract feign" + contractPaperNumber); - return List.of(); + return contractService.getFormulasByPaperNumber(contractPaperNumber); } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/GradeRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/GradeRespVO.java index c698dc5..fca29ec 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/GradeRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/GradeRespVO.java @@ -1,6 +1,5 @@ package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract; -import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -12,7 +11,6 @@ import java.time.LocalDateTime; public class GradeRespVO { @Schema(description = "主键") - @ExcelProperty("主键") private Long id; @Schema(description = "条款主键") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceRespVO.java index 5b82d87..da35f5d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceRespVO.java @@ -12,9 +12,6 @@ public class PriceRespVO { @Schema(description = "主键") private Long id; - @Schema(description = "配置主键") - private Long parameterId; - @Schema(description = "条款主键") private Long formulaId; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceSaveReqVO.java index a47e1f5..06501e2 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/vo/contract/PriceSaveReqVO.java @@ -12,9 +12,6 @@ public class PriceSaveReqVO { @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13654") private Long id; - @Schema(description = "配置主键", example = "1590") - private Long parameterId; - @Schema(description = "条款主键", example = "24677") private Long formulaId; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java index f7f2017..29a66ed 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractPriceDO.java @@ -30,11 +30,6 @@ public class ContractPriceDO extends BusinessBaseDO { */ @TableId(type = IdType.ASSIGN_ID) private Long id; - /** - * 配置主键 - */ - @TableField("PRM_ID") - private Long parameterId; /** * 条款主键 */ 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 e3b6fa9..770467e 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 @@ -1,6 +1,7 @@ package com.zt.plat.module.contractorder.service.contract; import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.contractorder.api.dto.ContractFormulaRespDTO; import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*; import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO; import jakarta.validation.Valid; @@ -85,4 +86,12 @@ public interface ContractService { * @return 结算公式列表 */ List getFormulas(FormulasQueryReqVO queryReqVO); + + /** + * 通过合同编号获取对应的结算条款数据 + * + * @param contractPaperNumber 合同编号 + * @return 结算条款数据 + */ + List getFormulasByPaperNumber(String contractPaperNumber); } 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 8ff71f3..c5af4ed 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 @@ -17,6 +17,7 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.BpmTaskApi; import com.zt.plat.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO; +import com.zt.plat.module.contractorder.api.dto.*; import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*; import com.zt.plat.module.contractorder.dal.dataobject.contract.*; import com.zt.plat.module.contractorder.dal.mysql.contract.*; @@ -727,6 +728,60 @@ public class ContractServiceImpl implements ContractService { return contractFormulaMapper.selectFormulas(contractIds, queryReqVO.getMaterialName(), queryReqVO.getElementName()); } + @Override + public List getFormulasByPaperNumber(String contractPaperNumber) { + + // 通过合同编号查询合同信息 + ContractMainDO contractMainDO = contractMainMapper + .selectOne(TableFieldConstants.BSE_CTRT_MAIN_CTRT_PPR_NUM, contractPaperNumber); + + // 合同不存在 + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } + + // 合同ID + Long contractId = contractMainDO.getId(); + + // 查询并设置价款结算条款 + List formulas = new ArrayList<>(); + List formulaDOS = contractFormulaMapper + .selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_ID, contractId); + if (formulaDOS != null && !formulaDOS.isEmpty()) { + formulas = BeanUtils.toBean(formulaDOS, ContractFormulaRespDTO.class); + + formulas.forEach(formula -> { + + // 查询并设置基础系数配置 + List coefficientDOS = contractCoefficientMapper + .selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId()); + if (coefficientDOS != null && !coefficientDOS.isEmpty()) { + formula.setCoefficients(BeanUtils.toBean(coefficientDOS, ContractCoefficientRespDTO.class)); + } + // 查询并设置品位等级价配置 + List gradeDOS = contractGradeMapper + .selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId()); + if (gradeDOS != null && !gradeDOS.isEmpty()) { + formula.setGrades(BeanUtils.toBean(gradeDOS, ContractGradeRespDTO.class)); + } + // 查询并设置调整价配置 + List deductDOS = contractDeductMapper + .selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId()); + if (deductDOS != null && !deductDOS.isEmpty()) { + formula.setDeducts(BeanUtils.toBean(deductDOS, ContractDeductRespDTO.class)); + } + // 查询并设置市场价配置 + List priceDOS = contractPriceMapper + .selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId()); + if (priceDOS != null && !priceDOS.isEmpty()) { + formula.setPrices(BeanUtils.toBean(priceDOS, ContractPriceRespDTO.class)); + } + }); + } + + return formulas; + } + /** * 校验合同内容 *