From a86bfd0bdad90f87c0c3b1b0ce9d2db91841a6d2 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 03 二月 2026 17:12:13 +0800
Subject: [PATCH] 【丽水】随访及时率:应随访时间<实际随访时间,统计数据修改

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java |  153 ++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 120 insertions(+), 33 deletions(-)

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 301aa60..4b40ebf 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
@@ -11,10 +11,8 @@
 import com.ruoyi.common.enums.MsgLSEnum;
 import com.ruoyi.common.enums.ServiceFromEnum;
 import com.ruoyi.common.enums.WxGZHEnum;
-import com.ruoyi.common.utils.HttpUtil;
-import com.ruoyi.common.utils.OkHttpExample;
-import com.ruoyi.common.utils.RSAPublicKeyExample;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.*;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.common.utils.sms.smsUtils;
 import com.ruoyi.quartz.service.ICollectHISService;
@@ -336,7 +334,6 @@
                     serviceSLTDInhospReqVO.setStartHeadTime(nowTime);
                     serviceSLTDInhospReqVO.setStartTailTime(nowTime);
                     List<String> listStr = new ArrayList<>();
-//                    list.add("FH0108.02");
                     listStr.add("FH0109.26");
                     serviceSLTDInhospReqVO.setStatusList(listStr);
                     log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
@@ -373,9 +370,6 @@
                     serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
                     log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
                 }
-//                SysConfig sysConfig = sysConfigs.get(0);
-//                sysConfig.setConfigValue(nowTime);
-//                configService.updateConfig(sysConfig);
             } catch (Exception e) {
                 log.error("銆恉ealHisData銆戠渷绔嬪悓寰锋暟鎹噰闆嗗紓甯�", e);
             }
@@ -472,11 +466,11 @@
      * 澶勭悊琛ュ伩浠诲姟
      */
     public void compensateTask() {
-        //鑾峰彇鍒皊endstate=3 骞朵笖 visit_time涓轰粖澶╃殑subtask
+        //鑾峰彇鍒皊endstate=3 骞朵笖 visit_time涓哄皬浜庣瓑浜庝粖澶╃殑subtask
         ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
         serviceSubtaskVO.setSendstate(3L);
         serviceSubtaskVO.setVisitTime(new Date());
-        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.getCompensateServiceSubtaskList(serviceSubtaskVO);
         for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
             //鏍规嵁褰撳墠鐨勬墽琛屾柟寮忥紝鑾峰彇涓嬩竴绉嶆墽琛屾柟寮�
             ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
@@ -655,6 +649,9 @@
                         if (serviceSubtask.getType().equals("1"))
                             sendMagParam.setUrl(localIP + ":" + req_path + "/sf?p=" + format);
                         sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+                        if (active.equals("xh")) {
+                            sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+                        }
                     } else {
                         HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid());
                         if (heLibrary.getHetype().equals("1")) {
@@ -668,7 +665,9 @@
                         } else if (heLibrary.getHetype().equals("2")) {
                             //閫氱煡
                             sendMagParam.setPhone(serviceSubtask.getPhone());
-                            sendMagParam.setContent(heLibrary.getPreachcontent());
+                            // 鏇挎崲鏂囨湰鍐呭涓殑鍙橀噺
+                            String content = getObject(serviceSubtask, heLibrary.getPreachcontent());
+                            sendMagParam.setContent(content);
                         }
 
                     }
@@ -698,7 +697,7 @@
                         log.info("-----------map鐨勫�间负锛歿}", msgInfo);
                         String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), msgInfo.get("tokenUrl"));
                         if (ObjectUtils.isNotEmpty(msgInfo) && StringUtils.isEmpty(msgInfo.get("address"))) {
-                            setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�, 鏃堕棿:" + now , "5");
+                            setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�, 鏃堕棿:" + now, "5");
                             return;
                         }
                         log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫侊紝鍦板潃锛歿}锛屽弬鏁帮細{}锛屾満鏋処D锛歿}", msgInfo.get("address"), sendMagParam, serviceSubtask.getOrgid());
@@ -714,8 +713,13 @@
                         log.info("sltd杩涙潵浜嗗悧锛焮}   ,---sendMagParam.getContent()鐨勫弬鏁颁负锛歿}", active, sendMagParam.getContent());
                         //鐪佺珛鍚屽痉鐨勭煭淇″彂閫佹柟寮�
                         String data = MessageSend.sendMsg(sendMagParam.getContent(), "6", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
-                        if (StringUtils.isNotEmpty(data) && data.contains("result=0")) {
-                            isSuccess = "true";
+                        if (StringUtils.isNotEmpty(data)) {
+                            ObjectMapper mapper = new ObjectMapper();
+                            JsonNode root = mapper.readTree(data);
+                            String status = root.get("result").get(0).get("status").asText();
+                            if (status.equals("00000")) {
+                                isSuccess = "true";
+                            }
                         }
                     } else if (active.equals("hzszlyy")) {//甯備竴鍖婚櫌
                         String content = sendMagParam.getContent().replace("銆愭柊鍗庡尰闄€��", "");
@@ -742,11 +746,11 @@
                     serviceSubtask.setSendstate(3L);
                     if (StringUtils.isNotEmpty(isSuccess) && isSuccess.equals("true")) {
                         serviceSubtask.setResult("success");
-                        serviceSubtask.setRemark("鐭俊鍙戦�佹垚鍔�");
+                        serviceSubtask.setRemark(serviceSubtask.getRemark() + "," + "鐭俊鍙戦�佹垚鍔�");
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佹垚鍔�", "2");
                     } else {
                         serviceSubtask.setResult("error");
-                        serviceSubtask.setRemark("鐭俊鍙戦�佸け璐�" + now);
+                        serviceSubtask.setRemark(serviceSubtask.getRemark() + "," + "鐭俊鍙戦�佸け璐�" + now);
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�" + now, "5");
                     }
                 } catch (Exception e) {
@@ -770,6 +774,8 @@
 
                     //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D
                     List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid());
+                    //甯備竴鍖婚櫌 涓嶆牎楠�
+
                     if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) {
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戣鏈烘瀯鐨勫叕浼楀彿閰嶇疆淇℃伅涓嶅叏锛屾棤娉曢�氳繃鍏紬鍙峰彂閫�", "4");
                         return;
@@ -783,19 +789,23 @@
                     //甯備竴鍖婚櫌
                     if (active.equals("hzszlyy")) {
                         //澶勭悊涓枃涔辩爜闂
-                        String title = URLEncoder.encode("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��", StandardCharsets.UTF_8.toString());
-                        String content = URLEncoder.encode("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��", StandardCharsets.UTF_8.toString());
-                        String encodedUrl = URLEncoder.encode(url, StandardCharsets.UTF_8.toString());
-                        String urlTemp = "http://192.200.54.14:5003/sfjk/SendMessage?sfzh=" + serviceSubtask.getSfzh() +
-                                "&title=" + title +
-                                "&content=" + content +
-                                "&phone=" + patArchive.getTelcode() +
-                                "&url=" + encodedUrl +
-                                "&key=ff76f8904f5f32b5ee1739e8ea46e60g";
-//                        HttpUtils.sendGet(urlTemp);
-                        String sendMsg = "";
-                        sendMsg = HttpUtils.sendPost(urlTemp);
-                        log.info(sendMsg);
+                        /**String title = URLEncoder.encode("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��", StandardCharsets.UTF_8.toString());
+                         String content = URLEncoder.encode("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��", StandardCharsets.UTF_8.toString());
+                         String encodedUrl = URLEncoder.encode(url, StandardCharsets.UTF_8.toString());
+                         String urlTemp = "http://192.200.54.14:5003/sfjk/SendMessage?sfzh=" + serviceSubtask.getSfzh() +
+                         "&title=" + title +
+                         "&content=" + content +
+                         "&phone=" + patArchive.getTelcode() +
+                         "&url=" + encodedUrl +
+                         "&key=ff76f8904f5f32b5ee1739e8ea46e60g";
+                         //                        HttpUtils.sendGet(urlTemp);
+                         String sendMsg = "";
+                         sendMsg = HttpUtils.sendPost(urlTemp);
+                         log.info(sendMsg); **/
+
+                        wxCode = smsUtils.sendChat(url, patArchive.getTelcode(), serviceSubtask.getSfzh());
+                        log.info(wxCode);
+
                     } else {
                         wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx);
                     }
@@ -866,7 +876,15 @@
 
         // 鎯呭喌1锛歝urrentPreachform涓虹┖锛屽彇sort涓�1鐨刾reachform
         if (StringUtils.isEmpty(serviceSubtask.getCurrentPreachform())) {
-            return serviceSubtaskPreachforms.stream().filter(item -> item.getSort() == 1L).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null);
+            String firstPreachform = serviceSubtaskPreachforms.stream().filter(item -> item.getSort() == 1L).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null);
+
+            //鏇存柊涓�涓嬪綋鍓嶅彂閫佹椂闂�
+            if (StringUtils.isNotEmpty(firstPreachform)) {
+                serviceSubtaskPreachform.setPreachform(firstPreachform);
+                serviceSubtaskPreachform.setCurrentSendTime(new Date());
+                serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform);
+            }
+            return firstPreachform;
         }
 
         // 鎯呭喌2锛歝urrentPreachform涓嶄负绌猴紝鎵句笅涓�涓猻ort
@@ -896,7 +914,6 @@
 
             // 褰搒ort绛変簬鍒楄〃size鏃讹紝涓嬩竴涓猻ort涓�-1
             Long nextSort = currentSort.get() + 1;
-
             //濡傛灉褰撳墠鐨勫彂閫佹柟寮忎笉涓虹┖锛屽苟涓斿紑濮嬪噯澶囪鐢ㄤ笅涓�绉嶆柟寮忓彂閫佷簡锛岄偅褰撳墠鐨勮偗瀹氭病鏈夊彂閫佹垚鍔燂紝闇�瑕佽缃け璐�
             // (杩欓噷涓昏鏄紝浜哄伐濡傛灉娌℃湁闅忚锛岀劧鍚庡埌鍏紬鍙风殑鏃跺�欙紝灏变笉浼氬啀鍘荤浜哄伐鏄惁鎴愬姛锛屼汉宸ョ殑鐘舵�佷細涓�鐩村崱鍦�2鐨勭姸鎬佷笂)
             if (StringUtils.isNotEmpty(serviceSubtask.getCurrentPreachform())) {
@@ -904,7 +921,34 @@
             }
 
             // 鎵惧埌涓嬩竴涓猻ort瀵瑰簲鐨刾reachform
-            return serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1");
+            String nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1");
+
+            //寰俊宸插彂閫併�佸凡棰嗗彇璺宠繃鐭俊鍙戦�侊紝杩涜浜哄伐 -涓芥按涓尰闄�
+            if (active.equals("47231022633110211A2101")) {
+                //鑾峰彇褰撳墠鍙戦�佹柟寮�
+                ServiceSubtaskPreachform currentServiceSubtaskPreachform = serviceSubtaskPreachforms.stream().filter(item -> item.getSort().equals(currentSort.get())).findFirst().orElse(new ServiceSubtaskPreachform());
+                //褰撳墠鍙戦�佹柟寮忎负寰俊鐨勶紝涓斾笅涓�鍙戦�佹柟寮忎负鐭俊鐨勶紝寰俊鍙戦�佺姸鎬佷负宸插彂閫併�佸凡棰嗗彇鐨勶紝璺宠繃鐭俊姝ラ
+                if (currentServiceSubtaskPreachform.getPreachform().equals("5")
+                        && (currentServiceSubtaskPreachform.getSendstate().equals("2")
+                        || currentServiceSubtaskPreachform.getSendstate().equals("3"))) {
+                    if(StringUtils.isNotEmpty(nextPreachform) && nextPreachform.equals("2")){
+                        log.error("銆恠fHandlle銆戝井淇″凡鍙戦�侊紝鐭俊涓嶅彂閫侊紝璺宠浆浜哄伐");
+                        setSuccessPreachForm(serviceSubtask, "-1", "寰俊宸插彂閫侊紝鐭俊涓嶅彂閫侊紝璺宠浆浜哄伐", "6");
+                        //璺宠繃鐭俊锛屾墽琛屼笅涓�姝�
+                        Long newNextSort = nextSort + 1;
+                        //鎵惧埌鐭俊鍐嶄笅涓�涓猻ort瀵瑰簲鐨刾reachform
+                        nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> newNextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1");
+                    }
+                }
+            }
+            //鏇存柊涓�涓嬪綋鍓嶅彂閫佹椂闂�
+            if (StringUtils.isNotEmpty(nextPreachform)) {
+                serviceSubtaskPreachform.setCurrentSendTime(new Date());
+                serviceSubtaskPreachform.setPreachform(nextPreachform);
+                serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform);
+            }
+
+            return nextPreachform;
         }
 
         return null;
@@ -1039,10 +1083,10 @@
             serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
             serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid());
             serviceSubtaskPreachform.setSendstate(failSendstate);
+            serviceSubtaskPreachform.setCurrentSendTime(new Date());
             serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform);
             return true;
         }
-
 
         ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
         serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
@@ -1097,4 +1141,47 @@
         serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
         return true;
     }
+
+    /**
+     * 閫氶厤绗﹀彉閲忔浛鎹�
+     *
+     * @param serviceSubtask
+     * @param scriptContent
+     * @return
+     */
+    private String getObject(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, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "");
+            }
+        }
+        if (StringUtils.isEmpty(scriptContent)) {
+            return scriptContent;
+        }
+        scriptContent = scriptContent.replace("${name}", StringUtils.isNotEmpty(serviceSubtask.getSendname()) ? serviceSubtask.getSendname() : "");
+        scriptContent = scriptContent.replace("${dzz}", StringUtils.isNotEmpty(serviceSubtask.getAddr()) ? serviceSubtask.getAddr() : "");
+        scriptContent = scriptContent.replace("${phone}", StringUtils.isNotEmpty(serviceSubtask.getTelcode()) ? serviceSubtask.getTelcode() : "");
+
+        return scriptContent;
+    }
+
+    /**
+     * 鑾峰彇浠诲姟閲岀殑閫氶厤绗�
+     *
+     * @param taskId
+     * @return
+     */
+    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;
+    }
+
 }

--
Gitblit v1.9.3