From 6d1bf32bc0b51dc12048fe6bb70badfbd31d67ac Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 07 十一月 2026 13:44:10 +0800
Subject: [PATCH] fix: 修复销售订单审批及开票回款搜索

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java
index 0f9cdee..ccb8247 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/invoice/CrmInvoiceMapper.java
@@ -49,6 +49,8 @@
     default int submitAndResetAuditInfo(Long id, Integer status) {
         return update(null, new LambdaUpdateWrapper<CrmInvoiceDO>()
                 .eq(CrmInvoiceDO::getId, id)
+                .in(CrmInvoiceDO::getAuditStatus, CrmAuditStatusEnum.DRAFT.getStatus(),
+                        CrmAuditStatusEnum.REJECT.getStatus())
                 .set(CrmInvoiceDO::getAuditStatus, status)
                 .set(CrmInvoiceDO::getReviewerId, null)
                 .set(CrmInvoiceDO::getReviewerName, null)
@@ -72,6 +74,7 @@
                              String reviewerName, String reviewRemark) {
         return update(null, new LambdaUpdateWrapper<CrmInvoiceDO>()
                 .eq(CrmInvoiceDO::getId, id)
+                .eq(CrmInvoiceDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus())
                 .set(CrmInvoiceDO::getAuditStatus, status)
                 .set(CrmInvoiceDO::getReviewerId, reviewerId)
                 .set(CrmInvoiceDO::getReviewerName, reviewerName)
@@ -79,10 +82,29 @@
                 .set(CrmInvoiceDO::getReviewRemark, reviewRemark));
     }
 
+    /**
+     * BPM 瀹℃壒缁撴潫鍚庡洖鍐欏紑绁ㄧ姸鎬�
+     *
+     * 浠呭綋寮�绁ㄤ粛澶勪簬銆屽鎵逛腑銆嶆椂鏇存柊锛岄伩鍏嶄笌鏃у鎵硅矾寰勯噸澶嶈鐩栥��
+     *
+     * @param id           寮�绁ㄧ紪鍙�
+     * @param status       鐩爣鐘舵�侊紙瀹℃牳閫氳繃 / 瀹℃牳涓嶉�氳繃 / 宸插彇娑堬級
+     * @param reviewRemark 瀹℃牳鎰忚
+     * @return 褰卞搷琛屾暟
+     */
+    default int updateAuditStatusByBpm(Long id, Integer status, String reviewRemark) {
+        return update(null, new LambdaUpdateWrapper<CrmInvoiceDO>()
+                .eq(CrmInvoiceDO::getId, id)
+                .eq(CrmInvoiceDO::getAuditStatus, CrmAuditStatusEnum.PROCESS.getStatus())
+                .set(CrmInvoiceDO::getAuditStatus, status)
+                .set(CrmInvoiceDO::getReviewTime, LocalDateTime.now())
+                .set(CrmInvoiceDO::getReviewRemark, reviewRemark));
+    }
+
     default PageResult<CrmInvoiceDO> selectPageByCustomerId(CrmInvoicePageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<CrmInvoiceDO>()
                 .eq(CrmInvoiceDO::getCustomerId, reqVO.getCustomerId()) // 蹇呴』浼犻��
-                .eqIfPresent(CrmInvoiceDO::getNo, reqVO.getNo())
+                .likeIfPresent(CrmInvoiceDO::getNo, reqVO.getNo())
                 .eqIfPresent(CrmInvoiceDO::getContractId, reqVO.getContractId())
                 .orderByDesc(CrmInvoiceDO::getId));
     }
@@ -94,7 +116,8 @@
                 CrmInvoiceDO::getId, userId, pageReqVO.getSceneType());
         // 鎷兼帴鑷韩鐨勬煡璇㈡潯浠�
         query.selectAll(CrmInvoiceDO.class)
-                .eqIfPresent(CrmInvoiceDO::getNo, pageReqVO.getNo())
+                .likeIfPresent(CrmInvoiceDO::getNo, pageReqVO.getNo())
+                .eqIfPresent(CrmInvoiceDO::getCustomerId, pageReqVO.getCustomerId())
                 .eqIfPresent(CrmInvoiceDO::getContractId, pageReqVO.getContractId())
                 .eqIfPresent(CrmInvoiceDO::getAuditStatus, pageReqVO.getAuditStatus())
                 .orderByDesc(CrmInvoiceDO::getId);

--
Gitblit v1.9.3