From d047a35e640a59e02a422d9a9a62c752c88b69b5 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 28 十月 2026 15:51:52 +0800
Subject: [PATCH] 【丽水】 同一 inhospid + taskid 已存在未删除的首次随访(upid 为空)时,不再插入,避免出现两条首次随访
---
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index d30b56e..e1ba487 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -708,6 +708,29 @@
//璁板綍insertServiceSubtask璇彞杩斿洖鐘舵��
Integer i = 0;
try {
+ // 鍏滃簳锛氫换鍔℃ā鏉夸慨鏀逛細閲嶇疆 pat_med_inhosp 鐨勫鐞嗘爣璁帮紝浣嗗凡瀹屾垚鐨勯璁夸笉浼氬垹闄ゃ��
+ // 鍚屼竴 inhospid + taskid 宸插瓨鍦ㄦ湭鍒犻櫎鐨勯娆¢殢璁匡紙upid 涓虹┖锛夋椂锛屼笉鍐嶆彃鍏ワ紝閬垮厤鍑虹幇涓ゆ潯棣栨闅忚銆�
+ if (check
+ && ("2".equals(serviceTask.getServiceType()) || "13".equals(serviceTask.getServiceType()))
+ && (type == 1 || type == 2 || type == 3)) {
+ ServiceSubtaskEntity firstQuery = new ServiceSubtaskEntity();
+ firstQuery.setInhospid(patMedInhosp1.getInhospid());
+ firstQuery.setTaskid(taskid);
+ List<ServiceSubtask> firstList = serviceSubtaskMapper.selectServiceSubtaskList(firstQuery);
+ boolean firstExists = CollectionUtils.isNotEmpty(firstList)
+ && firstList.stream().anyMatch(item -> item.getUpid() == null);
+ if (firstExists) {
+ log.info("鎮h�厈}宸插瓨鍦ㄩ娆¢殢璁夸换鍔★紝璺宠繃閲嶅鐢熸垚, taskid={}, type={}",
+ patMedInhosp1.getInhospid(), taskid, type);
+ PatMedInhosp flagUpdate = new PatMedInhosp();
+ flagUpdate.setInhospid(patMedInhosp1.getInhospid());
+ if (type == 1) flagUpdate.setDeptcheckFlag("1");
+ if (type == 2) flagUpdate.setWardcheckFlag("1");
+ if (type == 3) flagUpdate.setDiagcheckFlag("1");
+ patMedInhospMapper.updatePatMedInhosp(flagUpdate);
+ return;
+ }
+ }
//鍏堝垽鏂竴涓嬶紝鏄惁闇�瑕佹牎楠�
if (check && (Objects.isNull(serviceSubtask.getTaskSituation()) || serviceSubtask.getTaskSituation() != 6)) {
//鍦ㄦ柊澧炰箣鍓嶏紝鍏堥�氳繃鎮h�匢D锛宻endstate=2鏌ヨ涓�涓嬶紝鍦ㄦ墍鏈夐暱鏈熶换鍔′腑锛屾槸涓嶆槸杩樻湁璇ユ偅鑰呭緟鎵ц鐨勪换鍔★紝鏈夌殑璇�,姣旇緝涔嬪墠鐨別ndtime鏄惁灏忎簬褰撳墠鐨別ndtaime,濡傛灉涔嬪墠鐨勫皬浜庣幇鍦ㄧ殑锛屽垯鐩存帴灏嗕箣鍓嶇殑鍋滄帀锛堝師鍥犲啀鍏ラ櫌锛�
@@ -1955,5 +1978,30 @@
return generatedCount;
}
+ @Override
+ public void dealIcd10Subtask(PatMedInhosp pmks, String config) {
+ pmks.setDiagcheckFlag("0");
+ pmks.setInhospstate("1");
+ pmks.setFuflag("1");
+ List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
+ log.info("dealIcd10Subtask 寰呭鐞嗗嚭闄㈢柧鐥呮偅鑰呮暟锛歿}", CollectionUtils.isEmpty(patMedInhosps) ? 0 : patMedInhosps.size());
+ if (CollectionUtils.isNotEmpty(patMedInhosps)) {
+ int matchedTaskCount = 0;
+ for (PatMedInhosp patMedInhosp : patMedInhosps) {
+ // 鑾峰彇鎮h�呭熀鏈俊鎭紝妗f涓嶅瓨鍦ㄦ椂鐩存帴鏍囪澶辫触锛岄伩鍏嶅悗缁┖鎸囬拡
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
+ if (Objects.isNull(patArchive)) {
+ PatMedInhosp updateObj = new PatMedInhosp();
+ updateObj.setInhospid(patMedInhosp.getInhospid());
+ updateObj.setDiagcheckFlag("2");
+ updateObj.setLongTaskReason("鎮h�呭熀鏈俊鎭负绌�");
+ patMedInhospMapper.updatePatMedInhosp(updateObj);
+ continue;
+ }
+ matchedTaskCount += addIcd10SubTaskForPatient(patMedInhosp, patArchive, config);
+ }
+ log.info("dealIcd10Subtask 澶勭悊瀹屾垚锛屽緟澶勭悊锛歿}锛屽尮閰嶇柧鐥呴暱鏈熶换鍔℃鏁帮細{}", patMedInhosps.size(), matchedTaskCount);
+ }
+ }
}
--
Gitblit v1.9.3