From d9281d43e27ab6c510d390ddb26eaffc8ccc1add Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 11 十一月 2026 14:04:52 +0800
Subject: [PATCH] 妇幼-补充住院随访档案生成日志、完成事件及自检文件
---
smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java | 62 ++++++++++++++++++++++++++++---
1 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
index 04aef2b..9ccd188 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatChildArchiveServiceImpl.java
@@ -88,12 +88,62 @@
log.error("insertOrUpdateChildArchive鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
throw new BaseException("鍎跨妗f鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
}
+ if (StringUtils.isEmpty(patChildArchiveDetail.getOuthospno())
+ && StringUtils.isEmpty(patChildArchiveDetail.getInhospno())) {
+ throw new BaseException("鍎跨妗f鍏ュ弬闂ㄨ瘖缂栧彿outhospno鍜屼綇闄㈢紪鍙穒nhospno涓嶈兘鍚屾椂涓虹┖");
+ }
+ if (StringUtils.isEmpty(patChildArchiveDetail.getArchiveType())) {
+ throw new BaseException("鍎跨妗f鍏ュ弬妗f绫诲瀷archiveType涓虹┖锛岃妫�鏌ュ叆鍙傛。妗堢被鍨�");
+ }
- // 鍙紶浜嗚鎯卛d鏃讹紝鍙嶆煡鍑哄搴旂殑妗f涓婚敭id锛屼繚璇佸悗缁兘姝g‘鏇存柊涓昏〃
- if (patChildArchiveDetail.getId() != null && patChildArchiveDetail.getArchiveid() == null) {
- PatChildArchiveDetail existDetail = patChildArchiveDetailService.selectPatChildArchiveDetailById(patChildArchiveDetail.getId());
- if (existDetail != null) {
- patChildArchiveDetail.setArchiveid(existDetail.getArchiveid());
+ // 鎸変笟鍔¢敭鏌ヨ鎯�
+ PatChildArchiveDetail key = new PatChildArchiveDetail();
+ key.setOrgid(patChildArchiveDetail.getOrgid());
+ key.setPatid(patChildArchiveDetail.getPatid());
+ key.setOuthospno(patChildArchiveDetail.getOuthospno());
+ key.setInhospno(patChildArchiveDetail.getInhospno());
+ key.setArchiveType(patChildArchiveDetail.getArchiveType());
+ List<PatChildArchiveDetail> olds =
+ patChildArchiveDetailService.selectPatChildArchiveDetailList(key);
+
+ Long existArchiveId = null;
+ Long existDetailId = null;
+ if (CollectionUtils.isNotEmpty(olds)) {
+ existArchiveId = olds.get(0).getArchiveid();
+ existDetailId = olds.get(0).getId();
+ }
+
+ // 璇︽儏娌℃煡鍒帮紝鍐嶅厹搴曟寜鍚屾牱閿煡涓昏〃锛岄伩鍏嶄富琛ㄩ噸澶�
+ if (existArchiveId == null) {
+ PatChildArchive mainKey = new PatChildArchive();
+ mainKey.setOrgid(patChildArchiveDetail.getOrgid());
+ mainKey.setPatid(patChildArchiveDetail.getPatid());
+ mainKey.setOuthospno(patChildArchiveDetail.getOuthospno());
+ mainKey.setInhospno(patChildArchiveDetail.getInhospno());
+ mainKey.setArchiveType(patChildArchiveDetail.getArchiveType());
+ List<PatChildArchive> mainOlds =
+ patChildArchiveMapper.selectPatChildArchiveList(mainKey);
+ if (CollectionUtils.isNotEmpty(mainOlds)) {
+ existArchiveId = mainOlds.get(0).getId();
+ }
+ }
+ patChildArchiveDetail.setArchiveid(existArchiveId);
+
+ // 鍚庨潰鏇存柊璇︽儏鏃讹紝浼樺厛鐢ㄤ笟鍔¢敭鍖归厤鍒扮殑 detail id
+ Long detailId = patChildArchiveDetail.getId();
+ if (detailId == null) {
+ detailId = existDetailId;
+ }
+
+
+ // 鏂板妗f鏃惰ˉ榛樿鏉ユ簮锛屾洿鏂版椂淇濈暀鍘熸潵婧�
+ if (existArchiveId == null && patChildArchiveDetail.getId() == null) {
+ if (StringUtils.isEmpty(patChildArchiveDetail.getSourceType())) {
+ patChildArchiveDetail.setSourceType("3");
+ }
+ if (StringUtils.isEmpty(patChildArchiveDetail.getSourceBizNo())) {
+ patChildArchiveDetail.setSourceBizNo(StringUtils.isNotEmpty(patChildArchiveDetail.getOuthospno())
+ ? patChildArchiveDetail.getOuthospno() : patChildArchiveDetail.getInhospno());
}
}
@@ -121,7 +171,7 @@
// 鍥炲~涓昏〃id鍒拌鎯咃紝鍚屾鐢熸垚/鏇存柊璇︽儏琛�
patChildArchiveDetail.setArchiveid(patChildArchive.getId());
- Long detailId = patChildArchiveDetail.getId();
+// Long detailId = patChildArchiveDetail.getId();
if (detailId == null && patChildArchiveDetail.getArchiveid() != null) {
PatChildArchiveDetail query = new PatChildArchiveDetail();
query.setArchiveid(patChildArchiveDetail.getArchiveid());
--
Gitblit v1.9.3