From 02e4e3a9fcfbe2a366fc75868dfa019145cea9d2 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期一, 20 十月 2025 15:05:18 +0800
Subject: [PATCH] 市一短信和微信问卷及orgid过滤优化

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTelInfoController.java     |    4 
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                                 |   17 ++++-
 smartor/src/main/java/com/smartor/mapper/ServiceOutPathMapper.java                           |    7 ++
 smartor/src/main/java/com/smartor/service/IServiceOutPathService.java                        |    7 ++
 smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java                |   10 +++
 ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java                        |   24 ++++++++
 smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml                           |    5 +
 smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java                |    8 ++
 smartor/src/main/java/com/smartor/service/IServiceTelInfoService.java                        |    2 
 ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java |    4 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java                 |   59 ++++++++++---------
 ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/smsUtils.java                          |   27 +++++++++
 12 files changed, 136 insertions(+), 38 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
index 5a8093a..c0310e5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -11,6 +11,7 @@
 import com.smartor.domain.HtmlContentVO;
 import com.smartor.domain.ServiceOutPath;
 import com.smartor.domain.smsVO;
+import com.smartor.mapper.UtilsMapper;
 import com.smartor.service.IServiceOutPathService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -27,6 +28,7 @@
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.util.Date;
+import java.util.List;
 
 @RestController
 @Api(description = "鐭ヤ俊鎺ュ彛")
@@ -54,6 +56,8 @@
     @Autowired
     private IServiceOutPathService iServiceOutPathService;
 
+    @Autowired
+    private UtilsMapper utilsMapper;
 
     /**
      * @param
@@ -76,31 +80,29 @@
         String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
         String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
         String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key);
+        Integer radix=iServiceOutPathService.selectAutoId();
+        String format = String.format("%03X", radix);
         ServiceOutPath serviceOutPath = new ServiceOutPath();
         serviceOutPath.setParam1(taskId);
         serviceOutPath.setParam2(patid);
         serviceOutPath.setParam3(vo.getTaskName());
         serviceOutPath.setParam6(subId);
+        serviceOutPath.setRadix(format);
         serviceOutPath.setCreateTime(new Date());
-        String format ="";
-        if(ObjectUtils.isNotEmpty(vo.getSubId())) {
-            format = String.format("%03X", Integer.parseInt(vo.getSubId()));
-            serviceOutPath.setRadix(format);
-        }
         iServiceOutPathService.insertServiceOutPath(serviceOutPath);
 
-        String url=ip + ":" + req_path + "/wt?p=" + format;
+        String url = ip + ":" + req_path + "/wt?p=" + format;
 
-        String content="鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
-        if(ObjectUtils.isNotEmpty(vo.getContent()))
-            content=vo.getContent();
-        else
-            sendChat(vo);
-        String sendMsg="";
-        try{
-            sendMsg=smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,vo.getPhone(),content);
+        String content = "鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
+        if (ObjectUtils.isNotEmpty(vo.getContent()))
+            content = vo.getContent();
+//        else
+//            sendChat(vo);
+        String sendMsg = "";
+        try {
+            sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), content);
             log.info(sendMsg);
-        }catch (Exception ex){
+        } catch (Exception ex) {
             log.error(ex.getMessage());
         }
         return AjaxResult.success(sendMsg);
@@ -116,21 +118,22 @@
         RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
         String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
         String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
-        String url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid
-                + "&param3=" + URLEncoder.encode(vo.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
+        String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key);
+        Integer radix=iServiceOutPathService.selectAutoId();
+        String format = String.format("%03X", radix);
+        ServiceOutPath serviceOutPath = new ServiceOutPath();
+        serviceOutPath.setParam1(taskId);
+        serviceOutPath.setParam2(patid);
+        serviceOutPath.setParam3(vo.getTaskName());
+        serviceOutPath.setParam6(subId);
+        serviceOutPath.setRadix(format);
+        serviceOutPath.setCreateTime(new Date());
+        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
 
-        String content="鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
+        String url = ip + ":" + req_path + "/wt?p=" + format;
 
-        String urlTemp="http://192.200.54.14:5003/sfjk/SendMessage?sfzh="+vo.getIdCard()
-                +"&title=鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��&content="+content+"&phone="+vo.getPhone()
-                +"&url="+url+"&key=ff76f8904f5f32b5ee1739e8ea46e60g";
-        String sendMsg= "";
-        try{
-            sendMsg= HttpUtils.sendGet(urlTemp);
-            log.info(sendMsg);
-        }catch (Exception ex){
-            log.error(ex.getMessage());
-        }
+
+        String sendMsg =  smsUtils.sendChat(url,vo.getPhone(),vo.getIdCard());
         return AjaxResult.success(sendMsg);
     }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTelInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTelInfoController.java
index bba4a2b..dd17bab 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTelInfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTelInfoController.java
@@ -24,8 +24,8 @@
      */
     @ApiOperation("闅忚鐢佃瘽璇︽儏鍒楄〃")
     @GetMapping("/getList")
-    public AjaxResult getList() {
-        return AjaxResult.success(telService.getList());
+    public AjaxResult getList(String orgid) {
+        return AjaxResult.success(telService.getList(orgid));
     }
 
 
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
index d8b249b..90d8d52 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
@@ -13,6 +13,12 @@
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.ruoyi.common.constant.Constants;
@@ -112,6 +118,7 @@
             conn.setRequestProperty("connection", "Keep-Alive");
             conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
             conn.setRequestProperty("Accept-Charset", "utf-8");
+            conn.setRequestProperty("Charsert", "UTF-8");
             conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
             conn.setDoOutput(true);
             conn.setDoInput(true);
@@ -308,4 +315,21 @@
             return true;
         }
     }
+
+    public static String sendPost(String url){
+        HttpPost post = new HttpPost(url);
+        CloseableHttpClient client = HttpClients.createDefault();
+        //鍚姩鎵ц璇锋眰锛屽苟鑾峰緱杩斿洖鍊�
+        CloseableHttpResponse execute = null;
+        try {
+            execute = client.execute(post);
+            HttpEntity entity = execute.getEntity();
+            //鎶婂疄浣撳璞¤浆鎹负string
+            return EntityUtils.toString(entity, "UTF-8");
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return "璋冪敤澶辫触";
+    }
+
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/smsUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/smsUtils.java
index 2ec23d9..bf7e08b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/smsUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/sms/smsUtils.java
@@ -5,13 +5,16 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.utils.HttpUtil;
+import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.common.utils.sign.Md5Utils;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
+@Slf4j
 public class smsUtils {
 
 
@@ -40,4 +43,28 @@
         return sendMsg;
 
     }
+
+    /**
+     * 鏉窞甯備竴鍖婚櫌鍚村北闄㈠尯鎴戠煭淇℃帴鍙�
+     *
+     * @param url      寰俊URL
+     * @param phone    鎵嬫満鍙� 13500000001
+     * @param idCard  韬唤璇�
+     * @return 涓や釜鍙傛暟鐨勫拰
+     */
+    public static String sendChat(String url,String phone,String idCard){
+        String urlTemp = "http://192.200.54.14:5003/sfjk/SendMessage?sfzh="
+                + idCard
+                + "&title=鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��&content=寰呴殢璁�&phone=" + phone
+                + "&url=" + url + "&key=ff76f8904f5f32b5ee1739e8ea46e60g";
+        String sendMsg = "";
+        try {
+            sendMsg = HttpUtils.sendPost(urlTemp);
+            log.info(sendMsg);
+        } catch (Exception ex) {
+            sendMsg=ex.getMessage();
+            log.error(ex.getMessage());
+        }
+        return  sendMsg;
+    }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
index 2bf520f..f168bc6 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
@@ -127,6 +127,10 @@
         if (originalSql.contains("insert into") || originalSql.contains("INSERT INTO") || originalSql.contains("from sys_menu") || originalSql.contains("sys_job") || originalSql.contains("update sys_menu") || originalSql.contains("information_schema.tables") || originalSql.contains("information_schema.columns") || originalSql.contains("gen_table") || originalSql.toUpperCase().contains("ORGID IS NULL") || originalSql.toUpperCase().contains("FROM CRYXX") || originalSql.toUpperCase().contains("FROM MZXX") || originalSql.toUpperCase().contains("FROM JBXX") || originalSql.toUpperCase().contains("FROM BMXX") || originalSql.toUpperCase().contains("FROM HZJBXX") || originalSql.toUpperCase().contains("RENAME TABLE") || originalSql.toUpperCase().contains("FROM YHYKSXX") || originalSql.toUpperCase().contains("FROM YHYJSXX") || originalSql.toUpperCase().contains("ALTER TABLE") || originalSql.toUpperCase().contains("CREATE TABLE")) {
             return originalSql;
         }
+        if(originalSql.contains("and onorgid")){
+            originalSql=originalSql.replace("and onorginid","");
+            return originalSql;
+        }
         // 鎻愬彇 orgid 鐨� WHERE 瀛愬彞
         String whereClause = " orgid = '" + orgid + "'";
 
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 5fd05cb..07aa4de 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -645,10 +645,19 @@
                                 }
                                 String wxCode = "";
                                 if (visitHosp == 3) {//甯備竴鍖婚櫌
-                                    String urlTemp="http://192.200.54.14:5003/sfjk/SendMessage?sfzh="+serviceSubtask.getSfzh()
-                                            +"&title=鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��&content=鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��&phone="+patArchive.getTelcode()
-                                            +"&url="+url+"&key=ff76f8904f5f32b5ee1739e8ea46e60g";
-                                    HttpUtils.sendGet(urlTemp);
+                                    String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
+                                    Integer radix=iServiceOutPathService.selectAutoId();
+                                    String format = String.format("%03X", radix);
+                                    ServiceOutPath serviceOutPath = new ServiceOutPath();
+                                    serviceOutPath.setParam1(taskId);
+                                    serviceOutPath.setParam2(patid);
+                                    serviceOutPath.setParam3(ivrTask1.getTaskName());
+                                    serviceOutPath.setParam6(subId);
+                                    serviceOutPath.setRadix(format);
+                                    serviceOutPath.setCreateTime(new Date());
+                                    iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+                                    url = ip + ":" + req_path + "/wt?p=" + format;
+                                    smsUtils.sendChat(url,patArchive.getTelcode(),serviceSubtask.getSfzh());
                                 }else{
                                     wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx);
                                 }
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceOutPathMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceOutPathMapper.java
index 55b810b..a248dc2 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceOutPathMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceOutPathMapper.java
@@ -60,4 +60,11 @@
      * @return 缁撴灉
      */
     public int deleteServiceOutPathByIds(Long[] ids);
+
+    /**
+     * 鏌ヨ鑷ID
+     *
+     * @return ID
+     */
+    public Integer selectAutoId();
 }
diff --git a/smartor/src/main/java/com/smartor/service/IServiceOutPathService.java b/smartor/src/main/java/com/smartor/service/IServiceOutPathService.java
index 6106b89..f7efea9 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceOutPathService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceOutPathService.java
@@ -58,4 +58,11 @@
      * @return 缁撴灉
      */
     public int deleteServiceOutPathById(Long id);
+
+    /**
+     * 鏌ヨ鑷ID
+     *
+     * @return ID
+     */
+    public Integer selectAutoId();
 }
diff --git a/smartor/src/main/java/com/smartor/service/IServiceTelInfoService.java b/smartor/src/main/java/com/smartor/service/IServiceTelInfoService.java
index 5a1e92a..90d6372 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceTelInfoService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceTelInfoService.java
@@ -10,7 +10,7 @@
      *
      * @return 缁撴灉
      */
-    public List<Map<String,Object>> getList();
+    public List<Map<String,Object>> getList(String orgid);
 
     /**
      * 璁剧疆鐢佃瘽鐘舵��
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java
index a63e655..feda3ae 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceOutPathServiceImpl.java
@@ -84,4 +84,14 @@
     public int deleteServiceOutPathById(Long id) {
         return serviceOutPathMapper.deleteServiceOutPathById(id);
     }
+
+    /**
+     * 鏌ヨ鑷ID
+     *
+     * @return ID
+     */
+    @Override
+    public Integer selectAutoId() {
+        return serviceOutPathMapper.selectAutoId();
+    }
 }
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java
index dae868d..cdc27cc 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java
@@ -4,6 +4,7 @@
 import com.smartor.mapper.UtilsMapper;
 import com.smartor.service.IServiceTelInfoService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -22,8 +23,11 @@
      * @return 缁撴灉
      */
     @Override
-    public List<Map<String,Object>> getList() {
-       List<Map<String,Object>> lists= utilsMapper.getList("select * from service_telinfo where state=0  OR DATE_ADD(editTime, INTERVAL 10 MINUTE)< NOW()  ");
+    public List<Map<String,Object>> getList(String orgid) {
+        String where=" where state=0  OR DATE_ADD(editTime, INTERVAL 10 MINUTE)< NOW() ";
+        if(ObjectUtils.isNotEmpty(orgid))
+            where=where+" and orgid='"+orgid+"'";
+       List<Map<String,Object>> lists= utilsMapper.getList("select * from service_telinfo " +where);
         return lists;
     }
     /**
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
index 4ae0783..54cb39c 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
@@ -151,6 +151,9 @@
             #{id}
         </foreach>
     </update>
-
+    <select id="selectAutoId" resultType="Integer" >
+        SELECT AUTO_INCREMENT FROM  INFORMATION_SCHEMA.TABLES
+         WHERE  TABLE_NAME  = 'service_out_path'  AND table_schema = DATABASE() and onorgid
+    </select>
 
 </mapper>

--
Gitblit v1.9.3