From e56277542f60f386a109b1b072a1dbda390588fd Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期三, 11 二月 2026 15:54:29 +0800
Subject: [PATCH] EXISTS 保持一致

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java |   36 +++++++++++++++++++++++++-----------
 1 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
index 524ce11..7f51d3f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrServiceImpl.java
@@ -25,6 +25,7 @@
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.service.FieldsService;
 import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -139,24 +140,37 @@
     public PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam, Map<String, Object> params) {
         List<Long> longs = new ArrayList<>();
         if (params.containsKey("groupId")) {
-            Object groupId = params.get("groupId");
-            MatnrGroup group = matnrGroupService.getById(groupId.toString());
-            if (null != group){
-                pageParam.getWhere().getMap().remove("groupId");
-                if(!group.getCode().equals("01")){
-                    List<MatnrGroup> matnrGroups = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>()
-                            .eq(MatnrGroup::getParentId, Long.parseLong(groupId.toString()))
-                            .select(MatnrGroup::getId));
-                    if (!matnrGroups.isEmpty()) {
-                        longs = matnrGroups.stream().map(MatnrGroup::getId).collect(Collectors.toList());
+            if (!Objects.isNull(params.get("groupId"))) {
+                Object groupId = params.get("groupId");
+                MatnrGroup group = matnrGroupService.getById(groupId.toString());
+                if (null != group){
+                    pageParam.getWhere().getMap().remove("groupId");
+                    if(!group.getCode().equals("01")){
+                        List<MatnrGroup> matnrGroups = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>()
+                                .eq(MatnrGroup::getParentId, Long.parseLong(groupId.toString()))
+                                .select(MatnrGroup::getId));
+                        if (!matnrGroups.isEmpty()) {
+                            longs = matnrGroups.stream().map(MatnrGroup::getId).collect(Collectors.toList());
 
+                        }
+                        longs.add(group.getId());
                     }
-                    longs.add(group.getId());
                 }
             }
+
+        }
+        // locUseStatus 浠呯敤浜庝笅鏂� EXISTS 瀛愭煡璇紝涓嶈兘浣滀负 man_matnr 琛ㄥ瓧娈靛弬涓� buildWrapper
+        Object locUseStatus = params.get("locUseStatus");
+        if (pageParam.getWhere() != null && pageParam.getWhere().getMap() != null) {
+            pageParam.getWhere().getMap().remove("locUseStatus");
         }
         QueryWrapper<Matnr> queryWrapper = pageParam.buildWrapper(true);
         queryWrapper.in(!longs.isEmpty(),"group_id", longs);
+        // 鍑哄簱閫夌墿鏂欙細鎸夊簱浣嶇姸鎬佺瓫閫夛紙浠呭睍绀哄湪璇ュ簱浣嶇姸鎬佷笅鏈夋湁鏁堝簱瀛樼殑鐗╂枡锛屼笌 listStockByMatnrIds 鍙e緞涓�鑷达細鎺掗櫎宸插垹鏄庣粏涓庡凡鍒犲簱浣嶏級
+        if (locUseStatus != null && StringUtils.isNotBlank(locUseStatus.toString())) {
+            String useStatus = locUseStatus.toString().replace("'", "''");
+            queryWrapper.apply("EXISTS (SELECT 1 FROM man_loc_item li INNER JOIN man_loc l ON li.loc_id = l.id AND (l.deleted = 0 OR l.deleted IS NULL) WHERE li.matnr_id = man_matnr.id AND li.deleted = 0 AND l.use_status = '" + useStatus + "')");
+        }
 
         FieldsUtils.setFieldsFilters(queryWrapper,pageParam,Matnr.class);
         /**鎷兼帴鎵╁睍瀛楁*/

--
Gitblit v1.9.1