From 049a46227df50976aa53c61f8348c844d066abdc Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Wed, 9 Sep 2026 15:39:21 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E8=B0=83=E6=95=B4=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E8=BF=90=E5=8D=95=202=E3=80=81=E8=B0=83=E6=95=B4=E5=AF=B9?= =?UTF-8?q?=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/FormalSettlementDetail.java | 4 + .../pojo/entity/PreSettlementDetail.java | 14 ++- .../pojo/entity/ReceivablePayableDetail.java | 18 ++++ .../controller/ProcessConfigController.java | 5 +- .../impl/FormalSettlementServiceImpl.java | 50 +++++++++- .../impl/PreSettlementServiceImpl.java | 34 +++++-- .../ReceivablePayableDetailServiceImpl.java | 18 ++++ .../blade_formal_settlement_20260818.sql | 4 + .../blade_pre_settlement_20260818.sql | 6 +- ...ade_receivable_payable_detail_20260812.sql | 8 +- ...lement_detail_address_contact_20260909.sql | 91 +++++++++++++++++++ 11 files changed, 236 insertions(+), 16 deletions(-) create mode 100644 doc/sql/transport/blade_settlement_detail_address_contact_20260909.sql diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlementDetail.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlementDetail.java index 4aedce4..bf3cda8 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlementDetail.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlementDetail.java @@ -38,6 +38,10 @@ public class FormalSettlementDetail extends TenantEntity { private String vehicleNo; private String departureAddress; private String arrivalAddress; + private String departureContact; + private String departurePhone; + private String arrivalContact; + private String arrivalPhone; private LocalDateTime actualDepartureTime; private LocalDateTime actualCompletionTime; private String transportType; diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java index e833aaf..2539ca0 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java @@ -57,9 +57,21 @@ public class PreSettlementDetail extends TenantEntity { @Schema(description = "发货地址") private String departureAddress; - @Schema(description = "到货地址") + @Schema(description = "收货地址") private String arrivalAddress; + @Schema(description = "发货联系人") + private String departureContact; + + @Schema(description = "发货联系方式") + private String departurePhone; + + @Schema(description = "收货联系人") + private String arrivalContact; + + @Schema(description = "收货联系方式") + private String arrivalPhone; + @Schema(description = "实际发货时间") private LocalDateTime actualDepartureTime; diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableDetail.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableDetail.java index d793650..9742bbe 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableDetail.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableDetail.java @@ -82,6 +82,24 @@ public class ReceivablePayableDetail extends TenantEntity { @Schema(description = "来源") private String sourceType; + @Schema(description = "发货地址") + private String departureAddress; + + @Schema(description = "收货地址") + private String arrivalAddress; + + @Schema(description = "发货联系人") + private String departureContact; + + @Schema(description = "发货联系方式") + private String departurePhone; + + @Schema(description = "收货联系人") + private String arrivalContact; + + @Schema(description = "收货联系方式") + private String arrivalPhone; + @Schema(description = "预结算单号") private String preSettlementNo; diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ProcessConfigController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ProcessConfigController.java index e3a7842..8ff1c0c 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ProcessConfigController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ProcessConfigController.java @@ -114,8 +114,9 @@ public class ProcessConfigController extends BladeController { .eq(VoucherImage::getMatched, 1) .eq(VoucherImage::getIsDeleted, 0) .orderByDesc(VoucherImage::getCreateTime)); - Map voucherMap = voucherManageMapper.selectBatchIds(imageRecords.stream() - .map(VoucherImage::getVoucherId).filter(java.util.Objects::nonNull).distinct().toList()).stream() + List voucherIds = imageRecords.stream() + .map(VoucherImage::getVoucherId).filter(java.util.Objects::nonNull).distinct().toList(); + Map voucherMap = voucherIds.isEmpty() ? Map.of() : voucherManageMapper.selectBatchIds(voucherIds).stream() .collect(java.util.stream.Collectors.toMap(VoucherManage::getId, item -> item, (left, right) -> left)); List> images = imageRecords.stream() // 承运商上传的凭证只允许审核通过后在运单详情展示,内部上传保持原有展示规则。 diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/FormalSettlementServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/FormalSettlementServiceImpl.java index 5d54862..493511f 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/FormalSettlementServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/FormalSettlementServiceImpl.java @@ -211,8 +211,10 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl sources = sourceMapper.selectList(Wrappers.lambdaQuery() .eq(FormalSettlementSource::getFormalSettlementId, id).orderByAsc(FormalSettlementSource::getCreateTime)); vo.setSources(sources); - vo.setDetails(detailMapper.selectList(Wrappers.lambdaQuery() - .eq(FormalSettlementDetail::getFormalSettlementId, id).orderByAsc(FormalSettlementDetail::getLineNo))); + List details = detailMapper.selectList(Wrappers.lambdaQuery() + .eq(FormalSettlementDetail::getFormalSettlementId, id).orderByAsc(FormalSettlementDetail::getLineNo)); + fillDetailWaybillAddresses(details); + vo.setDetails(details); vo.setSummaryFees(listSummaryFees(id)); vo.setPayments(paymentMapper.selectList(Wrappers.lambdaQuery() .eq(FormalSettlementPayment::getFormalSettlementId, id).orderByDesc(FormalSettlementPayment::getCreateTime))); @@ -246,6 +248,37 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl details) { + if (details == null || details.isEmpty()) return; + List waybillIds = details.stream() + .map(FormalSettlementDetail::getWaybillId) + .filter(Objects::nonNull) + .distinct() + .toList(); + if (waybillIds.isEmpty()) return; + Map waybillMap = waybillService.listByIds(waybillIds).stream() + .collect(Collectors.toMap(Waybill::getId, Function.identity(), (left, right) -> left)); + for (FormalSettlementDetail detail : details) { + Waybill waybill = waybillMap.get(detail.getWaybillId()); + if (waybill == null) continue; + if (Func.isEmpty(detail.getDepartureAddress())) { + detail.setDepartureAddress(Func.isNotEmpty(waybill.getDepartureAddress()) + ? waybill.getDepartureAddress() : waybill.getDepartureName()); + } + if (Func.isEmpty(detail.getArrivalAddress())) { + detail.setArrivalAddress(Func.isNotEmpty(waybill.getArrivalAddress()) + ? waybill.getArrivalAddress() : waybill.getArrivalName()); + } + if (Func.isEmpty(detail.getDepartureContact())) detail.setDepartureContact(waybill.getDepartureContact()); + if (Func.isEmpty(detail.getDeparturePhone())) detail.setDeparturePhone(waybill.getDeparturePhone()); + if (Func.isEmpty(detail.getArrivalContact())) detail.setArrivalContact(waybill.getArrivalContact()); + if (Func.isEmpty(detail.getArrivalPhone())) detail.setArrivalPhone(waybill.getArrivalPhone()); + } + } + private List listInvoices(FormalSettlement settlement) { List settlementInvoices = invoiceMapper.selectList( Wrappers.lambdaQuery() @@ -1042,7 +1075,10 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl