From 1c06a97a8784dac2c8623cb5ad9c155c4724faeb Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 24 十二月 2025 11:12:56 +0800
Subject: [PATCH] 【市一】 微信公众号 发送调整

---
 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java |   90 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 64 insertions(+), 26 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
index 25b502e..291b789 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -17,6 +17,8 @@
 import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.common.utils.sign.Md5Utils;
+import com.ruoyi.common.utils.sms.smsUtils;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
 import com.smartor.common.LSHospTokenUtil;
@@ -98,6 +100,12 @@
 
     @Value("${xhsmsPath}")
     private String xhsmsPath;
+
+    @Value("${xhsmsAccount}")
+    private String xhsmsAccount;
+
+    @Value("${xhsmsPwd}")
+    private String xhsmsPwd;
 
     @Value("${server.port}")
     private String port;
@@ -304,6 +312,8 @@
                             sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
                         } else if (active.equals("xh")) {
                             sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+                        } else if (active.equals("hzszlyy")) {
+                            sendMagParam.setContent("銆愭澀宸炲競鑲跨槫鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
                         }
 
                     } else if (type == 2) {
@@ -332,6 +342,8 @@
                             sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
                         } else if (active.equals("druid")) {
                             sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+                        } else if (active.equals("hzszlyy")) {
+                            sendMagParam.setContent("銆愭澀宸炲競鑲跨槫鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
                         }
                     } else if (type == 3) {
                         //瀹f暀
@@ -355,6 +367,8 @@
                                 sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
                             } else if (active.equals("xh")) {
                                 sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
+                            } else if (active.equals("hzszlyy")) {
+                                sendMagParam.setContent("銆愭澀宸炲競鑲跨槫鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
                             }
                         } else if (heLibrary.getHetype().equals("2")) {
                             //閫氱煡
@@ -419,6 +433,24 @@
                         } else {
                             setFailPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�: " + data, "5");
                             throw new BaseException("鐭俊鍙戦�佸け璐�");
+                        }
+                    } else if (active.equals("hzszlyy")) {
+                        //甯備竴
+                        long timestamp = new Date().getTime();
+                        String sign = Md5Utils.hash(xhsmsAccount + timestamp + Md5Utils.hash(xhsmsPwd));
+                        String content = sendMagParam.getContent();
+                        String jsonMsg = "{" + "\"userName\": \"" + xhsmsAccount + "\"," + "\"content\": \"" + content + "\"," + "\"phoneList\": [" + sendMagParam.getPhone() + "]," + "\"timestamp\": " + timestamp + "," + "\"sign\": \"" + sign + "\"" + "}";
+                        s = HttpUtil.postJsonRequest(xhsmsPath, jsonMsg);
+                        log.info("------甯備竴鐭俊鍙戦�佺殑鍊间负锛歿}", s);
+                        if (StringUtils.isNotEmpty(s)) {
+                            JSONObject jsonObject = JSONObject.parseObject(s);
+                            Object code = jsonObject.get("code");
+                            if (code.equals(0)) {
+                                s = "true";
+                            } else {
+                                setFailPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�", "5");
+                                throw new BaseException("鐭俊鍙戦�佸け璐�");
+                            }
                         }
                     }
                     if (s.equals("true")) {
@@ -539,6 +571,7 @@
                     //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D
                     log.error("鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D锛歿}", patArchive.getOrgid());
                     List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid());
+                    //甯備竴鍖婚櫌 涓嶆牎楠�
                     if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) {
                         serviceSubtask.setCurrentPreachform(sendPreachform);
                         serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform()));
@@ -548,31 +581,36 @@
                         setFailPreachForm(serviceSubtask, sendPreachform, "璇ユ満鏋勭殑鍏紬鍙烽厤缃俊鎭笉鍏紝鏃犳硶閫氳繃鍏紬鍙峰彂閫�", "5");
                         continue;
                     }
-
-                    String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskName(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx);
-                    log.error("wxCode鐨勫�间负:{}", wxCode);
-                    Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
-                    log.error("map鐨勫�间负:{}", map);
-                    if (!map.isEmpty()) {
-                        serviceSubtask.setResult("success");
-                        serviceSubtask.setSendstate(3L);
-                        log.error("aBoolean鐨勫�间负:{}", aBoolean);
-                        if (map.get("succ").toString().equals("true")) {
-                            aBoolean = true;
-                        }
-                        if (aBoolean == false) {
-                            ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
-                            serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
-                            serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
-                            serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
-                            serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
-                            serviceSubtaskRecord.setPreachform("5");
-                            serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
-                            serviceSubtaskRecord.setRemark(ObjectUtils.isNotEmpty(map.get("msg")) ? map.get("msg").toString() : null);
-                            serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
-                            //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓�
-                            setFailPreachForm(serviceSubtask, sendPreachform, "鍏紬鍙峰彂閫佸け璐�", "5");
-                            continue;
+                    String wxCode = "";
+                    if (active.equals("hzszlyy")) {
+                        wxCode = smsUtils.sendChat(url, patArchive.getTelcode(), serviceSubtask.getSfzh());
+                        log.info(wxCode);
+                    }else {
+                        wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskName(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx);
+                        log.error("wxCode鐨勫�间负:{}", wxCode);
+                        Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
+                        log.error("map鐨勫�间负:{}", map);
+                        if (!map.isEmpty()) {
+                            serviceSubtask.setResult("success");
+                            serviceSubtask.setSendstate(3L);
+                            log.error("aBoolean鐨勫�间负:{}", aBoolean);
+                            if (map.get("succ").toString().equals("true")) {
+                                aBoolean = true;
+                            }
+                            if (aBoolean == false) {
+                                ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
+                                serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
+                                serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
+                                serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
+                                serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
+                                serviceSubtaskRecord.setPreachform("5");
+                                serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
+                                serviceSubtaskRecord.setRemark(ObjectUtils.isNotEmpty(map.get("msg")) ? map.get("msg").toString() : null);
+                                serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
+                                //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓�
+                                setFailPreachForm(serviceSubtask, sendPreachform, "鍏紬鍙峰彂閫佸け璐�", "5");
+                                continue;
+                            }
                         }
                     }
                 } catch (Exception e) {
@@ -789,7 +827,7 @@
             serviceSubtaskPreachform1.setRemark(remark);
             serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1);
             //濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡,骞朵笖鏈杩樻槸鍙戦�佸け璐ワ紝閭g洿鎺ュ皢serviceSubtask鐨剆endstate鐘舵�佹敼鎴�5灏辫浜�(鍏ㄥけ璐ヤ簡)
-            if (serviceSubtaskPreachform1.getSort() == spSize.size()) {
+            if (CollectionUtils.isNotEmpty(spSize) && serviceSubtaskPreachform1.getSort() == spSize.size()) {
                 if (serviceSubtaskPreachform1.getSort() == spSize.size()) {
                     if (failSendstate.equals("4") || failSendstate.equals("5")) {
                         serviceSubtask.setCurrentPreachform(preachform);

--
Gitblit v1.9.3