Bläddra i källkod

营期标签筛选

三七 2 dagar sedan
förälder
incheckning
a76ed9c981

+ 32 - 10
fs-company/src/main/java/com/fs/company/controller/qw/SopUserLogsInfoController.java

@@ -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列表
 //     */

+ 2 - 2
fs-service/src/main/resources/mapper/sop/QwSopLogsMapper.xml

@@ -741,10 +741,10 @@
         ORDER BY send_time desc
     </select>
     <select id="queryPeriodNameById" resultType="java.lang.String">
-        select concat(qw_user_key,'-',start_time) from sop_user_logs where id=#{periodId}
+        select concat(qw_user_id,'-',start_time) from sop_user_logs where id=#{periodId}
     </select>
     <select id="queryAllPeriod" resultType="com.fs.sop.domain.QwSopLogs">
-        select id,concat(qw_user_key,'-',start_time) as sop_title from sop_user_logs
+        select id,concat(qw_user_id,'-',start_time) as sop_title from sop_user_logs
     </select>
     <select id="selectQwSopLogsCountByQwUserId" resultType="java.lang.Long">
         select count(1) from qw_sop_logs