From 4dd78acfe298217ebc5dd247c5b45c6f33deea9b Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 08 十一月 2025 22:43:14 +0800
Subject: [PATCH] feat:医院选择计算

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java
index e8da24b..cf35021 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HospDataController.java
@@ -27,11 +27,15 @@
     
     /**
      * 鎼滅储鍖婚櫌
-     * 鏀寔鏍规嵁鍖婚櫌鍚嶇О鎴栧湴鍧�杩涜妯$硦鎼滅储
+     * 鏀寔鏍规嵁鍖婚櫌鍚嶇О銆佸湴鍧�銆佸湴鍩熻繘琛屾ā绯婃悳绱�
+     * @param keyword 鎼滅储鍏抽敭璇嶏紙鍖婚櫌鍚嶇О銆佸湴鍧�銆佺畝绉般�佺渷甯傚尯锛�
+     * @param region 鍦板煙鍏抽敭璇嶏紙鐢ㄤ簬杩囨护鐪佸競鍖猴級
      */
     @GetMapping("/search")
-    public AjaxResult searchHospitals(@RequestParam(value = "keyword", required = false) String keyword) {
-        List<HospData> list = hospDataMapper.searchHospitals(keyword);
+    public AjaxResult searchHospitals(
+            @RequestParam(value = "keyword", required = false) String keyword,
+            @RequestParam(value = "region", required = false) String region) {
+        List<HospData> list = hospDataMapper.searchHospitals(keyword, region);
         return success(list);
     }
     
@@ -43,4 +47,50 @@
         HospData hospital = hospDataMapper.selectHospDataById(hospId);
         return success(hospital);
     }
+    
+    /**
+     * 鑾峰彇甯哥敤杞嚭鍖婚櫌鍒楄〃
+     * @param serviceOrdClass 鍒嗗叕鍙哥紪鐮侊紙service_order_class锛�
+     * @param region 鍦板煙鍏抽敭璇嶏紙鍙�夛級
+     */
+    @GetMapping("/frequent/out")
+    public AjaxResult getFrequentOutHospitals(
+            @RequestParam("serviceOrdClass") String serviceOrdClass,
+            @RequestParam(value = "region", required = false) String region) {
+        // 鏌ヨ甯哥敤杞嚭鍖婚櫌ID鍒楄〃
+        List<Integer> hospIds = hospDataMapper.selectFrequentOutHospitalIds(serviceOrdClass);
+        if (hospIds == null || hospIds.isEmpty()) {
+            return success();
+        }
+        Integer homeHospId=hospDataMapper.getHomeHospId();
+        if (!hospIds.contains(homeHospId)) {
+            hospIds.add(0,homeHospId);
+        }
+        // 鏍规嵁ID鍒楄〃鏌ヨ鍖婚櫌璇︽儏
+        List<HospData> hospitals = hospDataMapper.selectHospDataByIds(hospIds, region);
+        return success(hospitals);
+    }
+    
+    /**
+     * 鑾峰彇甯哥敤杞叆鍖婚櫌鍒楄〃
+     * @param serviceOrdClass 鍒嗗叕鍙哥紪鐮侊紙service_order_class锛�
+     * @param region 鍦板煙鍏抽敭璇嶏紙鍙�夛級
+     */
+    @GetMapping("/frequent/in")
+    public AjaxResult getFrequentInHospitals(
+            @RequestParam("serviceOrdClass") String serviceOrdClass,
+            @RequestParam(value = "region", required = false) String region) {
+        // 鏌ヨ甯哥敤杞叆鍖婚櫌ID鍒楄〃
+        List<Integer> hospIds = hospDataMapper.selectFrequentInHospitalIds(serviceOrdClass);
+        if (hospIds == null || hospIds.isEmpty()) {
+            return success();
+        }
+        Integer homeHospId=hospDataMapper.getHomeHospId();
+        if (!hospIds.contains(homeHospId)) {
+            hospIds.add(0,homeHospId);
+        }
+        // 鏍规嵁ID鍒楄〃鏌ヨ鍖婚櫌璇︽儏
+        List<HospData> hospitals = hospDataMapper.selectHospDataByIds(hospIds, region);
+        return success(hospitals);
+    }
 }

--
Gitblit v1.9.1