From 9ff5a9b1a3ce92b7bf4fcd3a8fdabbb1739cfe4b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 05 二月 2026 17:39:07 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml                       |    4 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonatecompletioninfoVO.java             |  136 ++++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java                |   15 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java    |   28 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml                     |   19 
 ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml                 |   24 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DeathBaseInfoDTO.java                         |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganBaseServiceImpl.java      |   40 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java             |   22 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonationwitnessVO.java                  |  299 +++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceRelativesconfirmationController.java |   11 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java                 |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationCompletionBaseInfoDTO.java            |   11 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml                        |  120 ++-
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml                  |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonateorganBaseVO.java                  |   94 +++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java      |   42 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java                 |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatefollowupController.java        |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonateorganBaseInfoDTO.java                   |   17 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java              |    9 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationwitnessBaseInfoDTO.java               |   14 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java                 |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java                  |    5 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java                     |    6 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java            |    6 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java |   10 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml                       |   13 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java  |   95 +-
 ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml                     |    9 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java       |  100 +--
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonatebaseinfoProgressDTO.java                |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java                       |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessorganServiceImpl.java |    3 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewinitiate.java                 |    1 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java                |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluationorgan.java                |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java         |    9 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java |   54 +
 ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml                        |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java                   |   34 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java          |  104 +++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatecompletioninfoDTO.java           |  136 ++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDeathinfoController.java             |   11 
 ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml                 |    6 
 ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml                |    3 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganBaseService.java              |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganBaseController.java       |   21 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationBaseInfoVO.java            |    7 
 /dev/null                                                                                              |  159 -----
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml                  |    1 
 ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml                             |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java        |    9 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java     |   28 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java                  |    3 
 55 files changed, 1,407 insertions(+), 420 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDeathinfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDeathinfoController.java
index beae740..98001db 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDeathinfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDeathinfoController.java
@@ -2,15 +2,18 @@
 
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.project.domain.ServiceDeathinfo;
+import com.ruoyi.project.domain.ServiceDonatebaseinfo;
 import com.ruoyi.project.domain.dto.DeathBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DeathBaseInfoVO;
 import com.ruoyi.project.service.IServiceDeathinfoService;
+import com.ruoyi.project.service.IServiceDonatebaseinfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -80,8 +83,12 @@
      * 鏂板鎮h�呮浜′俊鎭�
      */
     @ApiOperation("鏂板鎮h�呮浜′俊鎭�")
-    // @PreAuthorize("@ss.hasPermi('project:deathinfo:add')")
-    @Log(title = "鎮h�呮浜′俊鎭�", businessType = BusinessType.INSERT)
+    @UniqueCheck(
+            fields = {"infoid"},
+            entityClass = ServiceDeathinfo.class,
+            serviceClass = IServiceDeathinfoService.class,
+            message = "鏂板鎮h�呮浜′俊鎭殑infoid宸插瓨鍦�,鏃犳硶淇濆瓨!"
+    )
     @PostMapping("/add")
     @RepeatSubmit
     public AjaxResult add(@RequestBody ServiceDeathinfo serviceDeathinfo) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
index 4e88a49..e621012 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.controller.BaseController;
@@ -189,14 +190,6 @@
     public AjaxResult add(@RequestBody ServiceDonatebaseinfo serviceDonatebaseinfo) {
         log.info("鏂板娼滃湪鎹愮尞淇℃伅锛歿}", serviceDonatebaseinfo);
         SysUser user = SecurityUtils.getLoginUser().getUser();
-
-        String idcardno = serviceDonatebaseinfo.getIdcardno();
-        ServiceDonatebaseinfo serviceDonatebaseinfo2 = new ServiceDonatebaseinfo();
-        serviceDonatebaseinfo2.setIdcardno(idcardno);
-        List<ServiceDonatebaseinfo> listrecord2 = serviceDonatebaseinfoService.queryList(serviceDonatebaseinfo2);
-        if (listrecord2.size() > 0) {
-            return AjaxResult.error("鏂板鏃惰韩浠借瘉" + idcardno + "宸插瓨鍦�,鏃犳硶淇濆瓨!");
-        }
 
         //  serviceDonatebaseinfo.setDonorno(bh);
         serviceDonatebaseinfo.setDeptid(user.getDeptId());
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java
index 2d52701..4d5a70c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java
@@ -2,24 +2,25 @@
 
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.enums.OrganEnum;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
 import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.ServiceDonateorganBase;
 import com.ruoyi.project.domain.dto.DonationCompletionBaseInfoDTO;
-import com.ruoyi.project.domain.dto.DonationwitnessBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DonationCompletionBaseInfoVO;
 import com.ruoyi.project.domain.vo.DonationCompletionVO;
+import com.ruoyi.project.domain.vo.ServiceDonatecompletioninfoVO;
 import com.ruoyi.project.service.IServiceDonatecompletioninfoService;
 import com.ruoyi.project.service.IServiceDonatecomporganService;
+import com.ruoyi.project.service.IServiceDonateorganBaseService;
 import com.ruoyi.project.service.IServiceDonateorganService;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
@@ -80,7 +81,7 @@
         Integer totalCount = 0;
         List<DonationCompletionBaseInfoDTO> total = serviceDonatecompletioninfoService.getDonationCompletionBaseInfo(donationCompletionBaseInfoVO);
         if (!org.springframework.util.CollectionUtils.isEmpty(total)) totalCount = total.size();
-        return getDataTable(donationCompletionBaseInfoDTOList,totalCount);
+        return getDataTable(donationCompletionBaseInfoDTOList, totalCount);
     }
 
 
@@ -113,61 +114,39 @@
      * 鏂板鎹愮尞瀹屾垚
      */
     @ApiOperation("鏂板鎹愮尞瀹屾垚")
-    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:add')")
-    @Log(title = "鎹愮尞瀹屾垚", businessType = BusinessType.INSERT)
+    @UniqueCheck(fields = {"infoid"},
+            entityClass = ServiceDonatecompletioninfoVO.class,
+            serviceClass = IServiceDonatecompletioninfoService.class,
+            message = "鏂板鎹愮尞瀹屾垚鐨刬nfoid宸插瓨鍦�,鏃犳硶淇濆瓨!")
     @PostMapping("/add")
     @RepeatSubmit(interval = 5000)
-    public AjaxResult add(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
-        log.info("鏂板鎹愮尞瀹屾垚锛歿}", serviceDonatecompletioninfo);
-        serviceDonatecompletioninfoService.delDuplicateDonateCompletioninfo(serviceDonatecompletioninfo.getInfoid(), serviceDonatecompletioninfo.getCreateBy());
-        boolean save = serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo);
-        log.info("鏂板鎹愮尞瀹屾垚serviceDonatecompletioninfo鐨処D锛歿}", serviceDonatecompletioninfo.getId());
-        return AjaxResult.success(serviceDonatecompletioninfo);
+    public AjaxResult add(@RequestBody ServiceDonatecompletioninfoVO serviceDonatecompletioninfoVO) {
+        log.info("鏂板鎹愮尞瀹屾垚锛歿}", serviceDonatecompletioninfoVO);
+        boolean save = serviceDonatecompletioninfoService.add(serviceDonatecompletioninfoVO);
+        return AjaxResult.success(save);
     }
 
-//    /**
-//     * 鏂板鎹愮尞瀹屾垚璇︽儏
-//     */
-//    @ApiOperation("鏂板鎹愮尞瀹屾垚璇︽儏")
-//    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:add')")
-//    @Log(title = "鏂板鎹愮尞瀹屾垚璇︽儏", businessType = BusinessType.INSERT)
-//    @PostMapping
-//    @RepeatSubmit(interval = 5000)
-//    public AjaxResult addDetail(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
-//        log.info("鏂板鎹愮尞瀹屾垚锛歿}", serviceDonatecompletioninfo);
-//        serviceDonatecompletioninfoService.delDuplicateDonateCompletioninfo(serviceDonatecompletioninfo.getInfoid(), serviceDonatecompletioninfo.getCreateBy());
-//        //鏂板donatecomporgan鏁版嵁
-//        if (CollectionUtils.isNotEmpty(serviceDonatecompletioninfo.getServiceDonatecomporganList())) {
-//            for (ServiceDonatecomporgan serviceDonatecomporgan : serviceDonatecompletioninfo.getServiceDonatecomporganList()) {
-//                if (serviceDonatecomporgan.getInfoid() == null) {
-//                    throw new BaseException("璇锋鏌ユ崘鐚櫒瀹樼Щ妞嶄俊鎭紝鏄惁涓庢崘鐚熀纭�琛ㄨ繘琛屽叧鑱�");
-//                }
-//                serviceDonatecomporganService.save(serviceDonatecomporgan);
+//
+//    @RepeatSubmit
+//    @ApiOperation("鏂板鎴栦慨鏀规崘鐚畬鎴�")
+//    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:edit')")
+//    @Log(title = "鎹愮尞瀹屾垚", businessType = BusinessType.UPDATE)
+//    @PostMapping("/saveOrUpdateDonatecompletioninfo")
+//    public AjaxResult saveOrUpdateDonatecompletioninfo(@RequestBody List<ServiceDonatecompletioninfo> serviceDonatecompletioninfoList) {
+//        if (CollectionUtils.isEmpty(serviceDonatecompletioninfoList)) {
+//            throw new BaseException("璇锋鏌ラ渶瑕佹柊澧炴垨淇敼鐨勬崘鐚畬鎴愬弬鏁版槸鍚﹀畬鏁�");
+//        }
+//        Boolean i = null;
+//        for (ServiceDonatecompletioninfo serviceDonatecompletioninfo : serviceDonatecompletioninfoList) {
+//            log.info("鎹愮尞瀹屾垚id鏄惁涓虹┖ : {},鍩虹琛ㄧ殑id涓� : {}", serviceDonatecompletioninfo.getId(), serviceDonatecompletioninfo.getInfoid());
+//            if (serviceDonatecompletioninfo.getId() == null) {
+//                i = serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo);
+//            } else {
+//                i = serviceDonatecompletioninfoService.updateById(serviceDonatecompletioninfo);
 //            }
 //        }
-//        return toAjax(serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo));
+//        return toAjax(i);
 //    }
-
-    @RepeatSubmit
-    @ApiOperation("鏂板鎴栦慨鏀规崘鐚畬鎴�")
-    //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:edit')")
-    @Log(title = "鎹愮尞瀹屾垚", businessType = BusinessType.UPDATE)
-    @PostMapping("/saveOrUpdateDonatecompletioninfo")
-    public AjaxResult saveOrUpdateDonatecompletioninfo(@RequestBody List<ServiceDonatecompletioninfo> serviceDonatecompletioninfoList) {
-        if (CollectionUtils.isEmpty(serviceDonatecompletioninfoList)) {
-            throw new BaseException("璇锋鏌ラ渶瑕佹柊澧炴垨淇敼鐨勬崘鐚畬鎴愬弬鏁版槸鍚﹀畬鏁�");
-        }
-        Boolean i = null;
-        for (ServiceDonatecompletioninfo serviceDonatecompletioninfo : serviceDonatecompletioninfoList) {
-            log.info("鎹愮尞瀹屾垚id鏄惁涓虹┖ : {},鍩虹琛ㄧ殑id涓� : {}", serviceDonatecompletioninfo.getId(), serviceDonatecompletioninfo.getInfoid());
-            if (serviceDonatecompletioninfo.getId() == null) {
-                i = serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo);
-            } else {
-                i = serviceDonatecompletioninfoService.updateById(serviceDonatecompletioninfo);
-            }
-        }
-        return toAjax(i);
-    }
 
     /**
      * 淇敼鎹愮尞瀹屾垚
@@ -177,15 +156,9 @@
     //// @PreAuthorize("@ss.hasPermi('project:donatecompletioninfo:edit')")
     @Log(title = "鎹愮尞瀹屾垚", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@RequestBody ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
-        ServiceDonatecompletioninfo serviceDonatecompletioninfo1 = new ServiceDonatecompletioninfo();
-        serviceDonatecompletioninfo1.setInfoid(serviceDonatecompletioninfo.getInfoid());
-        List<ServiceDonatecompletioninfo> list = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo1);
-        if (CollectionUtils.isEmpty(list)) {
-            return error("妗堜緥ID锛屽搴旂殑瀹屾垚鐧昏淇℃伅涓虹┖");
-        }
-        serviceDonatecompletioninfo.setId(list.get(0).getId());
-        return toAjax(serviceDonatecompletioninfoService.updateById(serviceDonatecompletioninfo));
+    public AjaxResult edit(@RequestBody ServiceDonatecompletioninfoVO serviceDonatecompletioninfoVO) {
+        boolean edit = serviceDonatecompletioninfoService.edit(serviceDonatecompletioninfoVO);
+        return toAjax(edit);
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatefollowupController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatefollowupController.java
index ec0ba95..fc8cd84 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatefollowupController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatefollowupController.java
@@ -2,12 +2,16 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DonateFollowupVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -44,20 +48,17 @@
      */
     @ApiOperation("鏌ヨ鎹愮尞闅忚鍒楄〃")
     //// @PreAuthorize("@ss.hasPermi('project:donatefollowup:list')")
-    @GetMapping("/list")
-    public TableDataInfo list(ServiceDonatefollowup serviceDonatefollowup) {
-        startPage();
-        //List<ServiceDonatefollowup> list = serviceDonatefollowupService.queryList(serviceDonatefollowup);
+    @PostMapping("/list")
+    public Map<String, Object> list(@RequestBody ServiceDonatefollowup serviceDonatefollowup) {
+        Integer offset = PageUtils.getOffset(serviceDonatefollowup.getPageNum(), serviceDonatefollowup.getPageSize());
+        serviceDonatefollowup.setPageNum(offset);
         List<ServiceDonatefollowup> list = serviceDonatefollowupService.selectAll(serviceDonatefollowup);
-        return getDataTable(list);
-    }
 
-    @GetMapping("/listnew")
-    public TableDataInfo listnew(DonateFollowupVO donateFollowupVO) {
-        startPage();
-        List<DonateFollowupVO> list = serviceDonatefollowupService.selectVOList(donateFollowupVO);
-        return getDataTable(list);
-
+        //鑾峰彇鎬绘暟
+        serviceDonatefollowup.setPageNum(null);
+        serviceDonatefollowup.setPageSize(null);
+        List<ServiceDonatefollowup> count = serviceDonatefollowupService.selectAll(serviceDonatefollowup);
+        return getDataTable(list, CollectionUtils.isEmpty(count) ? 0 : count.size());
     }
 
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganBaseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganBaseController.java
index 9f07d34..af1af65 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganBaseController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganBaseController.java
@@ -3,12 +3,14 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.project.domain.ServiceDonateorganBase;
+import com.ruoyi.project.domain.vo.ServiceDonateorganBaseVO;
 import com.ruoyi.project.domain.dto.DonateorganBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DonateorganBaseInfoVO;
 import com.ruoyi.project.service.IServiceDonateorganBaseService;
@@ -50,7 +52,7 @@
     /**
      * 鏌ヨ鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹鍒楄〃
      */
-    @ApiOperation("鏌ヨ鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹鍒楄〃")
+    @ApiOperation("鏌ヨ鍣ㄥ畼鍒嗛厤鍩虹鍒楄〃")
     @PostMapping("/list")
     public Map<String, Object> list(@RequestBody ServiceDonateorganBase serviceDonateorganBase) {
         Page<ServiceDonateorganBase> list = serviceDonateorganBaseService.queryList(serviceDonateorganBase);
@@ -98,16 +100,21 @@
         return AjaxResult.success(serviceDonateorganBaseService.getById(id));
     }
 
+
     /**
      * 鏂板鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹
      */
     @ApiOperation("鏂板鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹")
-    // @PreAuthorize("@ss.hasPermi('project:base:add')")
-    @Log(title = "鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹", businessType = BusinessType.INSERT)
+    @UniqueCheck(
+            fields = {"infoid"},
+            entityClass = ServiceDonateorganBaseVO.class,
+            serviceClass = IServiceDonateorganBaseService.class,
+            message = "鏂板浼︾悊瀹℃煡鐨刬nfoid宸插瓨鍦�,鏃犳硶淇濆瓨!"
+    )
     @PostMapping("/add")
     @RepeatSubmit
-    public AjaxResult add(@RequestBody ServiceDonateorganBase serviceDonateorganBase) {
-        return toAjax(serviceDonateorganBaseService.save(serviceDonateorganBase));
+    public AjaxResult add(@RequestBody ServiceDonateorganBaseVO serviceDonateorganBaseVO) {
+        return toAjax(serviceDonateorganBaseService.add(serviceDonateorganBaseVO));
     }
 
     /**
@@ -118,8 +125,8 @@
     @Log(title = "鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     @RepeatSubmit
-    public AjaxResult edit(@RequestBody ServiceDonateorganBase serviceDonateorganBase) {
-        return toAjax(serviceDonateorganBaseService.updateById(serviceDonateorganBase));
+    public AjaxResult edit(@RequestBody ServiceDonateorganBaseVO serviceDonateorganBaseVO) {
+        return toAjax(serviceDonateorganBaseService.updateByParam(serviceDonateorganBaseVO));
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java
index 599b159..0159101 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java
@@ -4,19 +4,18 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.enums.OrganEnum;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.vo.ServiceDonationwitnessVO;
 import com.ruoyi.project.domain.vo.DonationwitnessBaseInfoVO;
 import com.ruoyi.project.domain.ServiceDonateorgan;
 import com.ruoyi.project.domain.dto.DonationwitnessBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DonationWitnessVO;
 import com.ruoyi.project.domain.vo.TimeVO;
-import com.ruoyi.project.service.IBaseOnlyvalueService;
-import com.ruoyi.project.service.IServiceDonatebaseinfoService;
-import com.ruoyi.project.service.IServiceDonateorganService;
+import com.ruoyi.project.service.*;
 import com.ruoyi.web.controller.common.OnlyValueCommon;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
@@ -38,7 +37,6 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.project.domain.ServiceDonationwitness;
-import com.ruoyi.project.service.IServiceDonationwitnessService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 
 /**
@@ -48,7 +46,7 @@
  * @date 2021-11-17
  */
 @Slf4j
-@Api(description = "鎹愮尞瑙佽瘉绠$悊锛堟浜″垽瀹氾級")
+@Api(description = "鎹愮尞瑙佽瘉绠$悊")
 @RestController
 @RequestMapping("/project/donationwitness")
 public class ServiceDonationwitnessController extends BaseController {
@@ -75,39 +73,21 @@
         configuration.setDefaultEncoding("utf-8");
     }
 
-//    /**
-//     * 鏌ヨ鎹愮尞瑙佽瘉鍒楄〃
-//     */
-//    @ApiOperation("鑾峰彇鎹愮尞瑙佽瘉鍒楄〃")
-//    //// @PreAuthorize("@ss.hasPermi('project:donationwitness:list')")
-//    @GetMapping("/list")
-//    public TableDataInfo list(ServiceDonationwitness serviceDonationwitness) {
-//        startPage();
-//        List<ServiceDonationwitness> list = serviceDonationwitnessService.queryList(serviceDonationwitness);
-//        return getDataTable(list);
-//    }
-//
-//    @ApiOperation("鑾峰彇鎹愮尞瑙佽瘉鍒楄〃-鏂�")
-//    @GetMapping("/listnew")
-//    public TableDataInfo listnew(DonationWitnessVO donationWitnessVO) {
-//        startPage();
-//        List<DonationWitnessVO> list = serviceDonationwitnessService.selectVOList(donationWitnessVO);
-//        return getDataTable(list);
-//    }
-@ApiOperation("鑾峰彇鎹愮尞瑙佽瘉鍩烘湰淇℃伅(鍣ㄥ畼鑾峰彇)")
-@PostMapping("/getDonationwitnessBaseInfo")
-public Map<String,Object> getDonationwitnessBaseInfo(@RequestBody DonationwitnessBaseInfoVO donationwitnessBaseInfoVO) {
-    Integer offset = PageUtils.getOffset(donationwitnessBaseInfoVO.getPageNum(), donationwitnessBaseInfoVO.getPageSize());
-    donationwitnessBaseInfoVO.setPageNum(offset);
-    List<DonationwitnessBaseInfoDTO> donationwitnessBaseInfo = serviceDonationwitnessService.getDonationwitnessBaseInfo(donationwitnessBaseInfoVO);
 
-    donationwitnessBaseInfoVO.setPageNum(null);
-    donationwitnessBaseInfoVO.setPageSize(null);
-    Integer totalCount = 0;
-    List<DonationwitnessBaseInfoDTO> total = serviceDonationwitnessService.getDonationwitnessBaseInfo(donationwitnessBaseInfoVO);
-    if (!CollectionUtils.isEmpty(total)) totalCount = total.size();
-    return getDataTable(donationwitnessBaseInfo, totalCount);
-}
+    @ApiOperation("鑾峰彇鎹愮尞瑙佽瘉鍩烘湰淇℃伅(鍣ㄥ畼鑾峰彇)")
+    @PostMapping("/getDonationwitnessBaseInfo")
+    public Map<String, Object> getDonationwitnessBaseInfo(@RequestBody DonationwitnessBaseInfoVO donationwitnessBaseInfoVO) {
+        Integer offset = PageUtils.getOffset(donationwitnessBaseInfoVO.getPageNum(), donationwitnessBaseInfoVO.getPageSize());
+        donationwitnessBaseInfoVO.setPageNum(offset);
+        List<DonationwitnessBaseInfoDTO> donationwitnessBaseInfo = serviceDonationwitnessService.getDonationwitnessBaseInfo(donationwitnessBaseInfoVO);
+
+        donationwitnessBaseInfoVO.setPageNum(null);
+        donationwitnessBaseInfoVO.setPageSize(null);
+        Integer totalCount = 0;
+        List<DonationwitnessBaseInfoDTO> total = serviceDonationwitnessService.getDonationwitnessBaseInfo(donationwitnessBaseInfoVO);
+        if (!CollectionUtils.isEmpty(total)) totalCount = total.size();
+        return getDataTable(donationwitnessBaseInfo, totalCount);
+    }
 
 
     /**
@@ -128,7 +108,7 @@
      */
     @ApiOperation("閫氳繃id鑾峰彇瑙佽瘉淇℃伅")
     //// @PreAuthorize("@ss.hasPermi('project:donationwitness:query')")
-    @GetMapping(value = "/{id}")
+    @GetMapping(value = "/getInfo/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
         return AjaxResult.success(serviceDonationwitnessService.getById(id));
     }
@@ -137,23 +117,18 @@
      * 鏂板鎹愮尞瑙佽瘉
      */
     @ApiOperation("鏂板鎹愮尞瑙佽瘉")
-    //// @PreAuthorize("@ss.hasPermi('project:donationwitness:add')")
-    @Log(title = "鎹愮尞瑙佽瘉", businessType = BusinessType.INSERT)
+    @UniqueCheck(
+            fields = {"infoid"},
+            entityClass = ServiceDonationwitnessVO.class,
+            serviceClass = IServiceDonationwitnessService.class,
+            message = "鏂板鎹愮尞瑙佽瘉鐨刬nfoid宸插瓨鍦�,鏃犳硶淇濆瓨!"
+    )
     @PostMapping("/add")
     @RepeatSubmit
-    public AjaxResult add(@RequestBody ServiceDonationwitness serviceDonationwitness) {
-        boolean save = serviceDonationwitnessService.save(serviceDonationwitness);
-        log.info("鏂板鎹愮尞瑙佽瘉鏄惁鎴愬姛锛歿},id涓猴細{},infoId涓猴細{}", save, serviceDonationwitness.getId(), serviceDonationwitness.getInfoid());
-//        if (save) {
-//            //鐢熸垚鈥滄崘鐚�呯紪鍙封��
-//            ServiceDonatebaseinfo serviceDonatebaseinfo = serviceDonatebaseinfoService.getById(serviceDonationwitness.getInfoid());
-//            log.info("serviceDonatebaseinfo鐨勪俊鎭负{}", serviceDonatebaseinfo);
-//            String donorno = serviceDonatebaseinfoService.getDonateNumber(serviceDonatebaseinfo);
-//            log.info("鐢熸垚鐨勬崘鐚�呯紪鍙蜂负:{}", donorno);
-//            serviceDonatebaseinfo.setDonorno(donorno);
-//            serviceDonatebaseinfoService.updateById(serviceDonatebaseinfo);
-//        }
-        return AjaxResult.success(serviceDonationwitness);
+    public AjaxResult add(@RequestBody ServiceDonationwitnessVO serviceDonationwitnessVO) {
+        boolean save = serviceDonationwitnessService.add(serviceDonationwitnessVO);
+        log.info("鏂板鎹愮尞瑙佽瘉鏄惁鎴愬姛锛歿},id涓猴細{},infoId涓猴細{}", save, serviceDonationwitnessVO.getId(), serviceDonationwitnessVO.getInfoid());
+        return AjaxResult.success(save);
     }
 
     /**
@@ -164,19 +139,10 @@
     @Log(title = "鎹愮尞瑙佽瘉", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     @RepeatSubmit
-    public AjaxResult edit(@RequestBody ServiceDonationwitness serviceDonationwitness) {
-        log.info("鏂板鎹愮尞瑙佽瘉id涓猴細{},infoId涓猴細{}", serviceDonationwitness.getId(), serviceDonationwitness.getInfoid());
-
-        int last = -1;
-        if (StringUtils.isNotEmpty(serviceDonationwitness.getDonorno())) {
-            last = serviceDonationwitness.getDonorno().lastIndexOf("*");
-        }
-        //鎹愮尞鑰呯紪鍙锋渶鍚庝竴浣嶆槸 * ,鎵嶅彲浠ュ線鍞竴閲岃〃鍔犳暟鎹�
-        if (last == serviceDonationwitness.getDonorno().length()) {
-            onlyValueCommon.addOnlyValue("donationwitness");
-        }
-
-        return toAjax(serviceDonationwitnessService.updateById(serviceDonationwitness));
+    public AjaxResult edit(@RequestBody ServiceDonationwitnessVO serviceDonationwitnessVO) {
+        log.info("鏂板鎹愮尞瑙佽瘉id涓猴細{},infoId涓猴細{}", serviceDonationwitnessVO.getId(), serviceDonationwitnessVO.getInfoid());
+        Boolean edit = serviceDonationwitnessService.edit(serviceDonationwitnessVO);
+        return toAjax(edit);
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java
index 0b804b0..8c38ab9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java
@@ -2,13 +2,13 @@
 
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.project.domain.dto.ReviewInitiateBaseInfoDTO;
-import com.ruoyi.project.domain.dto.WitnessBaseInfoDTO;
 import com.ruoyi.project.domain.vo.ReviewInitiateBaseInfoVO;
 import com.ruoyi.project.domain.ServiceEthicalreviewinitiate;
 import com.ruoyi.project.service.IServiceEthicalreviewinitiateService;
@@ -92,8 +92,12 @@
      * 鏂板浼︾悊瀹℃煡鍙戣捣
      */
     @ApiOperation("鏂板浼︾悊瀹℃煡鍙戣捣")
-    // @PreAuthorize("@ss.hasPermi('system:ethicalreviewinitiate:add')")
-    @Log(title = "浼︾悊瀹℃煡鍙戣捣", businessType = BusinessType.INSERT)
+    @UniqueCheck(
+            fields = {"infoid"},
+            entityClass = ServiceEthicalreviewinitiate.class,
+            serviceClass = IServiceEthicalreviewinitiateService.class,
+            message = "鏂板浼︾悊瀹℃煡鐨刬nfoid宸插瓨鍦�,鏃犳硶淇濆瓨!"
+    )
     @PostMapping("/add")
     @RepeatSubmit
     public AjaxResult add(@RequestBody ServiceEthicalreviewinitiate serviceEthicalreviewinitiate) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
index d637272..e96723c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.web.controller.project;
 
 import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -10,6 +11,7 @@
 import com.ruoyi.project.domain.ServiceMedicalevaluation;
 import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
 import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
+import com.ruoyi.project.domain.vo.ServiceMedicalevaluationVO;
 import com.ruoyi.project.service.IServiceDonationwitnessService;
 import com.ruoyi.project.service.IServiceMedicalevaluationService;
 import io.swagger.annotations.Api;
@@ -100,13 +102,18 @@
      * 鏂板鍖诲璇勪及
      */
     @ApiOperation("鏂板鍖诲璇勪及")
-    //// @PreAuthorize("@ss.hasPermi('project:medicalevaluation:add')")
-    @Log(title = "鍖诲璇勪及", businessType = BusinessType.INSERT)
+    @UniqueCheck(
+            fields = {"infoid"},
+            entityClass = ServiceMedicalevaluation.class,
+            serviceClass = IServiceMedicalevaluationService.class,
+            message = "鏂板鍖诲璇勪及鐨刬nfoid宸插瓨鍦�,鏃犳硶淇濆瓨!"
+    )
     @PostMapping("/add")
 //    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
-    public AjaxResult add(@RequestBody ServiceMedicalevaluation serviceMedicalevaluation) {
-        boolean save = serviceMedicalevaluationService.save(serviceMedicalevaluation);
-        return AjaxResult.success(serviceMedicalevaluation);
+    public AjaxResult add(@RequestBody ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
+        log.info("鏂板鍖诲璇勪及鐨刬nfoid涓猴細{}",serviceMedicalevaluationVO.getInfoid());
+        boolean save = serviceMedicalevaluationService.add(serviceMedicalevaluationVO);
+        return AjaxResult.success(save);
     }
 
     /**
@@ -117,13 +124,10 @@
     @Log(title = "鍖诲璇勪及", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
 //    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
-    public AjaxResult edit(@RequestBody ServiceMedicalevaluation serviceMedicalevaluation) {
-        List<ServiceMedicalevaluation> list = serviceMedicalevaluationService.queryList(serviceMedicalevaluation);
-        if (CollectionUtils.isEmpty(list)) {
-            return error("鍖诲璇勪及鏁版嵁涓嶅瓨鍦�,璇锋鏌ュ悗鍐嶆淇敼");
-        }
-        serviceMedicalevaluation.setId(list.get(0).getId());
-        return toAjax(serviceMedicalevaluationService.updateById(serviceMedicalevaluation));
+    public AjaxResult edit(@RequestBody ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
+        log.info("淇敼鍖诲璇勪及鐨勪富閿负锛歿}",serviceMedicalevaluationVO.getId());
+        Boolean edit = serviceMedicalevaluationService.edit(serviceMedicalevaluationVO);
+        return toAjax(edit);
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceRelativesconfirmationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceRelativesconfirmationController.java
index a2a4ae2..3842ba5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceRelativesconfirmationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceRelativesconfirmationController.java
@@ -2,6 +2,7 @@
 
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.UniqueCheck;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.controller.BaseController;
@@ -13,12 +14,14 @@
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.project.domain.ServiceMedicalevaluation;
 import com.ruoyi.project.domain.ServiceRelativesconfirmation;
 import com.ruoyi.project.domain.dto.RelativeConfirmationBaseInfoDTO;
 import com.ruoyi.project.domain.vo.RelativeConfirmationBaseInfoVO;
 import com.ruoyi.project.domain.vo.RelativeConfirmationVO;
 import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper;
 import com.ruoyi.project.mapper.ServiceRelativesconfirmationMapper;
+import com.ruoyi.project.service.IServiceMedicalevaluationService;
 import com.ruoyi.project.service.IServiceRelativesconfirmationService;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
@@ -125,8 +128,12 @@
      * 鏂板鎹愮尞浜插睘纭
      */
     @ApiOperation("鏂板浜插睘纭")
-    //// @PreAuthorize("@ss.hasPermi('project:relativesconfirmation:add')")
-    @Log(title = "鎹愮尞浜插睘纭", businessType = BusinessType.INSERT)
+    @UniqueCheck(
+            fields = {"infoid"},
+            entityClass = ServiceRelativesconfirmation.class,
+            serviceClass = IServiceRelativesconfirmationService.class,
+            message = "浜插睘纭鏂板鐨刬nfoid宸插瓨鍦�,鏃犳硶淇濆瓨!"
+    )
     @PostMapping("/add")
     @RepeatSubmit
     public AjaxResult add(@RequestBody ServiceRelativesconfirmation serviceRelativesconfirmation) {
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java
index b08632f..2aebf24 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java
@@ -128,9 +128,6 @@
     @Excel(name = "鎹愮尞鍣ㄥ畼")
     private String donateorgan;
 
-    @TableField(exist = false)
-    @ApiModelProperty("鎹愮尞鍣ㄥ畼绉绘琛�")
-    private List<ServiceDonatecomporgan> serviceDonatecomporganList;
 
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
index fb4b8e9..b6b8367 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
@@ -38,6 +38,13 @@
     private Long infoid;
 
     /**
+     * 鍏宠仈service_donatecompletioninfo琛ㄧ殑ID
+     */
+    @ApiModelProperty("鍏宠仈service_donatecompletioninfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatecompletioninfo琛ㄧ殑ID")
+    private Long donatecompletioninfoId;
+
+    /**
      * 鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ
      */
     @ApiModelProperty("鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
index 07a6f8d..2f4766f 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
@@ -33,6 +33,11 @@
     @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
     private Long infoid;
 
+    /** 鍏宠仈鍏宠仈service_donatebaseinfo琛ㄧ殑ID */
+    @ApiModelProperty("鍏宠仈鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long donationwitnessId;
+
     /** 鎹愮尞鑰呯紪鍙� */
     @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
     @Excel(name = "鎹愮尞鑰呯紪鍙�")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewinitiate.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewinitiate.java
index 3d6208b..85f6237 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewinitiate.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceEthicalreviewinitiate.java
@@ -114,6 +114,7 @@
      */
     @ApiModelProperty("涓撳缁撹鏃堕棿")
     @Excel(name = "涓撳缁撹鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date expertTime;
 
     /**
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluationorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluationorgan.java
index 899f84b..96f74dc 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluationorgan.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluationorgan.java
@@ -38,6 +38,13 @@
     private Long infoid;
 
     /**
+     * 鍏宠仈service_medicalevaluation琛ㄧ殑ID
+     */
+    @ApiModelProperty("鍏宠仈service_medicalevaluation琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_medicalevaluation琛ㄧ殑ID")
+    private Long medicalId;
+
+    /**
      * 鎹愮尞鑰呯紪鍙�
      */
     @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java
index 79760af..74370cb 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceRelativesconfirmation.java
@@ -256,7 +256,7 @@
      */
     @ApiModelProperty("绛剧讲鏃ユ湡")
 //    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "绛剧讲鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "绛剧讲鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
     private Date signdate;
 
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DeathBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DeathBaseInfoDTO.java
index c8edb48..996125f 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DeathBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DeathBaseInfoDTO.java
@@ -190,5 +190,12 @@
     @Excel(name = "璐熻矗浜哄鍚�")
     private String responsibleusername;
 
+    /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonatebaseinfoProgressDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonatebaseinfoProgressDTO.java
index 4633e8c..d07e725 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonatebaseinfoProgressDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonatebaseinfoProgressDTO.java
@@ -220,7 +220,7 @@
 
     @ApiModelProperty("缁堟妗堜緥鍘熷洜")
     @Excel(name = "缁堟妗堜緥")
-    private Integer terminationResult;
+    private String terminationResult;
 
 
     @ApiModelProperty("缁堟鍘熷洜锛�1濂借浆   2姝讳骸   3涓嶇鍚堟崘鐚爣鍑�  4瀹跺睘鏀惧純鎹愮尞  5鍏跺畠")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonateorganBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonateorganBaseInfoDTO.java
index 2d5db9a..aed3895 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonateorganBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonateorganBaseInfoDTO.java
@@ -29,12 +29,27 @@
     private Long infoid;
 
     /**
+     * 浣忛櫌鍙�
+     */
+    @ApiModelProperty("浣忛櫌鍙�")
+    private String inpatientno;
+
+    /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
      * baseInfo鐨処D
      */
     @ApiModelProperty("baseInfo鐨処D")
     private Long id;
 
-    /** 鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory */
+    /**
+     * 鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory
+     */
     @ApiModelProperty("鎹愮尞绫诲埆")
     @Excel(name = "鎹愮尞绫诲埆")
     private String donationcategory;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationCompletionBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationCompletionBaseInfoDTO.java
index 9e587cb..990b836 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationCompletionBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationCompletionBaseInfoDTO.java
@@ -27,13 +27,22 @@
     private Long id;
 
     /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
      * 璁板綍鐘舵��
      */
     @ApiModelProperty("璁板綍鐘舵��")
     @Excel(name = "璁板綍鐘舵��")
     private String recordstate;
 
-    /** 鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory */
+    /**
+     * 鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory
+     */
     @ApiModelProperty("鎹愮尞绫诲埆")
     @Excel(name = "鎹愮尞绫诲埆")
     private String donationcategory;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationwitnessBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationwitnessBaseInfoDTO.java
index be21003..f76c7a4 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationwitnessBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/DonationwitnessBaseInfoDTO.java
@@ -43,6 +43,20 @@
     private String name;
 
     /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
+     * 浣忛櫌鍙�
+     */
+    @ApiModelProperty("浣忛櫌鍙�")
+    private String inpatientno;
+
+
+    /**
      * 璁板綍鐘舵��
      */
     @ApiModelProperty("璁板綍鐘舵��")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java
index a813069..bd16614 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java
@@ -27,6 +27,12 @@
     @Excel(name = "璁板綍鐘舵��")
     private String recordstate;
 
+    /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
 
     /**
      * 妗堜緥缂栧彿
@@ -36,6 +42,34 @@
     private String caseNo;
 
     /**
+     * 鎶ュ憡鏃堕棿
+     */
+    @ApiModelProperty("鎶ュ憡鏃堕棿")
+    @Excel(name = "鎶ュ憡鏃堕棿")
+    private Date reportTime;
+
+    /**
+     * 姝讳骸鏃堕棿
+     */
+    @ApiModelProperty("姝讳骸鏃堕棿")
+    @Excel(name = "姝讳骸鏃堕棿")
+    private Date deathTime;
+
+    /**
+     * Rh闃存�� 0锛氬惁锛�1锛氭槸
+     */
+    @ApiModelProperty("Rh闃存�� 0锛氬惁锛�1锛氭槸")
+    @Excel(name = "Rh闃存�� 0锛氬惁锛�1锛氭槸")
+    private String rhYin;
+
+    /**
+     * 鐥呮儏姒傚喌
+     */
+    @ApiModelProperty("鐥呮儏姒傚喌")
+    @Excel(name = "鐥呮儏姒傚喌")
+    private String illnessOverview;
+
+    /**
      * 鎹愮尞鑰呯紪鍙�
      */
     @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java
index bb00dfa..9122447 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java
@@ -27,7 +27,9 @@
     @ApiModelProperty("鍖诲璇勪及鐨刬d")
     private Long id;
 
-    /** 鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory */
+    /**
+     * 鎹愮尞绫诲埆 鏍规嵁瀛楀吀sys_DonationCategory
+     */
     @ApiModelProperty("鎹愮尞绫诲埆")
     @Excel(name = "鎹愮尞绫诲埆")
     private String donationcategory;
@@ -38,6 +40,18 @@
     @ApiModelProperty("baseInfo鐨刬d")
     private Long infoid;
 
+    /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
+     * 浣忛櫌鍙�
+     */
+    @ApiModelProperty("浣忛櫌鍙�")
+    private String inpatientno;
 
     /**
      * 璁板綍鐘舵��
@@ -75,6 +89,12 @@
     private String treatmenthospitalno;
 
     /**
+     * 鎹愮尞鑰呭鍚�
+     */
+    @ApiModelProperty("鎹愮尞鑰呭鍚�")
+    private String name;
+
+    /**
      * 鎬у埆
      */
     @ApiModelProperty("鎬у埆")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java
index 134fe1e..630f23f 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java
@@ -22,6 +22,13 @@
     @ApiModelProperty("baseInfo鐨処D")
     private Long infoid;
 
+    /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
 
     /**
      * 鍣ㄥ畼鎹愮尞纭鐨処D
@@ -29,6 +36,11 @@
     @ApiModelProperty("鍣ㄥ畼鎹愮尞纭鐨処D")
     private Long id;
 
+    /**
+     * 浣忛櫌鍙�
+     */
+    @ApiModelProperty("浣忛櫌鍙�")
+    private String inpatientno;
 
     /**
      * 璁板綍鐘舵��
@@ -77,6 +89,77 @@
     @ApiModelProperty("濮撳悕")
     @Excel(name = "濮撳悕")
     private String name;
+
+    /**
+     * 浜插睘濮撳悕
+     */
+    @ApiModelProperty("浜插睘濮撳悕")
+    @Excel(name = "浜插睘濮撳悕")
+    private String relativesName;
+
+    /**
+     * 涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation
+     */
+    @ApiModelProperty("涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
+    @Excel(name = "涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
+    private String familyRelations;
+
+    /**
+     * 浜插睘璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType
+     */
+    @ApiModelProperty("浜插睘璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    @Excel(name = "浜插睘璇佷欢绫诲瀷 鏍规嵁瀛楀吀sys_IDType")
+    private int idCardType;
+
+    /**
+     * 浜插睘璇佷欢鍙风爜
+     */
+    @ApiModelProperty("浜插睘璇佷欢鍙风爜")
+    @Excel(name = "浜插睘璇佷欢鍙风爜")
+    private int idCardNo;
+
+
+    /**
+     * 浜插睘璇佷欢鍙风爜
+     */
+    @ApiModelProperty("浜插睘鑱旂郴鐢佃瘽")
+    @Excel(name = "浜插睘鑱旂郴鐢佃瘽")
+    private String phone;
+
+    /**
+     * 瀛愬コ鏁伴噺
+     */
+    @ApiModelProperty("瀛愬コ鏁伴噺")
+    @Excel(name = "瀛愬コ鏁伴噺")
+    private String kinshipChildrenNum;
+
+    /**
+     * 浜插睘鍏崇郴纭绛惧瓧
+     */
+    @ApiModelProperty("浜插睘鍏崇郴纭绛惧瓧")
+    @Excel(name = "浜插睘鍏崇郴纭绛惧瓧")
+    private String kinshipConfirmationSign;
+
+    /**
+     * 涓庢崘璧犺�呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation
+     */
+    @ApiModelProperty("绛惧瓧浜轰笌鎹愯禒鑰呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
+    @Excel(name = "绛惧瓧浜轰笌鎹愯禒鑰呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
+    private String signFamilyRelations;
+
+    /**
+     * 鎹愮尞鍐冲畾 瑙佸瓧鍏竤ys_OrganDecision
+     */
+    @ApiModelProperty("鎹愮尞鍐冲畾 瑙佸瓧鍏竤ys_OrganDecision")
+    @Excel(name = "鎹愮尞鍐冲畾 瑙佸瓧鍏竤ys_OrganDecision")
+    private String organDecision;
+
+    /**
+     * 鎹愮尞鍐冲畾 鍏朵粬
+     */
+    @ApiModelProperty("鎹愮尞鍐冲畾 鍏朵粬")
+    @Excel(name = "鎹愮尞鍐冲畾 鍏朵粬")
+    private String organDecisionOther;
 
     /**
      * 骞撮緞
@@ -174,10 +257,27 @@
     private String assessannex;
 
     /**
+     * 姘戞棌
+     */
+    @ApiModelProperty("姘戞棌")
+    private String nation;
+
+    /**
+     * 瀛﹀巻
+     */
+    @ApiModelProperty("瀛﹀巻")
+    private String education;
+
+    /**
+     * 鑱屼笟
+     */
+    @ApiModelProperty("鑱屼笟")
+    private String occupation;
+
+
+    /**
      * 瀹跺睘鎰忚澶囨敞
      */
     @ApiModelProperty("瀹跺睘鎰忚澶囨敞")
     private String relativeRemark;
-
-
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java
index e7b71a1..7b7ca1c 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java
@@ -37,6 +37,13 @@
 
 
     /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
      * 璁板綍鐘舵��
      */
     @ApiModelProperty("璁板綍鐘舵��")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java
index 98cac7e..9a00d24 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java
@@ -35,6 +35,13 @@
     private Long id;
 
     /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
      * 妗堜緥缂栧彿
      */
     @ApiModelProperty("妗堜緥缂栧彿")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatecompletioninfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatecompletioninfoDTO.java
new file mode 100644
index 0000000..dfb1d4c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatecompletioninfoDTO.java
@@ -0,0 +1,136 @@
+package com.ruoyi.project.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鎹愮尞瀹屾垚瀵硅薄 service_donatecompletioninfo
+ *
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+@Data
+@ApiModel("鎹愮尞瀹屾垚")
+public class ServiceDonatecompletioninfoDTO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     *
+     */
+    @ApiModelProperty("")
+    private Long infoid;
+
+    /**
+     * 鎹愮尞鑰呯紪鍙�
+     */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /**
+     * 鏄惁閬椾綋鎹愮尞
+     */
+    @ApiModelProperty("鏄惁閬椾綋鎹愮尞")
+    @Excel(name = "鏄惁閬椾綋鎹愮尞")
+    private String isbodydonation;
+
+
+    /**
+     * 鎺ユ敹鍗曚綅鍚嶇О
+     */
+    @ApiModelProperty("鎺ユ敹鍗曚綅鍚嶇О")
+    @Excel(name = "鎺ユ敹鍗曚綅鍚嶇О")
+    private String receivingunitname;
+
+    /**
+     * 鎺ユ敹鍗曚綅
+     */
+    @ApiModelProperty("鎺ユ敹鍗曚綅")
+    @Excel(name = "鎺ユ敹鍗曚綅")
+    private String receivingunit;
+
+    /**
+     * 瀹屾垚鏃堕棿
+     */
+    @ApiModelProperty("瀹屾垚鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "瀹屾垚鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date completetime;
+
+    /**
+     * 璐熻矗浜虹紪鍙�
+     */
+    @ApiModelProperty("璐熻矗浜虹紪鍙�")
+    private String responsibleuserid;
+
+    /**
+     * 璐熻矗浜哄鍚�
+     */
+    @ApiModelProperty("璐熻矗浜哄鍚�")
+    @Excel(name = "璐熻矗浜哄鍚�")
+    private String responsibleusername;
+
+    /**
+     * 鍗忚皟鍛樹竴缂栧彿
+     */
+    @ApiModelProperty("鍗忚皟鍛樹竴缂栧彿")
+    private String coordinateduserido;
+
+    /**
+     * 鍗忚皟鍛樹竴濮撳悕
+     */
+    @ApiModelProperty("鍗忚皟鍛樹竴濮撳悕")
+    @Excel(name = "鍗忚皟鍛樹竴濮撳悕")
+    private String coordinatedusernameo;
+
+    /**
+     * 鍗忚皟鍛樹簩缂栧彿
+     */
+    @ApiModelProperty("鍗忚皟鍛樹簩缂栧彿")
+    private String coordinateduseridt;
+
+    /**
+     * 鍗忚皟鍛樹簩濮撳悕
+     */
+    @ApiModelProperty("鍗忚皟鍛樹簩濮撳悕")
+    @Excel(name = "鍗忚皟鍛樹簩濮撳悕")
+    private String coordinatedusernamet;
+
+    /**
+     * 闄勪欢
+     */
+    @ApiModelProperty("闄勪欢")
+    private String assessannex;
+
+    /**
+     * 鎹愮尞鍣ㄥ畼
+     */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼")
+    @Excel(name = "鎹愮尞鍣ㄥ畼")
+    private String donateorgan;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼绉绘琛�")
+    private List<ServiceDonatecomporgan> serviceDonatecomporganList;
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/WitnessBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/WitnessBaseInfoDTO.java
deleted file mode 100644
index 26184dd..0000000
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/WitnessBaseInfoDTO.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package com.ruoyi.project.domain.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 鍣ㄥ畼鎹愮尞瑙佽瘉鍩虹淇℃伅锛堟浜″垽瀹氾級鍝嶅簲淇℃伅
- */
-@ApiModel("鍣ㄥ畼鎹愮尞瑙佽瘉鍩虹淇℃伅锛堟浜″垽瀹氾級鍝嶅簲淇℃伅")
-@Data
-public class WitnessBaseInfoDTO extends BaseEntity {
-    /**
-     *
-     */
-    @ApiModelProperty("鎹愮尞瑙佽瘉(姝讳骸鍒ゅ畾)鐨処D")
-    private Long id;
-
-    @ApiModelProperty("baseInfo鐨処D")
-    private Long infoid;
-
-    /**
-     * 璁板綍鐘舵��
-     */
-    @ApiModelProperty("璁板綍鐘舵��")
-    @Excel(name = "璁板綍鐘舵��")
-    private String recordstate;
-
-
-    /**
-     * 妗堜緥缂栧彿
-     */
-    @ApiModelProperty("妗堜緥缂栧彿")
-    @Excel(name = "妗堜緥缂栧彿")
-    private String caseNo;
-
-    /**
-     * 鎹愮尞鑰呯紪鍙�
-     */
-    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
-    @Excel(name = "鎹愮尞鑰呯紪鍙�")
-    private String donorno;
-
-    /**
-     * 鎵�鍦ㄥ尰鐤楁満鏋勫悕绉�
-     */
-    @ApiModelProperty("鎵�鍦ㄥ尰鐤楁満鏋勫悕绉�")
-    @Excel(name = "鎵�鍦ㄥ尰鐤楁満鏋勫悕绉�")
-    private String treatmenthospitalname;
-
-    /**
-     * 鎵�鍦ㄥ尰鐤楁満鏋勭紪鐮�
-     */
-    @ApiModelProperty("鎵�鍦ㄥ尰鐤楁満鏋勭紪鐮�")
-    private String treatmenthospitalno;
-
-    /**
-     * 鎬у埆
-     */
-    @ApiModelProperty("鎬у埆")
-    private String sex;
-
-    /**
-     * 濮撳悕
-     */
-    @ApiModelProperty("濮撳悕")
-    @Excel(name = "濮撳悕")
-    private String name;
-
-    /**
-     * 骞撮緞
-     */
-//    @TableField(exist = false)
-    @ApiModelProperty("骞撮緞")
-    private Long age;
-
-
-    /**
-     * 琛�鍨�
-     */
-    @ApiModelProperty("琛�鍨� ")
-    private String bloodtype;
-
-
-    /**
-     * 姝讳骸璇佹槑闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮�
-     */
-    @ApiModelProperty("姝讳骸璇佹槑闄勪欢璺緞,澶氬紶鐢�;鍙烽殧寮� ")
-    private String deathJudgeAnnex;
-
-    /**
-     * 璇佷欢鍙风爜
-     */
-    @ApiModelProperty("璇佷欢鍙风爜")
-    private String idcardno;
-
-    /**
-     * 鐤剧梾璇婃柇鍚嶇О
-     */
-    @ApiModelProperty("鐤剧梾璇婃柇鍚嶇О")
-    @Excel(name = "鐤剧梾璇婃柇鍚嶇О")
-    private String diagnosisname;
-
-    /**
-     * 姝讳骸鏃堕棿
-     */
-    @ApiModelProperty("姝讳骸鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @Excel(name = "姝讳骸鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date deathtime;
-
-    /**
-     * 姝讳骸鍘熷洜
-     */
-    @ApiModelProperty("姝讳骸鍘熷洜")
-    @Excel(name = "姝讳骸鍘熷洜")
-    private String deathreason;
-
-    /**
-     * 姝讳骸鍒ゅ畾鍖荤敓涓�
-     */
-    @ApiModelProperty("姝讳骸鍒ゅ畾鍖荤敓涓�")
-    @Excel(name = "姝讳骸鍒ゅ畾鍖荤敓涓�")
-    private String deathjudgedocto;
-
-    /**
-     * 姝讳骸鍒ゅ畾鍖荤敓浜�
-     */
-    @ApiModelProperty("姝讳骸鍒ゅ畾鍖荤敓浜�")
-    @Excel(name = "姝讳骸鍒ゅ畾鍖荤敓浜�")
-    private String deathjudgedoctt;
-
-    /**
-     * 姝讳骸璇佹槑闄勪欢璺緞
-     */
-    @ApiModelProperty("姝讳骸璇佹槑闄勪欢璺緞")
-    private String deathjudgeannex;
-
-    /**
-     * 鍗忚皟鍛樼瀛�
-     */
-    @ApiModelProperty("鍗忚皟鍛樼瀛�")
-    @Excel(name = "鍗忚皟鍛樼瀛�")
-    private String coordinatorSign;
-
-    /**
-     * 鍗忚皟鍛樼瀛楁椂闂�
-     */
-    @ApiModelProperty("鍗忚皟鍛樼瀛楁椂闂�")
-    @Excel(name = "鍗忚皟鍛樼瀛楁椂闂�")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date coordinatorSignTime;
-
-}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java
index e9307f3..897085c 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DonationwitnessBaseInfoVO.java
@@ -52,6 +52,13 @@
     private String donorno;
 
     /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
      * 鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿
      */
     @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java
index 3a799fc..770002a 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java
@@ -29,6 +29,12 @@
     @Excel(name = "璁板綍鐘舵��")
     private String recordstate;
 
+    /**
+     * 鎶ュ憡鏃堕棿
+     */
+    @ApiModelProperty("鎶ュ憡鏃堕棿")
+    @Excel(name = "鎶ュ憡鏃堕棿")
+    private Date reportTime;
 
     /**
      * 妗堜緥缂栧彿
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationBaseInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationBaseInfoVO.java
index 4d52344..b096680 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationBaseInfoVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/RelativeConfirmationBaseInfoVO.java
@@ -41,6 +41,13 @@
     private String caseNo;
 
     /**
+     * 浣忛櫌鍙�
+     */
+    @ApiModelProperty("浣忛櫌鍙�")
+    private String inpatientno;
+
+
+    /**
      * 鎹愮尞鑰呯紪鍙�
      */
     @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonatecompletioninfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonatecompletioninfoVO.java
new file mode 100644
index 0000000..47c905f
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonatecompletioninfoVO.java
@@ -0,0 +1,136 @@
+package com.ruoyi.project.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鎹愮尞瀹屾垚瀵硅薄 service_donatecompletioninfo
+ *
+ * @author ruoyi
+ * @date 2021-11-19
+ */
+@Data
+@ApiModel("鎹愮尞瀹屾垚")
+public class ServiceDonatecompletioninfoVO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     *
+     */
+    @ApiModelProperty("")
+    private Long infoid;
+
+    /**
+     * 鎹愮尞鑰呯紪鍙�
+     */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /**
+     * 鏄惁閬椾綋鎹愮尞
+     */
+    @ApiModelProperty("鏄惁閬椾綋鎹愮尞")
+    @Excel(name = "鏄惁閬椾綋鎹愮尞")
+    private String isbodydonation;
+
+
+    /**
+     * 鎺ユ敹鍗曚綅鍚嶇О
+     */
+    @ApiModelProperty("鎺ユ敹鍗曚綅鍚嶇О")
+    @Excel(name = "鎺ユ敹鍗曚綅鍚嶇О")
+    private String receivingunitname;
+
+    /**
+     * 鎺ユ敹鍗曚綅
+     */
+    @ApiModelProperty("鎺ユ敹鍗曚綅")
+    @Excel(name = "鎺ユ敹鍗曚綅")
+    private String receivingunit;
+
+    /**
+     * 瀹屾垚鏃堕棿
+     */
+    @ApiModelProperty("瀹屾垚鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "瀹屾垚鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date completetime;
+
+    /**
+     * 璐熻矗浜虹紪鍙�
+     */
+    @ApiModelProperty("璐熻矗浜虹紪鍙�")
+    private String responsibleuserid;
+
+    /**
+     * 璐熻矗浜哄鍚�
+     */
+    @ApiModelProperty("璐熻矗浜哄鍚�")
+    @Excel(name = "璐熻矗浜哄鍚�")
+    private String responsibleusername;
+
+    /**
+     * 鍗忚皟鍛樹竴缂栧彿
+     */
+    @ApiModelProperty("鍗忚皟鍛樹竴缂栧彿")
+    private String coordinateduserido;
+
+    /**
+     * 鍗忚皟鍛樹竴濮撳悕
+     */
+    @ApiModelProperty("鍗忚皟鍛樹竴濮撳悕")
+    @Excel(name = "鍗忚皟鍛樹竴濮撳悕")
+    private String coordinatedusernameo;
+
+    /**
+     * 鍗忚皟鍛樹簩缂栧彿
+     */
+    @ApiModelProperty("鍗忚皟鍛樹簩缂栧彿")
+    private String coordinateduseridt;
+
+    /**
+     * 鍗忚皟鍛樹簩濮撳悕
+     */
+    @ApiModelProperty("鍗忚皟鍛樹簩濮撳悕")
+    @Excel(name = "鍗忚皟鍛樹簩濮撳悕")
+    private String coordinatedusernamet;
+
+    /**
+     * 闄勪欢
+     */
+    @ApiModelProperty("闄勪欢")
+    private String assessannex;
+
+    /**
+     * 鎹愮尞鍣ㄥ畼
+     */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼")
+    @Excel(name = "鎹愮尞鍣ㄥ畼")
+    private String donateorgan;
+
+    @TableField(exist = false)
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼绉绘琛�")
+    private List<ServiceDonatecomporgan> serviceDonatecomporganList;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonateorganBaseVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonateorganBaseVO.java
new file mode 100644
index 0000000..c85f006
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonateorganBaseVO.java
@@ -0,0 +1,94 @@
+package com.ruoyi.project.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.project.domain.ServiceDonateorgan;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹鏂板淇敼璇锋眰瀵硅薄 service_donateorgan_base
+ *
+ * @author ls
+ * @date 2026-01-17
+ */
+@Data
+@ApiModel("鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹鏂板淇敼璇锋眰瀵硅薄")
+public class ServiceDonateorganBaseVO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鍏宠仈service_donatebaseinfo琛ㄧ殑ID
+     */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+    /**
+     * 鍒嗛厤鐘舵�侊細0:鏈垎閰嶏紱1锛氬凡鍒嗛厤锛�2浣滃簾
+     */
+    @ApiModelProperty("鍒嗛厤鐘舵�侊細0:鏈垎閰嶏紱1锛氬凡鍒嗛厤锛�2浣滃簾")
+    @Excel(name = "鍒嗛厤鐘舵�侊細0:鏈垎閰嶏紱1锛氬凡鍒嗛厤锛�2浣滃簾")
+    private Long allocationStatus;
+
+    /**
+     * 鍒嗛厤鏃堕棿
+     */
+    @ApiModelProperty("鍒嗛厤鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍒嗛厤鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date allocationTime;
+
+    /**
+     * 鐧昏浜虹紪鍙�
+     */
+    @ApiModelProperty("鐧昏浜虹紪鍙�")
+    @Excel(name = "鐧昏浜虹紪鍙�")
+    private String registrationCode;
+
+    /**
+     * 鐧昏浜哄鍚�
+     */
+    @ApiModelProperty("鐧昏浜哄鍚�")
+    @Excel(name = "鐧昏浜哄鍚�")
+    private String registrationName;
+
+    /**
+     * 鐧昏鏃堕棿
+     */
+    @ApiModelProperty("鐧昏鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鐧昏鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date registrationTime;
+
+    /**
+     * 棰勮鏃堕棿
+     */
+    @ApiModelProperty("棰勮鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "棰勮鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date estimatedtime;
+
+    /**
+     * 鍗曚釜鍣ㄥ畼绠$悊鍒楄〃
+     */
+    @ApiModelProperty("鍗曚釜鍣ㄥ畼绠$悊鍒楄〃")
+    private List<ServiceDonateorgan> serviceDonateorganList;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonationwitnessVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonationwitnessVO.java
new file mode 100644
index 0000000..495d8ea
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceDonationwitnessVO.java
@@ -0,0 +1,299 @@
+package com.ruoyi.project.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鎹愮尞瑙佽瘉瀵硅薄 service_donationwitness
+ *
+ * @author ruoyi
+ * @date 2021-11-17
+ */
+@Data
+@ApiModel("鎹愮尞瑙佽瘉")
+public class ServiceDonationwitnessVO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty("$column.columnComment")
+    //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO)
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+
+
+    /**
+     *
+     */
+    @ApiModelProperty("infoid")
+    private Long infoid;
+
+    /**
+     * 鎹愮尞鑰呯紪鍙�
+     */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /**
+     * 鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿
+     */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿")
+    private String gainhospitalno;
+
+    /**
+     * 鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О
+     */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О")
+    private String gainhospitalname;
+
+    /**
+     * 姝讳骸鏃堕棿锛堝仠鐢級
+     */
+    @ApiModelProperty("姝讳骸鏃堕棿锛堝仠鐢級")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "姝讳骸鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date deathtime;
+
+    /**
+     * 姝讳骸鍘熷洜锛堝仠鐢級
+     */
+    @ApiModelProperty("姝讳骸鍘熷洜锛堝仠鐢級")
+    @Excel(name = "姝讳骸鍘熷洜锛堝仠鐢級")
+    private String deathreason;
+
+    /**
+     * 姝讳骸鍒ゅ畾鍖荤敓涓�锛堝仠鐢級
+     */
+    @ApiModelProperty("姝讳骸鍒ゅ畾鍖荤敓涓�锛堝仠鐢級")
+    @Excel(name = "姝讳骸鍒ゅ畾鍖荤敓涓�锛堝仠鐢級")
+    private String deathjudgedocto;
+
+    /**
+     * 姝讳骸鍒ゅ畾鍖荤敓浜�
+     */
+    @ApiModelProperty("姝讳骸鍒ゅ畾鍖荤敓浜岋紙鍋滅敤锛�")
+    @Excel(name = "姝讳骸鍒ゅ畾鍖荤敓浜岋紙鍋滅敤锛�")
+    private String deathjudgedoctt;
+
+    /**
+     * 姝讳骸璇佹槑闄勪欢璺緞锛堝仠鐢級
+     */
+    @ApiModelProperty("姝讳骸璇佹槑闄勪欢璺緞锛堝仠鐢級")
+    private String deathjudgeannex;
+
+    /**
+     * 鎵嬫湳寮�濮嬫椂闂�
+     */
+    @ApiModelProperty("鎵嬫湳寮�濮嬫椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "鎵嬫湳寮�濮嬫椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date operationbegtime;
+
+    /**
+     * 鎵嬫湳缁撴潫鏃堕棿
+     */
+    @ApiModelProperty("鎵嬫湳缁撴潫鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "鎵嬫湳缁撴潫鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date operationendtime;
+
+    /**
+     * 鎵嬫湳鍖荤敓
+     */
+    @ApiModelProperty("鎵嬫湳鍖荤敓")
+    @Excel(name = "鎵嬫湳鍖荤敓")
+    private String operationdoctor;
+
+    /**
+     * 鏄惁榛樺搥缂呮��浠紡锛堝仠鐢級
+     */
+    @ApiModelProperty("鏄惁榛樺搥缂呮��浠紡锛堝仠鐢級")
+    @Excel(name = "鏄惁榛樺搥缂呮��浠紡锛堝仠鐢級")
+    private Integer isspendremember;
+
+    /**
+     * 鏄惁鎭㈠閬椾綋浠
+     */
+    @ApiModelProperty("鏄惁鎭㈠閬椾綋浠锛堝仠鐢級")
+    @Excel(name = "鏄惁鎭㈠閬椾綋浠锛堝仠鐢級")
+    private Integer isrestoreremains;
+
+    /**
+     * 缂呮��浠紡闄勪欢璺緞锛堝仠鐢級
+     */
+    @ApiModelProperty("缂呮��浠紡闄勪欢璺緞锛堝仠鐢級")
+    private String rememberannex;
+
+    /**
+     * 璐熻矗浜虹紪鍙�
+     */
+    @ApiModelProperty("璐熻矗浜虹紪鍙�")
+    private String responsibleuserid;
+
+    /**
+     * 璐熻矗浜哄鍚�
+     */
+    @ApiModelProperty("璐熻矗浜哄鍚�")
+    @Excel(name = "璐熻矗浜哄鍚�")
+    private String responsibleusername;
+
+    /**
+     * 鑱旂粶浜轰竴缂栧彿
+     */
+    @ApiModelProperty("鑱旂粶浜轰竴缂栧彿")
+    private String coordinateduserido;
+
+    /**
+     * 鑱旂粶浜轰竴濮撳悕
+     */
+    @ApiModelProperty("鑱旂粶浜轰竴濮撳悕")
+    private String coordinatedusernameo;
+
+    /**
+     * 鑱旂粶浜轰簩缂栧彿
+     */
+    @ApiModelProperty("鑱旂粶浜轰簩缂栧彿")
+    private String coordinateduseridt;
+
+    /**
+     * 鑱旂粶浜轰簩濮撳悕
+     */
+    @ApiModelProperty("鑱旂粶浜轰簩濮撳悕")
+    private String coordinatedusernamet;
+
+    /**
+     * 鑵逛富鍔ㄨ剦鎻掔鏃堕棿
+     */
+    @ApiModelProperty("鑵逛富鍔ㄨ剦鎻掔鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "鑵逛富鍔ㄨ剦鎻掔鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date abdominalaortacannulatime;
+
+    /**
+     * 鑵逛富鍔ㄨ剦鐏屾敞鏃堕棿
+     */
+    @ApiModelProperty("鑵逛富鍔ㄨ剦鐏屾敞鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "鑵逛富鍔ㄨ剦鐏屾敞鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date abdominalaortaperfusiontime;
+
+    /**
+     * 闂ㄩ潤鑴夋彃绠℃椂闂�
+     */
+    @ApiModelProperty("闂ㄩ潤鑴夋彃绠℃椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "闂ㄩ潤鑴夋彃绠℃椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date portalveincannulatime;
+
+    /**
+     * 闂ㄩ潤鑴夌亴娉ㄦ椂闂�
+     */
+    @ApiModelProperty("闂ㄩ潤鑴夌亴娉ㄦ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "闂ㄩ潤鑴夌亴娉ㄦ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date portalveinperfusiontime;
+
+    /**
+     * 鑲哄姩鑴夋彃绠℃椂闂�
+     */
+    @ApiModelProperty("鑲哄姩鑴夋彃绠℃椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "鑲哄姩鑴夋彃绠℃椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date pulmonaryarterycannulatime;
+
+    /**
+     * 鑲哄姩鑴夌亴娉ㄦ椂闂�
+     */
+    @ApiModelProperty("鑲哄姩鑴夌亴娉ㄦ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "鑲哄姩鑴夌亴娉ㄦ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date pulmonaryarteryperfusiontime;
+
+    /**
+     * 涓诲姩鑴夋彃绠℃椂闂�
+     */
+    @ApiModelProperty("涓诲姩鑴夋彃绠℃椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "涓诲姩鑴夋彃绠℃椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date aortacannulatime;
+
+    /**
+     * 涓诲姩鑴夌亴娉ㄦ椂闂�
+     */
+    @ApiModelProperty("涓诲姩鑴夌亴娉ㄦ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Excel(name = "涓诲姩鑴夌亴娉ㄦ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date aortaperfusiontime;
+
+    /**
+     * 鎹愮尞鍣ㄥ畼
+     */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼")
+    @Excel(name = "鎹愮尞鍣ㄥ畼")
+    private String organdonation;
+
+    /**
+     * 鎹愮尞鍣ㄥ畼 鍏朵粬
+     */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼 鍏朵粬")
+    @Excel(name = "鎹愮尞鍣ㄥ畼 鍏朵粬")
+    private String organdonationOther;
+
+
+    /**
+     * 鎹愮尞绫诲埆
+     */
+    @ApiModelProperty("鎹愮尞绫诲埆")
+    @Excel(name = "鎹愮尞绫诲埆")
+    private String donationcategory;
+
+    /**
+     * 鍗忚皟鍛樿繘鎵嬫湳瀹ゆ椂闂�
+     */
+    @ApiModelProperty("鍗忚皟鍛樿繘鎵嬫湳瀹ゆ椂闂�")
+    @Excel(name = "鍗忚皟鍛樿繘鎵嬫湳瀹ゆ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date coordinatorInOperating;
+
+    /**
+     * 鍗忚皟鍛樺嚭鎵嬫湳瀹ゆ椂闂�
+     */
+    @ApiModelProperty("鍗忚皟鍛樺嚭鎵嬫湳瀹ゆ椂闂�")
+    @Excel(name = "鍗忚皟鍛樺嚭鎵嬫湳瀹ゆ椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date coordinatorOutOperating;
+
+    /**
+     * 鍗忚皟鍛樼瀛�
+     */
+    @ApiModelProperty("鍗忚皟鍛樼瀛�")
+    @Excel(name = "鍗忚皟鍛樼瀛�")
+    private String coordinatorSign;
+
+    /**
+     * 鍗忚皟鍛樼瀛楁椂闂�
+     */
+    @ApiModelProperty("鍗忚皟鍛樼瀛楁椂闂�")
+    @Excel(name = "鍗忚皟鍛樼瀛楁椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date coordinatorSignTime;
+
+    @ApiModelProperty("鎹愮尞瑙佽瘉鍣ㄥ畼淇℃伅闆嗗悎")
+    private List<ServiceDonationwitnessorgan> serviceDonationwitnessorganList;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java
index 2d7aac5..964b39a 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java
@@ -5,11 +5,13 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.project.domain.ServiceMedicalevaluationorgan;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 鍖诲璇勪及瀵硅薄 service_medicalevaluation
@@ -21,6 +23,13 @@
 @ApiModel("鍖诲璇勪及")
 public class ServiceMedicalevaluationVO extends BaseEntity {
     private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭ID
+     */
+    @ApiModelProperty("涓婚敭ID")
+    @TableId(type = IdType.AUTO)
+    private Long id;
 
     /**
      * 鍏宠仈service_donatebaseinfo琛ㄧ殑ID
@@ -100,6 +109,12 @@
     @Excel(name = "鎶ュ憡鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date reporttime;
 
+    /**
+     * 鎹愮尞鍣ㄥ畼璇勪及鍒楄〃
+     */
+    @ApiModelProperty("鎹愮尞鍣ㄥ畼璇勪及鍒楄〃")
+    @Excel(name = "鎹愮尞鍣ㄥ畼璇勪及鍒楄〃", readConverterExp = "鎹愮尞鍣ㄥ畼璇勪及鍒楄〃")
+    private List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorganList;
 
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java
index 7332df6..ecb467a 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java
@@ -3,8 +3,11 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
 import com.ruoyi.project.domain.dto.DonationCompletionBaseInfoDTO;
+import com.ruoyi.project.domain.dto.ServiceDonatecompletioninfoDTO;
 import com.ruoyi.project.domain.vo.DonationCompletionBaseInfoVO;
 import com.ruoyi.project.domain.vo.DonationCompletionVO;
+import com.ruoyi.project.domain.vo.ServiceDonatecompletioninfoVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -24,6 +27,10 @@
      */
     public List<ServiceDonatecompletioninfo> queryList(ServiceDonatecompletioninfo serviceDonatecompletioninfo);
 
+    public boolean add(ServiceDonatecompletioninfoVO serviceDonatecompletioninfoVO);
+
+    public boolean edit(ServiceDonatecompletioninfoVO serviceDonatecompletioninfoVO);
+
     /**
      * 鏌ヨ鎹愮尞瀹屾垚鍒楄〃鍩烘湰淇℃伅
      *
@@ -32,7 +39,7 @@
      */
     public List<DonationCompletionBaseInfoDTO> getDonationCompletionBaseInfo(DonationCompletionBaseInfoVO donationCompletionBaseInfoVO);
 
-    public List<ServiceDonatecompletioninfo> queryListDetail(ServiceDonatecompletioninfo serviceDonatecompletioninfo);
+    public List<ServiceDonatecompletioninfoDTO> queryListDetail(ServiceDonatecompletioninfo serviceDonatecompletioninfo);
 
     List<DonationCompletionVO> selectVOList(DonationCompletionVO donationCompletionVO);
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganBaseService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganBaseService.java
index 66096c4..d741ddd 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganBaseService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganBaseService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.project.domain.ServiceDonateorganBase;
+import com.ruoyi.project.domain.vo.ServiceDonateorganBaseVO;
 import com.ruoyi.project.domain.dto.DonateorganBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DonateorganBaseInfoVO;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -27,6 +28,7 @@
 
     /**
      * 鏌ヨ鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹鍒楄〃
+     *
      * @param donateorganBaseInfoVO
      * @return
      */
@@ -39,4 +41,9 @@
      * @return 鎹愮尞鍣ㄥ畼鍒嗛厤鍩虹闆嗗悎
      */
     public List<ServiceDonateorganBase> exportQueryList(ServiceDonateorganBase serviceDonateorganBase);
+
+
+    public Boolean add(ServiceDonateorganBaseVO serviceDonateorganBaseVO);
+
+    public Boolean updateByParam(ServiceDonateorganBaseVO serviceDonateorganBaseVO);
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
index 99ccfb0..7cc5d7b 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
@@ -3,12 +3,14 @@
 import java.util.List;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.vo.ServiceDonationwitnessVO;
 import com.ruoyi.project.domain.vo.DonationwitnessBaseInfoVO;
 import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.domain.dto.DonationwitnessBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DonationWitnessVO;
 import com.ruoyi.project.domain.vo.TimeVO;
 import com.ruoyi.project.domain.vo.WitnessStatsVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * 鎹愮尞瑙佽瘉Service鎺ュ彛
@@ -28,12 +30,17 @@
 
     public List<ServiceDonationwitness> selectServiceDonationwitnessList(ServiceDonationwitness serviceDonationwitness);
 
+    public Boolean add(@RequestBody ServiceDonationwitnessVO serviceDonationwitnessVO);
+
+    public Boolean edit(@RequestBody ServiceDonationwitnessVO serviceDonationwitnessVO);
+
     /**
      * 鑾峰彇鎹愮尞瑙佽瘉鍩烘湰淇℃伅
+     *
      * @param donationwitnessBaseInfoVO
      * @return
      */
-    public List<DonationwitnessBaseInfoDTO>  getDonationwitnessBaseInfo(DonationwitnessBaseInfoVO donationwitnessBaseInfoVO);
+    public List<DonationwitnessBaseInfoDTO> getDonationwitnessBaseInfo(DonationwitnessBaseInfoVO donationwitnessBaseInfoVO);
 
     List<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO);
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java
index 6f4bd7e..ecba740 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceMedicalevaluationService.java
@@ -5,6 +5,8 @@
 import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
 import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
+import com.ruoyi.project.domain.vo.ServiceMedicalevaluationVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -25,6 +27,10 @@
      */
     public List<ServiceMedicalevaluation> queryList(ServiceMedicalevaluation serviceMedicalevaluation);
 
+   public Boolean add(ServiceMedicalevaluationVO serviceMedicalevaluationVO);
+
+   public Boolean edit(ServiceMedicalevaluationVO serviceMedicalevaluationVO);
+
     List<MedicalEvaluationVO> selectVOList(MedicalEvaluationVO medicalEvaluationVO);
 
     List<MedicalevaluationBaseInfoDTO> medevaluateBaseInfolist(MedicalEvaluationWithBaseInfoVO medicalEvaluationWithBaseInfoVO);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
index 83ad703..3c3eb52 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
@@ -8,14 +8,17 @@
 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.common.CalculateDateUtils;
 import com.ruoyi.project.domain.ServiceDonatebaseinfo;
 import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
 import com.ruoyi.project.domain.ServiceDonatecomporgan;
 import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.domain.dto.DonationCompletionBaseInfoDTO;
+import com.ruoyi.project.domain.dto.ServiceDonatecompletioninfoDTO;
 import com.ruoyi.project.domain.vo.DonationCompletionBaseInfoVO;
 import com.ruoyi.project.domain.vo.DonationCompletionVO;
+import com.ruoyi.project.domain.vo.ServiceDonatecompletioninfoVO;
 import com.ruoyi.project.mapper.ServiceDonatecompletioninfoMapper;
 import com.ruoyi.project.mapper.ServiceDonationwitnessMapper;
 import com.ruoyi.project.service.IServiceDonatecompletioninfoService;
@@ -78,10 +81,43 @@
     }
 
     @Override
+    public boolean add(ServiceDonatecompletioninfoVO serviceDonatecompletioninfoVO) {
+        ServiceDonatecompletioninfo serviceDonatecompletioninfo = DtoConversionUtils.sourceToTarget(serviceDonatecompletioninfoVO, ServiceDonatecompletioninfo.class);
+        boolean b = false;
+        if (ObjectUtils.isNotEmpty(serviceDonatecompletioninfo)) {
+            b = this.save(serviceDonatecompletioninfo);
+            if (b == true && CollectionUtils.isNotEmpty(serviceDonatecompletioninfoVO.getServiceDonatecomporganList())) {
+                for (ServiceDonatecomporgan serviceDonatecomporgan : serviceDonatecompletioninfoVO.getServiceDonatecomporganList()) {
+                    serviceDonatecomporgan.setInfoid(serviceDonatecompletioninfo.getInfoid());
+                    serviceDonatecomporgan.setDonatecompletioninfoId(serviceDonatecompletioninfo.getId());
+                    serviceDonatecomporganService.save(serviceDonatecomporgan);
+                }
+            }
+        }
+        return b;
+    }
+
+    @Override
+    public boolean edit(ServiceDonatecompletioninfoVO serviceDonatecompletioninfoVO) {
+        ServiceDonatecompletioninfo serviceDonatecompletioninfo = DtoConversionUtils.sourceToTarget(serviceDonatecompletioninfoVO, ServiceDonatecompletioninfo.class);
+        boolean b = false;
+        if (ObjectUtils.isNotEmpty(serviceDonatecompletioninfo)) {
+            b = this.updateById(serviceDonatecompletioninfo);
+        }
+        if (CollectionUtils.isNotEmpty(serviceDonatecompletioninfoVO.getServiceDonatecomporganList())) {
+            for (ServiceDonatecomporgan serviceDonatecomporgan : serviceDonatecompletioninfoVO.getServiceDonatecomporganList()) {
+                serviceDonatecomporganService.updateById(serviceDonatecomporgan);
+            }
+        }
+
+        return b;
+    }
+
+    @Override
     public List<DonationCompletionBaseInfoDTO> getDonationCompletionBaseInfo(DonationCompletionBaseInfoVO donationCompletionBaseInfoVO) {
         List<DonationCompletionBaseInfoDTO> donationCompletionBaseInfoDTOList = serviceDonatecompletioninfoMapper.getDonationCompletionBaseInfo(donationCompletionBaseInfoVO);
 
-        if(CollectionUtils.isNotEmpty(donationCompletionBaseInfoDTOList) && donationCompletionBaseInfoVO.getPageNum() == null) {
+        if (CollectionUtils.isNotEmpty(donationCompletionBaseInfoDTOList) && donationCompletionBaseInfoVO.getPageNum() == null) {
             for (DonationCompletionBaseInfoDTO donationCompletionBaseInfoDTO : donationCompletionBaseInfoDTOList) {
                 ServiceDonatecomporgan serviceDonatecomporgan = new ServiceDonatecomporgan();
                 serviceDonatecomporgan.setInfoid(donationCompletionBaseInfoDTO.getInfoid());
@@ -100,7 +136,7 @@
      * @return
      */
     @Override
-    public List<ServiceDonatecompletioninfo> queryListDetail(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
+    public List<ServiceDonatecompletioninfoDTO> queryListDetail(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
         LambdaQueryWrapper<ServiceDonatecompletioninfo> wrappers = Wrappers.lambdaQuery();
         if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getDonorno())) {
             wrappers.eq(ServiceDonatecompletioninfo::getDonorno, serviceDonatecompletioninfo.getDonorno());
@@ -118,19 +154,21 @@
             wrappers.eq(ServiceDonatecompletioninfo::getInfoid, serviceDonatecompletioninfo.getInfoid());
         }
         List<ServiceDonatecompletioninfo> serviceDonatecompletioninfoList = this.list(wrappers);
-        if (CollectionUtils.isNotEmpty(serviceDonatecompletioninfoList)) {
-            for (ServiceDonatecompletioninfo serviceDonatecompletioninfo1 : serviceDonatecompletioninfoList) {
-                if (serviceDonatecompletioninfo1.getInfoid() != null) {
+
+        List<ServiceDonatecompletioninfoDTO> serviceDonatecompletioninfoDTOList = DtoConversionUtils.sourceToTarget(serviceDonatecompletioninfoList, ServiceDonatecompletioninfoDTO.class);
+        if (CollectionUtils.isNotEmpty(serviceDonatecompletioninfoDTOList)) {
+            for (ServiceDonatecompletioninfoDTO serviceDonatecompletioninfoDTO : serviceDonatecompletioninfoDTOList) {
+                if (serviceDonatecompletioninfoDTO.getInfoid() != null) {
                     ServiceDonatecomporgan serviceDonatecomporgan = new ServiceDonatecomporgan();
-                    serviceDonatecomporgan.setInfoid(serviceDonatecompletioninfo1.getInfoid());
+                    serviceDonatecomporgan.setInfoid(serviceDonatecompletioninfoDTO.getInfoid());
                     List<ServiceDonatecomporgan> serviceDonatecomporgans = serviceDonatecomporganService.queryList(serviceDonatecomporgan);
-                    serviceDonatecompletioninfo1.setServiceDonatecomporganList(serviceDonatecomporgans);
+                    serviceDonatecompletioninfoDTO.setServiceDonatecomporganList(serviceDonatecomporgans);
                 }
 
             }
         }
 
-        return this.list(wrappers);
+        return serviceDonatecompletioninfoDTOList;
     }
 
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganBaseServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganBaseServiceImpl.java
index 4c43028..224028a 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganBaseServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganBaseServiceImpl.java
@@ -2,9 +2,12 @@
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.vo.ServiceDonateorganBaseVO;
 import com.ruoyi.project.domain.dto.DonateorganBaseInfoDTO;
 import com.ruoyi.project.domain.vo.DonateorganBaseInfoVO;
 import com.ruoyi.project.mapper.ServiceDonateorganMapper;
@@ -13,9 +16,6 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-import java.util.ArrayList;
-import java.util.Map;
 
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.project.mapper.ServiceDonateorganBaseMapper;
@@ -127,4 +127,36 @@
         return this.list(wrappers);
     }
 
+    @Override
+    public Boolean add(ServiceDonateorganBaseVO serviceDonateorganBaseVO) {
+        ServiceDonateorganBase serviceDonateorganBase = DtoConversionUtils.sourceToTarget(serviceDonateorganBaseVO, ServiceDonateorganBase.class);
+        boolean save = false;
+        if (ObjectUtils.isNotEmpty(serviceDonateorganBase)) {
+            save = save(serviceDonateorganBase);
+            if (save == true && CollectionUtils.isNotEmpty(serviceDonateorganBaseVO.getServiceDonateorganList())) {
+                for (ServiceDonateorgan serviceDonateorgan : serviceDonateorganBaseVO.getServiceDonateorganList()) {
+                    serviceDonateorgan.setBaseId(serviceDonateorganBase.getId());
+                    serviceDonateorganMapper.insert(serviceDonateorgan);
+                }
+            }
+        }
+
+        return save;
+    }
+
+    @Override
+    public Boolean updateByParam(ServiceDonateorganBaseVO serviceDonateorganBaseVO) {
+        ServiceDonateorganBase serviceDonateorganBase = DtoConversionUtils.sourceToTarget(serviceDonateorganBaseVO, ServiceDonateorganBase.class);
+        boolean b = false;
+        if (ObjectUtils.isNotEmpty(serviceDonateorganBase)) {
+            b = updateById(serviceDonateorganBase);
+            if (b == true && CollectionUtils.isNotEmpty(serviceDonateorganBaseVO.getServiceDonateorganList())) {
+                for (ServiceDonateorgan serviceDonateorgan : serviceDonateorganBaseVO.getServiceDonateorganList()) {
+                    serviceDonateorganMapper.updateById(serviceDonateorgan);
+                }
+            }
+        }
+        return b;
+    }
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
index bb3bde1..c67d0bb 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
@@ -8,7 +8,9 @@
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.project.common.CalculateDateUtils;
+import com.ruoyi.project.domain.vo.ServiceDonationwitnessVO;
 import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
 import com.ruoyi.project.domain.vo.DonationwitnessBaseInfoVO;
 import com.ruoyi.project.domain.ServiceDonatebaseinfo;
@@ -83,13 +85,47 @@
     }
 
     @Override
+    public Boolean add(ServiceDonationwitnessVO serviceDonationwitnessVO) {
+        ServiceDonationwitness serviceDonationwitness = DtoConversionUtils.sourceToTarget(serviceDonationwitnessVO, ServiceDonationwitness.class);
+        boolean save = false;
+        if (ObjectUtils.isNotEmpty(serviceDonationwitness)) {
+            save = save(serviceDonationwitness);
+            if (save == true && ObjectUtils.isNotEmpty(serviceDonationwitnessVO.getServiceDonationwitnessorganList())) {
+                for (ServiceDonationwitnessorgan serviceDonationwitnessorgan : serviceDonationwitnessVO.getServiceDonationwitnessorganList()) {
+                    serviceDonationwitnessorgan.setDonationwitnessId(serviceDonationwitness.getId());
+                    serviceDonationwitnessorgan.setInfoid(serviceDonationwitness.getInfoid());
+                    serviceDonationwitnessorganMapper.insert(serviceDonationwitnessorgan);
+                }
+            }
+        }
+        return save;
+    }
+
+    @Override
+    public Boolean edit(ServiceDonationwitnessVO serviceDonationwitnessVO) {
+        ServiceDonationwitness serviceDonationwitness = DtoConversionUtils.sourceToTarget(serviceDonationwitnessVO, ServiceDonationwitness.class);
+        boolean update = false;
+        if (ObjectUtils.isNotEmpty(serviceDonationwitness)) {
+            update = updateById(serviceDonationwitness);
+        }
+
+        if (ObjectUtils.isNotEmpty(serviceDonationwitnessVO.getServiceDonationwitnessorganList())) {
+            for (ServiceDonationwitnessorgan serviceDonationwitnessorgan : serviceDonationwitnessVO.getServiceDonationwitnessorganList()) {
+                serviceDonationwitnessorganMapper.updateById(serviceDonationwitnessorgan);
+            }
+        }
+
+        return update;
+    }
+
+    @Override
     public List<DonationwitnessBaseInfoDTO> getDonationwitnessBaseInfo(DonationwitnessBaseInfoVO donationwitnessBaseInfoVO) {
         List<DonationwitnessBaseInfoDTO> donationwitnessBaseInfos = serviceDonationwitnessMapper.getDonationwitnessBaseInfo(donationwitnessBaseInfoVO);
 
         //鑾峰彇鎵�鏈夊櫒瀹樹俊鎭�
-        if (!CollectionUtils.isEmpty(donationwitnessBaseInfos)&&donationwitnessBaseInfoVO.getPageNum()!=null) {
-            for (DonationwitnessBaseInfoDTO donationwitnessBaseInfoDTO:donationwitnessBaseInfos) {
-                ServiceDonationwitnessorgan serviceDonationwitnessorgan=new ServiceDonationwitnessorgan();
+        if (!CollectionUtils.isEmpty(donationwitnessBaseInfos) && donationwitnessBaseInfoVO.getPageNum() != null) {
+            for (DonationwitnessBaseInfoDTO donationwitnessBaseInfoDTO : donationwitnessBaseInfos) {
+                ServiceDonationwitnessorgan serviceDonationwitnessorgan = new ServiceDonationwitnessorgan();
                 serviceDonationwitnessorgan.setInfoid(donationwitnessBaseInfoDTO.getInfoid());
                 List<ServiceDonationwitnessorgan> serviceDonationwitnessorgans = serviceDonationwitnessorganMapper.selectServiceDonationwitnessorganList(serviceDonationwitnessorgan);
                 donationwitnessBaseInfoDTO.setServiceDonationwitnessorgans(serviceDonationwitnessorgans);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessorganServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessorganServiceImpl.java
index db9643b..b2e7cd7 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessorganServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessorganServiceImpl.java
@@ -33,6 +33,9 @@
         if (serviceDonationwitnessorgan.getInfoid() != null) {
             wrappers.eq(ServiceDonationwitnessorgan::getInfoid, serviceDonationwitnessorgan.getInfoid());
         }
+        if (serviceDonationwitnessorgan.getDonationwitnessId() != null) {
+            wrappers.eq(ServiceDonationwitnessorgan::getDonationwitnessId, serviceDonationwitnessorgan.getDonationwitnessId());
+        }
         if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getDonorno())) {
             wrappers.eq(ServiceDonationwitnessorgan::getDonorno, serviceDonationwitnessorgan.getDonorno());
         }
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..f443fa2 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;
@@ -73,6 +75,32 @@
     }
 
     @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 = updateById(serviceMedicalevaluation);
+        if(update && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())){
+            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan:serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
+                serviceMedicalevaluationorganMapper.updateById(serviceMedicalevaluationorgan);
+            }
+        }
+        return update;
+    }
+
+    @Override
     public List<MedicalEvaluationVO> selectVOList(MedicalEvaluationVO medicalEvaluationVO) {
 
         SysUser user = SecurityUtils.getLoginUser().getUser();
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml
index c0d0462..8141e05 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDeathinfoMapper.xml
@@ -85,6 +85,8 @@
         sd.treatmenthospitalno AS treatmenthospitalno,
         sd.DonorNo AS donorno,
         sd.case_no AS caseNo,
+        sd.InpatientNo AS inpatientno,
+        sd.extracontent AS extracontent,
         sd.Name AS NAME,
         sd.RecordState AS recordstate,
         sd.Sex AS sex,
@@ -92,7 +94,7 @@
         sd.BloodType AS bloodtype,
         sd.idcardno AS idcardno,
         sd.diagnosisname AS diagnosisname,
-        sdi.infoID AS infoid,
+        sd.ID AS infoid,
         sdi.ID AS id,
         sdi.GainHospitalNo as gainhospitalno,
         sdi.GainHospitalName as gainhospitalname,
@@ -114,7 +116,8 @@
         AND sdi.ID IS NOT NULL
         <where>
             sd.termination_case = 0
-            <if test="infoid != null ">and se.InfoID = #{infoid}</if>
+            <if test="infoid != null ">and sd.ID = #{infoid}</if>
+            <if test="inpatientno != null ">and sd.InpatientNo = #{inpatientno}</if>
             <if test="caseNo != null  and caseNo != ''">and sd.case_no = #{caseNo}</if>
             <if test="name != null  and name != ''">and sd.Name = #{name}</if>
             <if test="donorno != null  and donorno != ''">and sd.DonorNo = #{donorno}</if>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml
index e691054..48ac008 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecompletioninfoMapper.xml
@@ -183,6 +183,7 @@
         sd.treatmenthospitalno AS treatmenthospitalno,
         sd.DonorNo AS donorno,
         sd.case_no AS caseNo,
+        sd.extracontent AS extracontent,
         sd.DonationCategory as donationcategory,
         sd.NAME AS name,
         sd.RecordState AS recordstate,
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml
index 7640151..693a98c 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatefollowupMapper.xml
@@ -1,57 +1,89 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.mapper.ServiceDonatefollowupMapper">
-    
+
     <resultMap type="com.ruoyi.project.domain.ServiceDonatefollowup" id="ServiceDonatefollowupResult">
-        <result property="id"    column="ID"    />
-        <result property="seqno"    column="seqNo"    />
-        <result property="infoid"    column="InfoID"    />
-        <result property="organid"    column="OrganID"    />
-        <result property="recipientname"    column="recipientName"    />
-        <result property="recipientphone"    column="recipientPhone"    />
-        <result property="recipientdescribe"    column="recipientDescribe"    />
-        <result property="hospitalno"    column="hospitalNo"    />
-        <result property="hospitalname"    column="hospitalName"    />
-        <result property="hospitaldept"    column="hospitalDept"    />
-        <result property="doctorname"    column="doctorName"    />
-        <result property="doctorphone"    column="doctorPhone"    />
-        <result property="doctordescribe"    column="doctorDescribe"    />
-        <result property="donateresult"    column="donateResult"    />
-        <result property="followupdescribe"    column="followupDescribe"    />
-        <result property="followupno"    column="followupNo"    />
-        <result property="followuptime"    column="followupTime"    />
-        <result property="del_flag"    column="del_flag"    />
-        <result property="createBy"    column="create_by"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateBy"    column="update_by"    />
-        <result property="updateTime"    column="update_time"    />
+        <result property="id" column="ID"/>
+        <result property="seqno" column="seqNo"/>
+        <result property="infoid" column="InfoID"/>
+        <result property="organid" column="OrganID"/>
+        <result property="recipientname" column="recipientName"/>
+        <result property="recipientphone" column="recipientPhone"/>
+        <result property="recipientdescribe" column="recipientDescribe"/>
+        <result property="hospitalno" column="hospitalNo"/>
+        <result property="hospitalname" column="hospitalName"/>
+        <result property="hospitaldept" column="hospitalDept"/>
+        <result property="doctorname" column="doctorName"/>
+        <result property="doctorphone" column="doctorPhone"/>
+        <result property="doctordescribe" column="doctorDescribe"/>
+        <result property="donateresult" column="donateResult"/>
+        <result property="followupdescribe" column="followupDescribe"/>
+        <result property="followupno" column="followupNo"/>
+        <result property="followuptime" column="followupTime"/>
+        <result property="del_flag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
     </resultMap>
 
     <sql id="selectServiceDonatefollowupVo">
-        select ID, seqNo, InfoID, OrganID, recipientName, recipientPhone, recipientDescribe, hospitalNo, hospitalName, hospitalDept, doctorName, doctorPhone, doctorDescribe, donateResult, followupDescribe, followupNo, followupTime, del_flag, create_by, create_time, update_by, update_time from service_donatefollowup
+        select ID,
+               seqNo,
+               InfoID,
+               OrganID,
+               recipientName,
+               recipientPhone,
+               recipientDescribe,
+               hospitalNo,
+               hospitalName,
+               hospitalDept,
+               doctorName,
+               doctorPhone,
+               doctorDescribe,
+               donateResult,
+               followupDescribe,
+               followupNo,
+               followupTime,
+               del_flag,
+               create_by,
+               create_time,
+               update_by,
+               update_time
+        from service_donatefollowup
     </sql>
 
-    <select id="selectServiceDonatefollowupList" parameterType="com.ruoyi.project.domain.ServiceDonatefollowup" resultMap="ServiceDonatefollowupResult">
+    <select id="selectServiceDonatefollowupList" parameterType="com.ruoyi.project.domain.ServiceDonatefollowup"
+            resultMap="ServiceDonatefollowupResult">
         <include refid="selectServiceDonatefollowupVo"/>
         <where>
-            <if test="seqno != null "> and seqNo = #{seqno}</if>
-            <if test="recipientname != null  and recipientname != ''"> and recipientName like concat('%', #{recipientname}, '%')</if>
-            <if test="hospitalname != null  and hospitalname != ''"> and hospitalName like concat('%', #{hospitalname}, '%')</if>
-            <if test="donateresult != null  and donateresult != ''"> and donateResult = #{donateresult}</if>
+            <if test="seqno != null ">and seqNo = #{seqno}</if>
+            <if test="recipientname != null  and recipientname != ''">and recipientName like concat('%',
+                #{recipientname}, '%')
+            </if>
+            <if test="hospitalname != null  and hospitalname != ''">and hospitalName like concat('%', #{hospitalname},
+                '%')
+            </if>
+            <if test="donateresult != null  and donateresult != ''">and donateResult = #{donateresult}</if>
         </where>
     </select>
     <select id="selectAll" resultType="com.ruoyi.project.domain.ServiceDonatefollowup">
         <include refid="selectServiceDonatefollowupVo"/>
         <where>
-            <if test="seqno != null "> and seqNo = #{seqno}</if>
-            <if test="infoid != null "> and InfoID = #{infoid}</if>
-            <if test="organid != null "> and OrganID = #{organid}</if>
-            <if test="recipientname != null  and recipientname != ''"> and recipientName like concat('%', #{recipientname}, '%')</if>
-            <if test="hospitalname != null  and hospitalname != ''"> and hospitalName like concat('%', #{hospitalname}, '%')</if>
-            <if test="donateresult != null  and donateresult != ''"> and donateResult = #{donateresult}</if>
+            <if test="seqno != null ">and seqNo = #{seqno}</if>
+            <if test="infoid != null ">and InfoID = #{infoid}</if>
+            <if test="organid != null ">and OrganID = #{organid}</if>
+            <if test="recipientname != null  and recipientname != ''">and recipientName like concat('%',
+                #{recipientname}, '%')
+            </if>
+            <if test="hospitalname != null  and hospitalname != ''">and hospitalName like concat('%', #{hospitalname},
+                '%')
+            </if>
+            <if test="donateresult != null  and donateresult != ''">and donateResult = #{donateresult}</if>
         </where>
+        <if test="pageNum != null and pageSize != null">limit #{pageNum},#{pageSize}</if>
     </select>
     <select id="selectFollowUpById" resultType="com.ruoyi.project.domain.ServiceDonatefollowup">
         <include refid="selectServiceDonatefollowupVo"/>
@@ -124,14 +156,18 @@
         )))
 
         <where>
-            <if test="donorno != null  and donorno != ''"> and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
-            <if test="name != null  and name != ''"> and `service_donatebaseinfo`.`Name` = #{name}</if>
-            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''"> and `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}</if>
-            <if test="basecreateby != null  and basecreateby != ''"> and `service_donatebaseinfo`.`create_by` = #{basecreateby}</if>
+            <if test="donorno != null  and donorno != ''">and `service_donatebaseinfo`.`DonorNo` = #{donorno}</if>
+            <if test="name != null  and name != ''">and `service_donatebaseinfo`.`Name` = #{name}</if>
+            <if test="treatmenthospitalno != null  and treatmenthospitalno != ''">and
+                `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}
+            </if>
+            <if test="basecreateby != null  and basecreateby != ''">and `service_donatebaseinfo`.`create_by` =
+                #{basecreateby}
+            </if>
         </where>
 
         order by `service_donatefollowup`.`create_time` desc
 
     </select>
 
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
index 55c3a37..e2fc8ae 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
@@ -37,12 +37,14 @@
         from service_donatemaintenance
     </sql>
 
-    <select id="selectServiceDonatemaintenanceList" parameterType="com.ruoyi.project.domain.ServiceDonatemaintenance"
-            resultType="com.ruoyi.project.domain.dto.DonationCompletionBaseInfoDTO">
+    <select id="selectServiceDonatemaintenanceList" parameterType="com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO"
+            resultType="com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO">
         select
         sd.treatmenthospitalname AS treatmenthospitalname,
         sd.treatmenthospitalno AS treatmenthospitalno,
         sd.DonorNo AS donorno,
+        sd.extracontent AS extracontent,
+        sd.inpatientno AS inpatientno,
         sd.DonationCategory as donationcategory,
         sd.case_no AS caseNo,
         sd.NAME AS name,
@@ -52,10 +54,15 @@
         sd.BloodType AS bloodtype,
         sd.idcardno AS idcardno,
         sd.diagnosisname AS diagnosisname,
-        sdm.id AS infoid,
+        sd.ReportTime AS reportTime,
+        sd.RhYin AS rhYin,
+        sd.IllnessOverview AS illnessOverview,
+        sd.id AS infoid,
+        sdm.id AS id,
         sdm.item_no as itemNo,
         sdm.item_name as itemName,
         sdm.item_time as itemTime,
+        sdt.DeathTime as deathTime,
         sdm.item_desc as itemDesc
         FROM
         service_donatebaseinfo sd
@@ -63,10 +70,13 @@
         AND sd.del_flag = 0
         AND sdm.del_flag = 0
         and sdm.ID is not null
+        left join service_deathinfo sdt on sd.ID = sdt.infoID and sdt.del_flag=0 and sdt.ID is not null
         <where>
             sd.termination_case = 0
-            <if test="infoid != null ">and InfoID = #{infoid}</if>
+            <if test="infoid != null ">and sd.ID = #{infoid}</if>
+            <if test="inpatientno != null ">and sd.InpatientNo = #{inpatientno}</if>
             <if test="caseNo != null  and caseNo != ''">and case_no = #{caseNo}</if>
+            <if test="reportTime != null ">and ReportTime = #{reportTime}</if>
             <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
             <if test="name != null  and name != ''">and name = #{name}</if>
             <if test="coordinatorName != null  and coordinatorName != ''">and coordinator_name = #{coordinatorName}</if>
@@ -75,6 +85,7 @@
             <if test="itemTime != null ">and item_time = #{itemTime}</if>
             <if test="itemDesc != null  and itemDesc != ''">and item_desc = #{itemDesc}</if>
         </where>
+        <if test="pageNum != null and pageSize != null">limit #{pageNum},#{pageSize}</if>
     </select>
 
 </mapper>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml
index 4965a03..d96ae75 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganBaseMapper.xml
@@ -63,6 +63,8 @@
         sd.DonorNo AS donorno,
         sd.DonationCategory as donationcategory,
         sd.case_no AS caseNo,
+        sd.extracontent AS extracontent,
+        sd.InpatientNo AS inpatientno,
         sd.Name AS NAME,
         sd.Sex AS sex,
         sd.Age AS age,
@@ -82,6 +84,8 @@
         <where>
             sd.termination_case = 0
             <if test="donorno != null  and donorno != ''">and sd.DonorNo = #{donorno}</if>
+            <if test="infoid != null ">and sd.ID = #{infoid}</if>
+            <if test="inpatientno != null ">and sd.InpatientNo = #{inpatientno}</if>
             <if test="treatmenthospitalname != null  and treatmenthospitalname != ''">and sd.treatmenthospitalname like
                 concat('%', #{treatmenthospitalname}, '%')
             </if>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
index c69d04c..a27acad 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -108,7 +108,8 @@
         </where>
     </select>
 
-    <select id="getDonationwitnessBaseInfo" parameterType="com.ruoyi.project.domain.vo.DonationwitnessBaseInfoVO" resultType="com.ruoyi.project.domain.dto.DonationwitnessBaseInfoDTO">
+    <select id="getDonationwitnessBaseInfo" parameterType="com.ruoyi.project.domain.vo.DonationwitnessBaseInfoVO"
+            resultType="com.ruoyi.project.domain.dto.DonationwitnessBaseInfoDTO">
         select
         sd.treatmenthospitalname AS treatmenthospitalname,
         sd.treatmenthospitalno AS treatmenthospitalno,
@@ -116,6 +117,8 @@
         sd.DonorNo AS donorno,
         sd.case_no AS caseNo,
         sd.NAME AS name,
+        sd.extracontent AS extracontent,
+        sd.InpatientNo AS inpatientno,
         sd.RecordState AS recordstate,
         sd.Sex AS sex,
         sd.Age AS age,
@@ -124,6 +127,7 @@
         sd.diagnosisname AS diagnosisname,
         st.coordinator_in_operating as coordinatorInOperating,
         sd.id AS infoid,
+        st.id as id,
         st.coordinator_out_operating as coordinatorOutOperating,
         st.coordinator_sign as coordinatorSign,
         st.coordinator_sign_time as coordinatorSignTime,
@@ -162,11 +166,12 @@
             <if test="name != null  and name != ''">and sd.Name like concat('%', #{name}, '%')</if>
             <if test="inpatientno != null  and inpatientno != ''">and sd.inpatientno = #{inpatientno}</if>
             <if test="donorno != null  and donorno != ''">and st.DonorNo = #{donorno}</if>
-            <if test="gainhospitalname != null  and gainhospitalname != ''">and  st.GainHospitalName like concat('%',
+            <if test="gainhospitalname != null  and gainhospitalname != ''">and st.GainHospitalName like concat('%',
                 #{gainhospitalname}, '%')
             </if>
-            <if test="operationdoctor != null  and operationdoctor != ''">and  st.OperationDoctor = #{operationdoctor}</if>
-            <if test="infoid != null">and  st.InfoID = #{infoid}</if>
+            <if test="operationdoctor != null  and operationdoctor != ''">and st.OperationDoctor = #{operationdoctor}
+            </if>
+            <if test="infoid != null">and sd.ID = #{infoid}</if>
         </where>
         <if test="pageNum != null and pageSize != null">limit #{pageNum},#{pageSize}</if>
     </select>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
index 08e72e9..6eb01fc 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
@@ -7,6 +7,7 @@
     <resultMap type="com.ruoyi.project.domain.ServiceDonationwitnessorgan" id="ServiceDonationwitnessorganResult">
         <result property="id" column="ID"/>
         <result property="infoid" column="InfoID"/>
+        <result property="donationwitnessId" column="donationwitness_id"/>
         <result property="donorno" column="DonorNo"/>
         <result property="organno" column="OrganNo"/>
         <result property="organname" column="OrganName"/>
@@ -35,6 +36,7 @@
     <sql id="selectServiceDonationwitnessorganVo">
         select ID,
                InfoID,
+               donationwitness_id,
                DonorNo,
                organ_start_time,
                OrganNo,
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml
index 0964082..7d40f97 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml
@@ -85,6 +85,8 @@
         sd.treatmenthospitalno as treatmenthospitalno,
         sd.DonationCategory as donationcategory,
         sd.DonorNo as donorno,
+        sd.extracontent as extracontent,
+        sd.InpatientNo as inpatientno,
         sd.case_no as caseNo,
         sd.Name as name,
         sd.RecordState as recordstate,
@@ -106,8 +108,8 @@
         AND se.del_flag = 0 and se.ID is not null
         <where>
             sd.termination_case = 0
-
-            <if test="infoid != null ">and se.InfoID = #{infoid}</if>
+            <if test="infoid != null ">and sd.id = #{infoid}</if>
+            <if test="inpatientno != null ">and sd.InpatientNo = #{inpatientno}</if>
             <if test="caseNo != null  and caseNo != ''">and sd.case_no = #{caseNo}</if>
             <if test="expertConclusion != null ">and se.expert_conclusion = #{expertConclusion}</if>
             <if test="expertName != null ">and se.expert_name = #{expertName}</if>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml
index 2b3e119..a96050d 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceExternalpersonMapper.xml
@@ -21,7 +21,7 @@
         <result property="depositbank" column="DepositBank"/>
         <result property="branchbankname" column="BranchBankName"/>
         <result property="bankcardno" column="BankCardNo"/>
-        <result property="del_flag" column="del_flag"/>
+        <result property="delFlag" column="del_flag"/>
         <result property="createBy" column="create_by"/>
         <result property="createTime" column="create_time"/>
         <result property="updateBy" column="update_by"/>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
index 89cc4fc..13b1255 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
@@ -45,6 +45,7 @@
         <result property="treatmenthospitalno" column="TreatmentHospitalNo"/>
         <result property="sex" column="Sex"/>
         <result property="age" column="Age"/>
+        <result property="name" column="Name"/>
         <result property="bloodtype" column="BloodType"/>
         <result property="idcardno" column="idcardno"/>
         <result property="diagnosisname" column="diagnosisname"/>
@@ -53,6 +54,8 @@
         <result property="assessState" column="assess_state"/>
         <result property="assessannex" column="AssessAnnex"/>
         <result property="donationcategory" column="donationcategory"/>
+        <result property="extracontent" column="extracontent"/>
+        <result property="inpatientno" column="InpatientNo"/>
     </resultMap>
 
     <sql id="selectServiceMedicalevaluationVo">
@@ -198,6 +201,7 @@
         sb.DonorNo,
         sb.case_no,
         sb.Name,
+        sb.extracontent,
         sb.Sex,
         sb.Age,
         sb.BloodType,
@@ -206,7 +210,7 @@
         sb.recordstate,
         sb.coordinator_name,
         sb.id as infoID,
-        sm.ID,
+        sm.ID as id,
         sm.assessannex,
         sm.assess_time,
         sm.assess_state
@@ -215,7 +219,8 @@
         and sb.del_flag = 0 and sm.ID is not null
         <where>
             sb.termination_case = 0
-            <if test="infoid != null">AND sm.InfoID = #{infoid}</if>
+            <if test="infoid != null">AND sb.ID = #{infoid}</if>
+            <if test="inpatientno != null">AND sb.InpatientNo = #{inpatientno}</if>
             <if test="caseNo != null and caseNo != ''">AND sm.case_no = #{caseNo}</if>
             <if test="donorno != null and donorno != ''">AND sm.DonorNo = #{donorno}</if>
             <if test="diagnosisname != null and diagnosisname != ''">AND sm.DiagnosisName = #{diagnosisname}</if>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml
index be39482..d67da28 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml
@@ -7,6 +7,7 @@
     <resultMap type="com.ruoyi.project.domain.ServiceMedicalevaluationorgan" id="ServiceMedicalevaluationorganResult">
         <result property="id" column="ID"/>
         <result property="infoid" column="InfoID"/>
+        <result property="medicalId" column="medical_id"/>
         <result property="donorno" column="DonorNo"/>
         <result property="organno" column="OrganNo"/>
         <result property="organname" column="OrganName"/>
@@ -30,6 +31,7 @@
     <sql id="selectServiceMedicalevaluationorganVo">
         select ID,
                InfoID,
+               medical_id,
                DonorNo,
                assesscontent,
                OrganNo,
@@ -57,6 +59,7 @@
         <include refid="selectServiceMedicalevaluationorganVo"/>
         <where>
             <if test="infoid != null ">and InfoID = #{infoid}</if>
+            <if test="medicalId != null ">and medical_id = #{medicalId}</if>
             <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
             <if test="organno != null  and organno != ''">and OrganNo = #{organno}</if>
             <if test="organname != null  and organname != ''">and OrganName like concat('%', #{organname}, '%')</if>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
index f8620d8..99b0ec9 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
@@ -271,33 +271,51 @@
         sd.DonorNo as donorno,
         sd.case_no as caseNo,
         sd.Name as name,
+        sd.InpatientNo as inpatientno,
+        sd.extracontent as extracontent,
         sd.RecordState as recordstate,
         sd.Sex as sex,
         sd.Age as age,
         sd.BloodType as bloodtype,
         sd.idcardno as idcardno,
         sd.diagnosisname as diagnosisname,
-        sr.infoID as infoid,
+        sd.ID as infoid,
         sr.ID as id,
+        sr.Name as relativesName,
+        sr.FamilyRelations as familyRelations,
+        sr.IDCardType as idCardType,
+        sr.IDCardNo as idCardNo,
+        sr.Phone as phone,
+        sr.Kinship_ChildrenNum as kinshipChildrenNum,
+        sr.KinshipConfirmationSign as kinshipConfirmationSign,
         sr.RelativeConfirmationSign as relativeConfirmationSign,
+        sr.OrganDecision as organDecision,
+        sr.OrganDecision_Other as organDecisionOther,
+        sr.SignFamilyRelations as signFamilyRelations,
         sr.SignDate as signdate,
         sr.ResponsibleUserName as responsibleusername,
         sr.ResponsibleUserID as responsibleuserid,
         sr.CoordinatedUserIDO as coordinateduserido,
         sr.CoordinatedUserNameO as coordinatedusernameo,
         sr.CoordinatedUserNameT as coordinateduseridt,
-        sr.ResponsibleUserID as responsibleuserid
+        sr.ResponsibleUserID as responsibleuserid,
+        sr.nation as nation,
+        sr.occupation as occupation,
+        sr.relative_remark as relativeRemark,
+        sr.assessannex as assessannex,
+        sr.education as education
         FROM service_donatebaseinfo sd
         LEFT JOIN service_relativesconfirmation sr ON sd.ID = sr.InfoID and sd.del_flag = 0
         AND sr.del_flag = 0
         <where>
-            <if test="infoid != null and infoid != ''">AND sr.InfoID = #{infoid}</if>
+            <if test="infoid != null">AND sd.ID = #{infoid}</if>
             <if test="recordstate != null and recordstate != ''">AND sd.RecordState = #{recordstate}</if>
             <if test="caseNo != null and caseNo != ''">AND sd.case_no = #{caseNo}</if>
             <if test="treatmenthospitalname != null and treatmenthospitalname != ''">AND sd.TreatmentHospitalName =
                 #{treatmenthospitalname}
             </if>
             <if test="name != null and name != ''">AND sd.Name = #{name}</if>
+            <if test="inpatientno != null ">AND sd.InpatientNo = #{inpatientno}</if>
             <if test="responsibleusername != null and responsibleusername != ''">AND sd.ResponsibleUserName =
                 #{responsibleusername}
             </if>

--
Gitblit v1.9.3