From 6659135780e718758417efde4c8c351c69e3755b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 11 十二月 2025 15:52:19 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java |  137 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 117 insertions(+), 20 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 37030a9..25b502e 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
@@ -1,6 +1,8 @@
 package com.ruoyi.web.component;
 
 import com.alibaba.fastjson2.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -15,6 +17,7 @@
 import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
 import com.smartor.common.LSHospTokenUtil;
 import com.smartor.domain.*;
@@ -79,7 +82,7 @@
     private RedisCache redisCache;
 
     @Autowired
-    private ServiceTaskMapper svyTaskMapper;
+    private ServiceTaskMapper serviceTaskMapper;
 
     @Autowired
     private ServiceSubtaskMapper serviceSubtaskMapper;
@@ -143,7 +146,7 @@
             if (commonTaskcallMQ.getUpdateSendstate() == null || commonTaskcallMQ.getUpdateSendstate() == 1) {
                 serviceTask.setSendState(5L);
                 serviceTask.setFail(1L);
-                svyTaskMapper.updateServiceTask(serviceTask);
+                serviceTaskMapper.updateServiceTask(serviceTask);
             }
         } catch (Exception e) {
             Integer integer = redisCache.getCacheObject(commonTaskcallMQ.getTaskid().toString());
@@ -152,7 +155,7 @@
                 ServiceTask serviceTask = new ServiceTask();
                 serviceTask.setTaskid(Long.valueOf(commonTaskcallMQ.getTaskid().toString()));
                 serviceTask.setFail(0L);
-                svyTaskMapper.updateServiceTask(serviceTask);
+                serviceTaskMapper.updateServiceTask(serviceTask);
                 //灏嗘秷鎭粠闃熷垪涓垹闄�
             } else if (integer == null) {
                 redisCache.setCacheObject(commonTaskcallMQ.getTaskid().toString(), 1, 120, TimeUnit.MINUTES);
@@ -355,8 +358,9 @@
                             }
                         } else if (heLibrary.getHetype().equals("2")) {
                             //閫氱煡
+                            String sc = getSC(serviceSubtask, heLibrary.getPreachcontent());
                             sendMagParam.setPhone(serviceSubtask.getPhone());
-                            sendMagParam.setContent(heLibrary.getPreachcontent());
+                            sendMagParam.setContent(sc);
                         }
                     }
 
@@ -367,28 +371,39 @@
                         Map<String, String> req = new HashMap<>();
                         req.put("phone", sendMagParam.getPhone());
                         req.put("content", sendMagParam.getContent());
+                        log.info("content杩斿洖鍊肩殑鍐呭鏄細{}", sendMagParam.getContent());
                         s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
                     } else if (active.equals("ls")) {
-                        String url = configService.selectConfigByKey("token.360", serviceSubtask.getOrgid());
-                        log.info("-------00token.360鐨刄RL涓猴細{}", url);
+//                        String url = configService.selectConfigByKey("token.360", serviceSubtask.getOrgid());
+//                        log.info("-------00token.360鐨刄RL涓猴細{}", url);
+
                         //涓芥按鐨勭煭淇″彂閫佹柟寮�
-                        Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
-                        log.info("-----------map鐨勫�间负锛歿}", map);
-                        String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), url);
-                        log.info("-----------token鐨勫�间负锛歿}", token);
-                        if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) {
+                        SysConfig config = new SysConfig();
+                        config.setConfigKey("ls.msg.info");
+                        config.setOrgid(serviceSubtask.getOrgid());
+                        List<SysConfig> sysConfigs = configService.selectConfigList(config);
+                        Map<String, String> msgInfo = new HashMap<>();
+                        if (CollectionUtils.isNotEmpty(sysConfigs)) {
+                            String configValue = sysConfigs.get(0).getConfigValue();
+                            ObjectMapper objectMapper = new ObjectMapper();
+                            if (StringUtils.isNotEmpty(configValue)) {
+                                msgInfo = objectMapper.readValue(configValue, Map.class);
+                            }
+                        }
+                        log.info("-----------map鐨勫�间负锛歿}", msgInfo);
+
+                        if (ObjectUtils.isNotEmpty(msgInfo) && StringUtils.isEmpty(msgInfo.get("address"))) {
                             serviceSubtask.setCurrentPreachform(sendPreachform);
                             serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform()));
                             setFailPreachForm(serviceSubtask, descByCode, "鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�", "5");
                             serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                             continue;
                         }
-                        log.info("---------mq涓芥按鐭俊鍙戦�佸叆鍙俛ddress锛歿},  sendMagParam:{},  orgid:{}-------", map.get("address"), sendMagParam, serviceSubtask.getOrgid());
-                        String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token);
-                        log.info("---------涓芥按鐭俊鍙戦�佺粨鏋滐細{}-------", dxCode);
+
+                        String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), msgInfo.get("tokenUrl"));
+                        String dxCode = getDXCode(msgInfo.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), msgInfo.get("sendPersonId"), msgInfo.get("sendPersonName"), MsgLSEnum.getHeaderByCode(msgInfo), token);
                         ObjectMapper objectMapper = new ObjectMapper();
                         Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class);
-                        log.info("---------涓芥按鐭俊鍙戦�佺粨鏋�--textParam鐨勫�间负锛歿}-------", textParam);
                         String code = textParam.get("Code").toString();
                         if (code.equals("0")) {
                             s = "true";
@@ -397,9 +412,8 @@
                             throw new BaseException("鐭俊鍙戦�佸け璐�");
                         }
                     } else if (active.equals("sltd")) {
-                        log.info("-------杩涙潵浜嗕笉锛燂紵");
                         //鐪佺珛鍚屽痉鐨勭煭淇″彂閫佹柟寮�
-                        String data = MessageSend.sendMsg(sendMagParam.getContent(), "2", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
+                        String data = MessageSend.sendMsg(sendMagParam.getContent(), "6", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
                         if (StringUtils.isNotEmpty(data) && data.contains("result=0")) {
                             s = "true";
                         } else {
@@ -493,6 +507,24 @@
                         serviceOutPath.setRadix(format);
                         serviceOutPath.setUpdateTime(new Date());
                         iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+
+                        //闇�瑕侀�氳繃妯℃澘ID鍘诲垽鏂鍙戠殑鍐呭鏄鏁欒繕鏄�氱煡
+//                        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid());
+//                        if (heLibrary.getHetype().equals("1")) {
+//                            sendMagParam.setPhone(serviceSubtask.getPhone());
+//                            sendMagParam.setUrl(ip + ":" + req_path + "/xj?p=" + format);
+//                            if (active.equals("ls") || active.equals("sltd")) {
+//                                sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
+//                            } else if (active.equals("xh")) {
+//                                sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
+//                            }
+//                        } else if (heLibrary.getHetype().equals("2")) {
+//                            //閫氱煡
+//                            String sc = getSC(serviceSubtask, heLibrary.getPreachcontent());
+//                            sendMagParam.setPhone(serviceSubtask.getPhone());
+//                            sendMagParam.setContent(sc);
+//                        }
+
                         url = ip + ":" + req_path + "/xj?p=" + format;
                     }
                     if (StringUtils.isEmpty(patArchive.getPatidHis())) {
@@ -581,6 +613,32 @@
 
     }
 
+    private String getSC(ServiceSubtask serviceSubtask, String scriptContent) {
+        Map<String, Map<String, String>> param = getParam(serviceSubtask.getTaskid());
+        for (Map<String, String> map : param.values()) {
+            for (String key : map.keySet()) {
+                scriptContent = scriptContent.replace(key, org.apache.commons.lang3.StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "");
+            }
+        }
+        scriptContent = scriptContent.replace("${name}", org.apache.commons.lang3.StringUtils.isNotEmpty(serviceSubtask.getSendname()) ? serviceSubtask.getSendname() : "");
+        scriptContent = scriptContent.replace("${dzz}", org.apache.commons.lang3.StringUtils.isNotEmpty(serviceSubtask.getAddr()) ? serviceSubtask.getAddr() : "");
+        scriptContent = scriptContent.replace("${phone}", org.apache.commons.lang3.StringUtils.isNotEmpty(serviceSubtask.getTelcode()) ? serviceSubtask.getTelcode() : "");
+
+        return scriptContent;
+    }
+
+    private Map<String, Map<String, String>> getParam(Long taskId) {
+        ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(taskId);
+        ObjectMapper objectMapper = new ObjectMapper();
+        Map<String, Map<String, String>> serviceTaskMap = null;
+        try {
+            serviceTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class);
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+        return serviceTaskMap;
+    }
+
     private Date getNextVisitTime(Long subid, Long taskid, Date visitTime, String currentPreachform) {
         ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
         serviceSubtaskPreachform.setSubid(subid);
@@ -604,6 +662,16 @@
     private String getSendPreachform(ServiceSubtaskPreachform serviceSubtaskPreachform, ServiceSubtask serviceSubtask) {
         log.info("-----getSendPreachform鐨剆erviceSubtaskPreachform鍏ュ弬锛歿},------serviceSubtask:{}", serviceSubtaskPreachform, serviceSubtask);
         List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
+        if (CollectionUtils.isEmpty(serviceSubtaskPreachforms)) {
+            //濡傛灉serviceSubtaskPreachforms涓虹┖鐨勮瘽锛屽垯闇�瑕佽繘琛屾柊澧炰竴涓�
+            List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = addServiceSubtaskPreachform(serviceSubtask, "1");
+            if (CollectionUtils.isEmpty(serviceSubtaskPreachformList)) {
+                log.error("鍙戦�佹柟寮忓け璐ヤ簡serviceSubtask鐨勫叆鍙備负锛歿}", serviceSubtask);
+                return null;
+            }
+            serviceSubtaskPreachforms = serviceSubtaskPreachformList;
+        }
+
 
         // 鎯呭喌1锛歝urrentPreachform涓虹┖锛屽彇sort涓�1鐨刾reachform
         if (StringUtils.isEmpty(serviceSubtask.getCurrentPreachform())) {
@@ -637,6 +705,35 @@
         return null;
     }
 
+    private List<ServiceSubtaskPreachform> addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) {
+        //灏唒reachformDesc鐨刯son瀵硅薄锛屾斁鍒發ist闆嗗悎涓�
+        ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+        String preachformDesc = serviceTask.getPreachformDesc();
+
+        List<ServiceSubtaskPreachform> sspl = null;
+        ObjectMapper objectMapper = new ObjectMapper();
+        if (org.apache.commons.lang3.StringUtils.isNotEmpty(preachformDesc)) {
+            try {
+                sspl = objectMapper.readValue(preachformDesc, new TypeReference<List<ServiceSubtaskPreachform>>() {
+                });
+            } catch (JsonProcessingException e) {
+                log.error("mq--preachform杞琇ist<ServiceSubtaskPreachform>鎶ラ敊浜嗭細{}", e.getMessage());
+            }
+            for (ServiceSubtaskPreachform serviceSubtaskPreachform : sspl) {
+                serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
+                serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
+                //杩欎釜sendstate闇�瑕佸湪鏁版嵁搴撹缃竴涓粯璁ゅ�间负鈥�1鈥�
+                serviceSubtaskPreachform.setSendstate("1");
+                if (StringUtils.isNotEmpty(sendstate)) serviceSubtaskPreachform.setSendstate(sendstate);
+
+                serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid());
+                serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform);
+            }
+
+        }
+
+        return sspl;
+    }
 
     /**
      * @param serviceSubtask
@@ -674,8 +771,9 @@
         serviceSubtaskPreachform.setPreachform(preachform);
         //1:鏈彂閫佺姸鎬�
         serviceSubtaskPreachform.setSendstate("1");
-        log.error("---serviceSubtaskPreachform鍏ュ弬涓猴細{}", serviceSubtaskPreachform);
+        log.info("---serviceSubtaskPreachform鍏ュ弬涓猴細{}", serviceSubtaskPreachform);
         List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
+        log.info("---serviceSubtaskPreachform杩斿弬涓猴細{}", serviceSubtaskPreachforms);
         //鐢佃瘽鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2锛屽洜涓猴紝鏁版嵁鍙兘鍗″湪闃熷垪閲屼簡(涔熸湁鍙兘娌℃湁鎷夊彇锛宻endstate=1,鎵�浠ュ鏋滄槸鐢佃瘽鐘舵�佸垽鏂璼erviceSubtaskPreachforms鏄笉鏄负绌�)
         if (preachform.equals("3") && CollectionUtils.isEmpty(serviceSubtaskPreachforms)) {
             serviceSubtaskPreachform.setSendstate("2");
@@ -814,14 +912,13 @@
 
         String body = new Gson().toJson(map);
 
-//        String result = HttpUtils.sendPost(address, body);
         String result = null;
         try {
             result = OkHttpExample.sendPostRequest(address, body, token);
         } catch (IOException e) {
             e.printStackTrace();
         }
-        log.error("--------result鐨勫�间负锛歿}-----", result);
+        log.info("--------result鐨勫�间负锛歿}-----", result);
 
         JSONObject jsonObject = JSONObject.parseObject(result);
         String code = (String) jsonObject.toString();

--
Gitblit v1.9.3