数据结构调整,通过合同编号获取对应的结算条款数据feign接口完善

This commit is contained in:
guojunyun
2025-10-11 11:25:59 +08:00
parent 22ddb33564
commit 47f445e2bb
11 changed files with 91 additions and 71 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -13,9 +13,6 @@ public class ContractPriceRespDTO {
@Schema(description = "主键")
private Long id;
@Schema(description = "配置主键")
private Long parameterId;
@Schema(description = "条款主键")
private Long formulaId;

View File

@@ -19,7 +19,6 @@ public class ContractApiImpl implements ContractApi {
@Override
public List<ContractFormulaRespDTO> getFormulas(String contractPaperNumber) {
System.out.println("contract feign" + contractPaperNumber);
return List.of();
return contractService.getFormulasByPaperNumber(contractPaperNumber);
}
}

View File

@@ -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 = "条款主键")

View File

@@ -12,9 +12,6 @@ public class PriceRespVO {
@Schema(description = "主键")
private Long id;
@Schema(description = "配置主键")
private Long parameterId;
@Schema(description = "条款主键")
private Long formulaId;

View File

@@ -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;

View File

@@ -30,11 +30,6 @@ public class ContractPriceDO extends BusinessBaseDO {
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 配置主键
*/
@TableField("PRM_ID")
private Long parameterId;
/**
* 条款主键
*/

View File

@@ -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<FormulaRespVO> getFormulas(FormulasQueryReqVO queryReqVO);
/**
* 通过合同编号获取对应的结算条款数据
*
* @param contractPaperNumber 合同编号
* @return 结算条款数据
*/
List<ContractFormulaRespDTO> getFormulasByPaperNumber(String contractPaperNumber);
}

View File

@@ -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<ContractFormulaRespDTO> 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<ContractFormulaRespDTO> formulas = new ArrayList<>();
List<ContractFormulaDO> 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<ContractCoefficientDO> coefficientDOS = contractCoefficientMapper
.selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId());
if (coefficientDOS != null && !coefficientDOS.isEmpty()) {
formula.setCoefficients(BeanUtils.toBean(coefficientDOS, ContractCoefficientRespDTO.class));
}
// 查询并设置品位等级价配置
List<ContractGradeDO> gradeDOS = contractGradeMapper
.selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId());
if (gradeDOS != null && !gradeDOS.isEmpty()) {
formula.setGrades(BeanUtils.toBean(gradeDOS, ContractGradeRespDTO.class));
}
// 查询并设置调整价配置
List<ContractDeductDO> deductDOS = contractDeductMapper
.selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId());
if (deductDOS != null && !deductDOS.isEmpty()) {
formula.setDeducts(BeanUtils.toBean(deductDOS, ContractDeductRespDTO.class));
}
// 查询并设置市场价配置
List<ContractPriceDO> 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;
}
/**
* 校验合同内容
*