From c4dc6a5d66524d08b768046d9d2d5974bf96f45c Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 11 十一月 2026 14:06:23 +0800
Subject: [PATCH] Merge branch 'smartor_ls_261103' into smartor_ls_merge
---
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 136 +++++++++++++++++++++++++-------------------
1 files changed, 77 insertions(+), 59 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index 7c52ef0..859bd9c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -19,9 +19,8 @@
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.domain.*;
import com.smartor.mapper.*;
-import com.smartor.service.IPatChildArchiveService;
-import com.smartor.service.IPatMaternityArchiveService;
import com.smartor.service.IPatMedOuthospService;
+import com.smartor.service.IPatSpecificArchiveGenerateService;
import com.smartor.service.IServiceExternalService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -69,6 +68,11 @@
@Slf4j
@Service
public class ServiceExternalServiceImpl implements IServiceExternalService {
+ /**
+ * 榫欐硥浜烘皯鍖婚櫌鏈烘瀯ID
+ */
+ private static final String LONGQUAN_PEOPLE_HOSPITAL_ORG_ID = "47240004533118111A1001";
+
@Autowired
private SysDept2Mapper sysDeptMapper;
@@ -100,9 +104,7 @@
@Autowired
private ISysConfigService configService;
@Autowired
- private IPatMaternityArchiveService patMaternityArchiveService;
- @Autowired
- private IPatChildArchiveService patChildArchiveService;
+ private IPatSpecificArchiveGenerateService patSpecificArchiveGenerateService;
@Autowired
private PatMedOuthospMapper patMedOuthospMapper;
@Autowired
@@ -1842,9 +1844,66 @@
} else {
patMedInhosp.setCreateTime(new Date());
i = inhospVisitFacade.insertPatMedInhosp(patMedInhosp);
+ if (i == 1) {
+ //榫欐硥浜烘皯鍖婚櫌锛氭柊澧炰綇闄俊鎭椂澶勭悊鎮h�呭啀鍏ラ櫌
+ stopReadmissionFollowUpTasks(patMedInhosp);
+ }
}
if (i == 1) return true;
return false;
+ }
+
+ /**
+ * 鎮h�呭啀鍏ラ櫌澶勭悊锛氭偅鑰呭啀娆″叆闄㈠悗锛屼笂涓�娆″嚭闄㈢敓鎴愮殑寰呮墽琛岄暱鏈熼殢璁夸换鍔′笉鍐嶆墽琛屻��
+ * 鐩墠浠呭榫欐硥浜烘皯鍖婚櫌鐢熸晥锛岄伩鍏嶅奖鍝嶅叾浠栨満鏋勩��
+ *
+ * @param patMedInhosp 鏈鏂板鐨勪綇闄俊鎭�
+ */
+ private void stopReadmissionFollowUpTasks(PatMedInhosp patMedInhosp) {
+ if (!LONGQUAN_PEOPLE_HOSPITAL_ORG_ID.equals(patMedInhosp.getOrgid())) {
+ return;
+ }
+ if (Objects.isNull(patMedInhosp.getPatid()) || Objects.isNull(patMedInhosp.getStarttime())) {
+ log.warn("榫欐硥浜烘皯鍖婚櫌鎮h�呭啀鍏ラ櫌澶勭悊璺宠繃锛宲atid鎴栧叆闄㈡椂闂翠负绌猴紝inhospno={}", patMedInhosp.getInhospno());
+ return;
+ }
+ try {
+ ServiceSubtaskEntity subtask = new ServiceSubtaskEntity();
+ subtask.setPatid(patMedInhosp.getPatid());
+ subtask.setOrgid(LONGQUAN_PEOPLE_HOSPITAL_ORG_ID);
+ subtask.setSendstate(2L);
+ List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask);
+ if (CollectionUtils.isEmpty(serviceSubtaskList)) {
+ return;
+ }
+ int stopCount = 0;
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+ //涓嶆槸闀挎湡浠诲姟锛屼笉澶勭悊
+ if (Objects.isNull(serviceSubtask.getLongSendTime())) {
+ continue;
+ }
+ //鍑洪櫌鏃堕棿鏅氫簬鎴栫瓑浜庢湰娆″叆闄㈡椂闂寸殑浠诲姟锛屼笉灞炰簬鏈鍏ラ櫌鍓嶇殑寰呴殢璁夸换鍔�
+ if (Objects.isNull(serviceSubtask.getEndtime())
+ || !serviceSubtask.getEndtime().before(patMedInhosp.getStarttime())) {
+ continue;
+ }
+ serviceSubtask.setSendstate(4L);
+ serviceSubtask.setIsVisitAgain(2);
+ serviceSubtask.setResult("error");
+ serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark())
+ ? serviceSubtask.getRemark() + ";鎮h�呭啀鍏ラ櫌" : "鎮h�呭啀鍏ラ櫌");
+ serviceSubtask.setUpdateTime(new Date());
+ if (Boolean.TRUE.equals(serviceSubtaskMapper.updateServiceSubtask(serviceSubtask))) {
+ stopCount++;
+ }
+ }
+ log.info("榫欐硥浜烘皯鍖婚櫌鎮h�呭啀鍏ラ櫌澶勭悊瀹屾垚锛宲atid={}锛屾湰娆″叆闄㈡椂闂�={}锛屽仠姝㈠緟鎵ц闀挎湡浠诲姟{}鏉�",
+ patMedInhosp.getPatid(), patMedInhosp.getStarttime(), stopCount);
+ } catch (Exception e) {
+ //鍐嶅叆闄换鍔″鐞嗗け璐ヤ笉褰卞搷鏈浣忛櫌淇℃伅鍏ュ簱
+ log.error("榫欐硥浜烘皯鍖婚櫌鎮h�呭啀鍏ラ櫌澶勭悊寮傚父锛宲atid={}锛宨nhospno={}",
+ patMedInhosp.getPatid(), patMedInhosp.getInhospno(), e);
+ }
}
//鏂板闅忚浠诲姟鍚屾
@@ -2480,61 +2539,20 @@
return 1;
}
- //鏂板鎮h�呬笓绉戞。妗堝熀鏈俊鎭�
+ /**
+ * 瀹屾垚鎺ヨ瘖鏃舵寜涓撶妗f鐢熸垚閰嶇疆鐢熸垚濡囩/鍎跨妗f銆�
+ *
+ * <p>鐢熸垚閫昏緫鍐呴儴鍙鎸囧畾鏈烘瀯鐢熸晥锛屾湭鍛戒腑閰嶇疆鎴栫敓鎴愬け璐ュ潎涓嶅奖鍝嶆帴璇婁富娴佺▼銆�</p>
+ */
private void genePatSpecificArchive(PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
- String deptCategory = judgeDeptCategory(patMedOuthosp.getDeptcode(), patMedOuthosp.getOrgid());
-
- boolean isGynecology = "1".equals(deptCategory); // 鏄惁濡囩
- boolean isPediatrics = "2".equals(deptCategory); // 鏄惁鍎跨
-
- if (isGynecology) {
- // 璧板绉戞。妗堢敓鎴愰�昏緫
- PatMaternityArchiveDetail patMaternityArchiveDetail
- = DtoConversionUtils.sourceToTarget(patMedOuthosp, PatMaternityArchiveDetail.class);
- patMaternityArchiveDetail.setSourceType("1");
- patMaternityArchiveDetail.setPhone(patArchive.getTelcode());
- patMaternityArchiveDetail.setPatid(patArchive.getId());
- patMaternityArchiveDetail.setPatname(patArchive.getName());
- patMaternityArchiveDetail.setBirthdate(patArchive.getBirthdate());
- patMaternityArchiveDetail.setSex(patArchive.getSex());
- patMaternityArchiveDetail.setAddress(patArchive.getPlaceOfResidence());
- patMaternityArchiveDetail.setOuthospno(patMedOuthosp.getOuthospno());
- patMaternityArchiveDetail.setSerialnum(patMedOuthosp.getSerialnum());
- patMaternityArchiveDetail.setIcd10code(patMedOuthosp.getIcd10code());
- patMaternityArchiveDetail.setDeptcode(patMedOuthosp.getDeptcode());
- patMaternityArchiveDetail.setDeptname(patMedOuthosp.getDeptname());
- patMaternityArchiveDetail.setDoctorName(patMedOuthosp.getDrname());
- patMaternityArchiveDetail.setDoctorCode(patMedOuthosp.getDrcode());
- patMaternityArchiveDetail.setManagementDoctorName(patMedOuthosp.getDrname());
- patMaternityArchiveDetail.setManagementDoctorCode(patMedOuthosp.getDrcode());
- patMaternityArchiveDetail.setOrgid(patMedOuthosp.getOrgid());
- patMaternityArchiveDetail.setCampusid(patMedOuthosp.getCampusid());
- patMaternityArchiveService.insertOrUpdateMaternityArchive(patMaternityArchiveDetail);
- } else if (isPediatrics) {
- // 璧板効绉戞。妗堢敓鎴愰�昏緫
- PatChildArchiveDetail patChildArchiveDetail
- = DtoConversionUtils.sourceToTarget(patMedOuthosp, PatChildArchiveDetail.class);
- patChildArchiveDetail.setSourceType("1");
- patChildArchiveDetail.setPhone(patArchive.getTelcode());
- patChildArchiveDetail.setPatid(patArchive.getId());
- patChildArchiveDetail.setPatname(patArchive.getName());
- patChildArchiveDetail.setBirthdate(patArchive.getBirthdate());
- patChildArchiveDetail.setSex(patArchive.getSex());
-// patChildArchiveDetail.setAddress(patArchive.getPlaceOfResidence());
- patChildArchiveDetail.setOuthospno(patMedOuthosp.getOuthospno());
- patChildArchiveDetail.setSerialnum(patMedOuthosp.getSerialnum());
- patChildArchiveDetail.setIcd10code(patMedOuthosp.getIcd10code());
- patChildArchiveDetail.setDeptcode(patMedOuthosp.getDeptcode());
- patChildArchiveDetail.setDeptname(patMedOuthosp.getDeptname());
- patChildArchiveDetail.setDoctorName(patMedOuthosp.getDrname());
- patChildArchiveDetail.setDoctorCode(patMedOuthosp.getDrcode());
- patChildArchiveDetail.setManagementDoctorName(patMedOuthosp.getDrname());
- patChildArchiveDetail.setManagementDoctorCode(patMedOuthosp.getDrcode());
- patChildArchiveDetail.setOrgid(patMedOuthosp.getOrgid());
- patChildArchiveDetail.setCampusid(patMedOuthosp.getCampusid());
- patChildArchiveService.insertOrUpdateChildArchive(patChildArchiveDetail);
- } else {
- // 鏈懡涓厤缃紝涓嶇敓鎴愭。妗�
+ try {
+ int generated = patSpecificArchiveGenerateService.generateByOuthosp(patMedOuthosp, patArchive);
+ if (generated > 0) {
+ log.info("瀹屾垚鎺ヨ瘖鑷姩鐢熸垚涓撶妗f鎴愬姛锛宱uthospno={}锛岀敓鎴愭暟閲�={}",
+ patMedOuthosp.getOuthospno(), generated);
+ }
+ } catch (Exception e) {
+ log.error("瀹屾垚鎺ヨ瘖鑷姩鐢熸垚涓撶妗f澶辫触锛宱uthospno={}", patMedOuthosp.getOuthospno(), e);
}
}
--
Gitblit v1.9.3