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