| 
					
				 | 
			
			
				@@ -32,10 +32,8 @@ import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.security.access.prepost.PreAuthorize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Optional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.function.Predicate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,13 +110,28 @@ public class SopUserLogsInfoController extends BaseController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Predicate<SopUserLogsInfo> tagFilter = item -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    sopUserLogsInfo.getTagIds() == null || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            sopUserLogsInfo.getTagIds().isEmpty() || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            item.getTagIds().contains(sopUserLogsInfo.getTagIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Predicate<SopUserLogsInfo> tagFilter = item -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String queryTagIds = sopUserLogsInfo.getTagIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String itemTagIds = item.getTagIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (queryTagIds == null || queryTagIds.trim().equals("[]")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> queryTags = parseTagIds(queryTagIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> itemTags = parseTagIds(itemTagIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // 检查 itemTags 是否包含所有 queryTags(AND 关系) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return itemTags.containsAll(queryTags); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 优化过滤条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             boolean isRemarkEmpty = StringUtil.strIsNullOrEmpty(sopUserLogsInfo.getRemark()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Predicate<SopUserLogsInfo> tagFilter = item -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    sopUserLogsInfo.getTagIds() == null || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            sopUserLogsInfo.getTagIds().isEmpty() || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            item.getTagIds().contains(sopUserLogsInfo.getTagIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Predicate<SopUserLogsInfo> remarkFilter = item -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     isRemarkEmpty || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             item.getRemark().contains(sopUserLogsInfo.getRemark()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -196,7 +209,16 @@ public class SopUserLogsInfoController extends BaseController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<String> parseTagIds(String jsonTagIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (jsonTagIds == null || jsonTagIds.trim().isEmpty() || jsonTagIds.equals("[]")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return Collections.emptyList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 去掉开头和结尾的 [ ],然后按 "," 分割 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Arrays.stream(jsonTagIds.replaceAll("[\\[\\]\"]", "").split(",")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .map(String::trim) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .filter(s -> !s.isEmpty()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //     * 导出sopUserLogsInfo列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //     */ 
			 |