From 0bbbd746e8c39d91ad7b47a4e36e29ab972dc98c Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 20 十月 2026 16:56:54 +0800
Subject: [PATCH] 处理长期任务发送问题
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 494 ++++++++++++++++++------------------------------------
1 files changed, 165 insertions(+), 329 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 9e3f824..ff0e3e7 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
@@ -33,8 +33,7 @@
import com.ruoyi.message.sms.provider.sltd.ws.MessageSend;
import com.smartor.common.QwenLLMUtil;
import com.smartor.domain.*;
-import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
-import com.smartor.domain.entity.ServiceSubtaskEntity;
+import com.ruoyi.task.domain.VO.ServiceSubtaskDetailTraceVO;
import com.smartor.mapper.*;
import com.smartor.service.*;
import lombok.extern.slf4j.Slf4j;
@@ -62,6 +61,22 @@
import com.ruoyi.template.domain.HeLibrary;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.template.api.TemplateFacade;
+import com.ruoyi.common.core.domain.entity.PatArchive;
+import com.ruoyi.task.domain.entity.ServiceSubtaskEntity;
+import com.ruoyi.task.domain.ServiceSubtask;
+import com.ruoyi.task.domain.ServiceSubtaskRecord;
+import com.ruoyi.task.domain.ServiceTask;
+import com.ruoyi.task.mapper.ServiceSubtaskMapper;
+import com.ruoyi.task.mapper.ServiceTaskMapper;
+import com.ruoyi.task.domain.ServiceSubtaskDetailTrace;
+import com.ruoyi.task.domain.VO.ServiceSubtaskDetailTraceVO;
+import com.ruoyi.task.service.IServiceSubtaskDetailTraceService;
+import com.ruoyi.task.domain.ServiceOutPath;
+import com.ruoyi.task.service.IServiceOutPathService;
+import com.ruoyi.task.domain.ServiceSubtaskPreachform;
+import com.ruoyi.task.service.IServiceSubtaskService;
+import com.ruoyi.task.domain.SendMagParam;
+
/**
* 瀹氭椂浠诲姟璋冨害娴嬭瘯
*
@@ -104,8 +119,11 @@
@Autowired
private IServicePatientTempService iServicePatientTempService;
- @Autowired
- private IHNGatherPatArchiveService ihnGatherPatArchiveService;
+ // 鈿狅笍 2026-10 绉婚櫎锛氬師 `IHNGatherPatArchiveService ihnGatherPatArchiveService` 瀛楁銆�
+ // 瀹冨湪鏈被閲�**鍙�**琚� dealHisData 鐨勬渤鍗楀垎鏀娇鐢紙姝诲瓧娈垫鏌ワ細鏀瑰墠鍏ㄦ枃浠朵粎 1 澶勪娇鐢級锛�
+ // 璇ュ垎鏀凡闅忔柟娉曚綋鎼繘 ruoyi-datacollection锛屾晠瀛楁杩炲甫鍒犻櫎 鈥斺��
+ // 鐣欑潃瀹冧細璁╀汉璇互涓� smartor 鐨勬渤鍗楅噰闆嗚繕鏈夋湰绫昏繖涓娇鐢ㄦ柟
+ // 锛堢湡姝g殑浣跨敤鏂瑰凡鏄暟鎹噰闆嗘ā鍧楃粡濂戠害 HisGatherApi 璋冪敤鐨� Bridge锛夈��
@Autowired
private IServiceSLTDHealthcareRecordService serviceSLTDHealthcareRecordService;
@@ -146,8 +164,9 @@
@Autowired
private IServiceSubtaskRecordService serviceSubtaskRecordService;
- @Autowired
- IIcd10Service iIcd10Service;
+ // 鈿狅笍 2026-10 绉婚櫎锛氬師 `IIcd10Service iIcd10Service` 瀛楁銆�
+ // 瀹冨湪鏈被閲�**鍙�**琚� dealHisData 鐨�"鐤剧梾瀛楀吀澧為噺閲囬泦"涓�琛岃皟鐢紝宸查殢鏂规硶浣撴惉杩�
+ // ruoyi-datacollection锛堢粡濂戠害 HisGatherApi#gatherIcd10 璋冨洖 smartor 鐨勫疄鐜帮級銆�
@Autowired
IPatArchiveService patArchiveService;
@@ -213,8 +232,27 @@
@Autowired
private com.ruoyi.publicity.api.PublicityFacade publicityFacade;
- @Value("${appid}")
- private String appid;
+ /**
+ * 鏁版嵁閲囬泦妯″潡鐨�<b>甯搁┗闂ㄩ潰</b>銆�
+ * <p>
+ * 鈿狅笍 2026-10 妯″潡鍖栵細鏈被鐨� {@code dealHisData(String)} 鏂规硶浣擄紙杩炲悓绉佹湁甯墜
+ * {@code collectSegmentData}锛夊凡鏁翠綋鎼繘 {@code ruoyi-datacollection}锛�
+ * 鏈被鍙繚鐣欏畾鏃朵换鍔″叆鍙o紙sys_job 鐨� invoke_target 鏄� {@code ryTask.dealHisData('...')}锛�
+ * 鍏ュ彛鍚嶄笉鑳藉彉锛夈�傜珯鐐瑰垎鏀�佹椂闂寸獥鍙c�佸垎娈靛洖婧�佹棩蹇楁枃妗堥兘鍦ㄦā鍧楅噷锛屼竴琛屾湭鏀广��
+ * <p>
+ * 娉ㄥ叆闂ㄩ潰鑰屼笉鏄ā鍧楀唴閮� Service锛氶棬闈�<b>姘歌繙瀛樺湪</b>锛屼笖鍙湁闂ㄩ潰鍒�
+ * {@code sys_config: datacollection.enabled} 寮�鍏炽��
+ */
+ @Autowired
+ private com.ruoyi.datacollection.api.DataCollectionFacade dataCollectionFacade;
+
+ // 鈿狅笍 2026-10 鍒犻櫎锛氬師 `@Value("${appid}") private String appid;`
+ // 瀹冩槸銆屾柊鍗庡井淇″叕浼楀彿鎺ㄩ�併�嶇殑閬楃暀瀛楁锛堟彁浜� 8590ef6a 寮曞叆锛屽彧琚�
+ // xinHuaWXReq.setAppid(appid) 鐢ㄨ繃锛夈�傝鎺ㄩ�侀�昏緫宸叉惉杩� ruoyi-message
+ // 锛堝叕浼楀彿鍑嵁鏀圭敱 sys_config.wx.mp.config.* 涓嬪彂锛夛紝鏈被閲屽凡鏃犲紩鐢紱
+ // 浣嗗畠鐨� @Value 娌℃湁榛樿鍊硷紝鑰� application-nhfy.yml / -xh.yml / -ls.yml
+ // 閮芥病瀹氫箟 appid 杩欎釜 key锛岃繖浜� profile 鍚姩鏃朵細鐩存帴鎶�
+ // `Could not resolve placeholder 'appid'`銆傜暀鐫�鏄畾鏃剁偢寮癸紝鏁呭垹闄ゃ��
@Value("${server.port}")
private String port;
@@ -330,8 +368,7 @@
//1.鑾峰彇鍙戦�佷汉宸ュ彿
ServiceSubtaskDetailTraceVO subtaskDetailTraceVO = new ServiceSubtaskDetailTraceVO();
subtaskDetailTraceVO.setHandleFlag("0");
- List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces =
- serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTraceVO);
+ List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTraceVO);
// 鑾峰彇鈥滃紓甯稿唴瀹规彁閱�"
SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("send.except.content");
String exceptContent = sysConfig.getConfigValue();
@@ -339,12 +376,12 @@
// 鑾峰彇鈥滃唴瀹规彁閱掓祴璇曚汉宸ュ彿鈥�
SysConfig testPersonConfig = sysConfigMapper.checkConfigKeyUnique("send.test.person");
String testPerson = ObjectUtils.isNotEmpty(testPersonConfig) ? testPersonConfig.getConfigValue() : "";
- if(CollectionUtils.isNotEmpty(serviceSubtaskDetailTraces)){
+ if (CollectionUtils.isNotEmpty(serviceSubtaskDetailTraces)) {
for (ServiceSubtaskDetailTrace serviceSubtaskDetailTrace : serviceSubtaskDetailTraces) {
List<String> dutyDeptPersonCodeList = new ArrayList<>();
- // 鎶� dutyDeptPersonCode 鏁寸悊鍒� list 涓紙濡傛灉澶氫釜浜虹敤閫楀彿鍒嗗壊锛屽垯灞曞紑骞跺幓閲嶏級
+ // 鎶� dutyDeptPersonCode 鏁寸悊鍒� list 涓紙濡傛灉澶氫釜浜虹敤閫楀彿鍒嗗壊锛屽垯灞曞紑骞跺幓閲嶏級
String dutyDeptPersonCodeStr = serviceSubtaskDetailTrace.getDutyDeptPersonCode();
- if(StringUtils.isNotEmpty(dutyDeptPersonCodeStr)){
+ if (StringUtils.isNotEmpty(dutyDeptPersonCodeStr)) {
String[] dutyDeptPersonCodeSplit = dutyDeptPersonCodeStr.split(",");
if (CollectionUtils.isEmpty(dutyDeptPersonCodeList)) {
dutyDeptPersonCodeList = new ArrayList<>(Arrays.asList(dutyDeptPersonCodeSplit));
@@ -372,18 +409,18 @@
sysUserVo.setOrgid(serviceSubtaskDetailTrace.getOrgid());
List<SysUser> users = userService.getUserList(sysUserVo);
String phoneNumber = "";
- if(ObjectUtils.isNotEmpty(users)){
+ if (ObjectUtils.isNotEmpty(users)) {
sysUser = users.get(0);
phoneNumber = sysUser.getPhonenumber();
- }else {
+ } else {
continue;
}
- if(StringUtils.isEmpty(phoneNumber)){
+ if (StringUtils.isEmpty(phoneNumber)) {
continue;
}
String dutyDeptPerson = dingTalkService.getDingTalkUserByMobile(phoneNumber);
- if(StringUtils.isNotBlank(dutyDeptPerson)){
+ if (StringUtils.isNotBlank(dutyDeptPerson)) {
String context = TemplateUtils.render(exceptContent, serviceSubtaskDetailTrace);
dingTalkService.sendDingTalkText(context, dutyDeptPerson);
//鏇存柊鐘舵��
@@ -428,262 +465,53 @@
* HIS鏁版嵁閲囬泦
* 瀹氭椂浠诲姟锛氶噰闆嗘偅鑰呬俊鎭�佸嚭闄€�侀棬璇婃暟鎹�
* todayZeroStr 褰撳墠鐨勬椂闂� 渚嬪锛�2026-05-06 00:00:00
+ * <p>
+ * 鈿狅笍 <b>2026-10 妯″潡鍖�</b>锛氭柟娉曚綋锛堣繛鍚岀鏈夊府鎵� {@code collectSegmentData}锛夊凡鏁翠綋鎼繘
+ * {@code ruoyi-datacollection}锛屽疄鐜拌
+ * {@code com.ruoyi.datacollection.service.impl.HisDataCollectionServiceImpl}銆�
+ * 杩欓噷鍙繚鐣�<b>瀹氭椂浠诲姟鍏ュ彛</b>锛歴ys_job 鐨� invoke_target 浠嶆槸
+ * {@code ryTask.dealHisData('...')}锛屽叆鍙e悕涓嶈兘鍙橈紝鎵�浠ユ湰鏂规硶鏄�<b>绾浆鍙�</b>銆�
+ * <p>
+ * 鍏抽棴鏁版嵁閲囬泦妯″潡锛坽@code sys_config: datacollection.enabled=false}锛夋椂闂ㄩ潰浼氭姏
+ * {@link com.ruoyi.datacollection.api.DataCollectionModuleDisabledException}锛�
+ * 鏈叆鍙f崟鑾峰悗鍙墦涓�鏉� WARN 鈥斺�� 閭f槸"妯″潡琚富鍔ㄥ叧鎺�"锛屼笉鏄噰闆嗗け璐ワ紝
+ * 涓嶈璁╁畾鏃朵换鍔¤鎴愭墽琛屽紓甯革紙鍚﹀垯杩愮淮浼氱湅鍒颁竴鐗囩孩鑹插け璐ヨ褰曪級銆�
*/
public void dealHisData(String todayZeroStr) {
- log.info("銆恉ealHisData銆戝紑濮嬫墽琛孒IS鏁版嵁閲囬泦浠诲姟");
- // 鑾峰彇鏄ㄥぉ0鐐瑰埌浠婂ぉ0鐐圭殑鏃堕棿鑼冨洿
- LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
- if (StringUtils.isNotBlank(todayZeroStr)) {
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- todayZero = LocalDateTime.parse(todayZeroStr, formatter);
- }
- LocalDateTime yesterdayZero = todayZero.minusDays(1);
- log.info("銆恉ealHisData銆戦噰闆嗘椂闂磋寖鍥达細{} ~ {}", yesterdayZero, todayZero);
-
- if (active.trim().equals("xh")) {
- try {
- // 閲囬泦鍏ラ櫌鏁版嵁
- log.info("銆恉ealHisData銆戞柊鍗庡紑濮嬮噰闆嗗叆闄㈡暟鎹�");
- ixhGatherPatArchiveService.getInHospDataGather("0", yesterdayZero, todayZero);
- log.info("銆恉ealHisData銆戞柊鍗庡叆闄㈡暟鎹噰闆嗗畬鎴�");
-
- // 閲囬泦鍑洪櫌鏁版嵁
- log.info("銆恉ealHisData銆戞柊鍗庡紑濮嬮噰闆嗗嚭闄㈡暟鎹�");
- ixhGatherPatArchiveService.getInHospDataGather("1", yesterdayZero, todayZero);
- log.info("銆恉ealHisData銆戞柊鍗庡嚭闄㈡暟鎹噰闆嗗畬鎴�");
-
- } catch (Exception e) {
- log.error("銆恉ealHisData銆戞柊鍗庢暟鎹噰闆嗗紓甯�", e);
- }
- } else if (active.trim().equals("hn")) {
- try {
- // 娌冲崡鏁版嵁閲囬泦
- HnDataGatherVO hnDataGatherVO = new HnDataGatherVO();
- log.info("銆恉ealHisData銆戞渤鍗楀紑濮嬮噰闆嗘暟鎹�");
- Date startTime = Date.from(yesterdayZero.atZone(ZoneId.systemDefault()).toInstant());
- Date endTime = Date.from(todayZero.atZone(ZoneId.systemDefault()).toInstant());
-
- hnDataGatherVO.setStartTime(startTime);
- hnDataGatherVO.setEndTime(endTime);
- ihnGatherPatArchiveService.hnDataGather(hnDataGatherVO);
- log.info("銆恉ealHisData銆戞渤鍗楃粨鏉熼噰闆嗘暟鎹�");
- } catch (Exception e) {
- log.error("銆恉ealHisData銆戞渤鍗楁暟鎹噰闆嗗紓甯�", e);
- }
- } else if (active.trim().equals("sltd") || active.trim().equals("nhfy")) {
- //鐪佺珛鍚屽痉涓庡崕鍗楅檮涓�鐢ㄥ悓涓�濂楅噰闆嗘柟娉曪紙閮芥槸鏉ユ湭鏉ユ彁渚涳級
-
- try {
- //鑾峰彇鏄惁闇�瑕侀噰闆嗙敤鎴枫�侀儴闂ㄤ俊鎭�
- SysConfig config = new SysConfig();
- config.setConfigKey("sltd.gather.sysuser");
- config.setOrgid("20001001");
- List<SysConfig> sysConfigs = configService.selectConfigList(config);
-
- //鑾峰彇鐪佺珛鍚屽痉瑕侀噰闆嗙殑闄㈠尯
- SysConfig cf = new SysConfig();
- cf.setConfigKey("sltd.gather.campusid");
- cf.setOrgid("20001001");
- List<SysConfig> sysConfigcampusids = configService.selectConfigList(cf);
-
- List<Long> campusidList = new ArrayList<>();
- if (CollectionUtils.isNotEmpty(sysConfigcampusids)) {
- String[] split = sysConfigcampusids.get(0).getConfigValue().split(",");
- campusidList = Arrays.stream(split).map(Long::valueOf).collect(Collectors.toList());
- } else {
- log.error("SysConfig涓殑闄㈠尯ID涓虹┖锛�");
- return;
- }
-
- //configValue = 1 涓嶉渶瑕侀噰闆� configValue = 2闇�瑕侀噰闆�
- if (CollectionUtils.isNotEmpty(sysConfigs) && sysConfigs.get(0).getConfigValue().equals("2")) {
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈儴闂ㄤ俊鎭�濆紑濮嬮噰闆嗘暟鎹�");
- ServiceSLTDDeptReqVO serviceSLTDDeptReqVO = new ServiceSLTDDeptReqVO();
- serviceSLTDDeptReqVO.setOrgId("20001001");
- serviceSLTDDeptReqVO.setCampusIds(campusidList);
- Boolean aBoolean1 = serviceSLTDHealthcareRecordService.queryDeptWardAreaInfoList(serviceSLTDDeptReqVO);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈儴闂ㄤ俊鎭�濈粨鏉熼噰闆嗘暟鎹細{}", aBoolean1);
-
- Boolean aBoolean = false;
- for (Long cid : campusidList) {
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滅敤鎴蜂俊鎭�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
- ServiceSLTDInhospReqVO reqVO = new ServiceSLTDInhospReqVO();
- reqVO.setOrgId("20001001");
- reqVO.setCampusId(cid);
- ArrayList<String> statusList = new ArrayList<>();
- statusList.add("1");
- reqVO.setStatusList(statusList);
- aBoolean = serviceSLTDHealthcareRecordService.queryHospUserInfoList(reqVO);
- }
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滅敤鎴蜂俊鎭�濈粨鏉熼噰闆嗘暟鎹細{}", aBoolean);
- //鐤剧梾瀛楀吀閲囬泦
- iIcd10Service.queryAddIcd10();
- }
-
- // nhfy/sltd鍥炴函30澶╁垎娈甸噰闆嗗垽鏂紙姣忔鏈�澶�4澶╋級
- boolean isBackfill = (active.trim().equals("nhfy") || active.trim().equals("sltd")) && StringUtils.isNotBlank(todayZeroStr);
- if (isBackfill) {
- DateTimeFormatter dateFmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- LocalDate segStart = todayZero.toLocalDate().minusDays(30);
- LocalDate segEndDate = todayZero.toLocalDate();
- int segCount = 0;
- while (!segStart.isAfter(segEndDate)) {
- LocalDate segEnd = segStart.plusDays(3);
- if (segEnd.isAfter(segEndDate)) {
- segEnd = segEndDate;
- }
- segCount++;
- log.info("銆恉ealHisData銆憑}鍥炴函绗瑊}娈甸噰闆嗭紝鏃ユ湡鑼冨洿锛歿} ~ {}", active.trim(), segCount, segStart.format(dateFmt), segEnd.format(dateFmt));
- for (Long cid : campusidList) {
- collectSegmentData(cid, segStart.format(dateFmt), segEnd.format(dateFmt));
- }
- segStart = segEnd.plusDays(1);
- }
- log.info("銆恉ealHisData銆憑}鍥炴函閲囬泦瀹屾垚锛屽叡{}娈�", active.trim(), segCount);
- }
-
- // 鐪佺珛鍚屽痉鏁版嵁閲囬泦锛堥潪鍥炴函妯″紡鎵嶆墽琛岋級
- if (!isBackfill) {
- for (Long cid : campusidList) {
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰烽鍏ラ櫌寮�濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
- 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);
- if (active.trim().equals("nhfy")) {
- serviceSLTDInhospReqVO.setEncounterTimeStart(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- serviceSLTDInhospReqVO.setEncounterTimeEnd(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- }
- List<String> list = new ArrayList<>();
- list.add("FH0109.22");
- list.add("FH0109.23");
- list.add("FH0109.53");
- serviceSLTDInhospReqVO.setStatusList(list);
-// log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
- serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈鍏ラ櫌鈥濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
- serviceSLTDInhospReqVO.setOrgId("20001001");
- serviceSLTDInhospReqVO.setCampusId(cid);
- serviceSLTDInhospReqVO.setEncounterTimeStart(null);
- serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
- serviceSLTDInhospReqVO.setStartHeadTime(nowTime);
- serviceSLTDInhospReqVO.setStartTailTime(nowTime);
- if (active.trim().equals("nhfy")) {
- serviceSLTDInhospReqVO.setStartHeadTime(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- serviceSLTDInhospReqVO.setStartTailTime(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- }
- List<String> listStr = new ArrayList<>();
- listStr.add("FH0109.24");
- serviceSLTDInhospReqVO.setStatusList(listStr);
-// log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
- serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
- serviceSLTDInhospReqVO.setStartHeadTime(null);
- serviceSLTDInhospReqVO.setStartTailTime(null);
- serviceSLTDInhospReqVO.setEncounterTimeStart(null);
- serviceSLTDInhospReqVO.setEncounterTimeEnd(null);
- serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(nowTime);
- serviceSLTDInhospReqVO.setPreOutHospitalTailDate(nowTime);
- if (active.trim().equals("nhfy")) {
- serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- serviceSLTDInhospReqVO.setPreOutHospitalTailDate(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- }
- serviceSLTDInhospReqVO.setHealthcareRecordTypeList(null);
- List<String> list2 = new ArrayList<>();
-// list2.add("FH0108.02");
- //鍑洪櫌
- list2.add("FH0109.27");
- //棰勫嚭闄�
- list2.add("FH0109.25");
- serviceSLTDInhospReqVO.setStatusList(list2);
-// log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
- serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
- log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
- }
- }
-
- } catch (Exception e) {
- log.error("銆恉ealHisData銆戠渷绔嬪悓寰锋暟鎹噰闆嗗紓甯�", e);
- }
+ try {
+ dataCollectionFacade.dealHisData(todayZeroStr);
+ } catch (com.ruoyi.datacollection.api.DataCollectionModuleDisabledException e) {
+ log.warn("銆恉ealHisData銆憑}锛堟湰杞畾鏃堕噰闆嗚烦杩囷級", e.getMessage());
}
}
/**
- * 鍒嗘閲囬泦鏁版嵁锛堥鍏ラ櫌銆佸叆闄€�佸嚭闄級
- * 鐢ㄤ簬nhfy/sltd鍥炴函閲囬泦锛屾瘡娆℃渶澶氭煡璇�7澶╂暟鎹�
+ * 鍦ㄩ櫌鎮h��"绉戝 / 鐥呭尯 / 搴婁綅"鍒锋柊锛堝崡鍗庨檮涓�锛屾瘡澶╀竴娆★級銆�
+ * <p>
+ * 鍦ㄩ櫌鎮h�呬細杞銆佽浆鐥呭尯銆佹崲搴婏紝鑰� {@code pat_med_inhosp} 鐨勪綅缃瓧娈靛彧鍦ㄥ叆闄㈡椂鍐欒繃涓�娆★紝
+ * 涔嬪悗涓嶄細鑷繁鏇存柊 鈥斺�� 杩欓噷姣忓ぉ鎸夋偅鑰呮煡涓�閬� HIS 閲�<b>璇ユ偅鑰呭綋鍓嶇殑鍦ㄩ櫌淇℃伅</b>
+ * 锛坽@code dtcQueryHealthcareRecordList}锛屼笌鍏ラ櫌閲囬泦鏄悓涓�涓帴鍙o紝鎸�
+ * {@code healthcareRecordNo} 鍗曟煡 + {@code statusList=["FH0109.24"]}锛夛紝
+ * 涓庡簱鍐呮瘮瀵瑰悗鍙妸鍙樺寲鐨勫瓧娈靛啓鍥炲幓銆傚疄鐜颁笌鍒ゅ畾鍙e緞瑙�
+ * {@code com.ruoyi.datacollection.service.impl.InhospDeptRefreshServiceImpl}銆�
+ * <p>
+ * 涓� {@link #dealHisData(String)} 鍚屾牱鐨勯檷绾у彛寰勶細妯″潡琚叧鎺夛紙
+ * {@code sys_config: datacollection.enabled=false}锛夋椂闂ㄩ潰鎶�
+ * {@link com.ruoyi.datacollection.api.DataCollectionModuleDisabledException}锛�
+ * 杩欓噷鍙墦涓�鏉� WARN 鈥斺�� 閭f槸"妯″潡琚富鍔ㄥ叧鎺�"锛屼笉璇ヨ鎴愬畾鏃朵换鍔℃墽琛屽紓甯搞��
+ * <p>
+ * sys_job 鐨� invoke_target 涓� {@code ryTask.refreshInhospDeptInfo()}锛�
+ * 寤鸿姣忓ぉ 03:30锛堥伩寮� 01:00 鍏ラ櫌閲囬泦涓� 02:00 鍑洪櫌澶勭悊锛夛紝骞跺彂绛栫暐閫�"绂佹骞跺彂"銆�
*
- * @param cid 闄㈠尯ID
- * @param startDateStr 鏃ユ湡寮�濮� yyyy-MM-dd
- * @param endDateStr 鏃ユ湡缁撴潫 yyyy-MM-dd
+ * @return 鏈瀹為檯鏇存柊鐨勫湪闄㈣褰曟潯鏁帮紙0 = 鏃犲彉鍖� / 绔欑偣涓嶅尮閰� / 妯″潡琚叧闂級
*/
- private void collectSegmentData(Long cid, String startDateStr, String endDateStr) {
-// // 棰勫叆闄�
- log.info("銆恉ealHisData銆戦鍏ラ櫌寮�濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr);
- ServiceSLTDInhospReqVO reqVO = new ServiceSLTDInhospReqVO();
- reqVO.setOrgId("20001001");
- reqVO.setCampusId(cid);
- reqVO.setEncounterTimeStart(startDateStr);
- reqVO.setEncounterTimeEnd(endDateStr);
- List<String> preAdmitStatus = new ArrayList<>();
- preAdmitStatus.add("FH0109.22");
- preAdmitStatus.add("FH0109.23");
- preAdmitStatus.add("FH0109.53");
- reqVO.setStatusList(preAdmitStatus);
- log.info("銆恉ealHisData銆戦鍏ラ櫌閲囬泦鏁版嵁鍏ュ弬锛歿}", reqVO);
+ public int refreshInhospDeptInfo() {
try {
- serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
- } catch (Exception e) {
- // 鍗曠被鏁版嵁澶辫触涓嶅啀鍚戜笂鎶涳細鍚﹀垯涓�娈靛け璐ヤ細璁╂湰娆″洖婧悗闈㈢殑鎵�鏈夋閮戒笉鎵ц
- log.error("銆恉ealHisData銆戦鍏ラ櫌閲囬泦澶辫触锛岃烦杩囪绫荤户缁�傞櫌鍖猴細{}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr, e);
+ return dataCollectionFacade.refreshInhospDeptInfo();
+ } catch (com.ruoyi.datacollection.api.DataCollectionModuleDisabledException e) {
+ log.warn("銆恟efreshInhospDeptInfo銆憑}锛堟湰杞湪闄俊鎭埛鏂拌烦杩囷級", e.getMessage());
+ return 0;
}
- log.info("銆恉ealHisData銆戦鍏ラ櫌绲備簡閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
-
- // 鍏ラ櫌
- log.info("銆恉ealHisData銆戝叆闄㈠紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr);
- reqVO = new ServiceSLTDInhospReqVO();
- reqVO.setOrgId("20001001");
- reqVO.setCampusId(cid);
- reqVO.setStartHeadTime(startDateStr);
- reqVO.setStartTailTime(endDateStr);
- List<String> admitStatus = new ArrayList<>();
- admitStatus.add("FH0109.24");
- reqVO.setStatusList(admitStatus);
- log.info("銆恉ealHisData銆戝叆闄㈤噰闆嗘暟鎹叆鍙傦細{}", reqVO);
- try {
- serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
- } catch (Exception e) {
- // 鍗曠被鏁版嵁澶辫触涓嶅啀鍚戜笂鎶涳細鍚﹀垯涓�娈靛け璐ヤ細璁╂湰娆″洖婧悗闈㈢殑鎵�鏈夋閮戒笉鎵ц
- log.error("銆恉ealHisData銆戝叆闄㈤噰闆嗗け璐ワ紝璺宠繃璇ョ被缁х画銆傞櫌鍖猴細{}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr, e);
- }
- log.info("銆恉ealHisData銆戝叆闄㈢祩浜嗛噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-
- // 鍑洪櫌
- log.info("銆恉ealHisData銆戝嚭闄㈠紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr);
- reqVO = new ServiceSLTDInhospReqVO();
- reqVO.setOrgId("20001001");
- reqVO.setCampusId(cid);
- reqVO.setPreOutHospitalHeadDate(startDateStr);
- reqVO.setPreOutHospitalTailDate(endDateStr);
- List<String> dischargeStatus = new ArrayList<>();
- //鍑洪櫌
- dischargeStatus.add("FH0109.27");
- //棰勫嚭闄�
- dischargeStatus.add("FH0109.25");
- reqVO.setStatusList(dischargeStatus);
- log.info("銆恉ealHisData銆戝嚭闄㈤噰闆嗘暟鎹叆鍙傦細{}", reqVO);
- try {
- serviceSLTDHealthcareRecordService.queryHealthcareRecordList(reqVO);
- } catch (Exception e) {
- // 鍗曠被鏁版嵁澶辫触涓嶅啀鍚戜笂鎶涳細鍚﹀垯涓�娈靛け璐ヤ細璁╂湰娆″洖婧悗闈㈢殑鎵�鏈夋閮戒笉鎵ц
- log.error("銆恉ealHisData銆戝嚭闄㈤噰闆嗗け璐ワ紝璺宠繃璇ョ被缁х画銆傞櫌鍖猴細{}锛屾椂闂存锛歿} ~ {}", cid, startDateStr, endDateStr, e);
- }
- log.info("銆恉ealHisData銆戝嚭闄㈢粨鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
}
/**
@@ -738,8 +566,7 @@
log.error("銆恉ealHisDataMZ銆慡ysConfig涓殑闄㈠尯ID涓虹┖锛�");
return;
}
- List<Long> campusidList = Arrays.stream(sysConfigcampusids.get(0).getConfigValue().split(","))
- .map(String::trim).filter(StringUtils::isNotBlank).map(Long::valueOf).collect(Collectors.toList());
+ List<Long> campusidList = Arrays.stream(sysConfigcampusids.get(0).getConfigValue().split(",")).map(String::trim).filter(StringUtils::isNotBlank).map(Long::valueOf).collect(Collectors.toList());
log.info("銆恉ealHisDataMZ銆戦櫌鍖猴細{}锛屽崟杞绠楋細{}鍒嗛挓锛屾瘡椤碉細{}鏉�", campusidList, budgetMinutes, pageSize);
for (Long cid : campusidList) {
@@ -762,15 +589,13 @@
redisCache.deleteObject(lockKey);
}
}
- log.info("銆恉ealHisDataMZ銆戦棬鎬ヨ瘖閲囬泦鏈疆缁撴潫锛岃�楁椂锛歿}绉�",
- java.time.Duration.between(now, LocalDateTime.now()).getSeconds());
+ log.info("銆恉ealHisDataMZ銆戦棬鎬ヨ瘖閲囬泦鏈疆缁撴潫锛岃�楁椂锛歿}绉�", java.time.Duration.between(now, LocalDateTime.now()).getSeconds());
}
/**
* 閲囬泦鏌愪釜闄㈠尯锛氬厛琛ヤ竴娆℃�у洖婧棩鏈燂紝鍐嶅仛鏄ㄥぉ鐨勬敹灏鹃噰闆嗭紝鏈�鍚庢暣杞埛鏂颁粖澶�
*/
- private void collectOutpatientDaily(Long cid, String backfillParam, long pageSize, long maxPage,
- LocalDateTime deadline) {
+ private void collectOutpatientDaily(Long cid, String backfillParam, long pageSize, long maxPage, LocalDateTime deadline) {
String cursorKey = "mzDayCursor:" + cid;
MzDayCursor cursor = loadMzDayCursor(cursorKey);
LocalDate today = LocalDate.now();
@@ -797,8 +622,7 @@
// 1) 涓�娆℃�у洖婧�
if (cursor.backfillDay != null) {
LocalDate day = LocalDate.parse(cursor.backfillDay);
- MzGatherStatusEnum status = runDayPass(cid, cursorKey, cursor, MzGatherSlotEnum.BACKFILL, day,
- cursor.backfillPage, pageSize, maxPage, deadline);
+ MzGatherStatusEnum status = runDayPass(cid, cursorKey, cursor, MzGatherSlotEnum.BACKFILL, day, cursor.backfillPage, pageSize, maxPage, deadline);
if (status != MzGatherStatusEnum.DONE) {
log.warn("銆恉ealHisDataMZ銆戝洖婧棩鏈� {} 鏈疆鏈畬鎴愶紙{}锛夛紝鏂偣宸蹭繚鐣欙紝闄㈠尯锛歿}", day, status.getDesc(), cid);
return;
@@ -811,8 +635,7 @@
// 2) 鏄ㄥぉ鏀跺熬閲囬泦锛氭瘡澶╀竴娆★紝鍏滀綇 23:xx 涔嬪悗鎵嶅啓杩� HIS 鐨勮褰曞拰璺ㄩ浂鐐圭殑鏁版嵁
if (!yesterday.toString().equals(cursor.finalDay)) {
- MzGatherStatusEnum status = runDayPass(cid, cursorKey, cursor, MzGatherSlotEnum.FINAL, yesterday,
- cursor.finalPage, pageSize, maxPage, deadline);
+ MzGatherStatusEnum status = runDayPass(cid, cursorKey, cursor, MzGatherSlotEnum.FINAL, yesterday, cursor.finalPage, pageSize, maxPage, deadline);
if (status != MzGatherStatusEnum.DONE) {
log.warn("銆恉ealHisDataMZ銆戞槰鏃ユ敹灏鹃噰闆� {} 鏈疆鏈畬鎴愶紙{}锛夛紝鏂偣宸蹭繚鐣欙紝闄㈠尯锛歿}", yesterday, status.getDesc(), cid);
return;
@@ -828,8 +651,7 @@
cursor.page = 1L;
saveMzDayCursor(cursorKey, cursor);
}
- MzGatherStatusEnum status = runDayPass(cid, cursorKey, cursor, MzGatherSlotEnum.TODAY, today,
- cursor.page, pageSize, maxPage, deadline);
+ MzGatherStatusEnum status = runDayPass(cid, cursorKey, cursor, MzGatherSlotEnum.TODAY, today, cursor.page, pageSize, maxPage, deadline);
if (status == MzGatherStatusEnum.DONE) {
// 鏁磋疆鍒锋柊瀹屾垚锛岄〉鐮佸綊浣嶏紝涓嬩竴杞噸鏂颁粠绗竴椤垫暣杞埛鏂�
cursor.page = 1L;
@@ -844,9 +666,7 @@
* @param slot 鏂偣妲戒綅锛堜粖澶╂暣杞埛鏂� / 鏄ㄦ棩鏀跺熬 / 鎵嬪伐鍥炴函锛夛紝鍐冲畾涓柇椤电爜璁板埌鍝釜瀛楁
* @return {@link MzGatherStatusEnum} 閲囬泦瀹屾垚 / 棰勭畻鐢ㄥ敖 / 鎺ュ彛杩炵画澶辫触鎻愬墠缁撴潫
*/
- private MzGatherStatusEnum runDayPass(Long cid, String cursorKey, MzDayCursor cursor, MzGatherSlotEnum slot,
- LocalDate day, long startPage, long pageSize, long maxPage,
- LocalDateTime deadline) {
+ private MzGatherStatusEnum runDayPass(Long cid, String cursorKey, MzDayCursor cursor, MzGatherSlotEnum slot, LocalDate day, long startPage, long pageSize, long maxPage, LocalDateTime deadline) {
String startStr = day.format(MzGatherConstant.DAY_FMT);
String endStr = day.plusDays(1).format(MzGatherConstant.DAY_FMT);
@@ -877,8 +697,7 @@
// 鏈疆鏈夎烦杩囩殑椤垫椂锛屾柇鐐瑰洖鍒扮涓�涓け璐ラ〉锛屼繚璇佷笅涓�杞厛鎶婅繖浜涢〉琛ュ洖鏉�
long resumePage = (skippedPages > 0 && firstFailPage > 0) ? firstFailPage : page;
saveMzDayPage(cursorKey, cursor, slot, resumePage);
- log.warn("銆恉ealHisDataMZ銆戞湰杞椂闂撮绠楃敤灏斤紝{} 鏈疆宸查噰{}椤祘}鏉}锛屼笅娆′粠绗瑊}椤电户缁紝闄㈠尯锛歿}",
- day, pageCount, total, skippedLog(skippedPages), resumePage, cid);
+ log.warn("銆恉ealHisDataMZ銆戞湰杞椂闂撮绠楃敤灏斤紝{} 鏈疆宸查噰{}椤祘}鏉}锛屼笅娆′粠绗瑊}椤电户缁紝闄㈠尯锛歿}", day, pageCount, total, skippedLog(skippedPages), resumePage, cid);
return MzGatherStatusEnum.BUDGET_UP;
}
reqVO.setCurrent(page);
@@ -912,13 +731,10 @@
firstFailPage = page;
}
consecutiveFail++;
- log.error("銆恉ealHisDataMZ銆戞帴鍙e眰閲囬泦澶辫触锛屽凡璁� error 鏃ュ織骞惰烦杩囪椤碉紝鏈疆缁х画寰�鍚庨噰锛�"
- + "闄㈠尯锛歿}锛屾棩鏈燂細{}锛岀{}椤碉紝鎺ュ彛鍏ュ弬锛歿}锛屽紓甯革細{}",
- cid, day, page, new Gson().toJson(reqVO), lastError.getMessage(), lastError);
+ log.error("銆恉ealHisDataMZ銆戞帴鍙e眰閲囬泦澶辫触锛屽凡璁� error 鏃ュ織骞惰烦杩囪椤碉紝鏈疆缁х画寰�鍚庨噰锛�" + "闄㈠尯锛歿}锛屾棩鏈燂細{}锛岀{}椤碉紝鎺ュ彛鍏ュ弬锛歿}锛屽紓甯革細{}", cid, day, page, new Gson().toJson(reqVO), lastError.getMessage(), lastError);
if (consecutiveFail >= MzGatherConstant.MAX_CONSECUTIVE_PAGE_FAIL) {
// 杩炵画澶氶〉鎺ュ彛澶辫触锛屽垽瀹氭潵鏈潵鎺ュ彛鏁翠綋涓嶅彲鐢紝鏈疆鎻愬墠缁撴潫锛堜笉鍐嶇┖杞悗闈㈠嚑鍗侀〉锛夛紝鏂偣鐣欏湪绗竴涓け璐ラ〉
- log.error("銆恉ealHisDataMZ銆戣繛缁瓄}椤垫帴鍙eけ璐ワ紝鍒ゅ畾鏉ユ湭鏉ユ帴鍙d笉鍙敤锛屾湰杞彁鍓嶇粨鏉燂紱闄㈠尯锛歿}锛屾棩鏈燂細{}锛屾柇鐐逛繚鐣欏湪绗瑊}椤�",
- consecutiveFail, cid, day, firstFailPage);
+ log.error("銆恉ealHisDataMZ銆戣繛缁瓄}椤垫帴鍙eけ璐ワ紝鍒ゅ畾鏉ユ湭鏉ユ帴鍙d笉鍙敤锛屾湰杞彁鍓嶇粨鏉燂紱闄㈠尯锛歿}锛屾棩鏈燂細{}锛屾柇鐐逛繚鐣欏湪绗瑊}椤�", consecutiveFail, cid, day, firstFailPage);
saveMzDayPage(cursorKey, cursor, slot, firstFailPage);
return MzGatherStatusEnum.FAILED;
}
@@ -928,8 +744,7 @@
consecutiveFail = 0;
if (CollectionUtils.isEmpty(pageData)) {
- log.info("銆恉ealHisDataMZ銆憑} 绗瑊}椤垫棤鏁版嵁锛岄噰闆嗙粨鏉燂紝闄㈠尯锛歿}锛屾湰杞畕}椤靛叡{}鏉}",
- day, page, cid, pageCount, total, skippedLog(skippedPages));
+ log.info("銆恉ealHisDataMZ銆憑} 绗瑊}椤垫棤鏁版嵁锛岄噰闆嗙粨鏉燂紝闄㈠尯锛歿}锛屾湰杞畕}椤靛叡{}鏉}", day, page, cid, pageCount, total, skippedLog(skippedPages));
return MzGatherStatusEnum.DONE;
}
pageCount++;
@@ -949,7 +764,9 @@
}
}
- /** 鎸夋Ы浣嶄繚瀛樹腑鏂〉鐮� */
+ /**
+ * 鎸夋Ы浣嶄繚瀛樹腑鏂〉鐮�
+ */
private void saveMzDayPage(String cursorKey, MzDayCursor cursor, MzGatherSlotEnum slot, long page) {
if (slot == MzGatherSlotEnum.FINAL) {
cursor.finalPage = page;
@@ -961,12 +778,16 @@
saveMzDayCursor(cursorKey, cursor);
}
- /** 鏃ュ織閲屾彁绀烘帴鍙e眰澶辫触璺宠繃浜嗗嚑椤碉紙涓嬩竴杞暣杞埛鏂颁細閲嶆柊閲囧埌锛� */
+ /**
+ * 鏃ュ織閲屾彁绀烘帴鍙e眰澶辫触璺宠繃浜嗗嚑椤碉紙涓嬩竴杞暣杞埛鏂颁細閲嶆柊閲囧埌锛�
+ */
private String skippedLog(long skippedPages) {
return skippedPages > 0L ? "锛屾帴鍙eけ璐ヨ烦杩�" + skippedPages + "椤碉紙涓嬩竴杞暣杞埛鏂颁細閲嶆柊閲囧埌锛�" : "";
}
- /** 璇诲彇 sys_config 閲岀殑闂ㄦ�ヨ瘖閲囬泦鍙傛暟锛堟満鏋� orgid=20001001锛夛紝鍙栦笉鍒版垨瓒呰寖鍥存椂鐢ㄦ灇涓鹃噷鐨勯粯璁ゅ�� */
+ /**
+ * 璇诲彇 sys_config 閲岀殑闂ㄦ�ヨ瘖閲囬泦鍙傛暟锛堟満鏋� orgid=20001001锛夛紝鍙栦笉鍒版垨瓒呰寖鍥存椂鐢ㄦ灇涓鹃噷鐨勯粯璁ゅ��
+ */
private long getMzConfigLong(MzGatherParamEnum param) {
try {
SysConfig config = new SysConfig();
@@ -978,8 +799,7 @@
if (value >= param.getMin() && value <= param.getMax()) {
return value;
}
- log.warn("銆恉ealHisDataMZ銆戦厤缃畕}鐨勫�納}瓒呭嚭鑼冨洿[{},{}]锛屼娇鐢ㄩ粯璁ゅ�納}",
- param.getKey(), value, param.getMin(), param.getMax(), param.getDefaultValue());
+ log.warn("銆恉ealHisDataMZ銆戦厤缃畕}鐨勫�納}瓒呭嚭鑼冨洿[{},{}]锛屼娇鐢ㄩ粯璁ゅ�納}", param.getKey(), value, param.getMin(), param.getMax(), param.getDefaultValue());
}
} catch (Exception e) {
log.warn("銆恉ealHisDataMZ銆戣鍙栭厤缃畕}澶辫触锛屼娇鐢ㄩ粯璁ゅ�納}", param.getKey(), param.getDefaultValue(), e);
@@ -987,7 +807,9 @@
return param.getDefaultValue();
}
- /** 瑙f瀽浠诲姟鍏ュ弬锛堣涓�娆℃�у洖婧殑鏃ユ湡锛夛紝鏀寔 yyyy-MM-dd HH:mm:ss 涓� yyyy-MM-dd */
+ /**
+ * 瑙f瀽浠诲姟鍏ュ弬锛堣涓�娆℃�у洖婧殑鏃ユ湡锛夛紝鏀寔 yyyy-MM-dd HH:mm:ss 涓� yyyy-MM-dd
+ */
private LocalDateTime parseMzStartTime(String text) {
LocalDateTime time = parseMzTimeQuiet(text);
if (time == null && StringUtils.isNotBlank(text)) {
@@ -996,7 +818,9 @@
return time;
}
- /** 闈欓粯瑙f瀽鏃ユ湡锛屾敮鎸� yyyy-MM-dd HH:mm:ss 涓� yyyy-MM-dd锛屾牸寮忎笉绗﹁繑鍥� null锛堜笉鍒锋棩蹇楋級 */
+ /**
+ * 闈欓粯瑙f瀽鏃ユ湡锛屾敮鎸� yyyy-MM-dd HH:mm:ss 涓� yyyy-MM-dd锛屾牸寮忎笉绗﹁繑鍥� null锛堜笉鍒锋棩蹇楋級
+ */
private LocalDateTime parseMzTimeQuiet(String text) {
if (StringUtils.isBlank(text)) {
return null;
@@ -1014,7 +838,9 @@
}
}
- /** 淇濆瓨闂ㄦ�ヨ瘖閲囬泦鏂偣锛堝悇杞涓柇鐨勯〉鐮侊級 */
+ /**
+ * 淇濆瓨闂ㄦ�ヨ瘖閲囬泦鏂偣锛堝悇杞涓柇鐨勯〉鐮侊級
+ */
private void saveMzDayCursor(String cursorKey, MzDayCursor cursor) {
JSONObject json = new JSONObject();
json.put("day", cursor.day);
@@ -1028,7 +854,9 @@
redisCache.setCacheObject(cursorKey, json.toJSONString(), MzGatherConstant.CACHE_TTL_HOURS, TimeUnit.HOURS);
}
- /** 璇诲彇闂ㄦ�ヨ瘖閲囬泦鏂偣锛岃涓嶅埌鎴栬В鏋愬け璐ユ椂杩斿洖绌烘柇鐐癸紙绛変环浜庝粠绗竴椤靛紑濮嬫暣杞埛鏂帮級 */
+ /**
+ * 璇诲彇闂ㄦ�ヨ瘖閲囬泦鏂偣锛岃涓嶅埌鎴栬В鏋愬け璐ユ椂杩斿洖绌烘柇鐐癸紙绛変环浜庝粠绗竴椤靛紑濮嬫暣杞埛鏂帮級
+ */
private MzDayCursor loadMzDayCursor(String cursorKey) {
MzDayCursor cursor = new MzDayCursor();
try {
@@ -1065,16 +893,24 @@
* 锛堥〉鐮佷负 1 琛ㄧず璇ヨ疆娆′笅涓�杞粠绗竴椤垫暣杞紑濮嬶級
*/
private static class MzDayCursor {
- /** 浠婂ぉ鐨勬暣杞埛鏂� */
+ /**
+ * 浠婂ぉ鐨勬暣杞埛鏂�
+ */
private String day;
private long page = 1L;
- /** 鏄ㄥぉ鐨勬敹灏鹃噰闆� */
+ /**
+ * 鏄ㄥぉ鐨勬敹灏鹃噰闆�
+ */
private String finalDay;
private long finalPage = 1L;
- /** 寰呭仛鐨勪竴娆℃�у洖婧� */
+ /**
+ * 寰呭仛鐨勪竴娆℃�у洖婧�
+ */
private String backfillDay;
private long backfillPage = 1L;
- /** 宸茬粡琛ヨ繃鐨勫洖婧棩鏈燂紝閬垮厤瀹氭椂浠诲姟姣忚疆閲嶅琛ュ悓涓�澶� */
+ /**
+ * 宸茬粡琛ヨ繃鐨勫洖婧棩鏈燂紝閬垮厤瀹氭椂浠诲姟姣忚疆閲嶅琛ュ悓涓�澶�
+ */
private String backfillDone;
}
@@ -1325,8 +1161,7 @@
//2鍒ゆ柇涓�涓嬶紝褰撳墠鐨剆ort鏄笉鏄瓑浜庨渶瑕佹墽琛岀殑鎬讳釜鏁帮紝濡傛灉绛変簬鐨勮瘽锛岃鏄庢槸鏈�鍚庝竴涓紝鐩存帴灏唖ervuce_subtask鐨勭姸鎬佹敼鎴�5锛屾墽琛屽け璐ュ氨琛屼簡
Long cs = currentSort.get();
- if (cs.equals(serviceSubtaskPreachforms.size())
- && isSubtaskDeadline(serviceSubtask, serviceSubtaskPreachforms)) {
+ if (cs.equals(serviceSubtaskPreachforms.size()) && isSubtaskDeadline(serviceSubtask, serviceSubtaskPreachforms)) {
serviceSubtask.setSendstate(7L);
serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋匡紝鍏ㄩ儴鎵ц澶辫触锛堣秴鏃讹級");
@@ -1389,6 +1224,7 @@
serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
//鑾峰彇鍙戦�佹柟寮�
String sendPreachform = getSendPreachform(serviceSubtaskPreachform, serviceSubtask);
+ log.info("sendPreachform鐨勫彂閫佹柟寮忔槸鍟ワ細{}", sendPreachform);
if (sendPreachform.equals("-1") || serviceSubtask.getSendstate() == 6 || serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 4) {
//璇存槑宸茬粡鍏ㄩ儴閬嶅巻瀹屼簡锛屽綋鍓嶇殑鎵ц鏂瑰紡搴忓彿鏄渶鍚庝竴涓簡 鎴栬�� 璇ユ偅鑰呭凡缁忛殢璁跨粨鏉燂紙鎴愬姛鎴栧け璐ヤ簡鎴栦笉鎵ц锛�
log.error("璇存槑宸茬粡鍏ㄩ儴閬嶅巻瀹屼簡锛屽綋鍓嶇殑鎵ц鏂瑰紡搴忓彿鏄渶鍚庝竴涓簡 鎴栬�� 璇ユ偅鑰呭凡缁忛殢璁跨粨鏉燂紙鎴愬姛鎴栧け璐ヤ簡鎴栦笉鎵ц锛�");
@@ -1396,6 +1232,7 @@
}
//鍏堝垽鏂偅鑰呮槸涓嶆槸杩樿鍙戦��
PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid());
+ log.info("patArchive鐨勫�间负锛歿}", patArchive);
if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") {
//涓嶉渶瑕佸彂閫�
serviceSubtask.setResult("鎮h�呬笉闇�瑕侀殢璁�");
@@ -1419,8 +1256,7 @@
// 鍦ㄥ紑鍏虫仮澶嶅悗姘歌繙涓㈠け銆備繚鎸� sendstate 涓嶅姩锛屽紑鍏虫墦寮�鍚庝笅涓�娆� longTaskSend/compensateTask
// 浼氱収甯告妸瀹冩崬鍑烘潵鍙戝嚭銆�
if ("3".equals(serviceSubtask.getType()) && !publicityFacade.isEnabled()) {
- log.warn("銆愬鏁欍�戞ā鍧楁湭鍚敤锛堝弬鏁伴厤缃� publicity.enabled=false锛夛紝璺宠繃瀹f暀鍙戦�併�俿ubtaskId={}, patid={}",
- serviceSubtask.getId(), serviceSubtask.getPatid());
+ log.warn("銆愬鏁欍�戞ā鍧楁湭鍚敤锛堝弬鏁伴厤缃� publicity.enabled=false锛夛紝璺宠繃瀹f暀鍙戦�併�俿ubtaskId={}, patid={}", serviceSubtask.getId(), serviceSubtask.getPatid());
return;
}
@@ -1509,6 +1345,7 @@
String url = "";
String format = String.format("%03X", serviceOutPath.getId());
//鍏堝垽鏂竴涓嬪彂鐨勬槸涓嶆槸瀹f暀
+ log.info("serviceSubtask.getType鐨勫�间负锛歿}", serviceSubtask.getType());
if (!"3".equals(serviceSubtask.getType())) {
sendMagParam.setPhone(serviceSubtask.getPhone());
url = StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/wt?p=" + format : localIP + "/wt?p=" + format;
@@ -1516,7 +1353,7 @@
//濡傛灉type鏄闊抽殢璁跨殑璇濓紙璇存槑琛ュ伩鍙戦�佹柟寮忎腑鏈夌數璇濋殢璁跨殑鏂瑰紡锛岃繖閲岀殑澶栭摼灏卞湴鍧�鍙兘鐢�/sf锛�
if (serviceSubtask.getType().equals("1"))
url = StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/sf?p=" + format : localIP + "/sf?p=" + format;
- sendMagParam.setUrl(url);
+ sendMagParam.setUrl(url);
// SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template");
SysConfig sysConfig = new SysConfig();
@@ -1527,6 +1364,7 @@
} else {
sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template");
}
+ log.info("sysConfig鐨勫�间负锛歿}", sysConfig);
if (!Objects.isNull(sysConfig)) {
String smsContemt = sysConfig.getConfigValue();
// sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�");
@@ -1571,6 +1409,7 @@
//宸叉敹鍙e埌 ruoyi-message 妯″潡锛岃繖閲屽彧璐熻矗缁勮鍏ュ弬骞惰矾鐢�
log.info("active鐨勫�间负锛歿}", active);
SendResult smsSendResult = sendSmsByActive(serviceSubtask, sendMagParam);
+ log.info("smsSendResult鐨勫�间负锛歿}", smsSendResult);
String isSuccess = smsSendResult.asLegacyFlag();
//浠诲姟鍙戦�佽褰�
ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
@@ -1586,6 +1425,7 @@
serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
//鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬�
+ log.info("serviceSubtaskRecord鐨勫�间负锛歿}", serviceSubtaskRecord);
serviceSubtask.setSendstate(3L);
if (StringUtils.isNotEmpty(isSuccess) && isSuccess.equals("true")) {
serviceSubtask.setResult("success");
@@ -1789,8 +1629,7 @@
return "-1";
}
// 褰搒ort绛変簬鍒楄〃size鏃讹紝骞朵笖鎵�鏈塻endstate閮戒笉绛変簬9锛屽垯杩斿洖-1
- if (currentSort.get().equals((long) serviceSubtaskPreachforms.size())
- && isSubtaskDeadline(serviceSubtask, serviceSubtaskPreachforms)) {
+ if (currentSort.get().equals((long) serviceSubtaskPreachforms.size()) && isSubtaskDeadline(serviceSubtask, serviceSubtaskPreachforms)) {
if (allSendStateNot1AndNot9) {
//璇存槑鍏ㄥ彂閫佸け璐ヤ簡
serviceSubtask.setSendstate(7L);
@@ -1907,23 +1746,24 @@
// 鑾峰彇daysBefore 0鐐瑰埌daysBefore-1 0鐐圭殑鏃堕棿鑼冨洿
LocalDateTime todayZero = LocalDateTime.now().with(LocalTime.MIN);
LocalDateTime daysBeforeZeroStart = todayZero.minusDays(daysBefore);
- LocalDateTime daysBeforeZeroEnd = todayZero.minusDays(daysBefore-1L);
+ LocalDateTime daysBeforeZeroEnd = todayZero.minusDays(daysBefore - 1L);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String startTime = daysBeforeZeroStart.format(formatter);
String endTime = daysBeforeZeroEnd.format(formatter);
// HIS鏁版嵁閲囬泦
- log.info("銆恈ollectHISDaysBefore銆慔IS寮�濮嬮噰闆嗘暟鎹�: startTime:{}, endtime:{}",startTime, endTime);
+ log.info("銆恈ollectHISDaysBefore銆慔IS寮�濮嬮噰闆嗘暟鎹�: startTime:{}, endtime:{}", startTime, endTime);
// 绔嬪嵆杩斿洖锛屽悗鍙板紓姝ユ墽琛�
CompletableFuture.runAsync(() -> {
ichService.syncMedInhosp(startTime, endTime);
});
- log.info("銆恈ollectHISDaysBefore銆慔IS缁撴潫閲囬泦鏁版嵁: startTime:{}, endtime:{}",startTime, endTime);
+ log.info("銆恈ollectHISDaysBefore銆慔IS缁撴潫閲囬泦鏁版嵁: startTime:{}, endtime:{}", startTime, endTime);
} catch (Exception e) {
log.error("銆恈ollectHISDaysBefore銆慔IS鏁版嵁閲囬泦寮傚父", e);
}
}
public Boolean setSuccessPreachForm(ServiceSubtask serviceSubtask, String preachform, String remark, String failSendstate) {
+ log.info("setSuccessPreachForm鐨勫叆鍙備负锛歴erviceSubtask = {}锛� preachform = {}锛� remark = {}锛� failSendstate = {}", serviceSubtask, preachform, remark, failSendstate);
if (preachform.equals("-1")) {
//璇存槑閮戒笉闇�瑕佹墽琛屼簡
ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
@@ -1941,7 +1781,7 @@
serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid());
List<ServiceSubtaskPreachform> sspCount = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
-
+ log.info("sspCount鐨勫�间负锛歿}", sspCount);
serviceSubtaskPreachform.setPreachform(preachform);
//1:鏈彂閫佺姸鎬�
serviceSubtaskPreachform.setSendstate("1");
@@ -1951,7 +1791,7 @@
// //浜哄伐鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2
// if (preachform.equals("1") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2)
// serviceSubtaskPreachform.setSendstate("2");
- log.error("-----serviceSubtaskPreachform鐨勫叆鍙傛槸锛焮}", serviceSubtaskPreachform);
+ log.info("-----serviceSubtaskPreachform鐨勫叆鍙傛槸锛焮}", serviceSubtaskPreachform);
List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) {
ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0);
@@ -1962,10 +1802,9 @@
}
serviceSubtaskPreachform1.setRemark(remark);
serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1);
-
+ log.info("---------serviceSubtaskPreachform1鐨勫叆鍙傛槸 : {}", serviceSubtaskPreachform1);
//濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡锛岄偅鐩存帴灏唖erviceSubtask鐨剆endstate鐘舵�佹敼鎴�7灏辫浜�(鍏ㄨ秴鏃朵簡)
- if (serviceSubtaskPreachform1.getSort() == sspCount.size()
- && isSubtaskDeadline(serviceSubtask, serviceSubtaskPreachforms)) {
+ if (serviceSubtaskPreachform1.getSort() == sspCount.size() && isSubtaskDeadline(serviceSubtask, serviceSubtaskPreachforms)) {
if (failSendstate.equals("4") || failSendstate.equals("5")) {
serviceSubtask.setCurrentPreachform(preachform);
serviceSubtask.setSendstate(7L);
@@ -1980,7 +1819,7 @@
log.error("銆愬畾鏃朵换鍔′腑璇ユ偅鑰呮病鏈夋煡璇㈠埌灞炰簬浠栫殑鍙戦�佹柟寮忥紝subid锛歿},prechform:{},orgid:{}銆�", serviceSubtask.getId(), preachform, serviceSubtask.getOrgid());
return false;
}
-
+ log.info("鍒拌繖閲屼簡涓嶏紵锛燂紵锛�");
//灏嗕笅涓�娆$殑闅忚鏃堕棿涓庡綋鍓嶆墽琛屾柟寮忚褰曚竴涓�
serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime()));
serviceSubtask.setCurrentPreachform(preachform);
@@ -1993,6 +1832,7 @@
}
}
serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + "," + remark : remark);
+ log.info("serviceSubtask鐨勫叆鍙傛槸锛歿}",serviceSubtask);
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
return true;
}
@@ -2098,15 +1938,15 @@
/**
* 闅忚浠诲姟鏄惁瓒呮椂
+ *
* @param serviceSubtask
* @param serviceSubtaskPreachforms
* @return
*/
- public boolean isSubtaskDeadline(ServiceSubtask serviceSubtask, List<ServiceSubtaskPreachform> serviceSubtaskPreachforms){
+ public boolean isSubtaskDeadline(ServiceSubtask serviceSubtask, List<ServiceSubtaskPreachform> serviceSubtaskPreachforms) {
if (ObjectUtils.isNotEmpty(serviceSubtask)) {
//鍙湁鍑洪櫌闅忚鍜屼笓鐥呴殢璁挎湁瓒呮椂
- if(StringUtils.isNotEmpty(serviceSubtask.getServiceType()) &&
- !serviceSubtask.getServiceType().equals("2") && !serviceSubtask.getServiceType().equals("13")){
+ if (StringUtils.isNotEmpty(serviceSubtask.getServiceType()) && !serviceSubtask.getServiceType().equals("2") && !serviceSubtask.getServiceType().equals("13")) {
return true;
}
}
@@ -2117,9 +1957,7 @@
ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
int sendDay = serviceTask != null && serviceTask.getSendDay() != null ? serviceTask.getSendDay().intValue() : 1;
Date deadline = DateUtils.addDays(serviceSubtask.getEndtime(), sendDay);
- int sumCompensateTime = CollectionUtils.isEmpty(serviceSubtaskPreachforms) ? 0 : serviceSubtaskPreachforms.stream()
- .mapToInt(x -> x.getCompensateTime() == null ? 0 : Integer.parseInt(x.getCompensateTime()))
- .sum();
+ int sumCompensateTime = CollectionUtils.isEmpty(serviceSubtaskPreachforms) ? 0 : serviceSubtaskPreachforms.stream().mapToInt(x -> x.getCompensateTime() == null ? 0 : Integer.parseInt(x.getCompensateTime())).sum();
sumCompensateTime = sumCompensateTime + 1;
// 鍙ˉ鍋挎渶鍚庝竴姝ヨ嚜韬殑琛ュ伩鏃堕棿锛堝ぉ锛夛紝鑴忓�间竴寰嬫寜 0 鍏滃簳
deadline = DateUtils.addDays(deadline, sumCompensateTime);
@@ -2141,7 +1979,7 @@
* <p>
* 鈿狅笍 鍏ㄤ粨鍙湁 {@code ServiceSubtaskController#dealSubtaskDeadline} 涓�涓皟鐢ㄨ�呫��
*/
- public void dealSubtaskDeadline(String orgid, Integer deadlineDay){
+ public void dealSubtaskDeadline(String orgid, Integer deadlineDay) {
// 鈿狅笍 寮�鍏冲畧鍗細鍏堝垽鍐嶅共娲伙紝涓� dealOutHospInfo / rollTaskGroupCycle 鍚屽彛寰勩��
// 鍏抽棴鏃剁洿鎺ヨ繑鍥烇紝涓嶆壂鎻忋�佷笉寤�"鍐嶆闅忚"瀛愪换鍔°��
if (!inhospVisitFacade.isEnabled()) {
@@ -2166,8 +2004,7 @@
serviceSubtaskVO.setVisitCount(1);
serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
serviceSubtaskVO.setEndOutHospTime(deadline);
- List<ServiceSubtask> serviceSubtaskList
- = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
log.info("銆恉ealSubtaskDeadline銆戣幏鍙栧埌{}涓秴鏃朵换鍔�, taskid={}", serviceSubtaskList.size(), serviceTask.getTaskid());
for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
PatMedInhosp patMedInhospVo = new PatMedInhosp();
@@ -2178,10 +2015,10 @@
PatMedInhosp patMedInhosp = new PatMedInhosp();
if (!patMedInhospList.isEmpty()) {
patMedInhosp = patMedInhospList.get(0);
- }else {
+ } else {
continue;
}
- if(ObjectUtils.isEmpty(serviceTask.getNexttaskid())){
+ if (ObjectUtils.isEmpty(serviceTask.getNexttaskid())) {
continue;
}
ServiceTask nextServiceTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceTask.getNexttaskid());
@@ -2190,8 +2027,7 @@
Integer type = 1;
//鏂板鍐嶆闅忚浠诲姟
- ServiceSubtask serviceSubtaskAgain = iPatMedInhospService.boxedServiceSubtask(nextServiceTask,
- patMedInhosp, patArchive, config, type);
+ ServiceSubtask serviceSubtaskAgain = iPatMedInhospService.boxedServiceSubtask(nextServiceTask, patMedInhosp, patArchive, config, type);
serviceSubtaskAgain.setId(null);
serviceSubtaskAgain.setUpid(serviceSubtask.getId().intValue());
serviceSubtaskAgain.setVisitCount(serviceSubtask.getVisitCount() + 1);
--
Gitblit v1.9.3