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/dal/mysql/purchase/ErpPurchaseOrderMapper.java | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseOrderMapper.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseOrderMapper.java
index dc5c147..183cda7 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseOrderMapper.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseOrderMapper.java
@@ -17,7 +17,7 @@
/**
* ERP 閲囪喘璁㈠崟 Mapper
*
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
*/
@Mapper
public interface ErpPurchaseOrderMapper extends BaseMapperX<ErpPurchaseOrderDO> {
@@ -57,6 +57,18 @@
query.eq(ErpPurchaseOrderDO::getStatus, ErpAuditStatus.APPROVE.getStatus())
.apply("t.return_count < t.in_count");
}
+ // 鍙潵绁ㄧ櫥璁帮紙鍓╀綑鍙紑绁ㄩ噾棰� > 0锛夛細閲戦宸插紑瀹岀殑璁㈠崟涓嶅睍绀�
+ if (Boolean.TRUE.equals(reqVO.getRemainPriceEnable())) {
+ // 缂栬緫鏉ョエ鏃讹紙invoiceId 闈炵┖锛夊墧闄ゆ湰寮犳潵绁ㄨ嚜韬殑鍒嗘憡锛岀浉褰撲簬鎶婂畠宸插垎鎽婄殑閲戦閫�鍥炶鍗�
+ String sql = "t.total_price > (SELECT IFNULL(SUM(a.price), 0) FROM erp_purchase_invoice_order a "
+ + "INNER JOIN erp_purchase_invoice i ON i.id = a.invoice_id AND i.deleted = 0 "
+ + "WHERE a.purchase_order_id = t.id AND a.deleted = 0";
+ if (reqVO.getInvoiceId() != null) {
+ query.apply(sql + " AND a.invoice_id <> {0})", reqVO.getInvoiceId());
+ } else {
+ query.apply(sql + ")");
+ }
+ }
if (reqVO.getProductId() != null) {
query.leftJoin(ErpPurchaseOrderItemDO.class, ErpPurchaseOrderItemDO::getOrderId, ErpPurchaseOrderDO::getId)
.eq(reqVO.getProductId() != null, ErpPurchaseOrderItemDO::getProductId, reqVO.getProductId())
@@ -74,6 +86,10 @@
return selectOne(ErpPurchaseOrderDO::getNo, no);
}
+ default ErpPurchaseOrderDO selectByProcessInstanceId(String processInstanceId) {
+ return selectOne(ErpPurchaseOrderDO::getProcessInstanceId, processInstanceId);
+ }
+
default List<ErpPurchaseOrderDO> selectList(Long supplierId, Integer status) {
return selectList(new LambdaQueryWrapperX<ErpPurchaseOrderDO>()
.eqIfPresent(ErpPurchaseOrderDO::getSupplierId, supplierId)
--
Gitblit v1.9.3