From af4db2407e7c60bdd4b250ecaa58454d29bab6a2 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 05 二月 2026 15:45:12 +0800
Subject: [PATCH] 【市一】报错处理

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java |   71 ++++++++++++++++++++++++++++-------
 1 files changed, 57 insertions(+), 14 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 0855f2b..c32f368 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
@@ -12,10 +12,7 @@
 import com.ruoyi.common.enums.ServiceFromEnum;
 import com.ruoyi.common.enums.WxGZHEnum;
 import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.HttpUtil;
-import com.ruoyi.common.utils.OkHttpExample;
-import com.ruoyi.common.utils.RSAPublicKeyExample;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.*;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.common.utils.sms.smsUtils;
 import com.ruoyi.quartz.service.ICollectHISService;
@@ -497,6 +494,7 @@
                 Long cs = currentSort.get();
                 if (cs.equals(serviceSubtaskPreachforms.size())) {
                     serviceSubtask.setSendstate(5L);
+                    serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋匡紝鍏ㄩ儴鎵ц澶辫触");
                     serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                     //淇敼鍙戦�佹柟寮忕殑鐘舵�佷负澶辫触
                     serviceSubtaskPreachform.setSendstate("5");
@@ -593,8 +591,7 @@
                 redisCache.setCacheListLeftAndDistinct("cache-0", list);
                 log.info("銆恠fHandlle銆戠數璇濅换鍔″凡鍔犲叆闃熷垪锛屾暟閲忥細{}", list.size());
             }
-        }
-        else if (descByCode.equals("寰俊灏忕▼搴�")) {
+        } else if (descByCode.equals("寰俊灏忕▼搴�")) {
             //寰俊灏忕▼搴�
             if (ObjectUtils.isNotEmpty(ivrTask1) && ivrTask1.getPatCycle() == 1) {
                 //璇存槑璇ヤ换鍔$殑鎮h�呮槸寰幆鎵ц鐨�
@@ -621,8 +618,7 @@
                 //灏嗗綋鍓嶈鎵ц鐨勬偅鑰呮斁鍒拌繃婊ゆ偅鑰呴泦鍚堜腑
                 serviceSubtaskListFilter.add(serviceSubtask);
             }
-        }
-        else if (descByCode.equals("鐭俊")) {
+        } else if (descByCode.equals("鐭俊")) {
             RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
             String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
             log.info("銆恠fHandlle銆戝鐞嗙煭淇¢暱鏈熶换鍔★紝鎮h�匢D锛歿}", serviceSubtask.getPatid());
@@ -815,7 +811,7 @@
                         wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx);
                     }
 
-                    Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
+                    Map map = JSONObject.parseObject(wxCode, Map.class);
                     //浠诲姟鍙戦�佽褰�
                     ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                     serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
@@ -824,12 +820,22 @@
                     serviceSubtaskRecord.setPreachform("4");
                     serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                     serviceSubtaskRecord.setResult("success");
-                    if (!map.isEmpty() && (Boolean) map.get("succ") == false) serviceSubtaskRecord.setResult("error");
+                    Boolean wxCodeSuccess = false;
+                    if(active.equals("hzszlyy")){
+                        if(!map.isEmpty() && map.get("success") != null){
+                            wxCodeSuccess = (boolean) map.get("success");
+                        }
+                    }else {
+                        if(!map.isEmpty() && map.get("succ") != null){
+                            wxCodeSuccess = (boolean) map.get("succ");
+                        }
+                    }
+                    if (!map.isEmpty() && !wxCodeSuccess) serviceSubtaskRecord.setResult("error");
                     serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
 
                     //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬�
                     serviceSubtask.setSendstate(3L);
-                    if ((Boolean) map.get("succ") == true) {
+                    if (wxCodeSuccess) {
                         serviceSubtask.setResult("success");
                         setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佹垚鍔�", "2");
                     } else {
@@ -881,7 +887,15 @@
 
         // 鎯呭喌1锛歝urrentPreachform涓虹┖锛屽彇sort涓�1鐨刾reachform
         if (StringUtils.isEmpty(serviceSubtask.getCurrentPreachform())) {
-            return serviceSubtaskPreachforms.stream().filter(item -> item.getSort() == 1L).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null);
+            String firstPreachform = serviceSubtaskPreachforms.stream().filter(item -> item.getSort() == 1L).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null);
+
+            //鏇存柊涓�涓嬪綋鍓嶅彂閫佹椂闂�
+            if (StringUtils.isNotEmpty(firstPreachform)) {
+                serviceSubtaskPreachform.setPreachform(firstPreachform);
+                serviceSubtaskPreachform.setCurrentSendTime(new Date());
+                serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform);
+            }
+            return firstPreachform;
         }
 
         // 鎯呭喌2锛歝urrentPreachform涓嶄负绌猴紝鎵句笅涓�涓猻ort
@@ -902,6 +916,7 @@
                 if (allSendStateNot1AndNot9) {
                     //璇存槑鍏ㄥ彂閫佸け璐ヤ簡
                     serviceSubtask.setSendstate(5L);
+                    serviceSubtask.setRemark("getSendPreachform鏂规硶 妫�鏌ユ槸鍚︽墍鏈塻endstate涓嶇瓑浜�9, 鍏ㄥけ璐ヤ簡");
                     serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                     //淇敼鍙戦�佺姸鎬�
                     setFail(serviceSubtaskPreachforms, serviceSubtask);
@@ -911,7 +926,6 @@
 
             // 褰搒ort绛変簬鍒楄〃size鏃讹紝涓嬩竴涓猻ort涓�-1
             Long nextSort = currentSort.get() + 1;
-
             //濡傛灉褰撳墠鐨勫彂閫佹柟寮忎笉涓虹┖锛屽苟涓斿紑濮嬪噯澶囪鐢ㄤ笅涓�绉嶆柟寮忓彂閫佷簡锛岄偅褰撳墠鐨勮偗瀹氭病鏈夊彂閫佹垚鍔燂紝闇�瑕佽缃け璐�
             // (杩欓噷涓昏鏄紝浜哄伐濡傛灉娌℃湁闅忚锛岀劧鍚庡埌鍏紬鍙风殑鏃跺�欙紝灏变笉浼氬啀鍘荤浜哄伐鏄惁鎴愬姛锛屼汉宸ョ殑鐘舵�佷細涓�鐩村崱鍦�2鐨勭姸鎬佷笂)
             if (StringUtils.isNotEmpty(serviceSubtask.getCurrentPreachform())) {
@@ -919,7 +933,34 @@
             }
 
             // 鎵惧埌涓嬩竴涓猻ort瀵瑰簲鐨刾reachform
-            return serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1");
+            String nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1");
+
+            //寰俊宸插彂閫併�佸凡棰嗗彇璺宠繃鐭俊鍙戦�侊紝杩涜浜哄伐 -涓芥按涓尰闄�
+            if (active.equals("47231022633110211A2101")) {
+                //鑾峰彇褰撳墠鍙戦�佹柟寮�
+                ServiceSubtaskPreachform currentServiceSubtaskPreachform = serviceSubtaskPreachforms.stream().filter(item -> item.getSort().equals(currentSort.get())).findFirst().orElse(new ServiceSubtaskPreachform());
+                //褰撳墠鍙戦�佹柟寮忎负寰俊鐨勶紝涓斾笅涓�鍙戦�佹柟寮忎负鐭俊鐨勶紝寰俊鍙戦�佺姸鎬佷负宸插彂閫併�佸凡棰嗗彇鐨勶紝璺宠繃鐭俊姝ラ
+                if (currentServiceSubtaskPreachform.getPreachform().equals("5")
+                        && (currentServiceSubtaskPreachform.getSendstate().equals("2")
+                        || currentServiceSubtaskPreachform.getSendstate().equals("3"))) {
+                    if(StringUtils.isNotEmpty(nextPreachform) && nextPreachform.equals("2")){
+                        log.error("銆恠fHandlle銆戝井淇″凡鍙戦�侊紝鐭俊涓嶅彂閫侊紝璺宠浆浜哄伐");
+                        setSuccessPreachForm(serviceSubtask, "-1", "寰俊宸插彂閫侊紝鐭俊涓嶅彂閫侊紝璺宠浆浜哄伐", "6");
+                        //璺宠繃鐭俊锛屾墽琛屼笅涓�姝�
+                        Long newNextSort = nextSort + 1;
+                        //鎵惧埌鐭俊鍐嶄笅涓�涓猻ort瀵瑰簲鐨刾reachform
+                        nextPreachform = serviceSubtaskPreachforms.stream().filter(item -> newNextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1");
+                    }
+                }
+            }
+            //鏇存柊涓�涓嬪綋鍓嶅彂閫佹椂闂�
+            if (StringUtils.isNotEmpty(nextPreachform)) {
+                serviceSubtaskPreachform.setCurrentSendTime(new Date());
+                serviceSubtaskPreachform.setPreachform(nextPreachform);
+                serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform);
+            }
+
+            return nextPreachform;
         }
 
         return null;
@@ -1054,6 +1095,7 @@
             serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
             serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid());
             serviceSubtaskPreachform.setSendstate(failSendstate);
+            serviceSubtaskPreachform.setCurrentSendTime(new Date());
             serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform);
             return true;
         }
@@ -1090,6 +1132,7 @@
                 if (failSendstate.equals("4") || failSendstate.equals("5")) {
                     serviceSubtask.setCurrentPreachform(preachform);
                     serviceSubtask.setSendstate(5L);
+                    serviceSubtask.setRemark("setSuccessPreachForm鏂规硶锛屽綋鍓嶇殑preachform宸茬粡鏄渶鍚庝竴涓簡锛屽叏閮ㄦ墽琛屽け璐�");
                     serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                     return true;
                 }

--
Gitblit v1.9.3