From b65c4cdd68b72771634fcfd52709edfd77d7abc6 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 07 八月 2026 17:47:43 +0800
Subject: [PATCH] 【景宁】发送方式改执行方式

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java |   98 ++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 88 insertions(+), 10 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 91ed52e..6a16085 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
@@ -8,15 +8,14 @@
 import com.ruoyi.common.utils.HttpUtil;
 import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.common.utils.sms.smsUtils;
 import com.smartor.common.MtSubmitSmUtil;
 import com.smartor.common.ShiyiSmsUtil;
-import com.smartor.domain.ServiceOutPath;
-import com.smartor.domain.ShiyiSmsRequest;
-import com.smartor.domain.ShiyiSmsResponse;
-import com.smartor.domain.smsVO;
+import com.smartor.domain.*;
 import com.smartor.mapper.UtilsMapper;
 import com.smartor.service.IServiceOutPathService;
+import com.smartor.service.IServiceSubtaskService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -29,6 +28,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
@@ -54,6 +54,9 @@
 
     @Value("${xhsmsPwd}")
     private String xhsmsPwd;
+    // 铏氭嫙鎺ュ叆鐮�
+    @Value("${xhsmsjrm}")
+    private String xhsmsjrm;
 
     @Value("${localIP}")
     private String ip;
@@ -66,6 +69,8 @@
 
     @Autowired
     private IServiceOutPathService iServiceOutPathService;
+    @Autowired
+    private IServiceSubtaskService iServiceSubtaskService;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -101,6 +106,12 @@
     @PostMapping("/send")
     public AjaxResult sendAsk(@RequestBody smsVO vo) throws UnsupportedEncodingException {
         String content = "";
+        if (StringUtils.isNotEmpty(vo.getSubId())) {
+            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+            if (serviceSubtask.getSendstate() == 4L) content = "璇ヤ换鍔′笉鎵ц";
+            return AjaxResult.error(content);
+        }
+
         if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
             RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
             String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
@@ -115,9 +126,11 @@
             serviceOutPath.setParam6(subId);
             serviceOutPath.setRadix(format);
             serviceOutPath.setCreateTime(new Date());
-            iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+            serviceOutPath.setOrgid(vo.getOrgid());
             String url = ip + ":" + req_path + "/wt?p=" + format;
             content = "鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
+            serviceOutPath.setUrl(url);
+            iServiceOutPathService.insertServiceOutPath(serviceOutPath);
         }
 
         if (ObjectUtils.isNotEmpty(vo.getContent())) content = vo.getContent();
@@ -142,10 +155,33 @@
                     }
                 }
             } else if (active.equals("xh")) {
-                Map<String, String> req = new HashMap<>();
-                req.put("phone", vo.getPhone());
-                req.put("content", vo.getContent());
-                sendMsg = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
+//                Map<String, String> req = new HashMap<>();
+//                req.put("phone", vo.getPhone());
+//                req.put("content", vo.getContent());
+//                Boolean result = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
+                Map<String, String> map2 = new HashMap<String, String>();
+                map2.put("action", "send");
+                map2.put("account", xhsmsAccount);
+                map2.put("password", xhsmsPwd);
+                map2.put("mobile", vo.getPhone());
+                map2.put("content", vo.getContent());
+                map2.put("extno", xhsmsjrm);
+                map2.put("rt", "json");
+                StringBuilder encodedParams = new StringBuilder();
+
+                for (Map.Entry<String, String> entry : map2.entrySet()) {
+                    if (encodedParams.length() > 0) {
+                        encodedParams.append("&");
+                    }
+                    // 瀵归敭鍜屽�艰繘琛孶RL缂栫爜
+                    String encodedKey = URLEncoder.encode(entry.getKey(), "UTF-8");
+                    String encodedValue = URLEncoder.encode(entry.getValue(), "UTF-8");
+                    encodedParams.append(encodedKey).append("=").append(encodedValue);
+                }
+                Boolean result = HttpUtils.sendPost(xhsmsPath, encodedParams.toString());
+                if (result) {
+                    sendMsg = "true";
+                }
             } else if (active.equals("ls")) {
                 //涓芥按13瀹跺尰闄紝鏈夌偣涓嶆柟渚匡紝鏈夌┖鍐嶆帴
                 return AjaxResult.error("璇ョ煭淇″姛鑳借繕鏈紑閫�");
@@ -163,8 +199,13 @@
      */
     @ApiOperation("寰俊鍙戦��")
     @PostMapping("/sendChat")
-    public AjaxResult sendChat(@RequestBody smsVO vo) throws UnsupportedEncodingException {
+    public AjaxResult sendChat(@RequestBody smsVO vo) {
         String sendMsg = "";
+        if (StringUtils.isNotEmpty(vo.getSubId())) {
+            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+            if (serviceSubtask.getSendstate() == 4L) sendMsg = "璇ヤ换鍔′笉鎵ц";
+            return AjaxResult.error(sendMsg);
+        }
         if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
             RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
             String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
@@ -179,6 +220,7 @@
             serviceOutPath.setParam6(subId);
             serviceOutPath.setRadix(format);
             serviceOutPath.setCreateTime(new Date());
+            serviceOutPath.setOrgid(vo.getOrgid());
             iServiceOutPathService.insertServiceOutPath(serviceOutPath);
             String url = ip + ":" + req_path + "/wt?p=" + format;
             sendMsg = smsUtils.sendChat(url, vo.getPhone(), vo.getIdCard());
@@ -186,5 +228,41 @@
         return AjaxResult.success(sendMsg);
     }
 
+    /**
+     * @param
+     * @return
+     */
+    @ApiOperation("鐢熸垚澶栭摼")
+    @PostMapping("/getUrl")
+    public AjaxResult getUrl(@RequestBody smsVO vo) throws UnsupportedEncodingException {
+        String content = "";
+        if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
+            RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+            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());
+            serviceOutPath.setOrgid(vo.getOrgid());
+            String url = ip + ":" + req_path + "/wt?p=" + format;
+//            content = "鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�";
+            content = url;
+            serviceOutPath.setUrl(url);
+            iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+        }
+        if (StringUtils.isNotEmpty(vo.getSubId())) {
+            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+            if (serviceSubtask.getSendstate() == 4L) content = "璇ヤ换鍔′笉鎵ц";
+        }
+
+        return AjaxResult.success(content);
+    }
 
 }

--
Gitblit v1.9.3