From 87b79ea739ec32bd7d0e493a6ea8525212f6c763 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 10 十月 2026 15:11:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into smartor_ls_261008

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java |  365 ++++++++++++++++-----------------------------------
 1 files changed, 116 insertions(+), 249 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 c076b5f..c302ea0 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,13 +11,15 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.core.service.IDingTalkService;
-import com.ruoyi.common.dx.MessageSend;
-import com.ruoyi.common.enums.MsgLSEnum;
 import com.ruoyi.common.enums.ServiceFromEnum;
-import com.ruoyi.common.enums.WxGZHEnum;
 import com.ruoyi.common.utils.*;
 import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.common.utils.sms.smsUtils;
+import com.ruoyi.message.SendResult;
+import com.ruoyi.message.sms.SmsSendRequest;
+import com.ruoyi.message.sms.SmsSenderFactory;
+import com.ruoyi.message.sms.provider.xh.XinHuaSmsSender;
+import com.ruoyi.message.wechat.WechatSendRequest;
+import com.ruoyi.message.wechat.WechatSenderFactory;
 import com.ruoyi.quartz.constant.MzGatherConstant;
 import com.ruoyi.quartz.enums.MzGatherParamEnum;
 import com.ruoyi.quartz.enums.MzGatherSlotEnum;
@@ -29,8 +31,7 @@
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysUserService;
-import com.smartor.common.LSHospTokenUtil;
-import com.smartor.common.MtSubmitSmUtil;
+import com.ruoyi.message.sms.provider.sltd.ws.MessageSend;
 import com.smartor.common.QwenLLMUtil;
 import com.smartor.domain.*;
 import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
@@ -49,7 +50,6 @@
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
-import java.security.MessageDigest;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -59,8 +59,6 @@
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
-
-import static cn.hutool.core.convert.Convert.toHex;
 
 /**
  * 瀹氭椂浠诲姟璋冨害娴嬭瘯
@@ -122,18 +120,6 @@
     @Value("${localIP}")
     private String localIP;
 
-    @Value("${xhsmsPath}")
-    private String xhsmsPath;
-
-    @Value("${xhsmsAccount}")
-    private String xhsmsAccount;
-
-    @Value("${xhsmsPwd}")
-    private String xhsmsPwd;
-    // 铏氭嫙鎺ュ叆鐮�
-    @Value("${xhsmsjrm}")
-    private String xhsmsjrm;
-
     @Value("${pub_key}")
     private String pub_key;
 
@@ -192,8 +178,17 @@
     @Value("${server.port}")
     private String port;
 
+    /**
+     * 娑堟伅鍙戦�佹柟宸ュ巶锛堢煭淇�/寰俊鍏紬鍙凤級銆�
+     * <p>
+     * 鍘熸潵鐭俊涓庡叕浼楀彿鐨勫彂閫侀�昏緫鍦ㄦ湰绫婚噷鐢� {@code if (active.equals("xx"))} 纭垎鏀簡绾� 300 琛岋紝
+     * 鐜板凡鏀跺彛鍒� {@code ruoyi-message} 妯″潡锛岃繖閲屽彧璐熻矗鎸� {@code active} 璺敱銆�
+     */
     @Autowired
-    private MtSubmitSmUtil mtSubmitSmUtil;
+    private SmsSenderFactory smsSenderFactory;
+
+    @Autowired
+    private WechatSenderFactory wechatSenderFactory;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -598,7 +593,12 @@
         preAdmitStatus.add("FH0109.53");
         reqVO.setStatusList(preAdmitStatus);
         log.info("銆恉ealHisData銆戦鍏ラ櫌閲囬泦鏁版嵁鍏ュ弬锛歿}", reqVO);
-        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        try {
+            serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        } catch (Exception e) {
+            // 鍗曠被鏁版嵁澶辫触涓嶅啀鍚戜笂鎶涳細鍚﹀垯涓�娈靛け璐ヤ細璁╂湰娆″洖婧悗闈㈢殑鎵�鏈夋閮戒笉鎵ц
+            log.error("銆恉ealHisData銆戦鍏ラ櫌閲囬泦澶辫触锛岃烦杩囪绫荤户缁�傞櫌鍖猴細{}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr, e);
+        }
         log.info("銆恉ealHisData銆戦鍏ラ櫌绲備簡閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
 
         // 鍏ラ櫌
@@ -612,7 +612,12 @@
         admitStatus.add("FH0109.24");
         reqVO.setStatusList(admitStatus);
         log.info("銆恉ealHisData銆戝叆闄㈤噰闆嗘暟鎹叆鍙傦細{}", reqVO);
-        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        try {
+            serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        } catch (Exception e) {
+            // 鍗曠被鏁版嵁澶辫触涓嶅啀鍚戜笂鎶涳細鍚﹀垯涓�娈靛け璐ヤ細璁╂湰娆″洖婧悗闈㈢殑鎵�鏈夋閮戒笉鎵ц
+            log.error("銆恉ealHisData銆戝叆闄㈤噰闆嗗け璐ワ紝璺宠繃璇ョ被缁х画銆傞櫌鍖猴細{}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr, e);
+        }
         log.info("銆恉ealHisData銆戝叆闄㈢祩浜嗛噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
 
         // 鍑洪櫌
@@ -629,7 +634,12 @@
         dischargeStatus.add("FH0109.25");
         reqVO.setStatusList(dischargeStatus);
         log.info("銆恉ealHisData銆戝嚭闄㈤噰闆嗘暟鎹叆鍙傦細{}", reqVO);
-        serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        try {
+            serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
+        } catch (Exception e) {
+            // 鍗曠被鏁版嵁澶辫触涓嶅啀鍚戜笂鎶涳細鍚﹀垯涓�娈靛け璐ヤ細璁╂湰娆″洖婧悗闈㈢殑鎵�鏈夋閮戒笉鎵ц
+            log.error("銆恉ealHisData銆戝嚭闄㈤噰闆嗗け璐ワ紝璺宠繃璇ョ被缁х画銆傞櫌鍖猴細{}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr, e);
+        }
         log.info("銆恉ealHisData銆戝嚭闄㈢粨鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
     }
 
@@ -1468,124 +1478,11 @@
                     serviceOutPath.setUpdateTime(new Date());
                     serviceOutPath.setUrl(url);
                     iServiceOutPathService.updateServiceOutPath(serviceOutPath);
-                    String isSuccess = null;
+                    //鐭俊鍙戦�侊細鍚勭珯鐐瑰鎺ユ柟寮忓樊寮傝緝澶э紙鎶ユ枃/绛惧悕/token/杩斿洖鍒ゅ畾閮戒笉鍚岋級锛�
+                    //宸叉敹鍙e埌 ruoyi-message 妯″潡锛岃繖閲屽彧璐熻矗缁勮鍏ュ弬骞惰矾鐢�
                     log.info("active鐨勫�间负锛歿}", active);
-                    if (active.equals("xh")) {
-                        Map<String, String> req = new HashMap<>();
-//                        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());
-//                        //涓芥按鐨勭煭淇″彂閫佹柟寮�
-//                        Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
-                        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);
-                        String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), msgInfo.get("tokenUrl"));
-                        if (ObjectUtils.isNotEmpty(msgInfo) && StringUtils.isEmpty(msgInfo.get("address"))) {
-                            setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�, 鏃堕棿:" + now, "5");
-                            return;
-                        }
-                        log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫侊紝鍦板潃锛歿}锛屽弬鏁帮細{}锛屾満鏋処D锛歿}", msgInfo.get("address"), sendMagParam, serviceSubtask.getOrgid());
-                        String dxCode = getDXCode(msgInfo.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), msgInfo.get("sendPersonId"), msgInfo.get("sendPersonName"), MsgLSEnum.getHeaderByCode(msgInfo), token);
-                        log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫佺粨鏋滐細{}", dxCode);
-                        ObjectMapper objectMapper = new ObjectMapper();
-                        Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class);
-                        String code = textParam.get("Code").toString();
-                        if (code.equals("0")) {
-                            isSuccess = "true";
-                        }
-                    } else if (active.equals("sltd") || active.equals("nhfy")) {
-                        log.info("sltd杩涙潵浜嗗悧锛焮}   ,---sendMagParam.getContent()鐨勫弬鏁颁负锛歿}", active, sendMagParam.getContent());
-                        if (active.equals("sltd")) {
-                            //鐪佺珛鍚屽痉鐨勭煭淇″彂閫佹柟寮�
-                            String data = MessageSend.sendMsg(sendMagParam.getContent(), "6", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
-                            if (StringUtils.isNotEmpty(data)) {
-                                // 瑙f瀽 result=0&description=鎴愬姛&faillist= 鏍煎紡锛坮esult=0鎴愬姛锛�1澶辫触锛�
-                                log.info("銆恠fHandlle銆戠渷绔嬪悓寰风煭淇″彂閫佽繑鍥烇細{}", data);
-                                String[] pairs = data.split("&");
-                                String resultVal = null;
-                                for (String pair : pairs) {
-                                    String[] kv = pair.split("=", 2);
-                                    if ("result".equals(kv[0])) {
-                                        resultVal = kv.length > 1 ? kv[1] : null;
-                                        break;
-                                    }
-                                }
-                                if ("0".equals(resultVal)) {
-                                    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("銆愭柊鍗庡尰闄€��", "");
-
-                        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";
-                            }
-                        }
-                    }
+                    SendResult smsSendResult = sendSmsByActive(serviceSubtask, sendMagParam);
+                    String isSuccess = smsSendResult.asLegacyFlag();
                     //浠诲姟鍙戦�佽褰�
                     ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                     serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
@@ -1644,29 +1541,11 @@
                     serviceOutPath.setUrl(url);
                     iServiceOutPathService.updateServiceOutPath(serviceOutPath);
 
-                    //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D
-                    List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid());
-                    //甯備竴鍖婚櫌 涓嶆牎楠�
+                    //寰俊鍏紬鍙峰彂閫侊細甯備竴涓庢柊鍗庢槸涓ゅ瀹屽叏涓嶅悓鐨勭綉鍏充笌鍒ゅ畾鏍囧噯锛�
+                    //鏈烘瀯閰嶇疆鏍¢獙銆丠IS鎮h�匢D鏍¢獙閮藉凡鏀跺彛鍒� ruoyi-message 鐨勫彂閫佹柟瀹炵幇閲�
+                    SendResult wechatSendResult = sendWechatByActive(serviceSubtask, patArchive, url);
+                    Boolean wxCodeSuccess = wechatSendResult.isOk();
 
-                    if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) {
-                        setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戣鏈烘瀯鐨勫叕浼楀彿閰嶇疆淇℃伅涓嶅叏锛屾棤娉曢�氳繃鍏紬鍙峰彂閫�", "4");
-                        return;
-                    }
-
-                    if (StringUtils.isEmpty(patArchive.getPatidHis())) {
-                        setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佸け璐�,his绯荤粺鐨勬偅鑰卛d涓虹┖", "5");
-                        return;
-                    }
-                    String wxCode = "";
-                    //甯備竴鍖婚櫌
-                    if (active.equals("hzszlyy")) {
-                        //澶勭悊涓枃涔辩爜闂
-                        wxCode = smsUtils.sendChat(url, patArchive.getTelcode(), serviceSubtask.getSfzh());
-                    } else {
-                        wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx);
-                    }
-
-                    Map map = JSONObject.parseObject(wxCode, Map.class);
                     //浠诲姟鍙戦�佽褰�
                     ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                     serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
@@ -1675,22 +1554,7 @@
                     serviceSubtaskRecord.setPreachform("4");
                     serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                     serviceSubtaskRecord.setResult("success");
-                    Boolean wxCodeSuccess = false;
-                    if (active.equals("hzszlyy")) {
-                        if (!map.isEmpty() && map.get("success") != null) {
-                            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) {
-                            wxCodeSuccess = (boolean) map.get("succ");
-                        }
-                    }
-                    if (!map.isEmpty() && !wxCodeSuccess) serviceSubtaskRecord.setResult("error");
+                    if (!wxCodeSuccess) serviceSubtaskRecord.setResult("error");
                     serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
 
                     //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬�
@@ -1699,7 +1563,7 @@
                         serviceSubtask.setResult("success");
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佹垚鍔�", "2");
                     } else {
-                        log.error("銆恠fHandlle銆戝叕浼楀彿鍙戦�佸け璐ワ紝鎮h�呬俊鎭細{}锛岄敊璇俊鎭細{}", serviceSubtask, map.get("msg"));
+                        log.error("銆恠fHandlle銆戝叕浼楀彿鍙戦�佸け璐ワ紝鎮h�呬俊鎭細{}锛岄敊璇俊鎭細{}", serviceSubtask, wechatSendResult.getMessage());
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佸け璐�", "5");
                     }
                 } catch (Exception e) {
@@ -1712,6 +1576,72 @@
             setSuccessPreachForm(serviceSubtask, sendPreachform, "浜哄伐鍙戦�佹垚鍔�", "2");
         }
 
+    }
+
+    /**
+     * 鎸� {@code active}锛堢珯鐐癸級璺敱鍒板搴旂殑鐭俊鍙戦�佹柟銆�
+     * <p>
+     * 鍚勭珯鐐瑰樊寮傝 {@code ruoyi-message} 妯″潡鍚勫疄鐜扮被锛涙湰鏂规硶鍙仛銆屽叆鍙傜粍瑁� + 璺敱 + 鏃ュ織銆嶃��
+     * <p>
+     * 鈿狅笍 鏂板崕锛坽@code xh}锛夌珯鐐逛粛璧般�屾棫瀹炵幇锛堝彂閫佺┖鎶ユ枃锛夈�嶏紝涓庡師 {@code RyTask} 琛屼负涓�瀛椾笉宸紝
+     * 纭缃戝叧鎶ユ枃鏍煎紡鍚庡簲鏀逛负 {@code XinHuaSmsSender#sendForm}銆傝瑙佽绫荤殑 TODO 璇存槑銆�
+     */
+    private SendResult sendSmsByActive(ServiceSubtask serviceSubtask, SendMagParam sendMagParam) {
+        SmsSendRequest request = SmsSendRequest.of(sendMagParam.getPhone(), sendMagParam.getContent(), serviceSubtask.getOrgid());
+        //甯備竴鍖哄垎婀栨花/鍚村北涓ゅ鐭俊绛惧悕
+        if ("hzszlyy".equals(active)) {
+            request.setCampus(resolveShiyiCampus(serviceSubtask));
+        }
+        if ("xh".equals(active)) {
+            XinHuaSmsSender xinHuaSmsSender = (XinHuaSmsSender) smsSenderFactory.get(active);
+            return xinHuaSmsSender.sendJsonLegacy(request);
+        }
+        return smsSenderFactory.send(active, request);
+    }
+
+    /**
+     * 鎸� {@code active}锛堢珯鐐癸級璺敱鍒板搴旂殑寰俊鍏紬鍙峰彂閫佹柟銆�
+     * <p>
+     * 鈿狅笍 鏂板崕鍏紬鍙峰繀椤讳紶鎮h�呬俊鎭紙濮撳悕 + HIS 鎮h�匢D锛夛紝涓庡師
+     * {@code getWXCode(...)} 鐨勫叆鍙備繚鎸佷竴涓�瀵瑰簲銆�
+     */
+    private SendResult sendWechatByActive(ServiceSubtask serviceSubtask, PatArchive patArchive, String url) {
+        WechatSendRequest request = new WechatSendRequest();
+        request.setOrgid(patArchive.getOrgid());
+        request.setIdCard(serviceSubtask.getSfzh());
+        request.setUrl(url);
+        request.setTitle(serviceSubtask.getTaskName());
+        request.setContent(serviceSubtask.getTaskDesc());
+        request.setPhone(patArchive.getTelcode());
+        request.setPatientName(serviceSubtask.getSendname());
+        request.setPatidHis(patArchive.getPatidHis());
+        return wechatSenderFactory.send(active, request);
+    }
+
+    /**
+     * 鏌ヨ鎮h�呮墍鍦ㄩ櫌鍖猴紙1=婀栨花锛屽叾浠�=鍚村北锛夈��
+     * <p>
+     * TODO 寰呯‘璁わ細鍘熷疄鐜板苟鏈妸 {@code sysDeptService.selectDeptList(...)} 鐨勮繑鍥炲�艰祴缁�
+     * {@code sysDepts}锛屽洜姝� {@code sysDepts} 鎭掍负绌哄垪琛ㄣ�亄@code campusid} 鎭掍负 {@code "2"}锛�
+     * 婀栨花闄㈠尯瀹為檯涓婃案杩滆蛋涓嶅埌 {@code sendSms1}銆傛湰娆¢噸鏋�<b>淇濇寔璇ヨ涓轰笉鍙�</b>锛�
+     * 璇峰湪涓氬姟纭鍚庡啀鍐冲畾鏄惁淇垚 {@code sysDepts = sysDeptService.selectDeptList(...)}銆�
+     */
+    private String resolveShiyiCampus(ServiceSubtask serviceSubtask) {
+        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();
+        return ObjectUtils.isNotEmpty(sysDept) ? sysDept.getCampusid() : "2";
     }
 
 
@@ -1848,74 +1778,10 @@
         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<>();
-
-        Map<String, Object> YeWuXX = new LinkedHashMap<>();
-        Map<String, Object> DuanXinXX = new LinkedHashMap<>();
-        DuanXinXX.put("ShouJiHM", ShouJiHM);
-        DuanXinXX.put("FaSongNR", FaSongNR);
-        DuanXinXX.put("FaSongRID", FaSongRID);
-        DuanXinXX.put("FaSongRXM", FaSongRXM);
-        YeWuXX.put("DuanXinXX", DuanXinXX);
-
-        map.put("XiaoXiTou", headerMap);
-        map.put("YeWuXX", YeWuXX);
-
-        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.info("銆恎etDXCode銆戠煭淇″彂閫佺粨鏋滐細{}", result);
-
-        JSONObject jsonObject = JSONObject.parseObject(result);
-        String code = (String) jsonObject.toString();
-        return code;
-    }
-
-
-    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String setPatientname, String setPatientid, List<String> wxqqxx) {
-        XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
-        xinHuaWXReq.setIdcard(idcard);
-        xinHuaWXReq.setUrl(url);
-        xinHuaWXReq.setPatientid(setPatientid);
-        xinHuaWXReq.setPatientname(setPatientname);
-        xinHuaWXReq.setMobile(phone);
-        xinHuaWXReq.setMedcardno(null);
-        xinHuaWXReq.setTitlename(taskName);
-        xinHuaWXReq.setContent(taskDesc);
-        xinHuaWXReq.setAppid(wxqqxx.get(1));
-        log.info("銆恎etWXCode銆戝井淇″叕浼楀彿璇锋眰鍙傛暟锛歿}", xinHuaWXReq);
-        String body = new Gson().toJson(xinHuaWXReq);
-        String encode = encode(wxqqxx.get(2).concat(body));
-        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;
-    }
-
-
-    public String encode(String arg) {
-        if (arg == null) {
-            arg = "";
-        }
-        MessageDigest md5 = null;
-        try {
-            md5 = MessageDigest.getInstance("MD5");
-            md5.update(arg.getBytes("UTF-8"));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return toHex(md5.digest());
-    }
+    // ---------------------------------------------------------------------
+    // 璇存槑锛氬師 getDXCode / getWXCode / encode 涓変釜绉佹湁鏂规硶宸查殢鍙戦�佹柟涓�璧锋敹鍙e埌
+    // ruoyi-message 妯″潡锛圠ishuiSmsSender / XinHuaMpApi锛夛紝姝ゅ宸插垹闄わ紝閬垮厤閲嶅瀹炵幇銆�
+    // ---------------------------------------------------------------------
 
     public void collectHIS() {
         try {
@@ -2190,6 +2056,7 @@
                 PatMedInhosp patMedInhospVo = new PatMedInhosp();
                 patMedInhospVo.setOrgid(serviceSubtask.getOrgid());
                 patMedInhospVo.setInhospid(serviceSubtask.getInhospid());
+                patMedInhospVo.setCry(1);
                 List<PatMedInhosp> patMedInhospList = iPatMedInhospService.selectPatMedInhospList(patMedInhospVo);
                 PatMedInhosp patMedInhosp = new PatMedInhosp();
                 if (!patMedInhospList.isEmpty()) {

--
Gitblit v1.9.3