From 259c1fcfe0f415153df8a3fbfe71d2f71772ec57 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 12 十二月 2025 17:19:25 +0800
Subject: [PATCH] 【丽水修复】补偿机制,短信发送失败记录时间
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 148 +++++++++++++++++++++++++++++++++++++-----------
1 files changed, 113 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 59baea0..c67a2ab 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
@@ -1,6 +1,8 @@
package com.ruoyi.quartz.task;
import com.alibaba.fastjson2.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
@@ -35,7 +37,6 @@
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.MessageDigest;
-import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -204,14 +205,12 @@
}
public void analysisData() {
- System.out.println("---------------------------");
//鏁版嵁瑙f瀽
ServiceThirdData serviceThirdData = new ServiceThirdData();
serviceThirdData.setDataType("ADT^A03");
serviceThirdData.setIsDeal(0);
serviceThirdData.setCreateTime(new Date());
iServiceThirdDataService.queryList(serviceThirdData);
-
}
/**
@@ -311,46 +310,68 @@
// 鐪佺珛鍚屽痉鏁版嵁閲囬泦
for (Long cid : campusidList) {
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+ String yesterday = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
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> list = new ArrayList<>();
- list.add("FH0108.02");
- serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+ List<String> listStr = new ArrayList<>();
+// list.add("FH0108.02");
+ listStr.add("FH0109.26");
+ serviceSLTDInhospReqVO.setStatusList(listStr);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+ 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.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
- 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<>();
- list2.add("FH0108.02");
- serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list2);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
+// list2.add("FH0108.02");
+ list2.add("FH0109.27");
+ serviceSLTDInhospReqVO.setStatusList(list2);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
}
// SysConfig sysConfig = sysConfigs.get(0);
// sysConfig.setConfigValue(nowTime);
@@ -386,11 +407,12 @@
* 澶勭悊鎮h�呬俊鎭紝杩涘叆瀛愪换鍔¤〃
*/
public void dealOutHospInfo() {
+ String config = configService.selectConfigByKey("visit.early.day");
if (port.equals("8095")) {
//鍑洪櫌琛�
- iPatMedInhospService.dealOutHospInfo();
- //闂ㄨ瘖琛�
- if (active.equals("xh")) {
+ iPatMedInhospService.dealOutHospInfo(config);
+ //闂ㄨ瘖琛�(鏂板崕鐨勬殏鏃朵笉鍋氶棬璇婇殢璁�)
+ if (!active.equals("xh")) {
iPatMedOuthospService.dealOutpatientInfo();
}
}
@@ -418,7 +440,7 @@
/**
- * 闀挎湡浠诲姟鎵ц
+ *
*/
public void longTaskSend() {
//鑾峰彇浠诲姟淇℃伅
@@ -606,6 +628,8 @@
String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
log.info("銆恠fHandlle銆戝鐞嗙煭淇¢暱鏈熶换鍔★紝鎮h�匢D锛歿}", serviceSubtask.getPatid());
boolean dateToday = isDateToday(serviceSubtask.getVisitTime());
+ //璁板綍褰撳墠鏃堕棿 濡傛灉澶辫触璁板綍褰撳墠鏃堕棿
+ LocalDateTime now = LocalDateTime.now();
if (dateToday) {
try {
String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
@@ -656,16 +680,29 @@
req.put("content", sendMagParam.getContent());
isSuccess = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
} else if (active.equals("ls")) {
- String url = configService.selectConfigByKey("token.360", serviceSubtask.getOrgid());
- //涓芥按鐨勭煭淇″彂閫佹柟寮�
- Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
- String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), url);
- if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) {
- setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�", "5");
+// 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锛歿}", map.get("address"), sendMagParam, serviceSubtask.getOrgid());
- String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token);
+ 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);
@@ -676,7 +713,7 @@
} else if (active.equals("sltd")) {
log.info("sltd杩涙潵浜嗗悧锛焮} ,---sendMagParam.getContent()鐨勫弬鏁颁负锛歿}", active, sendMagParam.getContent());
//鐪佺珛鍚屽痉鐨勭煭淇″彂閫佹柟寮�
- String data = MessageSend.sendMsg(sendMagParam.getContent(), "2", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
+ 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";
}
@@ -684,7 +721,9 @@
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";
+ }
}
//浠诲姟鍙戦�佽褰�
@@ -707,13 +746,13 @@
setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佹垚鍔�", "2");
} else {
serviceSubtask.setResult("error");
- serviceSubtask.setRemark("鐭俊鍙戦�佸け璐�");
- setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�", "5");
+ serviceSubtask.setRemark("鐭俊鍙戦�佸け璐�" + now);
+ setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�" + now, "5");
}
} catch (Exception e) {
String guid = UUID.randomUUID().toString();
- log.error("銆恠fHandlle銆戦暱鏈熶换鍔$煭淇″彂閫佸け璐ワ紝鍘熷洜锛歿}锛孏UID锛歿}", e.getMessage(), guid);
- setSuccessPreachForm(serviceSubtask, sendPreachform, "闀挎湡浠诲姟鐭俊鍙戦�佸け璐�:绯荤粺閿欒", "5");
+ log.error("銆恠fHandlle銆戦暱鏈熶换鍔$煭淇″彂閫佸け璐ワ紝鍘熷洜锛歿}锛孏UID锛歿}, 鏃堕棿: {}", e.getMessage(), guid, now);
+ setSuccessPreachForm(serviceSubtask, sendPreachform, "闀挎湡浠诲姟鐭俊鍙戦�佸け璐�:绯荤粺閿欒, 鏃堕棿: " + now, "5");
}
}
@@ -802,6 +841,16 @@
private String getSendPreachform(ServiceSubtaskPreachform serviceSubtaskPreachform, ServiceSubtask serviceSubtask) {
List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
+ if (CollectionUtils.isEmpty(serviceSubtaskPreachforms)) {
+ //濡傛灉serviceSubtaskPreachforms涓虹┖鐨勮瘽锛屽垯闇�瑕佽繘琛屾柊澧炰竴涓�
+ List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = addServiceSubtaskPreachform(serviceSubtask, "1");
+ if (CollectionUtils.isEmpty(serviceSubtaskPreachformList)) {
+ log.error("ryTask--鍙戦�佹柟寮忓け璐ヤ簡serviceSubtask鐨勫叆鍙備负锛歿}", serviceSubtask);
+ return null;
+ }
+ serviceSubtaskPreachforms = serviceSubtaskPreachformList;
+ }
+
// 鎯呭喌1锛歝urrentPreachform涓虹┖锛屽彇sort涓�1鐨刾reachform
if (StringUtils.isEmpty(serviceSubtask.getCurrentPreachform())) {
return serviceSubtaskPreachforms.stream().filter(item -> item.getSort() == 1L).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null);
@@ -848,6 +897,35 @@
return null;
}
+ private List<ServiceSubtaskPreachform> addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) {
+ //灏唒reachformDesc鐨刯son瀵硅薄锛屾斁鍒發ist闆嗗悎涓�
+ ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+ String preachformDesc = serviceTask.getPreachformDesc();
+
+ List<ServiceSubtaskPreachform> sspl = null;
+ ObjectMapper objectMapper = new ObjectMapper();
+ if (org.apache.commons.lang3.StringUtils.isNotEmpty(preachformDesc)) {
+ try {
+ sspl = objectMapper.readValue(preachformDesc, new TypeReference<List<ServiceSubtaskPreachform>>() {
+ });
+ } catch (JsonProcessingException e) {
+ log.error("ryTask--preachform杞琇ist<ServiceSubtaskPreachform>鎶ラ敊浜嗭細{}", e.getMessage());
+ }
+ for (ServiceSubtaskPreachform serviceSubtaskPreachform : sspl) {
+ serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
+ serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
+ //杩欎釜sendstate闇�瑕佸湪鏁版嵁搴撹缃竴涓粯璁ゅ�间负鈥�1鈥�
+ serviceSubtaskPreachform.setSendstate("1");
+ if (StringUtils.isNotEmpty(sendstate)) serviceSubtaskPreachform.setSendstate(sendstate);
+ serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid());
+ serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform);
+ }
+
+ }
+
+ return sspl;
+ }
+
private Integer setFail(List<ServiceSubtaskPreachform> serviceSubtaskPreachforms, ServiceSubtask serviceSubtask) {
Optional<Long> id = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getId).findFirst();
if (id.isPresent()) {
--
Gitblit v1.9.3