From 816eea15ab68b3efb03786be616687b2e197014f Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 15 十月 2026 17:35:47 +0800
Subject: [PATCH] 【丽水】insertOrUpdateTask报错问题处理
---
smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java | 145 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 145 insertions(+), 0 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
index 49b170a..cea1042 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMaternityArchiveServiceImpl.java
@@ -1,11 +1,22 @@
package com.smartor.service.impl;
+import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.DtoConversionUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.smartor.domain.PatChildArchive;
+import com.smartor.domain.PatChildArchiveDetail;
import com.smartor.domain.PatMaternityArchive;
+import com.smartor.domain.PatMaternityArchiveDetail;
+import com.smartor.mapper.PatMaternityArchiveDetailMapper;
import com.smartor.mapper.PatMaternityArchiveMapper;
+import com.smartor.service.IPatMaternityArchiveDetailService;
import com.smartor.service.IPatMaternityArchiveService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -15,11 +26,17 @@
* @author ruoyi
* @date 2026-10-09
*/
+@Slf4j
@Service
public class PatMaternityArchiveServiceImpl implements IPatMaternityArchiveService
{
@Autowired
private PatMaternityArchiveMapper patMaternityArchiveMapper;
+
+ @Autowired
+ private IPatMaternityArchiveDetailService patMaternityArchiveDetailService;
+ @Autowired
+ private PatMaternityArchiveDetailMapper patMaternityArchiveDetailMapper;
@Override
public PatMaternityArchive selectPatMaternityArchiveById(Long id)
@@ -54,8 +71,136 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
+ public int batchDeletePatMaternityArchiveByIds(Long[] ids)
+ {
+ // 鍏堝垹闄ゅ搴旂殑璇︽儏琛ㄦ暟鎹�
+ patMaternityArchiveDetailService.deletePatMaternityArchiveDetailByArchiveIds(ids);
+ // 鍐嶅垹闄や富琛ㄦ暟鎹�
+ return patMaternityArchiveMapper.deletePatMaternityArchiveByIds(ids);
+ }
+
+ @Override
public int deletePatMaternityArchiveById(Long id)
{
return patMaternityArchiveMapper.deletePatMaternityArchiveById(id);
}
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int insertOrUpdateMaternityArchive(PatMaternityArchiveDetail patMaternityArchiveDetail) {
+ if (patMaternityArchiveDetail == null) {
+ log.error("insertOrUpdateMaternityArchive鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
+ throw new BaseException("濡囩妗f鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�");
+ }
+
+ //淇濊瘉鍚屼竴灏辫瘖璁板綍鍚屼竴妗f绫诲瀷鍙兘鐢熸垚涓�鏉�
+ PatMaternityArchiveDetail patMaternityArchiveDetailVo = new PatMaternityArchiveDetail();
+ patMaternityArchiveDetailVo.setOrgid(patMaternityArchiveDetail.getOrgid());
+ patMaternityArchiveDetailVo.setPatid(patMaternityArchiveDetail.getPatid());
+ patMaternityArchiveDetailVo.setOuthospno(patMaternityArchiveDetail.getOuthospno());
+ patMaternityArchiveDetailVo.setArchiveType(patMaternityArchiveDetail.getArchiveType());
+ List<PatMaternityArchiveDetail> patMaternityArchiveDetailOlds
+ = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(patMaternityArchiveDetailVo);
+
+
+ if (StringUtils.isEmpty(patMaternityArchiveDetail.getOuthospno())) {
+ throw new BaseException("濡囩妗f鍏ュ弬闂ㄨ瘖缂栧彿outhospno涓虹┖锛岃妫�鏌ュ叆鍙傞棬璇婄紪鍙�");
+ }
+ if (StringUtils.isEmpty(patMaternityArchiveDetail.getArchiveType())) {
+ throw new BaseException("濡囩妗f鍏ュ弬妗f绫诲瀷archiveType涓虹┖锛岃妫�鏌ュ叆鍙傛。妗堢被鍨�");
+ }
+
+ // 鎸変笟鍔¢敭鏌ヨ鎯�
+ PatMaternityArchiveDetail key = new PatMaternityArchiveDetail();
+ key.setOrgid(patMaternityArchiveDetail.getOrgid());
+ key.setPatid(patMaternityArchiveDetail.getPatid());
+ key.setOuthospno(patMaternityArchiveDetail.getOuthospno());
+ key.setArchiveType(patMaternityArchiveDetail.getArchiveType());
+ List<PatMaternityArchiveDetail> olds =
+ patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(key);
+
+ Long existArchiveId = null;
+ Long existDetailId = null;
+ if (CollectionUtils.isNotEmpty(olds)) {
+ existArchiveId = olds.get(0).getArchiveid();
+ existDetailId = olds.get(0).getId();
+ }
+
+ // 璇︽儏娌℃煡鍒帮紝鍐嶅厹搴曟寜鍚屾牱閿煡涓昏〃锛岄伩鍏嶄富琛ㄩ噸澶�
+ if (existArchiveId == null) {
+ PatMaternityArchive mainKey = new PatMaternityArchive();
+ mainKey.setOrgid(patMaternityArchiveDetail.getOrgid());
+ mainKey.setPatid(patMaternityArchiveDetail.getPatid());
+ mainKey.setOuthospno(patMaternityArchiveDetail.getOuthospno());
+ mainKey.setArchiveType(patMaternityArchiveDetail.getArchiveType());
+ List<PatMaternityArchive> mainOlds =
+ patMaternityArchiveMapper.selectPatMaternityArchiveList(mainKey);
+ if (CollectionUtils.isNotEmpty(mainOlds)) {
+ existArchiveId = mainOlds.get(0).getId();
+ }
+ }
+ patMaternityArchiveDetail.setArchiveid(existArchiveId);
+
+ // 鍚庨潰鏇存柊璇︽儏鏃讹紝浼樺厛鐢ㄤ笟鍔¢敭鍖归厤鍒扮殑 detail id
+ Long detailId = patMaternityArchiveDetail.getId();
+ if (detailId == null) {
+ detailId = existDetailId;
+ }
+
+ // 鍙紶浜嗚鎯卛d鏃讹紝鍙嶆煡鍑哄搴旂殑妗f涓婚敭id锛屼繚璇佸悗缁兘姝g‘鏇存柊涓昏〃
+ if (CollectionUtils.isNotEmpty(patMaternityArchiveDetailOlds)) {
+ PatMaternityArchiveDetail existDetail = patMaternityArchiveDetailOlds.get(0);
+ if (existDetail != null) {
+ patMaternityArchiveDetail.setArchiveid(existDetail.getArchiveid());
+ }
+ }
+
+ // 灏嗚鎯呬腑鐨勫叕鍏卞瓧娈靛鍒跺埌涓昏〃瀵硅薄
+ PatMaternityArchive patMaternityArchive = DtoConversionUtils.sourceToTarget(patMaternityArchiveDetail, PatMaternityArchive.class);
+ if (patMaternityArchive == null) {
+ throw new BaseException("濡囩妗f瀵硅薄杞崲澶辫触锛岃妫�鏌ュ叆鍙�");
+ }
+ // 闃叉鎶婅鎯呰〃id锛坧atMaternityArchiveDetail.id锛夊綋浣滀富琛╥d锛屼富琛╥d蹇呴』浠rchiveid涓哄噯
+ patMaternityArchive.setId(patMaternityArchiveDetail.getArchiveid());
+
+ // 涓昏〃锛氭湁id涓斿簱涓瓨鍦ㄥ垯淇敼锛屽惁鍒欐柊澧�
+ if (patMaternityArchive.getId() != null
+ && patMaternityArchiveMapper.selectPatMaternityArchiveById(patMaternityArchive.getId()) != null) {
+ patMaternityArchive.setUpdateTime(DateUtils.getNowDate());
+ patMaternityArchiveMapper.updatePatMaternityArchive(patMaternityArchive);
+ } else {
+ patMaternityArchive.setCreateTime(DateUtils.getNowDate());
+ if (StringUtils.isEmpty(patMaternityArchive.getDelFlag())) {
+ patMaternityArchive.setDelFlag("0");
+ }
+ patMaternityArchiveMapper.insertPatMaternityArchive(patMaternityArchive);
+ }
+
+ // 鍥炲~涓昏〃id鍒拌鎯咃紝鍚屾鐢熸垚/鏇存柊璇︽儏琛�
+ patMaternityArchiveDetail.setArchiveid(patMaternityArchive.getId());
+
+// Long detailId = patMaternityArchiveDetail.getId();
+ if (detailId == null && patMaternityArchiveDetail.getArchiveid() != null) {
+ PatMaternityArchiveDetail query = new PatMaternityArchiveDetail();
+ query.setArchiveid(patMaternityArchiveDetail.getArchiveid());
+ List<PatMaternityArchiveDetail> existList = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(query);
+ if (CollectionUtils.isNotEmpty(existList)) {
+ detailId = existList.get(0).getId();
+ }
+ }
+
+ if (detailId != null) {
+ patMaternityArchiveDetail.setId(detailId);
+ patMaternityArchiveDetailService.updatePatMaternityArchiveDetail(patMaternityArchiveDetail);
+ } else {
+ if (StringUtils.isEmpty(patMaternityArchiveDetail.getDelFlag())) {
+ patMaternityArchiveDetail.setDelFlag("0");
+ }
+ patMaternityArchiveDetailService.insertPatMaternityArchiveDetail(patMaternityArchiveDetail);
+ }
+
+ log.info("insertOrUpdateMaternityArchive澶勭悊瀹屾垚锛屼富琛╥d锛歿}锛岃鎯卛d锛歿}", patMaternityArchive.getId(), patMaternityArchiveDetail.getId());
+ return patMaternityArchive.getId().intValue();
+ }
}
--
Gitblit v1.9.3