新增合同收发货规则

This commit is contained in:
潘荣晟
2026-01-07 16:31:19 +08:00
parent 7a0dbadf2e
commit 4b6bd9cec5
4 changed files with 117 additions and 1 deletions

View File

@@ -31,6 +31,11 @@ public interface ContractApi {
@Operation(summary = "通过合同编号获取对应的合同信息")
ContractRespDTO getContractByPaperNumber(@RequestParam("contractPaperNumber") String contractPaperNumber);
@GetMapping(PREFIX + "/get/by-sys-number")
@Operation(summary = "通过合同编号获取对应的合同信息")
ContractRespDTO getFormulasBySysNumber(@RequestParam("contractSysNumber") String contractSysNumber);
@GetMapping(PREFIX + "/updateOrderStatus")
@Operation(summary = "更新订单状态")
CommonResult<Boolean> updateOrderStatus(@RequestParam("orderId") Long orderId, @RequestParam("status") String status);

View File

@@ -80,6 +80,11 @@ public class ContractApiImpl implements ContractApi {
return contractService.getFormulasByPaperNumber(contractPaperNumber);
}
@Override
public ContractRespDTO getFormulasBySysNumber(String contractSysNumber) {
return contractService.getFormulasByPaperNumber(contractSysNumber);
}
@Override
public CommonResult<Boolean> updateOrderStatus(Long orderId, String status) {
return success(purchaseOrderService.updateOrderStatus(orderId, status));

View File

@@ -99,6 +99,14 @@ public interface ContractService {
*/
ContractRespDTO getFormulasByPaperNumber(String contractPaperNumber);
/**
* 通过合同编号获取对应的合同信息
*
* @param contractSysNumber 合同编号
* @return 结算条款数据
*/
ContractRespDTO getFormulasBySysNumber(String contractSysNumber);
/**
* 提交ERP
*

View File

@@ -1381,11 +1381,109 @@ public class ContractServiceImpl implements ContractService {
}
//收发货
List<ContractReceiveSendRespVO> contractReceiveSendListByContractId = contractReceiveSendService.getContractReceiveSendListByContractId(contractMainDO.getId());
respDTO.setContractReceiveSends(BeanUtils.toBean(contractReceiveSendListByContractId, ContractReceiveSendRespDTO.class));
if (contractReceiveSendListByContractId!=null&&!contractReceiveSendListByContractId.isEmpty()){
respDTO.setContractReceiveSends(BeanUtils.toBean(contractReceiveSendListByContractId, ContractReceiveSendRespDTO.class));
}
return respDTO;
}
@Override
public ContractRespDTO getFormulasBySysNumber(String contractSysNumber) {
// 通过合同编号查询合同信息
ContractMainDO contractMainDO = contractMainMapper
.selectOne(TableFieldConstants.BSE_CTRT_MAIN_CTRT_PPR_NUM, contractSysNumber);
// 合同不存在
if (contractMainDO == null) {
throw exception(CONTRACT_NOT_EXISTS);
}
// 合同ID
Long contractId = contractMainDO.getId();
// 返回结果
ContractRespDTO respDTO = new ContractRespDTO();
BeanUtils.copyProperties(contractMainDO, respDTO);
// 查询并设置合同明细
List<ContractDetailDO> detailDOS = contractDetailMapper
.selectList(TableFieldConstants.BSE_CTRT_DTL_CTRT_MAIN_ID, contractMainDO.getId());
if (detailDOS != null && !detailDOS.isEmpty()) {
respDTO.setDetail(BeanUtils.toBean(detailDOS, DetailRespDTO.class));
respDTO.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, PlanRespDTO.class));
}
});
}
// 查询并设置价款结算条款
List<ContractFormulaDO> formulaDOS = contractFormulaMapper
.selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_ID, contractId);
if (formulaDOS != null && !formulaDOS.isEmpty()) {
respDTO.setFormulas(BeanUtils.toBean(formulaDOS, FormulaRespDTO.class));
respDTO.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, CoefficientRespDTO.class));
}
// 查询并设置品位等级价配置
List<ContractGradeDO> gradeDOS = contractGradeMapper
.selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId());
if (gradeDOS != null && !gradeDOS.isEmpty()) {
formula.setGrades(BeanUtils.toBean(gradeDOS, GradeRespDTO.class));
}
// 查询并设置调整价配置
List<ContractDeductDO> deductDOS = contractDeductMapper
.selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId());
if (deductDOS != null && !deductDOS.isEmpty()) {
formula.setDeducts(BeanUtils.toBean(deductDOS, DeductRespDTO.class));
}
// 查询并设置市场价配置
List<ContractPriceDO> priceDOS = contractPriceMapper
.selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId());
if (priceDOS != null && !priceDOS.isEmpty()) {
formula.setPrices(BeanUtils.toBean(priceDOS, PriceRespDTO.class));
}
});
}
// 查询并设置参数降级规则
List<ContractDemoteDO> demoteDOS = contractDemoteMapper
.selectList(TableFieldConstants.BSE_CTRT_DMOT_CTRT_ID, contractMainDO.getId());
if (demoteDOS != null && !demoteDOS.isEmpty()) {
respDTO.setDemotes(BeanUtils.toBean(demoteDOS, DemoteRespDTO.class));
}
// 查询并设置品位不计价规则
List<ContractNotDO> notDOS = contractNotMapper
.selectList(TableFieldConstants.BSE_CTRT_NT_CTRT_ID, contractMainDO.getId());
if (notDOS != null && !notDOS.isEmpty()) {
respDTO.setNots(BeanUtils.toBean(notDOS, NotRespDTO.class));
}
//收发货
List<ContractReceiveSendRespVO> contractReceiveSendListByContractId = contractReceiveSendService.getContractReceiveSendListByContractId(contractMainDO.getId());
if (contractReceiveSendListByContractId!=null&&!contractReceiveSendListByContractId.isEmpty()){
respDTO.setContractReceiveSends(BeanUtils.toBean(contractReceiveSendListByContractId, ContractReceiveSendRespDTO.class));
}
return respDTO;
}
@Override
public JSONObject submitErp(Long id) {