From 0c3f4ea5accd7b8cc667013f0c88abe4a6c1e96e Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期二, 21 七月 2026 15:54:42 +0800
Subject: [PATCH] 【丽水】短信发送

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java |  725 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 536 insertions(+), 189 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 78612b7..0422675 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
@@ -6,6 +6,7 @@
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.dx.MessageSend;
 import com.ruoyi.common.enums.MsgLSEnum;
@@ -17,8 +18,12 @@
 import com.ruoyi.quartz.service.ICollectHISService;
 import com.ruoyi.quartz.util.CreateDataTable;
 import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysDeptService;
 import com.smartor.common.LSHospTokenUtil;
+import com.smartor.common.MtSubmitSmUtil;
+import com.smartor.common.QwenLLMUtil;
 import com.smartor.domain.*;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
@@ -42,6 +47,7 @@
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 import static cn.hutool.core.convert.Convert.toHex;
@@ -108,6 +114,9 @@
 
     @Value("${xhsmsPwd}")
     private String xhsmsPwd;
+    // 铏氭嫙鎺ュ叆鐮�
+    @Value("${xhsmsjrm}")
+    private String xhsmsjrm;
 
     @Value("${pub_key}")
     private String pub_key;
@@ -128,11 +137,13 @@
     private IServiceSubtaskRecordService serviceSubtaskRecordService;
 
     @Autowired
-    IBaseSmsaccountService baseSmsaccountService;
+    IIcd10Service iIcd10Service;
 
     @Autowired
     IPatArchiveService patArchiveService;
 
+    @Autowired
+    ISysDeptService sysDeptService;
 
     @Autowired
     IPatMedOuthospService patMedOuthospService;
@@ -162,9 +173,13 @@
     @Value("${server.port}")
     private String port;
 
+    @Autowired
+    private MtSubmitSmUtil mtSubmitSmUtil;
 
     @Value("${spring.profiles.active}")
     private String active;
+    @Autowired
+    private SysConfigMapper sysConfigMapper;
 
     public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
         System.out.println(StringUtils.format("鎵ц澶氬弬鏂规硶锛� 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i));
@@ -222,15 +237,29 @@
         serviceSubtaskAnswerService.saveQuestionAnswer(null, 0L);
     }
 
+    /**
+     * 鑾峰彇棰勭害鍋滆瘖璁板綍淇℃伅
+     *
+     */
+    public void getAppointRecordInfo() {
+        LocalDateTime tomorrowStart = LocalDate.now().plusDays(1).atStartOfDay(); // 鏄庡ぉ 00:00:00
+        LocalDateTime tomorrowEnd = tomorrowStart.plusDays(1).minusSeconds(1);     // 鏄庡ぉ 23:59:59
+        ixhGatherPatArchiveService.getAppointRecordInfo("2", tomorrowStart, tomorrowEnd);
+    }
 
     /**
      * HIS鏁版嵁閲囬泦
      * 瀹氭椂浠诲姟锛氶噰闆嗘偅鑰呬俊鎭�佸嚭闄€�侀棬璇婃暟鎹�
+     * todayZeroStr  褰撳墠鐨勬椂闂�   渚嬪锛�2026-05-06 00:00:00
      */
-    public void dealHisData() {
+    public void dealHisData(String todayZeroStr) {
         log.info("銆恉ealHisData銆戝紑濮嬫墽琛孒IS鏁版嵁閲囬泦浠诲姟");
         // 鑾峰彇鏄ㄥぉ0鐐瑰埌浠婂ぉ0鐐圭殑鏃堕棿鑼冨洿
         LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
+        if (StringUtils.isNotBlank(todayZeroStr)) {
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            todayZero = LocalDateTime.parse(todayZeroStr, formatter);
+        }
         LocalDateTime yesterdayZero = todayZero.minusDays(1);
         log.info("銆恉ealHisData銆戦噰闆嗘椂闂磋寖鍥达細{} ~ {}", yesterdayZero, todayZero);
 
@@ -264,7 +293,9 @@
             } catch (Exception e) {
                 log.error("銆恉ealHisData銆戞渤鍗楁暟鎹噰闆嗗紓甯�", e);
             }
-        } else if (active.trim().equals("sltd")) {
+        } else if (active.trim().equals("sltd") || active.trim().equals("nhfy")) {
+            //鐪佺珛鍚屽痉涓庡崕鍗楅檮涓�鐢ㄥ悓涓�濂楅噰闆嗘柟娉曪紙閮芥槸鏉ユ湭鏉ユ彁渚涳級
+
             try {
                 //鑾峰彇鏄惁闇�瑕侀噰闆嗙敤鎴枫�侀儴闂ㄤ俊鎭�
                 SysConfig config = new SysConfig();
@@ -308,69 +339,96 @@
                         aBoolean = serviceSLTDHealthcareRecordService.queryHospUserInfoList(reqVO);
                     }
                     log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滅敤鎴蜂俊鎭�濈粨鏉熼噰闆嗘暟鎹細{}", aBoolean);
+                    //鐤剧梾瀛楀吀閲囬泦
+                    iIcd10Service.queryAddIcd10();
                 }
-                // 鐪佺珛鍚屽痉鏁版嵁閲囬泦
-                for (Long cid : campusidList) {
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-                    String nowTime = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-                    ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO();
-                    serviceSLTDInhospReqVO.setOrgId("20001001");
-                    serviceSLTDInhospReqVO.setCampusId(cid);
-                    serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
-                    serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
-                    List<String> list = new ArrayList<>();
-//                    list.add("FH0108.02");
-                    list.add("FH0109.22");
-                    list.add("FH0109.23");
-                    list.add("FH0109.53");
-                    serviceSLTDInhospReqVO.setStatusList(list);
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
-                    serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
 
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-                    serviceSLTDInhospReqVO.setOrgId("20001001");
-                    serviceSLTDInhospReqVO.setCampusId(cid);
-                    serviceSLTDInhospReqVO.setEncounterTimeStart(null);
-                    serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
-                    serviceSLTDInhospReqVO.setStartHeadTime(nowTime);
-                    serviceSLTDInhospReqVO.setStartTailTime(nowTime);
-                    List<String> listStr = new ArrayList<>();
-                    listStr.add("FH0109.26");
-                    serviceSLTDInhospReqVO.setStatusList(listStr);
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
-                    serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+                // nhfy/sltd鍥炴函30澶╁垎娈甸噰闆嗗垽鏂紙姣忔鏈�澶�7澶╋級
+                boolean isBackfill = (active.trim().equals("nhfy") || active.trim().equals("sltd")) && StringUtils.isNotBlank(todayZeroStr);
+                if (isBackfill) {
+                    DateTimeFormatter dateFmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                    LocalDate segStart = todayZero.toLocalDate().minusDays(30);
+                    LocalDate segEndDate = todayZero.toLocalDate();
+                    int segCount = 0;
+                    while (!segStart.isAfter(segEndDate)) {
+                        LocalDate segEnd = segStart.plusDays(6);
+                        if (segEnd.isAfter(segEndDate)) {
+                            segEnd = segEndDate;
+                        }
+                        segCount++;
+                        log.info("銆恉ealHisData銆憑}鍥炴函绗瑊}娈甸噰闆嗭紝鏃ユ湡鑼冨洿锛歿} ~ {}", active.trim(), segCount, segStart.format(dateFmt), segEnd.format(dateFmt));
+                        for (Long cid : campusidList) {
+                            collectSegmentData(cid, segStart.format(dateFmt), segEnd.format(dateFmt));
+                        }
+                        segStart = segEnd.plusDays(1);
+                    }
+                    log.info("銆恉ealHisData銆憑}鍥炴函閲囬泦瀹屾垚锛屽叡{}娈�", active.trim(), segCount);
+                }
 
-//                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-//                    serviceSLTDInhospReqVO.setStartHeadTime(null);
-//                    serviceSLTDInhospReqVO.setStartTailTime(null);
-//                    serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
-//                    serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
-//                    serviceSLTDInhospReqVO.setStatusList(null);
-//                    List<String> list1 = new ArrayList<>();
-//                    list1.add("FH0108.01");
-//                    list1.add("FH0108.03");
-//                    serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1);
-//                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
-//                    serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
-//                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+                // 鐪佺珛鍚屽痉鏁版嵁閲囬泦锛堥潪鍥炴函妯″紡鎵嶆墽琛岋級
+                if (!isBackfill) {
+                    for (Long cid : campusidList) {
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰烽鍏ラ櫌寮�濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+                        String nowTime = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                        ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO();
+                        serviceSLTDInhospReqVO.setOrgId("20001001");
+                        serviceSLTDInhospReqVO.setCampusId(cid);
+                        serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
+                        serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
+                        if (active.trim().equals("nhfy")) {
+                            serviceSLTDInhospReqVO.setEncounterTimeStart(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                            serviceSLTDInhospReqVO.setEncounterTimeEnd(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        }
+                        List<String> list = new ArrayList<>();
+                        list.add("FH0109.22");
+                        list.add("FH0109.23");
+                        list.add("FH0109.53");
+                        serviceSLTDInhospReqVO.setStatusList(list);
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+                        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
 
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-                    serviceSLTDInhospReqVO.setStartHeadTime(null);
-                    serviceSLTDInhospReqVO.setStartTailTime(null);
-                    serviceSLTDInhospReqVO.setEncounterTimeStart(null);
-                    serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
-                    serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(nowTime);
-                    serviceSLTDInhospReqVO.setPreOutHospitalTailDate(nowTime);
-                    serviceSLTDInhospReqVO.setHealthcareRecordTypeList(null);
-                    List<String> list2 = new ArrayList<>();
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+                        serviceSLTDInhospReqVO.setOrgId("20001001");
+                        serviceSLTDInhospReqVO.setCampusId(cid);
+                        serviceSLTDInhospReqVO.setEncounterTimeStart(null);
+                        serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
+                        serviceSLTDInhospReqVO.setStartHeadTime(nowTime);
+                        serviceSLTDInhospReqVO.setStartTailTime(nowTime);
+                        if (active.trim().equals("nhfy")) {
+                            serviceSLTDInhospReqVO.setStartHeadTime(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                            serviceSLTDInhospReqVO.setStartTailTime(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        }
+                        List<String> listStr = new ArrayList<>();
+                        listStr.add("FH0109.24");
+                        serviceSLTDInhospReqVO.setStatusList(listStr);
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+                        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+                        serviceSLTDInhospReqVO.setStartHeadTime(null);
+                        serviceSLTDInhospReqVO.setStartTailTime(null);
+                        serviceSLTDInhospReqVO.setEncounterTimeStart(null);
+                        serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
+                        serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(nowTime);
+                        serviceSLTDInhospReqVO.setPreOutHospitalTailDate(nowTime);
+                        if (active.trim().equals("nhfy")) {
+                            serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                            serviceSLTDInhospReqVO.setPreOutHospitalTailDate(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        }
+                        serviceSLTDInhospReqVO.setHealthcareRecordTypeList(null);
+                        List<String> list2 = new ArrayList<>();
 //                    list2.add("FH0108.02");
-                    list2.add("FH0109.27");
-                    serviceSLTDInhospReqVO.setStatusList(list2);
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
-                    serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
-                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+                        //鍑洪櫌
+                        list2.add("FH0109.27");
+                        //棰勫嚭闄�
+                        list2.add("FH0109.25");
+                        serviceSLTDInhospReqVO.setStatusList(list2);
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+                        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+                    }
                 }
 
             } catch (Exception e) {
@@ -378,6 +436,176 @@
             }
         }
     }
+
+    /**
+     * 鍒嗘閲囬泦鏁版嵁锛堥鍏ラ櫌銆佸叆闄€�佸嚭闄級
+     * 鐢ㄤ簬nhfy/sltd鍥炴函閲囬泦锛屾瘡娆℃渶澶氭煡璇�7澶╂暟鎹�
+     *
+     * @param cid          闄㈠尯ID
+     * @param startDateStr 鏃ユ湡寮�濮� yyyy-MM-dd
+     * @param endDateStr   鏃ユ湡缁撴潫 yyyy-MM-dd
+     */
+    private void collectSegmentData(Long cid, String startDateStr, String endDateStr) {
+        // 棰勫叆闄�
+        log.info("銆恉ealHisData銆戦鍏ラ櫌寮�濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr);
+        ServiceSLTDInhospReqVO reqVO = new ServiceSLTDInhospReqVO();
+        reqVO.setOrgId("20001001");
+        reqVO.setCampusId(cid);
+        reqVO.setEncounterTimeStart(startDateStr);
+        reqVO.setEncounterTimeEnd(endDateStr);
+        List<String> preAdmitStatus = new ArrayList<>();
+        preAdmitStatus.add("FH0109.22");
+        preAdmitStatus.add("FH0109.23");
+        preAdmitStatus.add("FH0109.53");
+        reqVO.setStatusList(preAdmitStatus);
+        log.info("銆恉ealHisData銆戦鍏ラ櫌閲囬泦鏁版嵁鍏ュ弬锛歿}", reqVO);
+        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        log.info("銆恉ealHisData銆戦鍏ラ櫌绲備簡閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+
+        // 鍏ラ櫌
+        log.info("銆恉ealHisData銆戝叆闄㈠紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr);
+        reqVO = new ServiceSLTDInhospReqVO();
+        reqVO.setOrgId("20001001");
+        reqVO.setCampusId(cid);
+        reqVO.setStartHeadTime(startDateStr);
+        reqVO.setStartTailTime(endDateStr);
+        List<String> admitStatus = new ArrayList<>();
+        admitStatus.add("FH0109.24");
+        reqVO.setStatusList(admitStatus);
+        log.info("銆恉ealHisData銆戝叆闄㈤噰闆嗘暟鎹叆鍙傦細{}", reqVO);
+        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        log.info("銆恉ealHisData銆戝叆闄㈢祩浜嗛噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+
+        // 鍑洪櫌
+        log.info("銆恉ealHisData銆戝嚭闄㈠紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr);
+        reqVO = new ServiceSLTDInhospReqVO();
+        reqVO.setOrgId("20001001");
+        reqVO.setCampusId(cid);
+        reqVO.setPreOutHospitalHeadDate(startDateStr);
+        reqVO.setPreOutHospitalTailDate(endDateStr);
+        List<String> dischargeStatus = new ArrayList<>();
+        //鍑洪櫌
+        dischargeStatus.add("FH0109.27");
+        //棰勫嚭闄�
+        dischargeStatus.add("FH0109.25");
+        reqVO.setStatusList(dischargeStatus);
+        log.info("銆恉ealHisData銆戝嚭闄㈤噰闆嗘暟鎹叆鍙傦細{}", reqVO);
+        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        log.info("銆恉ealHisData銆戝嚭闄㈢粨鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+    }
+
+    /**
+     * HIS鐪佺珛鍚屽痉闂ㄦ�ヨ瘖鏁版嵁閲囬泦锛堣繖涓彧鑳戒竴澶╂墽琛屼竴娆★紝涓嶈兘鍗婁釜灏忔椂鎵ц涓�涓紝鏁版嵁閲忓お澶э紝褰卞搷鎬ц兘锛�
+     * 瀹氭椂浠诲姟锛氶棬璇婃暟鎹�
+     * todayZeroStr  褰撳墠鐨勬椂闂�   渚嬪锛�2026-05-06 00:00:00
+     */
+    public void dealHisDataMZ(String todayZeroStr) {
+        log.info("銆恉ealHisData銆戦棬鎬ヨ瘖鏁版嵁寮�濮嬫墽琛孒IS鏁版嵁閲囬泦浠诲姟");
+        // 鑾峰彇鏄ㄥぉ0鐐瑰埌浠婂ぉ0鐐圭殑鏃堕棿鑼冨洿
+        LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
+        if (StringUtils.isNotBlank(todayZeroStr)) {
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            todayZero = LocalDateTime.parse(todayZeroStr, formatter);
+        }
+        LocalDateTime tomorrowdayZero = todayZero.plusDays(1);
+
+        if (active.trim().equals("sltd") || active.trim().equals("nhfy")) {
+            //鐪佺珛鍚屽痉涓庡崕鍗楅檮涓�鐢ㄥ悓涓�濂楅噰闆嗘柟娉曪紙閮芥槸鏉ユ湭鏉ユ彁渚涳級
+            try {
+                //鑾峰彇鐪佺珛鍚屽痉瑕侀噰闆嗙殑闄㈠尯
+                SysConfig cf = new SysConfig();
+                cf.setConfigKey("sltd.gather.campusid");
+                cf.setOrgid("20001001");
+                List<SysConfig> sysConfigcampusids = configService.selectConfigList(cf);
+
+                List<Long> campusidList = new ArrayList<>();
+                if (CollectionUtils.isNotEmpty(sysConfigcampusids)) {
+                    String[] split = sysConfigcampusids.get(0).getConfigValue().split(",");
+                    campusidList = Arrays.stream(split).map(Long::valueOf).collect(Collectors.toList());
+                } else {
+                    log.error("SysConfig涓殑闄㈠尯ID涓虹┖锛�");
+                    return;
+                }
+
+                // 鐪佺珛鍚屽痉鏁版嵁閲囬泦
+                log.info("--campusidList鐨勫�间负锛歿}", campusidList);
+                for (Long cid : campusidList) {
+                    String nowTime = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                    ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO();
+                    serviceSLTDInhospReqVO.setOrgId("20001001");
+                    serviceSLTDInhospReqVO.setCampusId(cid);
+                    serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
+                    serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
+
+                    // 闂ㄦ�ヨ瘖鍒嗛〉閲囬泦锛氭瘡椤�40鏉★紝鐩村埌鏃犳暟鎹负姝�(鍗楀崕闄勪竴鐨勫厛涓嶉噰闂ㄦ�ヨ瘖鏁版嵁)
+                    if (active.trim().equals("sltd")) {
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬪垎椤甸噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+                        serviceSLTDInhospReqVO.setStartHeadTime(null);
+                        serviceSLTDInhospReqVO.setStartTailTime(null);
+                        //鏌ヨ褰撳ぉ鐨勬暟鎹�
+                        serviceSLTDInhospReqVO.setEncounterTimeEnd(tomorrowdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        serviceSLTDInhospReqVO.setEncounterTimeStart(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+                        serviceSLTDInhospReqVO.setStatusList(null);
+                        List<String> list1 = new ArrayList<>();
+                        list1.add("FH0108.01");
+                        list1.add("FH0108.03");
+                        serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1);
+                        //浠庣紦瀛橀噷鑾峰彇璧峰椤碉紙闆剁偣鍓�10鍒嗛挓鍐呯敤鏄ㄥぉ鐨勬棩鏈燂紝閬垮厤璺ㄥぉ婕忛噰锛�
+                        LocalDateTime now = LocalDateTime.now();
+                        String mzCacheDate = (now.getHour() == 0 && now.getMinute() < 10) ? now.minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) : now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                        Long outpPage = redisCache.getCacheObject("mzCurrent" + cid + mzCacheDate);
+                        if (outpPage == null) outpPage = 1L;
+                        //閭h竟鏆傛椂鍙兘璁剧疆40
+                        final long OUTP_PAGE_SIZE = 500L;
+                        while (true) {
+                            serviceSLTDInhospReqVO.setCurrent(outpPage);
+                            serviceSLTDInhospReqVO.setSize(OUTP_PAGE_SIZE);
+                            log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗙{}椤垫暟鎹紝闄㈠尯锛歿}", outpPage, cid);
+                            List<ServiceSLTDInhospResDTO> outpResult = serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
+                            if (CollectionUtils.isEmpty(outpResult)) {
+                                log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濈{}椤垫棤鏁版嵁锛岄噰闆嗙粨鏉燂紝闄㈠尯锛歿}", outpPage, cid);
+                                break;
+                            }
+                            log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濈{}椤甸噰闆唟}鏉★紝闄㈠尯锛歿}", outpPage, outpResult.size(), cid);
+                            if (outpResult.size() < OUTP_PAGE_SIZE) {
+                                //璁剧疆涓�涓紦瀛橈紝鐢ㄦ潵瀛樺湪涓嬫鐨勮捣濮嬮〉
+                                redisCache.setCacheObject("mzCurrent" + cid + mzCacheDate, outpPage, 24, TimeUnit.HOURS);
+                                log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濈殑缂撳瓨key:{}涓嬫鐨勮捣濮嬮〉{}锛岄櫌鍖猴細{}", "mzCurrent" + cid + mzCacheDate, outpPage, cid);
+                                break;
+                            }
+                            outpPage++;
+                        }
+                        // 娓呴櫎鍒嗛〉鍙傛暟锛岄伩鍏嶅奖鍝嶅悗缁嚭鍏ラ櫌鏌ヨ
+                        serviceSLTDInhospReqVO.setCurrent(null);
+                        serviceSLTDInhospReqVO.setSize(null);
+                        log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆垎椤甸噰闆嗗畬鎴愶紝闄㈠尯锛歿}", cid);
+                    }
+                }
+            } catch (Exception e) {
+                log.error("銆恉ealHisData銆戠渷绔嬪悓寰锋暟鎹棬鎬ヨ瘖閲囬泦寮傚父", e);
+            }
+        }
+    }
+
+    /**
+     * 鍚屽痉鑽搧鏁版嵁閲囬泦
+     */
+
+    public void dealHisDataMedication() {
+        final long OUTP_PAGE_SIZE = 500L;
+        ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO();
+        serviceSLTDInhospReqVO.setOrgId("20001001");
+        Long outpPage = 1L;
+        while (true) {
+            serviceSLTDInhospReqVO.setCurrent(outpPage);
+            serviceSLTDInhospReqVO.setSize(OUTP_PAGE_SIZE);
+            log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滆嵂鍝佹暟鎹�濋噰闆嗙{}椤垫暟鎹�", outpPage);
+           Boolean b = serviceSLTDHealthcareRecordService.queryMedicationItemList(serviceSLTDInhospReqVO);
+            log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滆嵂鍝佹暟鎹�濋噰闆嗙粨鏋滐細{}", b);
+            outpPage++;
+        }
+    }
+
 
     public void dealHisDataSLTD() {
         log.info("銆恉ealHisData銆戝紑濮嬫墽琛孒IS鏁版嵁閲囬泦浠诲姟");
@@ -393,7 +621,7 @@
                 ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO();
                 serviceSLTDInhospReqVO.setOrgId("20001001");
                 serviceSLTDInhospReqVO.setCampusId(30001002L);
-                log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", "30001002");
+                log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", "30001002");
                 serviceSLTDInhospReqVO.setStartHeadTime(null);
                 serviceSLTDInhospReqVO.setStartTailTime(null);
                 serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
@@ -403,9 +631,9 @@
                 list1.add("FH0108.01");
                 list1.add("FH0108.03");
                 serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1);
-                log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+                log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
                 serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
-                log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", "30001002");
+                log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", "30001002");
             }
         } catch (Exception e) {
             log.error("銆恉ealHisData銆戠渷绔嬪悓寰锋暟鎹噰闆嗗紓甯�", e);
@@ -518,12 +746,12 @@
             ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
             serviceSubtaskVO.setTaskid(commonTaskcallMQ.getTaskid());
             serviceSubtaskVO.setSendstate(2L);
+            serviceSubtaskVO.setIsVisitAgain(1);
             serviceSubtaskVO.setVisitTime(new Date());
             List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.queryServiceSubtaskList(serviceSubtaskVO);
             for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
                 sfHandlle(serviceSubtask);
             }
-
         }
     }
 
@@ -558,34 +786,114 @@
                 //2鍒ゆ柇涓�涓嬶紝褰撳墠鐨剆ort鏄笉鏄瓑浜庨渶瑕佹墽琛岀殑鎬讳釜鏁帮紝濡傛灉绛変簬鐨勮瘽锛岃鏄庢槸鏈�鍚庝竴涓紝鐩存帴灏唖ervuce_subtask鐨勭姸鎬佹敼鎴�5锛屾墽琛屽け璐ュ氨琛屼簡
                 Long cs = currentSort.get();
                 if (cs.equals(serviceSubtaskPreachforms.size())) {
-                    if(serviceSubtask.getPreachform().equals("1")){
-                        serviceSubtask.setSendstate(7L);
-                        serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋� 浜哄伐瓒呮椂");
-                    }else {
-                        serviceSubtask.setSendstate(5L);
-                        serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋匡紝鍏ㄩ儴鎵ц澶辫触");
-                    }
+                    serviceSubtask.setSendstate(7L);
+                    serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋匡紝鍏ㄩ儴鎵ц澶辫触锛堣秴鏃讹級");
 
                     serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                     //淇敼鍙戦�佹柟寮忕殑鐘舵�佷负澶辫触
-                    if(serviceSubtaskPreachform.getPreachform().equals("1")){
-                        serviceSubtaskPreachform.setSendstate("7");
-                        serviceSubtaskPreachform.setId(id.get());
-                    }else {
-                        serviceSubtaskPreachform.setSendstate("5");
-                        serviceSubtaskPreachform.setId(id.get());
-                    }
+                    serviceSubtaskPreachform.setSendstate("5");
+                    serviceSubtaskPreachform.setId(id.get());
+
                     serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform);
                     continue;
                 }
 
                 //3.涓嶆槸鏈�鍚庝竴涓紝鑾峰彇鍒颁笅涓�涓墽琛屾柟寮�(鍥犱负閮芥槸鍦ㄤ粖澶╂墽琛岋紝閭e氨鐩存帴鍙戝嚭鍘诲氨瀹屼簡)
                 sfHandlle(serviceSubtask);
-
             }
-
         }
+    }
 
+    /**
+     * 闀挎湡浠诲姟鍙戦��
+     */
+    public void longTaskSendTest(Long subId) {
+        //鑾峰彇浠诲姟淇℃伅
+        ServiceTask st = new ServiceTask();
+        st.setDelFlag("0");
+        st.setLongTask(1);
+        List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
+        log.info("銆恖ongTaskSend銆戣幏鍙栧埌{}涓暱鏈熶换鍔�", serviceTasks.size());
+        for (ServiceTask serviceTask : serviceTasks) {
+            CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
+            commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
+            commonTaskcallMQ.setPreachform(serviceTask.getPreachform());
+            commonTaskcallMQ.setSendType("2");
+
+            //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭�,骞朵笖闅忚鏃堕棿寰楁槸浠婂ぉ涔嬪墠鐨�
+            ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+            serviceSubtaskVO.setTaskid(commonTaskcallMQ.getTaskid());
+            serviceSubtaskVO.setSendstate(2L);
+            serviceSubtaskVO.setIsVisitAgain(1);
+            serviceSubtaskVO.setSubId(subId);
+            serviceSubtaskVO.setVisitTime(new Date());
+            List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.queryServiceSubtaskList(serviceSubtaskVO);
+            for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+                sfHandlle(serviceSubtask);
+            }
+        }
+    }
+
+    /**
+     * 澶勭悊琛ュ伩浠诲姟
+     */
+    public void compensateTaskTest(Long subId) {
+        //鑾峰彇鍒皊endstate=3 骞朵笖 visit_time涓哄皬浜庣瓑浜庝粖澶╃殑subtask
+        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+        serviceSubtaskVO.setSendstate(3L);
+        serviceSubtaskVO.setSubId(subId);
+        serviceSubtaskVO.setVisitTime(new Date());
+        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.getCompensateServiceSubtaskList(serviceSubtaskVO);
+        for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+            //鏍规嵁褰撳墠鐨勬墽琛屾柟寮忥紝鑾峰彇涓嬩竴绉嶆墽琛屾柟寮�
+            ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
+            serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
+            serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
+            serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid());
+            List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
+            //鑾峰彇褰撳墠鎵ц鏂瑰紡鐨勫簭鍙�
+            Optional<Long> currentSort = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getSort).findFirst();
+            Optional<Long> id = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getId).findFirst();
+            if (currentSort.isPresent()) {
+                //1鍏堟鏌ヤ竴涓嬶紝鏄笉鏄湁鎵ц鐘舵�佹槸瀹屾垚鐨勶紙鎬曚箣鍓嶅凡缁忔湁瀹岀殑浜嗭紝娌℃湁灏唖ervuce_subtask鐨勭姸鎬佹敼鎴愬姛锛岃繖閲屽啀妫�鏌ヤ竴涓嬶級
+                boolean finishState = serviceSubtaskPreachforms.stream().allMatch(item -> item.getSendstate().equals("9"));
+                if (finishState) {
+                    serviceSubtask.setSendstate(6L);
+                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                    continue;
+                }
+
+                //2鍒ゆ柇涓�涓嬶紝褰撳墠鐨剆ort鏄笉鏄瓑浜庨渶瑕佹墽琛岀殑鎬讳釜鏁帮紝濡傛灉绛変簬鐨勮瘽锛岃鏄庢槸鏈�鍚庝竴涓紝鐩存帴灏唖ervuce_subtask鐨勭姸鎬佹敼鎴�5锛屾墽琛屽け璐ュ氨琛屼簡
+                Long cs = currentSort.get();
+                if (cs.equals(serviceSubtaskPreachforms.size())) {
+                    serviceSubtask.setSendstate(7L);
+                    serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋匡紝鍏ㄩ儴鎵ц澶辫触锛堣秴鏃讹級");
+
+                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+                    //淇敼鍙戦�佹柟寮忕殑鐘舵�佷负澶辫触
+                    serviceSubtaskPreachform.setSendstate("5");
+                    serviceSubtaskPreachform.setId(id.get());
+
+                    serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform);
+                    continue;
+                }
+
+                //3.涓嶆槸鏈�鍚庝竴涓紝鑾峰彇鍒颁笅涓�涓墽琛屾柟寮�(鍥犱负閮芥槸鍦ㄤ粖澶╂墽琛岋紝閭e氨鐩存帴鍙戝嚭鍘诲氨瀹屼簡)
+                sfHandlle(serviceSubtask);
+            }
+        }
+    }
+
+    /**
+     * 璁剧疆澶辫触浠诲姟榛樿鍊�,骞跺皢澶辫触浠诲姟閲嶆柊缃负鎴愬姛
+     * <p>
+     * *@param failDay   (澶辫触澶╂暟锛氳窛绂诲綋鍓嶆棩鏈熷け璐ュぉ鏁�)
+     *
+     * @return
+     */
+    public void setFailSubTaskDefalutVal() {
+        String failDay = configService.selectConfigByKey("hosp.default.fail.day");
+        if (StringUtils.isNotEmpty(failDay)) iServiceSubtaskService.setFailSubTaskDefalutVal(Long.valueOf(failDay));
     }
 
 
@@ -595,7 +903,7 @@
      * @param date
      * @return
      */
-    public boolean isDateToday(Date date) {
+    private boolean isDateToday(Date date) {
         if (date == null) {
             return false;
         }
@@ -612,7 +920,7 @@
      *
      * @param serviceSubtask
      */
-    public void sfHandlle(ServiceSubtask serviceSubtask) {
+    private void sfHandlle(ServiceSubtask serviceSubtask) {
         //杩欓噷闇�瑕佹牴鎹韩浠借瘉鍘婚噸(缁欏井淇″皬绋嬪簭鐨勫浐瀹氫换鍔$敤鐨�)
         List<ServiceSubtask> serviceSubtaskListFilter = new ArrayList<>();
         ServiceTask ivrTask1 = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
@@ -631,7 +939,8 @@
         if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") {
             //涓嶉渶瑕佸彂閫�
             serviceSubtask.setResult("鎮h�呬笉闇�瑕侀殢璁�");
-            serviceSubtask.setRemark(patArchive.getNotrequiredreason());
+            serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + "," + "鎮h�呬笉闇�瑕侀殢璁�," + patArchive.getNotrequiredreason() : "鎮h�呬笉闇�瑕侀殢璁�," + patArchive.getNotrequiredreason());
+
             serviceSubtask.setSendstate(4L);
             iServiceSubtaskService.insertServiceSubtask(serviceSubtask);
             setSuccessPreachForm(serviceSubtask, "-1", "涓嶉渶瑕佹墽琛�", "6");
@@ -719,6 +1028,7 @@
                     serviceOutPath.setParam3(ivrTask1.getTaskName());
                     serviceOutPath.setParam6(subId);
                     serviceOutPath.setCreateTime(new Date());
+                    serviceOutPath.setOrgid(serviceSubtask.getOrgid());
                     iServiceOutPathService.insertServiceOutPath(serviceOutPath);
                     String format = String.format("%03X", serviceOutPath.getId());
                     serviceOutPath.setRadix(format);
@@ -727,23 +1037,38 @@
                     //鍏堝垽鏂竴涓嬪彂鐨勬槸涓嶆槸瀹f暀
                     if (!"3".equals(serviceSubtask.getType())) {
                         sendMagParam.setPhone(serviceSubtask.getPhone());
-                        sendMagParam.setUrl(localIP + ":" + req_path + "/wt?p=" + format);
+
+                        sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/wt?p=" + format : localIP + "/wt?p=" + format);
                         //濡傛灉type鏄闊抽殢璁跨殑璇濓紙璇存槑琛ュ伩鍙戦�佹柟寮忎腑鏈夌數璇濋殢璁跨殑鏂瑰紡锛岃繖閲岀殑澶栭摼灏卞湴鍧�鍙兘鐢�/sf锛�
                         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() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+                            sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/sf?p=" + format : localIP + "/sf?p=" + format);
+
+//                        SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template");
+                        SysConfig sysConfig = new SysConfig();
+                        if (StringUtils.isNotEmpty(serviceSubtask.getServiceType()) && serviceSubtask.getServiceType().equals("6")) {
+                            sysConfig = sysConfigMapper.checkConfigKeyUnique("zymyd.sms.template");
+                        } else if (StringUtils.isNotEmpty(serviceSubtask.getServiceType()) && serviceSubtask.getServiceType().equals("14")) {
+                            sysConfig = sysConfigMapper.checkConfigKeyUnique("mzmyd.sms.template");
+                        } else {
+                            sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template");
+                        }
+                        if (!Objects.isNull(sysConfig)) {
+                            String smsContemt = sysConfig.getConfigValue();
+//                            sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
+                            sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl()));
                         }
                     } else {
                         HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid());
                         if (heLibrary.getHetype().equals("1")) {
                             sendMagParam.setPhone(serviceSubtask.getPhone());
-                            sendMagParam.setUrl(localIP + ":" + 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() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
+                            sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/xj?p=" + format : localIP + "/xj?p=" + format);
+
+                            SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("xj.sms.template");
+                            if (!Objects.isNull(sysConfig)) {
+                                String smsContemt = sysConfig.getConfigValue();
+//                              sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�");
+                                sendMagParam.setContent(smsContemt.replace("${xjurl}", sendMagParam.getUrl()));
+
                             }
                         } else if (heLibrary.getHetype().equals("2")) {
                             //閫氱煡
@@ -758,9 +1083,29 @@
                     log.info("active鐨勫�间负锛歿}", active);
                     if (active.equals("xh")) {
                         Map<String, String> req = new HashMap<>();
-                        req.put("phone", sendMagParam.getPhone());
-                        req.put("content", sendMagParam.getContent());
-                        isSuccess = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
+//                        req.put("phone", sendMagParam.getPhone());
+//                        req.put("content", sendMagParam.getContent());
+                        Map<String, String> map2 = new HashMap<String, String>();
+                        map2.put("action", "send");
+                        map2.put("account", xhsmsAccount);
+                        map2.put("password", xhsmsPwd);
+                        map2.put("mobile", sendMagParam.getPhone());
+                        map2.put("content", sendMagParam.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, new Gson().toJson(req));
+                        if (result) isSuccess = "true";
                     } else if (active.equals("ls")) {
 //                        String url = configService.selectConfigByKey("token.360", serviceSubtask.getOrgid());
 //                        //涓芥按鐨勭煭淇″彂閫佹柟寮�
@@ -792,30 +1137,62 @@
                         if (code.equals("0")) {
                             isSuccess = "true";
                         }
-                    } else if (active.equals("sltd")) {
+                    } else if (active.equals("sltd") || active.equals("nhfy")) {
                         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)) {
-                            ObjectMapper mapper = new ObjectMapper();
-                            JsonNode root = mapper.readTree(data);
-                            String status = root.get("result").get(0).get("status").asText();
-                            if (status.equals("00000")) {
+                        if (active.equals("sltd")) {
+                            //鐪佺珛鍚屽痉鐨勭煭淇″彂閫佹柟寮�
+                            String data = MessageSend.sendMsg(sendMagParam.getContent(), "6", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
+                            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("nhfy")) {
+                            Map<String, Object> smsResult = mtSubmitSmUtil.submitSm(sendMagParam.getPhone(), sendMagParam.getContent());
+                            if (smsResult != null && smsResult.get("result") != null && smsResult.get("result").toString().equals("0")) {
                                 isSuccess = "true";
                             }
                         }
                     } else if (active.equals("hzszlyy")) {//甯備竴鍖婚櫌
                         String content = sendMagParam.getContent().replace("銆愭柊鍗庡尰闄€��", "");
-                        String result = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, sendMagParam.getPhone(), content);
-                        //杩欓噷闇�瑕佹牴鎹畆esult杩斿洖鐨勫�煎幓鍒ゆ柇锛屾槸鍚︽垚鍔燂紝鐒跺悗灏嗗�艰祴鍊肩粰isSuccess
-                        if (StringUtils.isNotEmpty(result) && result.contains("澶勭悊鎴愬姛")) {
-                            isSuccess = "true";
-                        }
 
+                        SysDept sysDeptVo = new SysDept();
+                        List<SysDept> sysDepts = new ArrayList<>();
+                        if (ObjectUtils.isNotEmpty(serviceSubtask.getDeptcode())) {
+                            sysDeptVo.setDeptType("1");
+                            sysDeptVo.setOrgid(serviceSubtask.getOrgid());
+                            sysDeptVo.setDeptCode(serviceSubtask.getDeptcode());
+                            sysDeptService.selectDeptList(sysDeptVo);
+                        } else if (ObjectUtils.isNotEmpty(serviceSubtask.getLeavehospitaldistrictcode())) {
+                            sysDeptVo.setDeptType("2");
+                            sysDeptVo.setOrgid(serviceSubtask.getOrgid());
+                            sysDeptVo.setDeptCode(serviceSubtask.getLeavehospitaldistrictcode());
+                            sysDeptService.selectDeptList(sysDeptVo);
+                        }
+                        SysDept sysDept = CollectionUtils.isNotEmpty(sysDepts) ? sysDepts.get(0) : new SysDept();
+                        String campusid = ObjectUtils.isNotEmpty(sysDept) ? sysDept.getCampusid() : "2";
+                        //婀栨花鍗曠嫭鍙戦�佹柟寮�
+                        if ("1".equals(campusid)) {
+                            String result = smsUtils.sendSms1(xhsmsPath, xhsmsAccount, xhsmsPwd, sendMagParam.getPhone(), content);
+                            //杩欓噷闇�瑕佹牴鎹畆esult杩斿洖鐨勫�煎幓鍒ゆ柇锛屾槸鍚︽垚鍔燂紝鐒跺悗灏嗗�艰祴鍊肩粰isSuccess
+                            if (StringUtils.isNotEmpty(result) && result.contains("澶勭悊鎴愬姛")) {
+                                isSuccess = "true";
+                            }
+                        } else {
+                            String result = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, sendMagParam.getPhone(), content);
+                            //杩欓噷闇�瑕佹牴鎹畆esult杩斿洖鐨勫�煎幓鍒ゆ柇锛屾槸鍚︽垚鍔燂紝鐒跺悗灏嗗�艰祴鍊肩粰isSuccess
+                            if (StringUtils.isNotEmpty(result) && result.contains("澶勭悊鎴愬姛")) {
+                                isSuccess = "true";
+                            }
+                        }
                     }
                     //浠诲姟鍙戦�佽褰�
                     ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                     serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
+                    serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
                     serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                     serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                     serviceSubtaskRecord.setPreachform("4");
@@ -829,11 +1206,11 @@
                     serviceSubtask.setSendstate(3L);
                     if (StringUtils.isNotEmpty(isSuccess) && isSuccess.equals("true")) {
                         serviceSubtask.setResult("success");
-                        serviceSubtask.setRemark(serviceSubtask.getRemark() + "," + "鐭俊鍙戦�佹垚鍔�");
+                        serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ",鐭俊鍙戦�佹垚鍔�" : "鐭俊鍙戦�佹垚鍔�");
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佹垚鍔�", "2");
                     } else {
                         serviceSubtask.setResult("error");
-                        serviceSubtask.setRemark(serviceSubtask.getRemark() + "," + "鐭俊鍙戦�佸け璐�" + now);
+                        serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ",鐭俊鍙戦�佸け璐�" + now : "鐭俊鍙戦�佸け璐�" + now);
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�" + now, "5");
                     }
                 } catch (Exception e) {
@@ -852,8 +1229,26 @@
             if (dateToday) {
                 try {
                     String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+                    String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
                     String url = null;
-                    url = localIP + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
+                    url = localIP + ":" + req_path + "/outsideChainwt?param1=" + taskId +
+                            "&param2=" +  patid +
+                            "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) +
+                            "&param5=false" +
+                            "$param6=" + subId;
+
+                    ServiceOutPath serviceOutPath = new ServiceOutPath();
+                    serviceOutPath.setParam1(taskId);
+                    serviceOutPath.setParam2(patid);
+                    serviceOutPath.setParam3(ivrTask1.getTaskName());
+                    serviceOutPath.setParam6(subId);
+                    serviceOutPath.setCreateTime(new Date());
+                    serviceOutPath.setOrgid(serviceSubtask.getOrgid());
+                    iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+                    String format = String.format("%03X", serviceOutPath.getId());
+                    serviceOutPath.setRadix(format);
+                    serviceOutPath.setUpdateTime(new Date());
+                    iServiceOutPathService.updateServiceOutPath(serviceOutPath);
 
                     //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D
                     List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid());
@@ -872,23 +1267,7 @@
                     //甯備竴鍖婚櫌
                     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); **/
-
                         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);
                     }
@@ -905,7 +1284,12 @@
                     Boolean wxCodeSuccess = false;
                     if (active.equals("hzszlyy")) {
                         if (!map.isEmpty() && map.get("success") != null) {
-                            wxCodeSuccess = (boolean) map.get("success");
+                            Integer wxCodeSuccessShiyi = (Integer) map.get("success");
+                            if (ObjectUtils.isNotEmpty(wxCodeSuccessShiyi) && wxCodeSuccessShiyi == 1) {
+                                wxCodeSuccess = true;
+                            } else {
+                                wxCodeSuccess = false;
+                            }
                         }
                     } else {
                         if (!map.isEmpty() && map.get("succ") != null) {
@@ -931,7 +1315,7 @@
                 }
             }
         } else if (descByCode.equals("浜哄伐")) {
-            setSuccessPreachForm(serviceSubtask, sendPreachform, "浜哄伐瓒呮椂", "7");
+            setSuccessPreachForm(serviceSubtask, sendPreachform, "浜哄伐鍙戦�佹垚鍔�", "2");
         }
 
     }
@@ -997,13 +1381,10 @@
             if (currentSort.get().equals((long) serviceSubtaskPreachforms.size())) {
                 if (allSendStateNot1AndNot9) {
                     //璇存槑鍏ㄥ彂閫佸け璐ヤ簡
-                    serviceSubtask.setSendstate(5L);
+                    serviceSubtask.setSendstate(7L);
+                    serviceSubtask.setFinishtime(null);
                     log.error("getSendPreachform鏂规硶 妫�鏌ユ槸鍚︽墍鏈塻endstate涓嶇瓑浜�9, 鍏ㄥけ璐ヤ簡");
-                    //浜哄伐鍙戦�佽秴鏃�
-                    if(ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")){
-                        serviceSubtask.setSendstate(7L);
-                        serviceSubtask.setRemark("浜哄伐鍙戦�佽秴鏃�");
-                    }
+                    serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + "," + "鎵�鏈夊彂閫佹柟寮忓潎鏈幏鍙栫粨鏋滐紝浠诲姟澶辫触锛堣秴鏃讹級" : "鎵�鏈夊彂閫佹柟寮忓潎鏈幏鍙栫粨鏋滐紝浠诲姟澶辫触锛堣秴鏃讹級");
                     serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                     //淇敼鍙戦�佺姸鎬�
                     setFail(serviceSubtaskPreachforms, serviceSubtask);
@@ -1014,7 +1395,6 @@
             // 褰搒ort绛変簬鍒楄〃size鏃讹紝涓嬩竴涓猻ort涓�-1
             Long nextSort = currentSort.get() + 1;
             //濡傛灉褰撳墠鐨勫彂閫佹柟寮忎笉涓虹┖锛屽苟涓斿紑濮嬪噯澶囪鐢ㄤ笅涓�绉嶆柟寮忓彂閫佷簡锛岄偅褰撳墠鐨勮偗瀹氭病鏈夊彂閫佹垚鍔燂紝闇�瑕佽缃け璐�
-            // (杩欓噷涓昏鏄紝浜哄伐濡傛灉娌℃湁闅忚锛岀劧鍚庡埌鍏紬鍙风殑鏃跺�欙紝灏变笉浼氬啀鍘荤浜哄伐鏄惁鎴愬姛锛屼汉宸ョ殑鐘舵�佷細涓�鐩村崱鍦�2鐨勭姸鎬佷笂)
             if (StringUtils.isNotEmpty(serviceSubtask.getCurrentPreachform())) {
                 setFail(serviceSubtaskPreachforms, serviceSubtask);
             }
@@ -1022,33 +1402,14 @@
             // 鎵惧埌涓嬩竴涓猻ort瀵瑰簲鐨刾reachform
             String nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1");
 
-            String orgid = serviceSubtask.getOrgid();
-            //寰俊宸插彂閫併�佸凡棰嗗彇璺宠繃鐭俊鍙戦�侊紝杩涜浜哄伐 -涓芥按涓尰闄�
-            if (StringUtils.isNotEmpty(orgid) && orgid.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;
     }
 
@@ -1087,16 +1448,11 @@
             ServiceSubtaskPreachform subtaskPreachform = new ServiceSubtaskPreachform();
             subtaskPreachform.setSendstate("5");
             subtaskPreachform.setId(id.get());
-            //浜哄伐鍙戦�佽秴鏃�
-            if(ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")){
-                subtaskPreachform.setSendstate("7");
-                subtaskPreachform.setRemark("浜哄伐鍙戦�佽秴鏃�");
-            }
+            subtaskPreachform.setRemark("褰撳墠鍙戦�佹柟寮忓湪瑙勫畾鏃堕棿鍐呮湭鎴愬姛鑾峰彇缁撴灉");
             return serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(subtaskPreachform);
         }
         return 0;
     }
-
 
     private String getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap, String token) {
         Map<String, Object> map = new LinkedHashMap<>();
@@ -1146,7 +1502,7 @@
         Map<String, String> headerMap = new HashMap<>();
         headerMap.put("sign", encode);
         String result = HttpUtils.sendPostByHeader(wxqqxx.get(3), body, headerMap);
-
+        log.info("銆恎etWXCode銆戝井淇″叕浼楀彿杩斿洖鍙傛暟锛歿}", result);
         JSONObject jsonObject = JSONObject.parseObject(result);
         String code = (String) jsonObject.toString();
         return code;
@@ -1203,9 +1559,9 @@
         //鐢佃瘽鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2锛屽洜涓猴紝鏁版嵁鍙兘鍗″湪闃熷垪閲屼簡; 锛堟病杩涢槦鍒楋紝鐢佃瘽鐘舵�佽繕鏄�1锛�
         if (preachform.equals("3") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2)
             serviceSubtaskPreachform.setSendstate("2");
-        //浜哄伐鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2
-        if (preachform.equals("1") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2)
-            serviceSubtaskPreachform.setSendstate("2");
+//        //浜哄伐鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2
+//        if (preachform.equals("1") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2)
+//            serviceSubtaskPreachform.setSendstate("2");
 
         List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
         if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
@@ -1216,50 +1572,37 @@
                 if (failSendstate.equals("2")) serviceSubtaskPreachform1.setSendstate("9");
             }
             serviceSubtaskPreachform1.setRemark(remark);
-            if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){
-                serviceSubtaskPreachform1.setSendstate("7");
-                serviceSubtaskPreachform1.setRemark("浜哄伐鍙戦�佽秴鏃�");
-            }
             serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1);
 
-            //濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡锛岄偅鐩存帴灏唖erviceSubtask鐨剆endstate鐘舵�佹敼鎴�5灏辫浜�(鍏ㄥけ璐ヤ簡)
+            //濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡锛岄偅鐩存帴灏唖erviceSubtask鐨剆endstate鐘舵�佹敼鎴�7灏辫浜�(鍏ㄨ秴鏃朵簡)
             if (serviceSubtaskPreachform1.getSort() == sspCount.size()) {
-                if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){
+                if (failSendstate.equals("4") || failSendstate.equals("5")) {
                     serviceSubtask.setCurrentPreachform(preachform);
                     serviceSubtask.setSendstate(7L);
-                    serviceSubtask.setRemark("浜哄伐鍙戦�佽秴鏃�");
+                    log.error("setSuccessPreachForm鏂规硶锛屽綋鍓嶇殑preachform宸茬粡鏄渶鍚庝竴涓簡锛屽叏閮ㄦ墽琛屽け璐�");
+                    serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + "," + "鎵�鏈夊彂閫佹柟寮忓潎鏈幏鍙栫粨鏋滐紝浠诲姟澶辫触锛堣秴鏃讹級" : "鎵�鏈夊彂閫佹柟寮忓潎鏈幏鍙栫粨鏋滐紝浠诲姟澶辫触锛堣秴鏃讹級");
+                    //serviceSubtask.setRemark("setSuccessPreachForm鏂规硶锛屽綋鍓嶇殑preachform宸茬粡鏄渶鍚庝竴涓簡锛屽叏閮ㄦ墽琛屽け璐�");
                     serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                     return true;
-                }else {
-                    if (failSendstate.equals("4") || failSendstate.equals("5")) {
-                        serviceSubtask.setCurrentPreachform(preachform);
-                        serviceSubtask.setSendstate(5L);
-                        //serviceSubtask.setRemark("setSuccessPreachForm鏂规硶锛屽綋鍓嶇殑preachform宸茬粡鏄渶鍚庝竴涓簡锛屽叏閮ㄦ墽琛屽け璐�");
-                        serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
-                        return true;
-                    }
                 }
-
             }
         } else {
             log.error("銆愬畾鏃朵换鍔′腑璇ユ偅鑰呮病鏈夋煡璇㈠埌灞炰簬浠栫殑鍙戦�佹柟寮忥紝subid锛歿},prechform:{},orgid:{}銆�", serviceSubtask.getId(), preachform, serviceSubtask.getOrgid());
             return false;
         }
+
         //灏嗕笅涓�娆$殑闅忚鏃堕棿涓庡綋鍓嶆墽琛屾柟寮忚褰曚竴涓�
         serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime()));
         serviceSubtask.setCurrentPreachform(preachform);
-        if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){
-            serviceSubtask.setSendstate(7L);
-            serviceSubtask.setRemark("浜哄伐鍙戦�佽秴鏃�");
-        }else {
-            serviceSubtask.setSendstate(3L);
-        }
+        serviceSubtask.setSendstate(3L);
+
         if (serviceSubtask.getType().equals("3") || serviceSubtask.getType().equals("4")) {
             //濡傛灉鏄鏁欐垨閫氱煡锛屽苟涓斿彂閫佹垚鍔燂紝鍒欑洿鎺ュ皢serviceSubtask鐘舵�佹敼鎴�6L锛堣繖涓偅鑰呮槸娌℃湁棰樺仛鐨勶紝涓嶄細鍐嶈Е鍙戞帴鍙h繘琛岀姸鎬佷慨鏀癸級
             if (failSendstate.equals("2")) {
                 serviceSubtask.setSendstate(6L);
             }
         }
+        serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + "," + remark : remark);
         serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
         return true;
     }
@@ -1306,4 +1649,8 @@
         return serviceTaskMap;
     }
 
+    public int qwenLLMTest(String questionText, String voiceText, String value, String regexText) {
+        int result = QwenLLMUtil.matchRegex(questionText, voiceText, value, regexText);
+        return result;
+    }
 }

--
Gitblit v1.9.3