소스 검색

就诊分诊看板姓名脱敏处理

lighter 1 년 전
부모
커밋
b61f4f1cb6

+ 5 - 3
src/main/java/thyyxxk/webserver/service/outpatient/triage/RoomScreenService.java

@@ -81,14 +81,16 @@ public class RoomScreenService {
     }
 
     public ResultVo<MessageForPush> getNextJz(MessageForPush param) {
-        return ResultVoUtil.success(dao.getNextJz(param));
+        MessageForPush temp = dao.getNextJz(param);
+        temp.setName(StringUtil.desensitizeName(temp.getName()));
+        return ResultVoUtil.success(temp);
     }
 
     public ResultVo<List<MessageForPush>> getNextJzList(MessageForPush param) {
         log.info("获取 诊室:{} 的候诊列表。", param.getRoomCode());
         List<MessageForPush> list = dao.getNextJzList(param);
-        if (null == list) {
-            list = new ArrayList<>();
+        for (MessageForPush temp : list) {
+            temp.setName(StringUtil.desensitizeName(temp.getName()));
         }
         return ResultVoUtil.success(list);
     }

+ 1 - 12
src/main/java/thyyxxk/webserver/service/outpatient/triage/TriageService.java

@@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import thyyxxk.webserver.config.exception.BizException;
@@ -46,8 +45,6 @@ import java.util.Map;
 @Service
 public class TriageService {
     private final TriageDao dao;
-    @Value("${triage-notify-url}")
-    private String triageNotifyUrl;
     private final WebSocketService socketService;
     private final SendWxInfoService sendWxInfoService;
 
@@ -127,15 +124,7 @@ public class TriageService {
         List<MzfzPatientOrder> list = dao.getBigScreenData(depts);
         Map<String, FloorScreen> map = new HashMap<>(Capacity.DEFAULT);
         for (MzfzPatientOrder item : list) {
-            if (!fullName) {
-                String name = item.getName();
-                if (name.length() == 2) {
-                    name = name.charAt(0) + "*";
-                } else {
-                    name = name.charAt(0) + "*" + name.substring(2);
-                }
-                item.setName(name);
-            }
+            item.setName(StringUtil.desensitizeName(item.getName()));
             String key = String.format("%s_%s", item.getRoomCode(), item.getDoctorCode());
             if (!map.containsKey(key)) {
                 FloorScreen fl = new FloorScreen();

+ 33 - 19
src/main/java/thyyxxk/webserver/utils/StringUtil.java

@@ -52,6 +52,38 @@ public class StringUtil {
         return null == deptCodes ? new String[]{} : deptCodes.substring(1, deptCodes.length() - 1).replaceAll("\"", "").split(",");
     }
 
+    public static String desensitizeName(String name) {
+        if (isBlank(name) || name.length() == 1) {
+            return name;
+        }
+        if (!name.contains(" ")) {
+            return executeDesensitize(name);
+        }
+        String[] arr = name.split(" ");
+        StringBuilder result = new StringBuilder();
+        for (String part : arr) {
+            result.append(" ").append(executeDesensitize(part));
+        }
+        return result.substring(1);
+    }
+
+    private static String executeDesensitize(String str) {
+        if (str.length() == 2) {
+            return str.charAt(0) + "*";
+        }
+        StringBuilder builder = new StringBuilder();
+        builder.append(str.charAt(0));
+        for (int i = 1; i < str.length() - 1; i++) {
+            if (str.charAt(i) == ' ') {
+                builder.append(" ");
+            } else {
+                builder.append("*");
+            }
+        }
+        builder.append(str.charAt(str.length() - 1));
+        return builder.toString();
+    }
+
     /**
      * 把原始字符串分割成指定长度的字符串列表
      *
@@ -147,7 +179,7 @@ public class StringUtil {
         return str;
     }
 
-    private static Pattern linePattern = Pattern.compile("_(\\w)");
+    private static final Pattern linePattern = Pattern.compile("_(\\w)");
 
 
     public static String lineToHump(String str) {
@@ -270,23 +302,5 @@ public class StringUtil {
         return c;
     }
 
-
-    public static void main(String[] args) {
-        Map<String, String> map = new HashMap<>();
-        map.put("id", "123123123");
-        map.put("name", "如花");
-        map.put("age", "18");
-        String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
-                "<tx>\n" +
-                "  <txbody>\n" +
-                "    <id>${id}</id>\n" +
-                "    <name>${name}</name>\n" +
-                "    <age>${age}</age>\n" +
-                "  </txbody>\n" +
-                "</tx>";
-        String nxmlContent = replaceElementValue(content, map);
-        System.out.println(nxmlContent);
-    }
-
 }