From f84d029d497949af28c6780a52bec9020c642311 Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期二, 16 十二月 2025 11:19:20 +0800
Subject: [PATCH] 全局搜索人物时 不按照顺序查询 可少不可多

---
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java |   33 ++++++++++++++++
 zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java                   |    6 +++
 zhang-content/src/main/java/com/ruoyi/domain/ZfEconomy.java                  |    9 ++++
 zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java  |   29 +++++++++++++-
 4 files changed, 73 insertions(+), 4 deletions(-)

diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java
index 76a3bc6..2647465 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfDoctor.java
@@ -11,6 +11,7 @@
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -103,6 +104,11 @@
      */
     private String companion;
 
+    /**
+     * 鍙備笌鑰呭垪琛�
+     */
+    @TableField(exist = false)
+    private List<String> companionList;
 
     /**
      * 寮�濮嬫椂闂�
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/ZfEconomy.java b/zhang-content/src/main/java/com/ruoyi/domain/ZfEconomy.java
index 11c20ec..236a681 100644
--- a/zhang-content/src/main/java/com/ruoyi/domain/ZfEconomy.java
+++ b/zhang-content/src/main/java/com/ruoyi/domain/ZfEconomy.java
@@ -13,6 +13,7 @@
 import java.io.Serializable;
 import java.time.LocalDate;
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -124,6 +125,14 @@
      */
     private String companion;
 
+    /**
+     * 鍙備笌鑰呭垪琛�
+     */
+    @TableField(exist = false)
+    private List<String> companionList;
+
 //    @TableField(exist = false)
 //    private Integer year;
+
+
 }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
index d61d9f4..beb70cf 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfDoctorServiceImpl.java
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -465,7 +466,27 @@
                 .like(StringUtils.isNotEmpty(zfDoctor.getWmedical()), ZfDoctor::getWmedical, zfDoctor.getWmedical())
                 .like(StringUtils.isNotEmpty(zfDoctor.getCmedical()), ZfDoctor::getCmedical, zfDoctor.getCmedical())
                 .like(StringUtils.isNotEmpty(zfDoctor.getRemark()), ZfDoctor::getRemark, zfDoctor.getRemark());
-        lqw.like(StringUtils.isNotEmpty(zfDoctor.getCompanion()),ZfDoctor::getCompanion,zfDoctor.getCompanion());
+//        lqw.like(StringUtils.isNotEmpty(zfDoctor.getCompanion()),ZfDoctor::getCompanion,zfDoctor.getCompanion());
+
+        if (CollectionUtils.isNotEmpty(zfDoctor.getCompanionList())) {
+            List<String> companionList = zfDoctor.getCompanionList();
+
+            // 娓呯悊鍜屽幓閲�
+            companionList = companionList.stream()
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .distinct()
+                .collect(Collectors.toList());
+
+            if (!companionList.isEmpty()) {
+                // 纭繚鎵�鏈夊弬涓庝汉閮藉湪companion瀛楁涓�
+                for (String companion : companionList) {
+                    lqw.apply("FIND_IN_SET({0}, REPLACE(REPLACE(companion, ' ', ''), '锛�', ',')) > 0",
+                        companion);
+                }
+            }
+        }
+
         lqw.between(zfDoctor.getHappenStartTime() != null && zfDoctor.getHappenEndTime() != null, ZfDoctor::getCreateTime, zfDoctor.getHappenStartTime(), zfDoctor.getHappenEndTime());
 
         if (StringUtils.isNotEmpty(zfDoctor.getPrescription())) {
@@ -487,8 +508,10 @@
     public List<?> search(String companion, Date happenStartTime, Date happenEndTime) {
 
         ZfDoctor zfDoctor = new ZfDoctor();
-        zfDoctor.setCompanion(companion);
-        zfDoctor.setHappenStartTime(happenStartTime);
+        String[] split = companion.split(",");
+        List<String> list = Arrays.asList(split);
+
+        zfDoctor.setCompanionList(list);        zfDoctor.setHappenStartTime(happenStartTime);
         zfDoctor.setHappenEndTime(happenEndTime);
         return selectByCondition(zfDoctor);
     }
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
index 2e7b906..6655de3 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/ZfEconomyServiceImpl.java
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -28,6 +29,7 @@
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import static com.ruoyi.constant.MenuAuthority.*;
@@ -78,17 +80,41 @@
         lqw.like(StringUtils.isNotEmpty(zfEconomy.getUsePeople()),ZfEconomy::getUsePeople,zfEconomy.getUsePeople());
         lqw.like(StringUtils.isNotEmpty(zfEconomy.getBalance()),ZfEconomy::getBalance,zfEconomy.getBalance());
         lqw.like(StringUtils.isNotEmpty(zfEconomy.getRemark()),ZfEconomy::getRemark,zfEconomy.getRemark());
-        lqw.like(StringUtils.isNotEmpty(zfEconomy.getCompanion()),ZfEconomy::getCompanion,zfEconomy.getCompanion());
+//        lqw.in(StringUtils.isNotEmpty(zfEconomy.getCompanionList()),ZfEconomy::getCompanion,zfEconomy.getCompanionList());
 //        if (zfEconomy.getYear() != 0) {
 //            System.out.println("pppppppppppppppppppppppppppppppppppppppppppppppppppp"+zfEconomy.getYear());
 //            lqw.apply("YEAR(happen_time) = {0}", zfEconomy.getYear());
 //        }
+
+            if (CollectionUtils.isNotEmpty(zfEconomy.getCompanionList())) {
+                List<String> companionList = zfEconomy.getCompanionList();
+
+                // 娓呯悊鍜屽幓閲�
+                companionList = companionList.stream()
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .distinct()
+                    .collect(Collectors.toList());
+
+                if (!companionList.isEmpty()) {
+                    // 纭繚鎵�鏈夊弬涓庝汉閮藉湪companion瀛楁涓�
+                    for (String companion : companionList) {
+                        lqw.apply("FIND_IN_SET({0}, REPLACE(REPLACE(companion, ' ', ''), '锛�', ',')) > 0",
+                            companion);
+                    }
+                }
+            }
+
+
+
+
         lqw.eq(zfEconomy.getHappenTime() != null, ZfEconomy::getHappenTime, zfEconomy.getHappenTime());
         lqw.between(zfEconomy.getHappenStartTime() != null && zfEconomy.getHappenEndTime() != null, ZfEconomy::getHappenTime, zfEconomy.getHappenStartTime(), zfEconomy.getHappenEndTime());
         System.out.println("鏌ヨ鏉′欢: " + lqw.getCustomSqlSegment());
 
         return lqw;
     }
+
 
     private LambdaQueryWrapper<ZfEconomy> uniqueCondition(ZfEconomy zfEconomy) {
         LambdaQueryWrapper<ZfEconomy> lqw = new LambdaQueryWrapper<>();
@@ -627,6 +653,11 @@
         zfEconomy.setCompanion(companion);
         zfEconomy.setHappenStartTime(happenStartTime);
         zfEconomy.setHappenEndTime(happenEndTime);
+
+        String[] split = companion.split(",");
+        List<String> list = Arrays.asList(split);
+
+        zfEconomy.setCompanionList(list);
         return selectByCondition(zfEconomy);
     }
 

--
Gitblit v1.9.1