From f44fc386a12e119df6ff0cd0b546bdb0d38d05db Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 27 七月 2026 13:42:48 +0800
Subject: [PATCH] 同德满意度异常,用钉钉提醒负责人

---
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml            |    1 
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                             |  135 ++++++++++++---------------------------------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |   10 ---
 ruoyi-common/src/main/java/com/ruoyi/common/dx/MessageSend.java                          |   25 ++++++-
 4 files changed, 57 insertions(+), 114 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index f2a5c06..f13ba40 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -957,16 +957,6 @@
         ryTask.dealOutHospInfo();
     }
 
-    @PostMapping("/compensateTasktest")
-    public void compensateTasktest(@RequestParam("subId") Long subId) {
-        ryTask.compensateTaskTest(subId);
-    }
-
-    @PostMapping("/longTaskSendtest")
-    public void longTaskSendtest(@RequestParam("subId") Long subId) {
-        ryTask.longTaskSendTest(subId);
-    }
-
     @PostMapping("/syncMedInhospForShiyi")
     public void syncMedInhospForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
         collectHISService.syncMedInhosp(startTime, endTime);
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/dx/MessageSend.java b/ruoyi-common/src/main/java/com/ruoyi/common/dx/MessageSend.java
index 06d48f6..eb3e8dc 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/dx/MessageSend.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/dx/MessageSend.java
@@ -1,6 +1,5 @@
 package com.ruoyi.common.dx;
 
-import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.common.utils.uuid.UUID;
 import lombok.extern.slf4j.Slf4j;
 
@@ -15,17 +14,33 @@
      * //     * @param sOrderNo        鎮h�呭敮涓�鍙风爜
      * //     * @param sMessageContent 鐭俊鍐呭
      *
-     * @param sMessageType  鐭俊绫诲瀷   1=楠岃瘉鐮併��2=閫氱煡銆�3=骞垮憡
+     * @param sMessageType  鐭俊绫诲瀷   1=楠岃瘉鐮併��2=閫氱煡銆�3=骞垮憡 6=鍐呭鏈夐摼鎺ュ拰鐢佃瘽锛�7=閽夐拤娑堟伅
      * @param sUserNumber   鎵嬫満鍙风爜
      * @param sScheduleTime 棰勭害鍙戦�佹椂闂�
      * @return
      */
     public static String sendMsg(String sMessageContent, String sMessageType, String sUserNumber, String sScheduleTime) {
-        log.info("--sMessageContent鐨勫�间负锛歿}   ,--sMessageType鐨勫�间负锛歿},   --sUserNumber鐨勫�间负锛歿},   --sScheduleTime鐨勫�间负锛歿}", sMessageContent, sMessageType, sUserNumber, sScheduleTime);
+        log.info("--sMessageContent 鐨勫�间负锛歿}   ,--sMessageType 鐨勫�间负锛歿},   --sUserNumber 鐨勫�间负锛歿},   --sScheduleTime 鐨勫�间负:{}", sMessageContent, sMessageType, sUserNumber, sScheduleTime);
+
         com.ruoyi.common.dx.SmsService service = new SmsService();
         SmsServiceSoap soap = service.getSmsServiceSoap();
-        String result = soap.i5GSend("202508291634227086", "T202508291635259440", UUID.randomUUID().toString(), sMessageContent, sMessageType, sUserNumber, sScheduleTime);
-        log.info("----鐭俊杩斿洖鐨勬暟鎹负锛歿},    ----sMessageContent鐨勫�间负:{},", result, sMessageContent);
+        String result = null;
+
+        try {
+            if ("6".equals(sMessageType)) {
+                result = soap.i5GSend("202508291634227086", "T202508291635259440", UUID.randomUUID().toString(), sMessageContent, sMessageType, sUserNumber, sScheduleTime);
+                log.info("----鐭俊杩斿洖鐨勬暟鎹负锛歿},    ----sMessageContent 鐨勫�间负:{}", UUID.randomUUID().toString());
+            } else if ("7".equals(sMessageType)) {
+                result = soap.i5GSend("202508291634227086", "T202607211306131891", UUID.randomUUID().toString(), sMessageContent, sMessageType, sUserNumber, sScheduleTime);
+                log.info("----閽夐拤杩斿洖鐨勫師濮嬫暟鎹负锛歿}", result);
+
+            } else {
+                log.warn("涓嶆敮鎸佺殑鐭俊绫诲瀷锛歿}", sMessageType);
+            }
+        } catch (Exception e) {
+            log.error("瀹屾暣閿欒淇℃伅锛歿}", e.getCause().getMessage());
+        }
+
         return result;
     }
 }
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 c7a6e0f..3af68ec 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
@@ -25,6 +25,7 @@
 import com.smartor.common.MtSubmitSmUtil;
 import com.smartor.common.QwenLLMUtil;
 import com.smartor.domain.*;
+import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
 import com.smartor.service.*;
@@ -146,7 +147,7 @@
     ISysDeptService sysDeptService;
 
     @Autowired
-    IPatMedOuthospService patMedOuthospService;
+    IServiceSubtaskDetailTraceService serviceSubtaskDetailTraceService;
 
     @Autowired
     ISvyTaskTemplateService svyTaskTemplateService;
@@ -180,18 +181,6 @@
     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));
-    }
-
-    public void ryParams(String params) {
-        System.out.println("鎵ц鏈夊弬鏂规硶锛�" + params);
-    }
-
-    public void ryNoParams() {
-        System.out.println("鎵ц鏃犲弬鏂规硶");
-    }
 
     public void importData() {
         String filePath = "C:\\Users\\86176\\Desktop\\鏂板缓鏂囨湰鏂囨。 4.txt"; // 鏇挎崲涓轰綘鐨勬枃浠惰矾寰�
@@ -229,6 +218,38 @@
         serviceThirdData.setCreateTime(new Date());
         iServiceThirdDataService.queryList(serviceThirdData);
     }
+
+    /**
+     * 瀹氭椂鍙戦�丼LTD婊℃剰搴﹀紓甯镐俊鎭�
+     */
+    public void sendSLTDMYDExceptInfo() {
+        //1.鑾峰彇鍙戦�佷汉宸ュ彿
+        ServiceSubtaskDetailTraceVO subtaskDetailTraceVO = new ServiceSubtaskDetailTraceVO();
+        subtaskDetailTraceVO.setHandleFlag("0");
+        List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTraceVO);
+        // 鎶� dutyDeptPersonCode 鏁寸悊鍒� list 涓紙濡傛灉澶氫釜浜虹敤閫楀彿鍒嗗壊锛屽垯灞曞紑骞跺幓閲嶏級
+        List<String> dutyDeptPersonCodeList = serviceSubtaskDetailTraces.stream().map(ServiceSubtaskDetailTrace::getDutyDeptPersonCode).filter(StringUtils::isNotBlank).flatMap(code -> Arrays.stream(code.split(","))).map(String::trim).filter(StringUtils::isNotBlank).distinct()  // 鍘婚噸
+                .collect(Collectors.toList());
+        // 鑾峰彇鈥滅渷绔嬪悓寰锋弧鎰忓害寮傚父鍐呭鎻愰啋"
+        SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("sltd.myd.send.except.contont");
+        String exceptContent = sysConfig.getConfigValue();
+
+        // 鑾峰彇鈥滅渷绔嬪悓寰锋弧鎰忓害寮傚父鍐呭鎻愰啋娴嬭瘯浜哄伐鍙封��
+        String testPerson = sysConfigMapper.checkConfigKeyUnique("sltd.myd.send.test.person").getConfigValue();
+        if (StringUtils.isNotBlank(testPerson)) {
+            String[] split = testPerson.split(",");
+            if (CollectionUtils.isEmpty(dutyDeptPersonCodeList)) dutyDeptPersonCodeList = Arrays.asList(split);
+            else dutyDeptPersonCodeList.addAll(Arrays.asList(split));
+        }
+
+        if (CollectionUtils.isNotEmpty(dutyDeptPersonCodeList)) {
+            for (String dutyDeptPersonCode : dutyDeptPersonCodeList) {
+                log.info("銆恠endSLTDMYDExceptInfo銆戝彂閫佷汉宸ュ彿锛歿}", dutyDeptPersonCode);
+                String data = MessageSend.sendMsg(exceptContent, "7", dutyDeptPersonCode, LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
+            }
+        }
+    }
+
 
     /**
      * 瀹氭椂澶勭悊澶栭摼鐨勬暟鎹�
@@ -600,7 +621,7 @@
             serviceSLTDInhospReqVO.setCurrent(outpPage);
             serviceSLTDInhospReqVO.setSize(OUTP_PAGE_SIZE);
             log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滆嵂鍝佹暟鎹�濋噰闆嗙{}椤垫暟鎹�", outpPage);
-           Boolean b = serviceSLTDHealthcareRecordService.queryMedicationItemList(serviceSLTDInhospReqVO);
+            Boolean b = serviceSLTDHealthcareRecordService.queryMedicationItemList(serviceSLTDInhospReqVO);
             log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滆嵂鍝佹暟鎹�濋噰闆嗙粨鏋滐細{}", b);
             outpPage++;
         }
@@ -762,86 +783,6 @@
         //鑾峰彇鍒皊endstate=3 骞朵笖 visit_time涓哄皬浜庣瓑浜庝粖澶╃殑subtask
         ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
         serviceSubtaskVO.setSendstate(3L);
-        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);
-            }
-        }
-    }
-
-    /**
-     * 闀挎湡浠诲姟鍙戦��
-     */
-    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) {
@@ -1239,11 +1180,7 @@
                     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" +
-                            "$param6=" + subId;
+                    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);
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml
index 133e0c1..05dc624 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml
@@ -277,6 +277,7 @@
         <if test="reportDeptPersonCode != null  and reportDeptPersonCode != ''">
             and report_dept_person_code like concat('%', #{reportDeptPersonCode}, '%')
         </if>
+        <if test="pageSize != null  and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if>
     </select>
 
     <select id="tracedeallist" parameterType="com.smartor.domain.VO.DetailTraceDealVO"

--
Gitblit v1.9.3