From 26573ac59e11774bd4db474ef65ed265c87eb0c3 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Wed, 1 Apr 2026 13:09:44 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=20=20=20=20=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E6=94=B6=E6=AC=BE=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EmisSettlePayRecordServiceImpl.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java index ac43797f9..b016751a7 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java @@ -475,7 +475,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I .collect(Collectors.toList()); // 现金结算多账单合并收款时,校验每条运单的 moneyUserId 必须一致 - log.info("start validateMoneyUserIdForMergeCashSettle"); + log.info("aike.start validateMoneyUserIdForMergeCashSettle"); validateMoneyUserIdForMergeCashSettle(emisSettlePayRecord); for (int i = 0; i < settleBillNoArr.size(); i++) { @@ -580,18 +580,33 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I } private void validateMoneyUserIdForMergeCashSettle(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError { - if (!"1".equals(emisSettlePayRecord.getSettleType()) - || StringUtils.isBlank(emisSettlePayRecord.getSettleBillNo()) - || !emisSettlePayRecord.getSettleBillNo().contains(",")) { + // 方法入参与前置条件日志 + if (emisSettlePayRecord == null) { + log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped: emisSettlePayRecord is null"); + return; + } + String settleType = emisSettlePayRecord.getSettleType(); + String settleBillNo = emisSettlePayRecord.getSettleBillNo(); + boolean containsComma = settleBillNo != null && settleBillNo.contains(","); + log.debug("aike.validateMoneyUserIdForMergeCashSettle enter: settleType={}, settleBillNo={}, containsComma={}", + settleType, settleBillNo, containsComma); + + if (!"1".equals(settleType) + || StringUtils.isBlank(settleBillNo) + || !containsComma) { + log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped by preconditions. settleTypeMatch={}, billNoBlank={}, containsComma={}", + "1".equals(settleType), StringUtils.isBlank(settleBillNo), containsComma); return; } List payRelList = emisSettlePayRecord.getPayRelList(); if (CollectionUtils.isEmpty(payRelList)) { + log.debug("aike.validateMoneyUserIdForMergeCashSettle skipped: payRelList empty"); return; } Set moneyUserIdSet = new HashSet<>(); + int index = 0; for (EmisSettlePayRel payRel : payRelList) { Long moneyUserId = null; if (payRel != null @@ -599,11 +614,17 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I && payRel.getWaybillDetail().getWaybillOther() != null) { moneyUserId = payRel.getWaybillDetail().getWaybillOther().getMoneyUserId(); } + log.debug("aike.validateMoneyUserIdForMergeCashSettle item#{}, billNo={}, moneyUserId={}", + index++, + payRel == null ? null : payRel.getBillNo(), + moneyUserId); moneyUserIdSet.add(moneyUserId); if (moneyUserIdSet.size() > 1) { + log.warn("aike.合并现金收款校验失败:存在多个不同的moneyUserId,详情: {}", moneyUserIdSet); throw new EmisBizError(EmisBizErrorType.FAIL, "不同现金客户不允许合并收款"); } } + log.debug("aike.validateMoneyUserIdForMergeCashSettle passed: unique moneyUserId={}", moneyUserIdSet); } private static void checkParam(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError {