From a0d55bcc8bfebd408d16166b27b7e05b3e4c9f4a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 02 十一月 2026 16:51:50 +0800
Subject: [PATCH] feat(erp): 采购/销售明细按含税单价口径拆税,供应商合同补供应商名称与附件

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/mysql/purchase/ErpPurchaseOrderMapper.java |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 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 1caa99f..f474dc2 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
@@ -30,6 +30,10 @@
                 .eqIfPresent(ErpPurchaseOrderDO::getStatus, reqVO.getStatus())
                 .likeIfPresent(ErpPurchaseOrderDO::getRemark, reqVO.getRemark())
                 .eqIfPresent(ErpPurchaseOrderDO::getCreator, reqVO.getCreator())
+                .eqIfPresent(ErpPurchaseOrderDO::getContractId, reqVO.getContractId())
+                .eqIfPresent(ErpPurchaseOrderDO::getPaymentMethod, reqVO.getPaymentMethod())
+                .likeIfPresent(ErpPurchaseOrderDO::getLogisticsNo, reqVO.getLogisticsNo())
+                .eqIfPresent(ErpPurchaseOrderDO::getAbnormalFlag, reqVO.getAbnormalFlag())
                 .orderByDesc(ErpPurchaseOrderDO::getId);
         // 鍏ュ簱鐘舵�併�備负浠�涔堥渶瑕� t. 鐨勫師鍥狅紝鏄洜涓鸿仈琛ㄦ煡璇㈡椂锛岄渶瑕佹寚瀹氳〃鍚嶏紝涓嶇劧浼氭姤 in_count 閿欒
         if (Objects.equals(reqVO.getInStatus(), ErpPurchaseOrderPageReqVO.IN_STATUS_NONE)) {
@@ -57,6 +61,11 @@
             query.eq(ErpPurchaseOrderDO::getStatus, ErpAuditStatus.APPROVE.getStatus())
                     .apply("t.return_count < t.in_count");
         }
+        // 鍙潵绁ㄧ櫥璁帮紙鍓╀綑鍙紑绁ㄩ噾棰� > 0锛夛細閲戦宸插紑瀹岀殑璁㈠崟涓嶅睍绀�
+        if (Boolean.TRUE.equals(reqVO.getRemainPriceEnable())) {
+            query.apply("t.total_price > (SELECT IFNULL(SUM(i.price), 0) FROM erp_purchase_invoice i "
+                    + "WHERE i.purchase_order_id = t.id AND i.deleted = 0)");
+        }
         if (reqVO.getProductId() != null) {
             query.leftJoin(ErpPurchaseOrderItemDO.class, ErpPurchaseOrderItemDO::getOrderId, ErpPurchaseOrderDO::getId)
                     .eq(reqVO.getProductId() != null, ErpPurchaseOrderItemDO::getProductId, reqVO.getProductId())
@@ -70,6 +79,16 @@
                 .eq(ErpPurchaseOrderDO::getId, id).eq(ErpPurchaseOrderDO::getStatus, status));
     }
 
+    default List<ErpPurchaseOrderDO> selectListByContractId(Long contractId) {
+        return selectList(new LambdaQueryWrapperX<ErpPurchaseOrderDO>()
+                .eq(ErpPurchaseOrderDO::getContractId, contractId));
+    }
+
+    default long selectCountByContractId(Long contractId) {
+        return selectCount(new LambdaQueryWrapperX<ErpPurchaseOrderDO>()
+                .eq(ErpPurchaseOrderDO::getContractId, contractId));
+    }
+
     default ErpPurchaseOrderDO selectByNo(String no) {
         return selectOne(ErpPurchaseOrderDO::getNo, no);
     }

--
Gitblit v1.9.3