From 2eeeb70e4733e7fc41635c3aa2143f13cbc43d58 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 04 十一月 2026 17:11:34 +0800
Subject: [PATCH] feat(erp): 采购来票分摊合计改为不超过来票金额即可
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseInvoiceServiceImpl.java | 14 ++++++--------
1 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseInvoiceServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseInvoiceServiceImpl.java
index 016d052..abfd6ff 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseInvoiceServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseInvoiceServiceImpl.java
@@ -132,18 +132,16 @@
}
// 1.2 鏍¢獙鎵�鏈夐噰璐鍗曞繀椤绘槸鍚屼竴渚涘簲鍟嗭紙鏉ョエ瀵瑰簲涓�涓緵搴斿晢锛�
validateSameSupplier(orders);
- // 2. 鏍¢獙鍒嗘憡鍚堣 = 鏉ョエ閲戦
+ // 2. 鏍¢獙鍒嗘憡鍚堣涓嶈兘澶т簬鏉ョエ閲戦锛堝厑璁稿皬浜庯細鏈垎鎽婇儴鍒嗗彲鍚庣画缂栬緫鏉ョエ鏃跺啀琛ュ厖閲囪喘璁㈠崟锛�
BigDecimal allocationTotal = allocations.stream().map(ErpPurchaseInvoiceOrderReqVO::getPrice)
.reduce(BigDecimal.ZERO, BigDecimal::add);
- if (allocationTotal.compareTo(reqVO.getPrice()) != 0) {
- BigDecimal diff = reqVO.getPrice().subtract(allocationTotal);
- String detail = diff.compareTo(BigDecimal.ZERO) > 0
- ? StrUtil.format("杩樻湁 {} 鍏冩湭鍒嗘憡鍒拌鍗曪紝璇蜂负璁㈠崟濉啓鍒嗘憡閲戦鎴栨敼閫夎鍗�", diff.stripTrailingZeros().toPlainString())
- : StrUtil.format("鍒嗘憡鍚堣姣旀潵绁ㄩ噾棰濆 {} 鍏冿紝璇峰噺灏戝垎鎽婇噾棰�", diff.negate().stripTrailingZeros().toPlainString());
+ if (allocationTotal.compareTo(reqVO.getPrice()) > 0) {
throw new ServiceException(PURCHASE_INVOICE_ALLOCATION_SUM_MISMATCH.getCode(),
- StrUtil.format("鏉ョエ閲戦 {} 鍏冿紝鍚勮鍗曞垎鎽婂悎璁� {} 鍏冿紝涓よ�呭繀椤荤浉绛夛紙宸锛歿}锛夈��",
+ StrUtil.format("鏉ョエ閲戦 {} 鍏冿紝鍚勮鍗曞垎鎽婂悎璁� {} 鍏冿紝鍒嗘憡鍚堣涓嶈兘澶т簬鏉ョエ閲戦锛堣秴鍑� {} 鍏冿級銆�"
+ + "璇峰噺灏戣鍗曠殑鍒嗘憡閲戦锛屾垨鎻愰珮鏉ョエ閲戦鍚庨噸璇曪紱鏈垎鎽婄殑閮ㄥ垎鍙互鐣欏緟浠ュ悗鍐嶇紪杈戞潵绁ㄨˉ鍏呴噰璐鍗曘��",
reqVO.getPrice().stripTrailingZeros().toPlainString(),
- allocationTotal.stripTrailingZeros().toPlainString(), detail));
+ allocationTotal.stripTrailingZeros().toPlainString(),
+ allocationTotal.subtract(reqVO.getPrice()).stripTrailingZeros().toPlainString()));
}
// 3. 涓昏鍗曘�佷緵搴斿晢鍙栧垎鎽婃槑缁嗙涓�寮狅紙涓�寮犳潵绁ㄦ秹鍙婂涓緵搴斿晢鏃讹紝鍒楄〃/浠樻娌跨敤绗竴瀹讹級
reqVO.setPurchaseOrderId(allocations.get(0).getPurchaseOrderId());
--
Gitblit v1.9.3