From 167cea020c21f2b6bad230c3ec02da6ba9818c12 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Wed, 21 Oct 2026 16:41:59 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E7=BB=93=E7=AE=97=E5=8D=95?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=9A=E5=8A=A1=E6=A8=A1=E5=BC=8F=E4=B8=8E?= =?UTF-8?q?=E8=BF=90=E8=BE=93=E6=96=B9=E5=BC=8F=EF=BC=8C=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=BB=84=E7=BB=87=E5=90=88=E5=90=8C=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E5=8F=B7=E7=A9=BA=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 预结算/正式结算主表新增业务模式、运输方式及列表导出字典翻译;组织合同初始流水号未填时不落-1,OA同步保留本地合同配置。 Co-authored-by: Cursor --- .../pojo/dto/FormalSettlementSaveRequest.java | 4 ++ .../pojo/dto/PreSettlementSaveRequest.java | 6 ++ .../pojo/entity/FormalSettlement.java | 8 +++ .../transport/pojo/entity/PreSettlement.java | 6 ++ .../transport/pojo/vo/FormalSettlementVO.java | 2 + .../transport/pojo/vo/PreSettlementVO.java | 8 +++ .../system/service/impl/DeptServiceImpl.java | 4 +- .../service/impl/OASyncServiceImpl.java | 35 ++++++++++- .../FormalSettlementController.java | 2 + .../controller/PreSettlementController.java | 2 + .../excel/FormalSettlementExcel.java | 4 ++ .../transport/excel/PreSettlementExcel.java | 4 ++ .../impl/FormalSettlementServiceImpl.java | 61 ++++++++++++++++--- .../impl/PreSettlementServiceImpl.java | 31 +++++++--- .../ReceivablePayableDetailServiceImpl.java | 6 +- .../TransportReconciliationServiceImpl.java | 3 +- .../wrapper/FormalSettlementWrapper.java | 25 ++++++++ .../wrapper/PreSettlementWrapper.java | 25 ++++++++ .../blade_formal_settlement_20260818.sql | 1 + .../blade_pre_settlement_20260818.sql | 2 + ...business_model_transport_type_20261021.sql | 8 +++ 21 files changed, 227 insertions(+), 20 deletions(-) create mode 100644 doc/sql/transport/blade_settlement_business_model_transport_type_20261021.sql diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/FormalSettlementSaveRequest.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/FormalSettlementSaveRequest.java index d001adb4..706c321d 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/FormalSettlementSaveRequest.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/FormalSettlementSaveRequest.java @@ -26,6 +26,10 @@ public class FormalSettlementSaveRequest implements Serializable { private List sourcePreSettlementIds; private List sourceDetailIds; private List detailAdjustments; + /** 业务模式(业务字典 business_model) */ + private String businessModel; + /** 运输方式(业务字典 transport_type) */ + private String transportType; private LocalDate exchangeRateDate; private BigDecimal exchangeRate; private String attachmentsJson; diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PreSettlementSaveRequest.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PreSettlementSaveRequest.java index b2c670b7..d30e8955 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PreSettlementSaveRequest.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PreSettlementSaveRequest.java @@ -55,6 +55,12 @@ public class PreSettlementSaveRequest implements Serializable { @Schema(description = "结算类型:receivable/payable") private String settlementType; + @Schema(description = "业务模式(业务字典 business_model)") + private String businessModel; + + @Schema(description = "运输方式(业务字典 transport_type)") + private String transportType; + @Schema(description = "汇率日期") private LocalDate exchangeRateDate; diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlement.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlement.java index cc4ddd1a..20c42775 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlement.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/FormalSettlement.java @@ -88,6 +88,14 @@ public class FormalSettlement extends TenantEntity { * 结算金额(结算币种,含全部合计费用) */ private BigDecimal settlementAmount; + /** + * 业务模式(业务字典 business_model) + */ + private String businessModel; + /** + * 运输方式(业务字典 transport_type) + */ + private String transportType; /** * 本位币,默认 RMB */ diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlement.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlement.java index 7181170c..a333caf0 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlement.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlement.java @@ -92,6 +92,12 @@ public class PreSettlement extends TenantEntity { @Schema(description = "结算金额") private BigDecimal settlementAmount; + @Schema(description = "业务模式(业务字典 business_model)") + private String businessModel; + + @Schema(description = "运输方式(业务字典 transport_type)") + private String transportType; + @Schema(description = "本位币") private String localCurrency; diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/FormalSettlementVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/FormalSettlementVO.java index 1c68aef6..b879bd0c 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/FormalSettlementVO.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/FormalSettlementVO.java @@ -43,6 +43,8 @@ public class FormalSettlementVO extends FormalSettlement implements KingdeeUnloc @TableField(exist = false) private String ids; @TableField(exist = false) private String approvalStatusName; @TableField(exist = false) private String settlementTypeName; + @TableField(exist = false) @Schema(description = "业务模式名称") private String businessModelName; + @TableField(exist = false) @Schema(description = "运输方式名称") private String transportTypeName; @TableField(exist = false) private Integer attachmentCount; @TableField(exist = false) private String attachmentSyncStatus; @TableField(exist = false) private String attachmentSyncStatusName; diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/PreSettlementVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/PreSettlementVO.java index 36955339..ac4f8a73 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/PreSettlementVO.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/PreSettlementVO.java @@ -85,6 +85,14 @@ public class PreSettlementVO extends PreSettlement { @Schema(description = "结算类型名称") private String settlementTypeName; + @TableField(exist = false) + @Schema(description = "业务模式名称") + private String businessModelName; + + @TableField(exist = false) + @Schema(description = "运输方式名称") + private String transportTypeName; + @TableField(exist = false) @Schema(description = "结算明细") private List details; diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java index dd24564f..fb539f67 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java @@ -877,7 +877,9 @@ public class DeptServiceImpl extends ServiceImpl implements ID private void validateContractInitialSerial(Dept dept) { Integer serial = dept.getContractInitialSerial(); - if (serial == null) { + // -1 为空占位,未填写时按 null 落库,不自动保留 -1 + if (serial == null || serial == -1) { + dept.setContractInitialSerial(null); return; } if (serial < 1 || serial > 999) { diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java index 90588373..65049d14 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/OASyncServiceImpl.java @@ -923,7 +923,8 @@ public class OASyncServiceImpl implements IOASyncService { .ne(Dept::getOaId, "") .select(Dept::getId, Dept::getDeptCode, Dept::getDeptName, Dept::getFullName, Dept::getOaModified, Dept::getParentId, Dept::getOaId, Dept::getBelongCompanyCode, - Dept::getParentCode, Dept::getOaSupSubComId)); + Dept::getParentCode, Dept::getOaSupSubComId, + Dept::getContractCodePrefix, Dept::getContractInitialSerial)); Map byOaId = new HashMap<>(); for (Dept dept : deptList) { if (StringUtils.isNotBlank(dept.getOaId())) { @@ -986,6 +987,9 @@ public class OASyncServiceImpl implements IOASyncService { } else { dept.setId(DefaultIdentifierGenerator.getInstance().nextId(null)); } + // OA 不同步合同本地配置:保留已有值,并把 -1 空占位规范为 null,避免 ALWAYS 策略写回 -1/清空 + preserveLocalContractFields(dept, existing); + normalizeContractInitialSerial(dept); if (StringUtils.isNotBlank(dept.getDeptCode())) { deptIdByCode.put(dept.getDeptCode(), dept.getId()); } @@ -1046,6 +1050,35 @@ public class OASyncServiceImpl implements IOASyncService { return new OrgSyncCount(syncedCount, skippedCount, notHandledList); } + /** + * OA 同步对象不含合同本地配置,更新时保留库中已有合同编码前缀与初始流水号。 + */ + private void preserveLocalContractFields(Dept incoming, Dept existing) { + if (incoming == null || existing == null) { + return; + } + if (StringUtils.isBlank(incoming.getContractCodePrefix())) { + incoming.setContractCodePrefix(existing.getContractCodePrefix()); + } + Integer incomingSerial = incoming.getContractInitialSerial(); + if (incomingSerial == null || incomingSerial == -1) { + incoming.setContractInitialSerial(existing.getContractInitialSerial()); + } + } + + /** + * 合同初始流水号 -1 为空占位,同步落库前规范为 null。 + */ + private void normalizeContractInitialSerial(Dept dept) { + if (dept == null) { + return; + } + Integer serial = dept.getContractInitialSerial(); + if (serial != null && serial == -1) { + dept.setContractInitialSerial(null); + } + } + /** * oaModified 一致则跳过更新;任一侧为空无法确认一致,执行更新以补齐字段。 * 组织编码已按新规则重算、父子挂载不一致、或名称字段与当前映射不一致时,即使 modified 相同也要更新。 diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/FormalSettlementController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/FormalSettlementController.java index 01a53d18..3ec0e5fe 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/FormalSettlementController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/FormalSettlementController.java @@ -99,6 +99,8 @@ public class FormalSettlementController extends BladeController { excel.setContractNo(vo.getContractNo()); excel.setContractName(vo.getContractName()); excel.setSettlementAmount(formatMoney(vo.getSettlementAmount(), vo.getCurrency())); + excel.setBusinessModelName(vo.getBusinessModelName()); + excel.setTransportTypeName(vo.getTransportTypeName()); excel.setLocalSettlementAmount(formatMoney(vo.getLocalSettlementAmount(), vo.getLocalCurrency())); excel.setExchangeRate(vo.getExchangeRate() == null ? "" : vo.getExchangeRate().stripTrailingZeros().toPlainString()); excel.setInvoiceStatusName(invoiceStatusName(vo.getInvoiceStatus(), vo.getSettlementType())); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PreSettlementController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PreSettlementController.java index e337b9a1..385e8ded 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PreSettlementController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PreSettlementController.java @@ -250,6 +250,8 @@ public class PreSettlementController extends BladeController { excel.setContractNo(vo.getContractNo()); excel.setContractName(vo.getContractName()); excel.setSettlementAmount(formatMoney(vo.getSettlementAmount(), vo.getCurrency())); + excel.setBusinessModelName(vo.getBusinessModelName()); + excel.setTransportTypeName(vo.getTransportTypeName()); excel.setLocalSettlementAmount(formatMoney(vo.getLocalSettlementAmount(), vo.getLocalCurrency())); excel.setExchangeRate(vo.getExchangeRate() == null ? "" : vo.getExchangeRate().stripTrailingZeros().toPlainString()); excel.setAdvanceAppliedAmount(formatMoney(vo.getAdvanceAppliedAmount(), vo.getCurrency())); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/FormalSettlementExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/FormalSettlementExcel.java index 56ca2039..99b72f1e 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/FormalSettlementExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/FormalSettlementExcel.java @@ -39,6 +39,10 @@ public class FormalSettlementExcel implements Serializable { private String contractName; @ExcelProperty("原币结算金额") private String settlementAmount; + @ExcelProperty("业务模式") + private String businessModelName; + @ExcelProperty("运输方式") + private String transportTypeName; @ExcelProperty("本位币结算金额") private String localSettlementAmount; @ExcelProperty("结算汇率") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/PreSettlementExcel.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/PreSettlementExcel.java index d6d15c05..29d3a936 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/PreSettlementExcel.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/excel/PreSettlementExcel.java @@ -50,6 +50,10 @@ public class PreSettlementExcel implements Serializable { private String contractName; @ExcelProperty("原币结算金额") private String settlementAmount; + @ExcelProperty("业务模式") + private String businessModelName; + @ExcelProperty("运输方式") + private String transportTypeName; @ExcelProperty("本位币结算金额") private String localSettlementAmount; @ExcelProperty("结算汇率") 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 62e6a744..4b8bdfee 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 @@ -350,9 +350,14 @@ public class FormalSettlementServiceImpl extends BaseServiceImpllambdaQuery() - .eq(FormalSettlementChangeRecord::getFormalSettlementId, id) - .orderByDesc(FormalSettlementChangeRecord::getChangeTime))); + List changeRecords = changeRecordMapper.selectList( + Wrappers.lambdaQuery() + .eq(FormalSettlementChangeRecord::getFormalSettlementId, id) + .orderByDesc(FormalSettlementChangeRecord::getChangeTime)); + // 审批通过/驳回类不展示在变更记录中 + vo.setChangeRecords(changeRecords.stream() + .filter(record -> !isApprovalChangeContent(record.getChangeContent())) + .toList()); return vo; } @@ -558,6 +563,8 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl sourceFeeMap = receivablePayableCargoFeeMapper.selectBatchIds(sourceFeeIds).stream() .collect(Collectors.toMap(ReceivablePayableCargoFee::getId, Function.identity(), (left, right) -> left)); + // 历史数据可能把预结算费用行ID误写入 sourceFeeId,需再解析到应收应付费用行 + List unresolvedIds = sourceFeeIds.stream().filter(id -> !sourceFeeMap.containsKey(id)).toList(); + Map preFeeMap = unresolvedIds.isEmpty() ? Map.of() + : preDetailFeeMapper.selectBatchIds(unresolvedIds).stream() + .collect(Collectors.toMap(PreSettlementDetailFee::getId, Function.identity(), (left, right) -> left)); + List receivableFeeIds = preFeeMap.values().stream().map(PreSettlementDetailFee::getSourceFeeId) + .filter(Objects::nonNull).distinct().toList(); + if (!receivableFeeIds.isEmpty()) { + receivablePayableCargoFeeMapper.selectBatchIds(receivableFeeIds).forEach(item -> + sourceFeeMap.putIfAbsent(item.getId(), item)); + } fees.forEach(fee -> { - ReceivablePayableCargoFee sourceFee = sourceFeeMap.get(fee.getSourceFeeId()); + Long sourceFeeId = fee.getSourceFeeId(); + ReceivablePayableCargoFee sourceFee = sourceFeeMap.get(sourceFeeId); + if (sourceFee == null && sourceFeeId != null) { + PreSettlementDetailFee preFee = preFeeMap.get(sourceFeeId); + if (preFee != null && preFee.getSourceFeeId() != null) { + sourceFee = sourceFeeMap.get(preFee.getSourceFeeId()); + if (sourceFee != null) { + // 仅回写响应,便于前端试算;不落库覆盖历史 sourceFeeId + fee.setSourceFeeId(preFee.getSourceFeeId()); + } + } + } if (sourceFee != null) { fee.setBillingRulesJson(sourceFee.getBillingRulesJson()); } @@ -2029,7 +2058,11 @@ public class FormalSettlementServiceImpl extends BaseServiceImpl beforeData, Map afterData) { + if (isApprovalChangeContent(content)) { + return; + } FormalSettlementChangeRecord record = new FormalSettlementChangeRecord(); record.setFormalSettlementId(settlementId); record.setChangeType(changeType); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java index f828826f..e29b1aeb 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java @@ -203,13 +203,15 @@ public class PreSettlementServiceImpl extends BaseServiceImpllambdaQuery() - .eq(PreSettlementChangeRecord::getPreSettlementId, id) - .eq(PreSettlementChangeRecord::getIsDeleted, 0) - .and(wrapper -> wrapper.isNull(PreSettlementChangeRecord::getChangeContent) - .or() - .ne(PreSettlementChangeRecord::getChangeContent, "预结算审批通过")) - .orderByDesc(PreSettlementChangeRecord::getChangeTime))); + List changeRecords = changeRecordMapper.selectList( + Wrappers.lambdaQuery() + .eq(PreSettlementChangeRecord::getPreSettlementId, id) + .eq(PreSettlementChangeRecord::getIsDeleted, 0) + .orderByDesc(PreSettlementChangeRecord::getChangeTime)); + // 审批通过/驳回类不展示在变更记录中 + vo.setChangeRecords(changeRecords.stream() + .filter(record -> !isApprovalChangeContent(record.getChangeContent())) + .toList()); vo.setPrintTemplates(resolvePrintTemplates(settlement)); return vo; } @@ -349,6 +351,8 @@ public class PreSettlementServiceImpl extends BaseServiceImpl beforeData, Map afterData) { + if (isApprovalChangeContent(content)) { + return; + } PreSettlementChangeRecord record = new PreSettlementChangeRecord(); record.setPreSettlementId(settlementId); record.setChangeType(changeType); 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 8ce2f5f7..09a3b020 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 @@ -671,8 +671,10 @@ public class ReceivablePayableDetailServiceImpl throw new ServiceException("费用调整试算数据不能为空"); } ReceivablePayableDetail detail = getExisting(request.getDetailId()); - if (!"pending".equals(detail.getSettlementStatus())) { - throw new ServiceException("仅待结算明细允许调整试算"); + // 试算不落库,预结算/正式结算调整明细也需按合同计费方案重算运费及其他按量费用 + String settlementStatus = Func.toStr(detail.getSettlementStatus(), "pending"); + if (!List.of("pending", "pre_settled", "formal_settled").contains(settlementStatus)) { + throw new ServiceException("当前结算状态不允许费用试算"); } ReceivablePayableCargoFee fee = cargoFeeMapper.selectOne( Wrappers.lambdaQuery() diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportReconciliationServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportReconciliationServiceImpl.java index 065ec3b9..5f19781e 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportReconciliationServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/TransportReconciliationServiceImpl.java @@ -1309,7 +1309,8 @@ public class TransportReconciliationServiceImpl bill.setInternalBillCount(internals.size()); bill.setExternalBillCount(externals.size()); int internalUnmatched = (int) internals.stream().filter(item -> !MATCHED.equals(item.getMatchResult())).count(); int externalUnmatched = (int) externals.stream().filter(item -> !MATCHED.equals(item.getMatchStatus())).count(); - bill.setMatchedCount(matched); bill.setUnmatchedCount(internalUnmatched + externalUnmatched); + // 无法匹配按内部账单条数统计,不叠加外部未匹配数 + bill.setMatchedCount(matched); bill.setUnmatchedCount(internalUnmatched); bill.setDifferenceCount(Math.abs(internals.size() - externals.size()) + Math.min(internalUnmatched, externalUnmatched)); bill.setInternalQuantity(sumInternalQuantity(internals)); bill.setExternalQuantity(sumExternalQuantity(externals)); bill.setDifferenceQuantity(bill.getInternalQuantity().subtract(bill.getExternalQuantity()).abs()); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/FormalSettlementWrapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/FormalSettlementWrapper.java index 68142f7d..72c86191 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/FormalSettlementWrapper.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/FormalSettlementWrapper.java @@ -10,6 +10,9 @@ package org.springblade.transport.wrapper; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.DictBizCache; +import org.springblade.system.cache.DictCache; import org.springblade.system.cache.UserCache; import org.springblade.transport.pojo.entity.FormalSettlement; import org.springblade.transport.pojo.vo.FormalSettlementVO; @@ -46,6 +49,28 @@ public class FormalSettlementWrapper extends BaseEntityWrapper entity.getApprovalStatus(); }); vo.setAdjustStatusName("adjusted".equals(entity.getAdjustStatus()) ? "已调整" : null); + vo.setBusinessModelName(dictBizName("business_model", entity.getBusinessModel())); + vo.setTransportTypeName(dictBizName("transport_type", entity.getTransportType())); return vo; } + + private String dictBizName(String code, String value) { + if (Func.isEmpty(value)) { + return value; + } + String name = ""; + try { + name = DictBizCache.getValue(code, value); + } catch (Exception exception) { + name = ""; + } + if (Func.isEmpty(name)) { + try { + name = DictCache.getValue(code, value); + } catch (Exception exception) { + name = ""; + } + } + return Func.isEmpty(name) ? value : name; + } } diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/PreSettlementWrapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/PreSettlementWrapper.java index 6832c407..7defb71d 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/PreSettlementWrapper.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/PreSettlementWrapper.java @@ -10,6 +10,9 @@ package org.springblade.transport.wrapper; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.system.cache.DictBizCache; +import org.springblade.system.cache.DictCache; import org.springblade.system.cache.UserCache; import org.springblade.transport.pojo.entity.PreSettlement; import org.springblade.transport.pojo.vo.PreSettlementVO; @@ -34,6 +37,8 @@ public class PreSettlementWrapper extends BaseEntityWrapper