diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java index 55b7e767..4a764ffb 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java @@ -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 updateOrderStatus(@RequestParam("orderId") Long orderId, @RequestParam("status") String status); 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 ba432a4a..feca0031 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 @@ -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 updateOrderStatus(Long orderId, String status) { return success(purchaseOrderService.updateOrderStatus(orderId, status)); 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 6b112c64..7304312f 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 @@ -99,6 +99,14 @@ public interface ContractService { */ ContractRespDTO getFormulasByPaperNumber(String contractPaperNumber); + + /** + * 通过合同编号获取对应的合同信息 + * + * @param contractSysNumber 合同编号 + * @return 结算条款数据 + */ + ContractRespDTO getFormulasBySysNumber(String contractSysNumber); /** * 提交ERP * 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 c9f75ab5..e405ab6d 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 @@ -1381,11 +1381,109 @@ public class ContractServiceImpl implements ContractService { } //收发货 List 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 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 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 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 coefficientDOS = contractCoefficientMapper + .selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId()); + if (coefficientDOS != null && !coefficientDOS.isEmpty()) { + formula.setCoefficients(BeanUtils.toBean(coefficientDOS, CoefficientRespDTO.class)); + } + // 查询并设置品位等级价配置 + List gradeDOS = contractGradeMapper + .selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId()); + if (gradeDOS != null && !gradeDOS.isEmpty()) { + formula.setGrades(BeanUtils.toBean(gradeDOS, GradeRespDTO.class)); + } + // 查询并设置调整价配置 + List deductDOS = contractDeductMapper + .selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId()); + if (deductDOS != null && !deductDOS.isEmpty()) { + formula.setDeducts(BeanUtils.toBean(deductDOS, DeductRespDTO.class)); + } + // 查询并设置市场价配置 + List priceDOS = contractPriceMapper + .selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId()); + if (priceDOS != null && !priceDOS.isEmpty()) { + formula.setPrices(BeanUtils.toBean(priceDOS, PriceRespDTO.class)); + } + }); + } + + // 查询并设置参数降级规则 + List demoteDOS = contractDemoteMapper + .selectList(TableFieldConstants.BSE_CTRT_DMOT_CTRT_ID, contractMainDO.getId()); + if (demoteDOS != null && !demoteDOS.isEmpty()) { + respDTO.setDemotes(BeanUtils.toBean(demoteDOS, DemoteRespDTO.class)); + } + + // 查询并设置品位不计价规则 + List notDOS = contractNotMapper + .selectList(TableFieldConstants.BSE_CTRT_NT_CTRT_ID, contractMainDO.getId()); + if (notDOS != null && !notDOS.isEmpty()) { + respDTO.setNots(BeanUtils.toBean(notDOS, NotRespDTO.class)); + } + //收发货 + List 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) {