From 7afd243a802fef459b990e6311562be2fdfa514b Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Mon, 7 Sep 2026 22:26:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BB=93=E7=AE=97=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReceivablePayableDetailServiceImpl.java | 17 +------- .../impl/TransportPlanServiceImpl.java | 39 +++++++++++++++---- .../service/impl/WaybillServiceImpl.java | 22 +++++++++++ 3 files changed, 55 insertions(+), 23 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceivablePayableDetailServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceivablePayableDetailServiceImpl.java index cbebb0e..2f65c25 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceivablePayableDetailServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceivablePayableDetailServiceImpl.java @@ -1112,20 +1112,7 @@ public class ReceivablePayableDetailServiceImpl if ("receivable".equals(targetSettlementType)) { wrapper.eq(Waybill::getContractId, contract.getId()); } else { - List customerContractIds = contractManageService.list(Wrappers.lambdaQuery() - .select(ContractManage::getId) - .eq(ContractManage::getIsDeleted, 0) - .eq(ContractManage::getProjectId, contract.getProjectId()) - .eq(ContractManage::getContractCategory, "客户合同") - .eq(ContractManage::getPartyA, contract.getPartyA())) - .stream().map(ContractManage::getId).toList(); - if (customerContractIds.isEmpty()) { - wrapper.eq(Waybill::getId, -1L); - } else { - wrapper.in(Waybill::getContractId, customerContractIds) - .eq(Waybill::getProjectId, contract.getProjectId()) - .eq(Waybill::getCarrierName, contract.getPartyB()); - } + wrapper.eq(Waybill::getCarrierContractId, contract.getId()); wrapper.and(item -> item.isNull(Waybill::getTransportType) .or().ne(Waybill::getTransportType, TRANSPORT_TYPE_SELF)); wrapper.and(item -> item.isNull(Waybill::getCarrierType) @@ -1134,7 +1121,7 @@ public class ReceivablePayableDetailServiceImpl wrapper.notInSql(Waybill::getId, "select waybill_id from blade_receivable_payable_detail" + " where is_deleted = 0 and waybill_id is not null" - + " and settlement_type in ('receivable', 'payable')"); + + " and settlement_type = '" + targetSettlementType + "'"); if (Func.isNotEmpty(request.getBatchNo())) { wrapper.like(Waybill::getBatchNo, request.getBatchNo()); } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportPlanServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportPlanServiceImpl.java index 34b60f5..27738b3 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportPlanServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportPlanServiceImpl.java @@ -81,6 +81,7 @@ public class TransportPlanServiceImpl extends BaseServiceImpl selectTransportPlanPage(IPage page, TransportPlanVO transportPlan) { IPage entityPage = page(page, buildQuery(transportPlan)); IPage resultPage = TransportPlanWrapper.build().pageVO(entityPage); + fillCustomerNamesFromContracts(resultPage.getRecords()); fillDispatchRows(resultPage.getRecords()); return resultPage; } @@ -88,26 +89,47 @@ public class TransportPlanServiceImpl extends BaseServiceImpl transportPlans) { + transportPlans.forEach(transportPlan -> + fillCustomerNameFromContract(transportPlan, resolveContract(transportPlan))); + } + + private void fillCustomerNameFromContract(TransportPlan transportPlan, ContractManage contract) { + if (contract != null && "客户合同".equals(contract.getContractCategory()) + && Func.isNotEmpty(contract.getPartyA())) { + transportPlan.setCustomerName(TransportBusinessSupport.trimToNull(contract.getPartyA())); + } } private ContractManage resolveContract(TransportPlanVO transportPlan) { - if (Func.isNotEmpty(transportPlan.getContractId())) { - ContractManage contract = contractManageService.getById(transportPlan.getContractId()); + return resolveContract(transportPlan.getContractId(), transportPlan.getContractName(), transportPlan.getProjectId()); + } + + private ContractManage resolveContract(TransportPlan transportPlan) { + return resolveContract(transportPlan.getContractId(), transportPlan.getContractName(), transportPlan.getProjectId()); + } + + private ContractManage resolveContract(Long contractId, String contractName, Long projectId) { + if (Func.isNotEmpty(contractId)) { + ContractManage contract = contractManageService.getById(contractId); if (contract != null) return contract; } - if (Func.isEmpty(transportPlan.getContractName())) return null; + if (Func.isEmpty(contractName)) return null; LambdaQueryWrapper query = new LambdaQueryWrapper() - .eq(ContractManage::getContractName, transportPlan.getContractName()); - if (Func.isNotEmpty(transportPlan.getProjectId())) { - query.eq(ContractManage::getProjectId, transportPlan.getProjectId()); + .eq(ContractManage::getContractName, contractName); + if (Func.isNotEmpty(projectId)) { + query.eq(ContractManage::getProjectId, projectId); } return contractManageService.getOne(query, false); } @@ -123,6 +145,7 @@ public class TransportPlanServiceImpl extends BaseServiceImpl @Override public WaybillVO detail(Long id) { WaybillVO result = WaybillWrapper.build().entityVO(loadEditable(id, false)); + fillCustomerNameFromContract(result); fillMileageMaintainable(List.of(result)); return result; } @@ -148,6 +149,13 @@ public class WaybillServiceImpl extends BaseServiceImpl } private void fillCustomerName(Waybill waybill) { + if (Func.isNotEmpty(waybill.getContractId())) { + ContractManage contract = contractManageService.getById(waybill.getContractId()); + if (isCustomerContract(contract) && Func.isNotEmpty(contract.getPartyA())) { + waybill.setCustomerName(TransportBusinessSupport.trimToNull(contract.getPartyA())); + return; + } + } if (Func.isNotEmpty(waybill.getCustomerName()) || Func.isEmpty(waybill.getProjectId())) { return; } @@ -157,6 +165,20 @@ public class WaybillServiceImpl extends BaseServiceImpl } } + private void fillCustomerNameFromContract(WaybillVO waybill) { + if (waybill == null || Func.isEmpty(waybill.getContractId())) { + return; + } + ContractManage contract = contractManageService.getById(waybill.getContractId()); + if (isCustomerContract(contract) && Func.isNotEmpty(contract.getPartyA())) { + waybill.setCustomerName(TransportBusinessSupport.trimToNull(contract.getPartyA())); + } + } + + private boolean isCustomerContract(ContractManage contract) { + return contract != null && "客户合同".equals(contract.getContractCategory()); + } + private void fillProjectProcessConfig(Waybill waybill) { if (Func.isNotEmpty(waybill.getProcessJson()) || Func.isEmpty(waybill.getProjectId())) { return;