From 657698fd2fb32794932474648dbaee9e284e38c8 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 18:31:20 +0800
Subject: [PATCH] feat(bpm): 添加全局免审批功能支持

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java |   46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java
index 2625818..e4f979f 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/qc/oqc/MesQcOqcMapper.java
@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.mes.dal.mysql.qc.oqc;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -7,10 +8,13 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.qc.oqc.MesQcOqcDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.time.LocalDateTime;
+import java.util.List;
+
 /**
  * MES 鍑鸿揣妫�楠屽崟锛圤QC锛� Mapper
  *
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
  */
 @Mapper
 public interface MesQcOqcMapper extends BaseMapperX<MesQcOqcDO> {
@@ -22,11 +26,51 @@
                 .likeIfPresent(MesQcOqcDO::getBatchCode, reqVO.getBatchCode())
                 .eqIfPresent(MesQcOqcDO::getItemId, reqVO.getItemId())
                 .eqIfPresent(MesQcOqcDO::getCheckResult, reqVO.getCheckResult())
+                .betweenIfPresent(MesQcOqcDO::getInspectDate, reqVO.getInspectDate())
                 .orderByDesc(MesQcOqcDO::getId));
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ锛堝甫瀹㈡埛鏉冮檺杩囨护锛�
+     */
+    default PageResult<MesQcOqcDO> selectPage(MesQcOqcPageReqVO reqVO, List<Long> permittedClientIds) {
+        LambdaQueryWrapperX<MesQcOqcDO> wrapper = new LambdaQueryWrapperX<MesQcOqcDO>()
+                .likeIfPresent(MesQcOqcDO::getCode, reqVO.getCode())
+                .eqIfPresent(MesQcOqcDO::getClientId, reqVO.getClientId())
+                .likeIfPresent(MesQcOqcDO::getBatchCode, reqVO.getBatchCode())
+                .eqIfPresent(MesQcOqcDO::getItemId, reqVO.getItemId())
+                .eqIfPresent(MesQcOqcDO::getCheckResult, reqVO.getCheckResult())
+                .betweenIfPresent(MesQcOqcDO::getInspectDate, reqVO.getInspectDate())
+                .orderByDesc(MesQcOqcDO::getId);
+        if (permittedClientIds != null) {
+            if (CollUtil.isEmpty(permittedClientIds)) {
+                wrapper.isNull(MesQcOqcDO::getClientId);
+            } else {
+                // 鏈叧鑱斿鎴风殑妫�楠屽崟鍙锛涘凡鍏宠仈瀹㈡埛浠嶆寜 CRM 鏉冮檺杩囨护銆�
+                wrapper.and(w -> w.isNull(MesQcOqcDO::getClientId)
+                        .or().in(MesQcOqcDO::getClientId, permittedClientIds));
+            }
+        }
+        return selectPage(reqVO, wrapper);
     }
 
     default MesQcOqcDO selectByCode(String code) {
         return selectOne(MesQcOqcDO::getCode, code);
     }
 
+    /**
+     * 鎸夊鍏ュ幓閲嶉敭鏌ヨ锛氬悓涓� 鐗╂枡 + 瀹㈡埛 + 鎵规鍙� + 鍑鸿揣鏃ユ湡 瑙嗕负鍚屼竴鎵瑰嚭璐ф楠屾暟鎹�
+     */
+    default List<MesQcOqcDO> selectListByImportKey(Long itemId, Long clientId, String batchCode,
+                                                   LocalDateTime outDate) {
+        return selectList(new LambdaQueryWrapperX<MesQcOqcDO>()
+                .eq(MesQcOqcDO::getItemId, itemId)
+                .eq(clientId != null, MesQcOqcDO::getClientId, clientId)
+                .isNull(clientId == null, MesQcOqcDO::getClientId)
+                .eq(batchCode != null, MesQcOqcDO::getBatchCode, batchCode)
+                .isNull(batchCode == null, MesQcOqcDO::getBatchCode)
+                .eq(MesQcOqcDO::getOutDate, outDate)
+                .orderByAsc(MesQcOqcDO::getId));
+    }
+
 }

--
Gitblit v1.9.3