From cbd223ee2185f2cc39267e37a72edaadf6a3aa19 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期三, 18 三月 2026 08:57:12 +0800
Subject: [PATCH] 死亡判定相关接口新增死亡判定说明、扩展 器官分配相关接口新增记录状态、附件、扩展 器官获取相关接口新增附件、扩展 新开发去态查询API接口

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
index 04e952f..316c604 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
@@ -8,11 +8,13 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.project.domain.ServiceMedicalevaluationorgan;
 import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
 import com.ruoyi.project.domain.ServiceMedicalevaluation;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
 import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
+import com.ruoyi.project.domain.vo.ServiceMedicalevaluationVO;
 import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper;
 import com.ruoyi.project.mapper.ServiceMedicalevaluationMapper;
 import com.ruoyi.project.mapper.ServiceMedicalevaluationorganMapper;
@@ -60,7 +62,8 @@
         }
         if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessState())) {
             wrappers.eq(ServiceMedicalevaluation::getAssessState, serviceMedicalevaluation.getAssessState());
-        }  if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessTime())) {
+        }
+        if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessTime())) {
             wrappers.eq(ServiceMedicalevaluation::getAssessTime, serviceMedicalevaluation.getAssessTime());
         }
         if (StringUtils.isNotBlank(serviceMedicalevaluation.getDonorno())) {
@@ -70,6 +73,51 @@
             wrappers.eq(ServiceMedicalevaluation::getCaseNo, serviceMedicalevaluation.getCaseNo());
         }
         return this.list(wrappers);
+    }
+
+    @Override
+    public Boolean add(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
+        ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
+        boolean save = save(serviceMedicalevaluation);
+        if (save && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
+            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
+                serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
+                serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
+                serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
+            }
+        }
+        return save;
+    }
+
+    @Override
+    public Boolean edit(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
+        ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
+        boolean update = false;
+        if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
+            update = removeById(serviceMedicalevaluation);
+        } else {
+            update = updateById(serviceMedicalevaluation);
+        }
+        if (update && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
+            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
+                // 濡傛灉鐖惰妭鐐硅鍒犻櫎锛屽瓙鑺傜偣涔熻鍏ㄥ垹闄�
+                if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
+                    serviceMedicalevaluationorgan.setDelFlag(1);
+                }
+
+                if (serviceMedicalevaluationorgan.getDelFlag() != null && serviceMedicalevaluationorgan.getDelFlag() == 1) {
+                    serviceMedicalevaluationorganMapper.deleteById(serviceMedicalevaluationorgan.getId());
+                } else {
+                    serviceMedicalevaluationorganMapper.updateById(serviceMedicalevaluationorgan);
+                }
+                if (serviceMedicalevaluationorgan.getId() == null) {
+                    serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
+                    serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
+                    serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
+                }
+            }
+        }
+        return update;
     }
 
     @Override
@@ -102,8 +150,11 @@
                 ServiceMedicalevaluationorgan serviceMedicalevaluationorgan = new ServiceMedicalevaluationorgan();
                 serviceMedicalevaluationorgan.setInfoid(medicalevaluationBaseInfoDTO.getInfoid());
                 List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorgans = serviceMedicalevaluationorganMapper.selectServiceMedicalevaluationorganList(serviceMedicalevaluationorgan);
-                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans))
-                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorgans(serviceMedicalevaluationorgans);
+                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans)) {
+                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorganList(serviceMedicalevaluationorgans);
+                    String organdecision = serviceMedicalevaluationorgans.stream().map(ServiceMedicalevaluationorgan::getOrganno).filter(org.springframework.util.StringUtils::hasText).collect(java.util.stream.Collectors.joining(","));
+                    medicalevaluationBaseInfoDTO.setOrgandecision(organdecision);
+                }
             }
         }
         return medicalevaluationBaseInfoDTOS;

--
Gitblit v1.9.3