|
@@ -32,10 +32,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
import org.springframework.web.bind.annotation.*;
|
|
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.function.Predicate;
|
|
import java.util.stream.Collectors;
|
|
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());
|
|
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 ->
|
|
Predicate<SopUserLogsInfo> remarkFilter = item ->
|
|
isRemarkEmpty ||
|
|
isRemarkEmpty ||
|
|
item.getRemark().contains(sopUserLogsInfo.getRemark());
|
|
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列表
|
|
// * 导出sopUserLogsInfo列表
|
|
// */
|
|
// */
|