From 85183ce29f27f67edf9b80d9b15efff48091449f Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 09 四月 2026 13:49:42 +0800
Subject: [PATCH] 省立同德门急诊采集功能提交
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 125 +++++++++++++++++++++++++++++++++--------
1 files changed, 99 insertions(+), 26 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 3a306b4..d33e19d 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,11 +11,11 @@
import com.ruoyi.common.enums.MsgLSEnum;
import com.ruoyi.common.enums.ServiceFromEnum;
import com.ruoyi.common.enums.WxGZHEnum;
-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;
+import com.ruoyi.quartz.util.CreateDataTable;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.common.LSHospTokenUtil;
@@ -151,6 +151,9 @@
@Autowired
ICollectHISService icollectHis;
+
+ @Autowired
+ CreateDataTable createDataTable;
@Value("${appid}")
@@ -339,19 +342,38 @@
serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
log.debug("銆恉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.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
-// serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
-// log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+ // 闂ㄦ�ヨ瘖鍒嗛〉閲囬泦锛氭瘡椤�1000鏉★紝鐩村埌鏃犳暟鎹负姝�
+ 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);
+ long outpPage = 1L;
+ final long OUTP_PAGE_SIZE = 1000L;
+ while (true) {
+ serviceSLTDInhospReqVO.setCurrent(outpPage);
+ serviceSLTDInhospReqVO.setSize(OUTP_PAGE_SIZE);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗙{}椤垫暟鎹紝闄㈠尯锛歿}", outpPage, cid);
+ List<ServiceSLTDInhospResDTO> outpResult = serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
+ if (CollectionUtils.isEmpty(outpResult)) {
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濈{}椤垫棤鏁版嵁锛岄噰闆嗙粨鏉燂紝闄㈠尯锛歿}", outpPage, cid);
+ break;
+ }
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濈{}椤甸噰闆唟}鏉★紝闄㈠尯锛歿}", outpPage, outpResult.size(), cid);
+ if (outpResult.size() < OUTP_PAGE_SIZE) {
+ break;
+ }
+ outpPage++;
+ }
+ // 娓呴櫎鍒嗛〉鍙傛暟锛岄伩鍏嶅奖鍝嶅悗缁嚭鍏ラ櫌鏌ヨ
+ serviceSLTDInhospReqVO.setCurrent(null);
+ serviceSLTDInhospReqVO.setSize(null);
+ log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆垎椤甸噰闆嗗畬鎴愶紝闄㈠尯锛歿}", cid);
log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
serviceSLTDInhospReqVO.setStartHeadTime(null);
@@ -471,6 +493,19 @@
}
/**
+ * 闂ㄨ瘖鍒嗚〃瀹氭椂浠诲姟锛氫粠 sys_config 璇诲彇鍒嗚〃妯″紡锛屾寜妯″紡寤鸿〃骞跺埛鏂拌鍥� v_pat_med_outhosp
+ * 閰嶇疆 key: outhosp.split.mode
+ * quarter -> 鎸夊搴︼紝琛ㄥ悕绀轰緥锛歱at_med_outhosp_20260103
+ * year -> 鎸夊勾锛岃〃鍚嶇ず渚嬶細pat_med_outhosp_2026
+ * month -> 鎸夋湀锛岃〃鍚嶇ず渚嬶細pat_med_outhosp_202601
+ * 鏌ヨ涓嶅埌閰嶇疆鍒欎笉鍒嗚〃
+ */
+ public void createOuthospQuarterTable() {
+ log.info("銆恈reateOuthospQuarterTable銆戝紑濮嬫墽琛岄棬璇婂垎琛ㄤ换鍔�");
+ createDataTable.createOuthospQuarterTable();
+ }
+
+ /**
* 澶勭悊鎮h�呬俊鎭紝杩涘叆瀛愪换鍔¤〃(寰俊灏忕▼搴�)
*/
public void dealOutHospInfoXHC() {
@@ -483,7 +518,7 @@
/**
- * 闀挎湡浠诲姟鍙戦��
+ * 闀挎湡浠诲姟鍙戦��
*/
public void longTaskSend() {
//鑾峰彇浠诲姟淇℃伅
@@ -542,12 +577,23 @@
//2鍒ゆ柇涓�涓嬶紝褰撳墠鐨剆ort鏄笉鏄瓑浜庨渶瑕佹墽琛岀殑鎬讳釜鏁帮紝濡傛灉绛変簬鐨勮瘽锛岃鏄庢槸鏈�鍚庝竴涓紝鐩存帴灏唖ervuce_subtask鐨勭姸鎬佹敼鎴�5锛屾墽琛屽け璐ュ氨琛屼簡
Long cs = currentSort.get();
if (cs.equals(serviceSubtaskPreachforms.size())) {
- serviceSubtask.setSendstate(5L);
- serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋匡紝鍏ㄩ儴鎵ц澶辫触");
+ if(serviceSubtask.getPreachform().equals("1")){
+ serviceSubtask.setSendstate(7L);
+ serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋� 浜哄伐瓒呮椂");
+ }else {
+ serviceSubtask.setSendstate(5L);
+ serviceSubtask.setRemark("澶勭悊琛ュ伩浠诲姟,褰撳墠澶勭悊鏈�鍚庤ˉ鍋匡紝鍏ㄩ儴鎵ц澶辫触");
+ }
+
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
//淇敼鍙戦�佹柟寮忕殑鐘舵�佷负澶辫触
- serviceSubtaskPreachform.setSendstate("5");
- serviceSubtaskPreachform.setId(id.get());
+ if(serviceSubtaskPreachform.getPreachform().equals("1")){
+ serviceSubtaskPreachform.setSendstate("7");
+ serviceSubtaskPreachform.setId(id.get());
+ }else {
+ serviceSubtaskPreachform.setSendstate("5");
+ serviceSubtaskPreachform.setId(id.get());
+ }
serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform);
continue;
}
@@ -582,6 +628,7 @@
/**
* 闅忚-琛ュ伩澶勭悊
+ *
* @param serviceSubtask
*/
public void sfHandlle(ServiceSubtask serviceSubtask) {
@@ -903,7 +950,7 @@
}
}
} else if (descByCode.equals("浜哄伐")) {
- setSuccessPreachForm(serviceSubtask, sendPreachform, "浜哄伐寰呮墽琛�", "2");
+ setSuccessPreachForm(serviceSubtask, sendPreachform, "浜哄伐瓒呮椂", "7");
}
}
@@ -971,6 +1018,11 @@
//璇存槑鍏ㄥ彂閫佸け璐ヤ簡
serviceSubtask.setSendstate(5L);
log.error("getSendPreachform鏂规硶 妫�鏌ユ槸鍚︽墍鏈塻endstate涓嶇瓑浜�9, 鍏ㄥけ璐ヤ簡");
+ //浜哄伐鍙戦�佽秴鏃�
+ if(ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")){
+ serviceSubtask.setSendstate(7L);
+ serviceSubtask.setRemark("浜哄伐鍙戦�佽秴鏃�");
+ }
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
//淇敼鍙戦�佺姸鎬�
setFail(serviceSubtaskPreachforms, serviceSubtask);
@@ -1012,10 +1064,8 @@
serviceSubtaskPreachform.setPreachform(nextPreachform);
serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform);
}
-
return nextPreachform;
}
-
return null;
}
@@ -1054,6 +1104,11 @@
ServiceSubtaskPreachform subtaskPreachform = new ServiceSubtaskPreachform();
subtaskPreachform.setSendstate("5");
subtaskPreachform.setId(id.get());
+ //浜哄伐鍙戦�佽秴鏃�
+ if(ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")){
+ subtaskPreachform.setSendstate("7");
+ subtaskPreachform.setRemark("浜哄伐鍙戦�佽秴鏃�");
+ }
return serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(subtaskPreachform);
}
return 0;
@@ -1178,17 +1233,30 @@
if (failSendstate.equals("2")) serviceSubtaskPreachform1.setSendstate("9");
}
serviceSubtaskPreachform1.setRemark(remark);
+ if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){
+ serviceSubtaskPreachform1.setSendstate("7");
+ serviceSubtaskPreachform1.setRemark("浜哄伐鍙戦�佽秴鏃�");
+ }
serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1);
//濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡锛岄偅鐩存帴灏唖erviceSubtask鐨剆endstate鐘舵�佹敼鎴�5灏辫浜�(鍏ㄥけ璐ヤ簡)
if (serviceSubtaskPreachform1.getSort() == sspCount.size()) {
- if (failSendstate.equals("4") || failSendstate.equals("5")) {
+ if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){
serviceSubtask.setCurrentPreachform(preachform);
- serviceSubtask.setSendstate(5L);
- serviceSubtask.setRemark("setSuccessPreachForm鏂规硶锛屽綋鍓嶇殑preachform宸茬粡鏄渶鍚庝竴涓簡锛屽叏閮ㄦ墽琛屽け璐�");
+ serviceSubtask.setSendstate(7L);
+ serviceSubtask.setRemark("浜哄伐鍙戦�佽秴鏃�");
serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
return true;
+ }else {
+ if (failSendstate.equals("4") || failSendstate.equals("5")) {
+ serviceSubtask.setCurrentPreachform(preachform);
+ serviceSubtask.setSendstate(5L);
+ //serviceSubtask.setRemark("setSuccessPreachForm鏂规硶锛屽綋鍓嶇殑preachform宸茬粡鏄渶鍚庝竴涓簡锛屽叏閮ㄦ墽琛屽け璐�");
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ return true;
+ }
}
+
}
} else {
log.error("銆愬畾鏃朵换鍔′腑璇ユ偅鑰呮病鏈夋煡璇㈠埌灞炰簬浠栫殑鍙戦�佹柟寮忥紝subid锛歿},prechform:{},orgid:{}銆�", serviceSubtask.getId(), preachform, serviceSubtask.getOrgid());
@@ -1197,7 +1265,12 @@
//灏嗕笅涓�娆$殑闅忚鏃堕棿涓庡綋鍓嶆墽琛屾柟寮忚褰曚竴涓�
serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime()));
serviceSubtask.setCurrentPreachform(preachform);
- serviceSubtask.setSendstate(3L);
+ if(ObjectUtils.isNotEmpty(preachform) && preachform.equals("1")){
+ serviceSubtask.setSendstate(7L);
+ serviceSubtask.setRemark("浜哄伐鍙戦�佽秴鏃�");
+ }else {
+ serviceSubtask.setSendstate(3L);
+ }
if (serviceSubtask.getType().equals("3") || serviceSubtask.getType().equals("4")) {
//濡傛灉鏄鏁欐垨閫氱煡锛屽苟涓斿彂閫佹垚鍔燂紝鍒欑洿鎺ュ皢serviceSubtask鐘舵�佹敼鎴�6L锛堣繖涓偅鑰呮槸娌℃湁棰樺仛鐨勶紝涓嶄細鍐嶈Е鍙戞帴鍙h繘琛岀姸鎬佷慨鏀癸級
if (failSendstate.equals("2")) {
--
Gitblit v1.9.3