From 2b7ad68415a5bced753fa76699fa16ee3142859b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 25 十二月 2023 19:30:02 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessorganMapper.java            |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java                  |  118 +++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonorchargeorganServiceImpl.java     |   78 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecompletioninfoController.java  |   50 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java           |   23 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessController.java       |   23 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecomporganMapper.java                 |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java          |    3 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java                       |  173 +++++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessorganServiceImpl.java |   87 ++
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecompletioninfoService.java         |   15 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessorganService.java         |   24 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonorchargeorganMapper.java                |   25 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java |   88 ++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java                      |  105 +++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java                           |   13 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessorganController.java  |  129 ++++
 ruoyi-project/src/main/resources/mapper/project/ServiceDonorchargeorganMapper.xml                      |   54 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecomporganServiceImpl.java      |  121 ++++
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml                  |   88 ++
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecomporganService.java              |   23 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java       |  129 ++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonorchargeorganController.java      |  128 ++++
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml                           |    5 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java                         |   10 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecompletioninfo.java                  |   73 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonorchargeorganService.java             |   23 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml                       |  138 ++++
 28 files changed, 1,744 insertions(+), 52 deletions(-)

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 b3309fa..be25514 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
@@ -1,7 +1,6 @@
 package com.ruoyi.web.controller.project;
 
 import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.controller.BaseController;
@@ -9,11 +8,13 @@
 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.poi.ExcelUtil;
 import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
 import com.ruoyi.project.domain.ServiceDonateorgan;
 import com.ruoyi.project.domain.vo.DonationCompletionVO;
 import com.ruoyi.project.service.IServiceDonatecompletioninfoService;
+import com.ruoyi.project.service.IServiceDonatecomporganService;
 import com.ruoyi.project.service.IServiceDonateorganService;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
@@ -46,6 +47,9 @@
 
     @Autowired
     private IServiceDonateorganService serviceDonateorganService;
+
+    @Autowired
+    private IServiceDonatecomporganService serviceDonatecomporganService;
 
     private static Configuration configuration = null;
 
@@ -117,6 +121,50 @@
         return toAjax(serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo));
     }
 
+//    /**
+//     * 鏂板鎹愮尞瀹屾垚璇︽儏
+//     */
+//    @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);
+//            }
+//        }
+//        return toAjax(serviceDonatecompletioninfoService.save(serviceDonatecompletioninfo));
+//    }
+
+    @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);
+    }
+
     /**
      * 淇敼鎹愮尞瀹屾垚
      */
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
new file mode 100644
index 0000000..2830468
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
@@ -0,0 +1,129 @@
+package com.ruoyi.web.controller.project;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+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.exception.base.BaseException;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
+import com.ruoyi.project.service.IServiceDonatecomporganService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绉绘Controller
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Slf4j
+@Api("鎹愮尞鍣ㄥ畼绉绘")
+@RestController
+@RequestMapping("/project/donatecomporgan")
+public class ServiceDonatecomporganController extends BaseController {
+    @Autowired
+    private IServiceDonatecomporganService serviceDonatecomporganService;
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼绉绘鍒楄〃
+     */
+    @ApiOperation("鏌ヨ鎹愮尞鍣ㄥ畼绉绘鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('system:donatecomporgan:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ServiceDonatecomporgan serviceDonatecomporgan) {
+        startPage();
+        List<ServiceDonatecomporgan> list = serviceDonatecomporganService.queryList(serviceDonatecomporgan);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鎹愮尞鍣ㄥ畼绉绘鍒楄〃
+     */
+    @ApiOperation("瀵煎嚭鎹愮尞鍣ㄥ畼绉绘鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('system:donatecomporgan:export')")
+    @Log(title = "鎹愮尞鍣ㄥ畼绉绘", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(ServiceDonatecomporgan serviceDonatecomporgan) {
+        List<ServiceDonatecomporgan> list = serviceDonatecomporganService.queryList(serviceDonatecomporgan);
+        ExcelUtil<ServiceDonatecomporgan> util = new ExcelUtil<ServiceDonatecomporgan>(ServiceDonatecomporgan.class);
+        return util.exportExcel(list, "鎹愮尞鍣ㄥ畼绉绘鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鎹愮尞鍣ㄥ畼绉绘璇︾粏淇℃伅
+     */
+    @ApiOperation("鑾峰彇鎹愮尞鍣ㄥ畼绉绘璇︾粏淇℃伅")
+    @PreAuthorize("@ss.hasPermi('system:donatecomporgan:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(serviceDonatecomporganService.getById(id));
+    }
+
+    /**
+     * 鏂板鎹愮尞鍣ㄥ畼绉绘
+     */
+    @ApiOperation("鏂板鎹愮尞鍣ㄥ畼绉绘")
+    @PreAuthorize("@ss.hasPermi('system:donatecomporgan:add')")
+    @Log(title = "鎹愮尞鍣ㄥ畼绉绘", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @RepeatSubmit
+    public AjaxResult add(@RequestBody ServiceDonatecomporgan serviceDonatecomporgan) {
+        return toAjax(serviceDonatecomporganService.save(serviceDonatecomporgan));
+    }
+
+    /**
+     * 淇敼鎹愮尞鍣ㄥ畼绉绘
+     */
+    @ApiOperation("淇敼鎹愮尞鍣ㄥ畼绉绘")
+    @PreAuthorize("@ss.hasPermi('system:donatecomporgan:edit')")
+    @Log(title = "鎹愮尞鍣ㄥ畼绉绘", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @RepeatSubmit
+    public AjaxResult edit(@RequestBody ServiceDonatecomporgan serviceDonatecomporgan) {
+        return toAjax(serviceDonatecomporganService.updateById(serviceDonatecomporgan));
+    }
+
+    /**
+     * 鍒犻櫎鎹愮尞鍣ㄥ畼绉绘
+     */
+    @ApiOperation("鍒犻櫎鎹愮尞鍣ㄥ畼绉绘")
+    @PreAuthorize("@ss.hasPermi('system:donatecomporgan:remove')")
+    @Log(title = "鎹愮尞鍣ㄥ畼绉绘", businessType = BusinessType.DELETE)
+    @GetMapping("/remove/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(serviceDonatecomporganService.removeByIds(Arrays.asList(ids)));
+    }
+
+
+    @RepeatSubmit
+    @ApiOperation("鏂板鎴栦慨鏀规崘鐚櫒瀹樼Щ妞�")
+    @Log(title = "鎹愮尞瀹屾垚", businessType = BusinessType.UPDATE)
+    @PostMapping("/saveOrUpdateDonatecomporgan")
+    public AjaxResult saveOrUpdateDonatecomporgan(@RequestBody List<ServiceDonatecomporgan> serviceDonatecomporganList) {
+        if (CollectionUtils.isNotEmpty(serviceDonatecomporganList)) {
+            throw new BaseException("璇锋鏌ラ渶瑕佹柊澧炴垨淇敼鐨勫弬鏁版槸鍚﹀畬鏁�");
+        }
+        Boolean i = null;
+        for (ServiceDonatecomporgan serviceDonatecompletion : serviceDonatecomporganList) {
+            log.info("鎹愮尞鍣ㄥ畼绉绘id鏄惁涓虹┖ : {},鍩虹琛ㄧ殑id涓� : {}", serviceDonatecompletion.getId(), serviceDonatecompletion.getInfoid());
+            if (serviceDonatecompletion.getId() == null) {
+                i = serviceDonatecomporganService.save(serviceDonatecompletion);
+            } else {
+                i = serviceDonatecomporganService.updateById(serviceDonatecompletion);
+            }
+        }
+        return toAjax(i);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java
index bbef2d5..4b621a4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonateorganController.java
@@ -7,8 +7,10 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
 import com.ruoyi.project.domain.ServiceDonateorgan;
 import com.ruoyi.project.domain.ServiceDonateorganVO;
 import com.ruoyi.project.domain.ServiceOrganallocation;
@@ -18,6 +20,7 @@
 import com.ruoyi.project.service.IServiceOrganallocationService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
@@ -31,6 +34,7 @@
  * @author ruoyi
  * @date 2021-11-10
  */
+@Slf4j
 @Api("鎹愮尞鍣ㄥ畼绠$悊")
 @RestController
 @RequestMapping("/project/donateorgan")
@@ -280,5 +284,24 @@
         return AjaxResult.success(serviceDonateorganService.getOrganCount(timeVO));
     }
 
+    @RepeatSubmit
+    @ApiOperation("鏂板鎴栦慨鏀规崘鐚櫒瀹樼鐞�")
+    @Log(title = "鎹愮尞瀹屾垚", businessType = BusinessType.UPDATE)
+    @PostMapping("/saveOrUpdateDonateorgan")
+    public AjaxResult saveOrUpdateDonateorgan(@RequestBody List<ServiceDonateorgan> serviceDonateorganList) {
+        if (CollectionUtils.isEmpty(serviceDonateorganList)) {
+            throw new BaseException("璇锋鏌ラ渶瑕佹柊澧炴垨淇敼鐨勬崘鐚櫒瀹樼鐞嗗弬鏁版槸鍚﹀畬鏁�");
+        }
+        Boolean i = null;
+        for (ServiceDonateorgan serviceDonateorgan : serviceDonateorganList) {
+            log.info("鎹愮尞鍣ㄥ畼绉绘id鏄惁涓虹┖ : {},鍩虹琛ㄧ殑id涓� : {}", serviceDonateorgan.getId(), serviceDonateorgan.getInfoid());
+            if (serviceDonateorgan.getId() == null) {
+                i = serviceDonateorganService.save(serviceDonateorgan);
+            } else {
+                i = serviceDonateorganService.updateById(serviceDonateorgan);
+            }
+        }
+        return toAjax(i);
+    }
 
 }
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 e622cbf..5121488 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
@@ -7,6 +7,7 @@
 import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.enums.OrganEnum;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.project.domain.ServiceDonateorgan;
 import com.ruoyi.project.domain.vo.DonationWitnessVO;
@@ -20,7 +21,9 @@
 import freemarker.template.TemplateException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 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.PathVariable;
@@ -43,6 +46,7 @@
  * @author ruoyi
  * @date 2021-11-17
  */
+@Slf4j
 @Api("鎹愮尞瑙佽瘉绠$悊")
 @RestController
 @RequestMapping("/project/donationwitness")
@@ -518,5 +522,24 @@
         return AjaxResult.success(serviceDonationwitnessService.getStats(timeVO));
     }
 
+    @RepeatSubmit
+    @ApiOperation("鏂板鎴栦慨鏀规崘鐚璇佺鐞�")
+    @Log(title = "鎹愮尞瀹屾垚", businessType = BusinessType.UPDATE)
+    @PostMapping("/saveOrUpdateDonationwitness")
+    public AjaxResult saveOrUpdateDonationwitness(@RequestBody List<ServiceDonationwitness> serviceDonationwitnessList) {
+        if (CollectionUtils.isEmpty(serviceDonationwitnessList)) {
+            throw new BaseException("璇锋鏌ラ渶瑕佹柊澧炴垨淇敼鐨勬崘鐚璇佺鐞嗗弬鏁版槸鍚﹀畬鏁�");
+        }
+        Boolean i = null;
+        for (ServiceDonationwitness serviceDonationwitness : serviceDonationwitnessList) {
+            log.info("鎹愮尞瑙佽瘉绠$悊id鏄惁涓虹┖ : {},鍩虹琛ㄧ殑id涓� : {}", serviceDonationwitness.getId(), serviceDonationwitness.getInfoid());
+            if (serviceDonationwitness.getId() == null) {
+                i = serviceDonationwitnessService.save(serviceDonationwitness);
+            } else {
+                i = serviceDonationwitnessService.updateById(serviceDonationwitness);
+            }
+        }
+        return toAjax(i);
+    }
 
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessorganController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessorganController.java
new file mode 100644
index 0000000..ff22b0f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonationwitnessorganController.java
@@ -0,0 +1,129 @@
+package com.ruoyi.web.controller.project;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+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.exception.base.BaseException;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.project.domain.ServiceDonationwitness;
+import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
+import com.ruoyi.project.service.IServiceDonationwitnessorganService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼鑾峰彇Controller
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Slf4j
+@Api("鎹愮尞鍣ㄥ畼鑾峰彇")
+@RestController
+@RequestMapping("/system/donationwitnessorgan")
+public class ServiceDonationwitnessorganController extends BaseController {
+    @Autowired
+    private IServiceDonationwitnessorganService serviceDonationwitnessorganService;
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鑾峰彇鍒楄〃
+     */
+    @ApiOperation("鏌ヨ鎹愮尞鍣ㄥ畼鑾峰彇鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('system:donationwitnessorgan:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ServiceDonationwitnessorgan serviceDonationwitnessorgan) {
+        startPage();
+        List<ServiceDonationwitnessorgan> list = serviceDonationwitnessorganService.queryList(serviceDonationwitnessorgan);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鎹愮尞鍣ㄥ畼鑾峰彇鍒楄〃
+     */
+    @ApiOperation("瀵煎嚭鎹愮尞鍣ㄥ畼鑾峰彇鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('system:donationwitnessorgan:export')")
+    @Log(title = "鎹愮尞鍣ㄥ畼鑾峰彇", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(ServiceDonationwitnessorgan serviceDonationwitnessorgan) {
+        List<ServiceDonationwitnessorgan> list = serviceDonationwitnessorganService.queryList(serviceDonationwitnessorgan);
+        ExcelUtil<ServiceDonationwitnessorgan> util = new ExcelUtil<ServiceDonationwitnessorgan>(ServiceDonationwitnessorgan.class);
+        return util.exportExcel(list, "鎹愮尞鍣ㄥ畼鑾峰彇鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鎹愮尞鍣ㄥ畼鑾峰彇璇︾粏淇℃伅
+     */
+    @ApiOperation("鑾峰彇鎹愮尞鍣ㄥ畼鑾峰彇璇︾粏淇℃伅")
+    @PreAuthorize("@ss.hasPermi('system:donationwitnessorgan:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(serviceDonationwitnessorganService.getById(id));
+    }
+
+    /**
+     * 鏂板鎹愮尞鍣ㄥ畼鑾峰彇
+     */
+    @ApiOperation("鏂板鎹愮尞鍣ㄥ畼鑾峰彇")
+    @PreAuthorize("@ss.hasPermi('system:donationwitnessorgan:add')")
+    @Log(title = "鎹愮尞鍣ㄥ畼鑾峰彇", businessType = BusinessType.INSERT)
+    @PostMapping
+    @RepeatSubmit
+    public AjaxResult add(@RequestBody ServiceDonationwitnessorgan serviceDonationwitnessorgan) {
+        return toAjax(serviceDonationwitnessorganService.save(serviceDonationwitnessorgan));
+    }
+
+    /**
+     * 淇敼鎹愮尞鍣ㄥ畼鑾峰彇
+     */
+    @ApiOperation("淇敼鎹愮尞鍣ㄥ畼鑾峰彇")
+    @PreAuthorize("@ss.hasPermi('system:donationwitnessorgan:edit')")
+    @Log(title = "鎹愮尞鍣ㄥ畼鑾峰彇", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @RepeatSubmit
+    public AjaxResult edit(@RequestBody ServiceDonationwitnessorgan serviceDonationwitnessorgan) {
+        return toAjax(serviceDonationwitnessorganService.updateById(serviceDonationwitnessorgan));
+    }
+
+    /**
+     * 鍒犻櫎鎹愮尞鍣ㄥ畼鑾峰彇
+     */
+    @ApiOperation("鍒犻櫎鎹愮尞鍣ㄥ畼鑾峰彇")
+    @PreAuthorize("@ss.hasPermi('system:donationwitnessorgan:remove')")
+    @Log(title = "鎹愮尞鍣ㄥ畼鑾峰彇", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(serviceDonationwitnessorganService.removeByIds(Arrays.asList(ids)));
+    }
+
+
+    @RepeatSubmit
+    @ApiOperation("鏂板鎴栦慨鏀规崘鐚櫒瀹樿幏鍙�")
+    @Log(title = "鎹愮尞鍣ㄥ畼鑾峰彇", businessType = BusinessType.UPDATE)
+    @PostMapping("/saveOrUpdateDonationwitnessorgan")
+    public AjaxResult saveOrUpdateDonationwitnessorgan(@RequestBody List<ServiceDonationwitnessorgan> serviceDonationwitnessorganList) {
+        if (CollectionUtils.isEmpty(serviceDonationwitnessorganList)) {
+            throw new BaseException("璇锋鏌ラ渶瑕佹柊澧炴垨淇敼鐨勬崘鐚櫒瀹樿幏鍙栧弬鏁版槸鍚﹀畬鏁�");
+        }
+        Boolean i = null;
+        for (ServiceDonationwitnessorgan serviceDonationwitnessorgan : serviceDonationwitnessorganList) {
+            log.info("鎹愮尞鍣ㄥ畼鑾峰彇id鏄惁涓虹┖ : {},鍩虹琛ㄧ殑id涓� : {}", serviceDonationwitnessorgan.getId(), serviceDonationwitnessorgan.getInfoid());
+            if (serviceDonationwitnessorgan.getId() == null) {
+                i = serviceDonationwitnessorganService.save(serviceDonationwitnessorgan);
+            } else {
+                i = serviceDonationwitnessorganService.updateById(serviceDonationwitnessorgan);
+            }
+        }
+        return toAjax(i);
+    }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonorchargeorganController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonorchargeorganController.java
new file mode 100644
index 0000000..6d868e7
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonorchargeorganController.java
@@ -0,0 +1,128 @@
+package com.ruoyi.web.controller.project;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+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.exception.base.BaseException;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
+import com.ruoyi.project.domain.ServiceDonorchargeorgan;
+import com.ruoyi.project.service.IServiceDonorchargeorganService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼Controller
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Slf4j
+@Api("鎹愮尞鍣ㄥ畼")
+@RestController
+@RequestMapping("/system/donorchargeorgan")
+public class ServiceDonorchargeorganController extends BaseController {
+    @Autowired
+    private IServiceDonorchargeorganService serviceDonorchargeorganService;
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鍒楄〃
+     */
+    @ApiOperation("鏌ヨ鎹愮尞鍣ㄥ畼鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('system:donorchargeorgan:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ServiceDonorchargeorgan serviceDonorchargeorgan) {
+        startPage();
+        List<ServiceDonorchargeorgan> list = serviceDonorchargeorganService.queryList(serviceDonorchargeorgan);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鎹愮尞鍣ㄥ畼鍒楄〃
+     */
+    @ApiOperation("瀵煎嚭鎹愮尞鍣ㄥ畼鍒楄〃")
+    @PreAuthorize("@ss.hasPermi('system:donorchargeorgan:export')")
+    @Log(title = "鎹愮尞鍣ㄥ畼", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(ServiceDonorchargeorgan serviceDonorchargeorgan) {
+        List<ServiceDonorchargeorgan> list = serviceDonorchargeorganService.queryList(serviceDonorchargeorgan);
+        ExcelUtil<ServiceDonorchargeorgan> util = new ExcelUtil<ServiceDonorchargeorgan>(ServiceDonorchargeorgan.class);
+        return util.exportExcel(list, "鎹愮尞鍣ㄥ畼鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鎹愮尞鍣ㄥ畼璇︾粏淇℃伅
+     */
+    @ApiOperation("鑾峰彇鎹愮尞鍣ㄥ畼璇︾粏淇℃伅")
+    @PreAuthorize("@ss.hasPermi('system:donorchargeorgan:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(serviceDonorchargeorganService.getById(id));
+    }
+
+    /**
+     * 鏂板鎹愮尞鍣ㄥ畼
+     */
+    @ApiOperation("鏂板鎹愮尞鍣ㄥ畼")
+    @PreAuthorize("@ss.hasPermi('system:donorchargeorgan:add')")
+    @Log(title = "鎹愮尞鍣ㄥ畼", businessType = BusinessType.INSERT)
+    @PostMapping
+    @RepeatSubmit
+    public AjaxResult add(@RequestBody ServiceDonorchargeorgan serviceDonorchargeorgan) {
+        return toAjax(serviceDonorchargeorganService.save(serviceDonorchargeorgan));
+    }
+
+    /**
+     * 淇敼鎹愮尞鍣ㄥ畼
+     */
+    @ApiOperation("淇敼鎹愮尞鍣ㄥ畼")
+    @PreAuthorize("@ss.hasPermi('system:donorchargeorgan:edit')")
+    @Log(title = "鎹愮尞鍣ㄥ畼", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @RepeatSubmit
+    public AjaxResult edit(@RequestBody ServiceDonorchargeorgan serviceDonorchargeorgan) {
+        return toAjax(serviceDonorchargeorganService.updateById(serviceDonorchargeorgan));
+    }
+
+    /**
+     * 鍒犻櫎鎹愮尞鍣ㄥ畼
+     */
+    @ApiOperation("鍒犻櫎鎹愮尞鍣ㄥ畼")
+    @PreAuthorize("@ss.hasPermi('system:donorchargeorgan:remove')")
+    @Log(title = "鎹愮尞鍣ㄥ畼", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(serviceDonorchargeorganService.removeByIds(Arrays.asList(ids)));
+    }
+
+    @RepeatSubmit
+    @ApiOperation("鏂板鎴栦慨鏀规崘鐚櫒瀹�")
+    @Log(title = "鎹愮尞鍣ㄥ畼", businessType = BusinessType.UPDATE)
+    @PostMapping("/saveOrUpdateDonorchargeorgan")
+    public AjaxResult saveOrUpdateDonorchargeorgan(@RequestBody List<ServiceDonorchargeorgan> serviceDonorchargeorganList) {
+        if (CollectionUtils.isEmpty(serviceDonorchargeorganList)) {
+            throw new BaseException("璇锋鏌ラ渶瑕佹柊澧炴垨淇敼鐨勬崘鐚櫒瀹樺弬鏁版槸鍚﹀畬鏁�");
+        }
+        Boolean i = null;
+        for (ServiceDonorchargeorgan serviceDonorchargeorgan : serviceDonorchargeorganList) {
+            log.info("鎹愮尞鍣ㄥ畼id鏄惁涓虹┖ : {},鍩虹琛ㄧ殑id涓� : {}", serviceDonorchargeorgan.getId(), serviceDonorchargeorgan.getInfoid());
+            if (serviceDonorchargeorgan.getId() == null) {
+                i = serviceDonorchargeorganService.save(serviceDonorchargeorgan);
+            } else {
+                i = serviceDonorchargeorganService.updateById(serviceDonorchargeorgan);
+            }
+        }
+        return toAjax(i);
+    }
+}
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 ad2a390..b08632f 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
@@ -1,6 +1,10 @@
 package com.ruoyi.project.domain;
 
+import java.beans.Transient;
 import java.util.Date;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -12,88 +16,121 @@
 
 /**
  * 鎹愮尞瀹屾垚瀵硅薄 service_donatecompletioninfo
- * 
+ *
  * @author ruoyi
  * @date 2021-11-19
  */
 @Data
 @ApiModel("鎹愮尞瀹屾垚")
-public class ServiceDonatecompletioninfo extends BaseEntity
-{
+public class ServiceDonatecompletioninfo extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** $column.columnComment */
+    /**
+     * $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/ServiceDonatecomporgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
new file mode 100644
index 0000000..db861ed
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatecomporgan.java
@@ -0,0 +1,173 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+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;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绉绘瀵硅薄 service_donatecomporgan
+ * 
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Data
+@ApiModel("鎹愮尞鍣ㄥ畼绉绘")
+public class ServiceDonatecomporgan 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;
+
+    /** 鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
+    @Excel(name = "鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
+    private String organno;
+
+    /** 鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ")
+    @Excel(name = "鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ")
+    private String organname;
+
+    /** 鍣ㄥ畼绉绘鐘舵�� 锛�0锛氭湭绉绘锛�1锛氬凡绉绘锛�2锛氬純鐢� */
+    @ApiModelProperty("鍣ㄥ畼绉绘鐘舵�� 锛�0锛氭湭绉绘锛�1锛氬凡绉绘锛�2锛氬純鐢�")
+    @Excel(name = "鍣ㄥ畼绉绘鐘舵�� 锛�0锛氭湭绉绘锛�1锛氬凡绉绘锛�2锛氬純鐢�")
+    private Long transplantstate;
+
+    /** 鏈Щ妞嶅師鍥� */
+    @ApiModelProperty("鏈Щ妞嶅師鍥�")
+    @Excel(name = "鏈Щ妞嶅師鍥�")
+    private String abandonreason;
+
+    /** 绉绘鏃堕棿 */
+    @ApiModelProperty("绉绘鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "绉绘鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date transplanttime;
+
+    /** 绉绘鍖荤敓 */
+    @ApiModelProperty("绉绘鍖荤敓")
+    @Excel(name = "绉绘鍖荤敓")
+    private String transplantdoct;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    private String transplanthospitalno;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    private String transplanthospitalname;
+
+    /** 绉绘浜哄鍚� */
+    @ApiModelProperty("绉绘浜哄鍚�")
+    @Excel(name = "绉绘浜哄鍚�")
+    private String name;
+
+    /** 绉绘浜烘�у埆 鏍规嵁瀛楀吀sys_user_sex */
+    @ApiModelProperty("绉绘浜烘�у埆 鏍规嵁瀛楀吀sys_user_sex")
+    @Excel(name = "绉绘浜烘�у埆 鏍规嵁瀛楀吀sys_user_sex")
+    private Long sex;
+
+    /** 绉绘浜鸿瘉浠剁被鍨� 鏍规嵁瀛楀吀sys_IDType */
+    @ApiModelProperty("绉绘浜鸿瘉浠剁被鍨� 鏍规嵁瀛楀吀sys_IDType")
+    @Excel(name = "绉绘浜鸿瘉浠剁被鍨� 鏍规嵁瀛楀吀sys_IDType")
+    private Long idcardtype;
+
+    /** 绉绘浜鸿瘉浠跺彿鐮� */
+    @ApiModelProperty("绉绘浜鸿瘉浠跺彿鐮�")
+    @Excel(name = "绉绘浜鸿瘉浠跺彿鐮�")
+    private String idcardno;
+
+    /** 绉绘浜哄勾榫� */
+    @ApiModelProperty("绉绘浜哄勾榫�")
+    @Excel(name = "绉绘浜哄勾榫�")
+    private Long age;
+
+    /** 绉绘浜哄勾榫勫崟浣� 鏍规嵁瀛楀吀sys_AgeUnit */
+    @ApiModelProperty("绉绘浜哄勾榫勫崟浣� 鏍规嵁瀛楀吀sys_AgeUnit")
+    @Excel(name = "绉绘浜哄勾榫勫崟浣� 鏍规嵁瀛楀吀sys_AgeUnit")
+    private String ageunit;
+
+    /** 绉绘浜哄嚭鐢熸棩鏈� */
+    @ApiModelProperty("绉绘浜哄嚭鐢熸棩鏈�")
+    @Excel(name = "绉绘浜哄嚭鐢熸棩鏈�")
+    private String birthday;
+
+    /** 绉绘浜鸿仈绯荤數璇� */
+    @ApiModelProperty("绉绘浜鸿仈绯荤數璇�")
+    @Excel(name = "绉绘浜鸿仈绯荤數璇�")
+    private String phone;
+
+    /** 绉绘浜虹幇浣忓湴鍧� */
+    @ApiModelProperty("绉绘浜虹幇浣忓湴鍧�")
+    @Excel(name = "绉绘浜虹幇浣忓湴鍧�")
+    private String residenceaddress;
+
+    /** 绉绘浜虹幇浣忓湴鍧�鐪佷唬鐮� */
+    @ApiModelProperty("绉绘浜虹幇浣忓湴鍧�鐪佷唬鐮�")
+    @Excel(name = "绉绘浜虹幇浣忓湴鍧�鐪佷唬鐮�")
+    private String residenceprovince;
+
+    /** 绉绘浜虹幇浣忓湴鍧�鐪佸悕绉� */
+    @ApiModelProperty("绉绘浜虹幇浣忓湴鍧�鐪佸悕绉�")
+    @Excel(name = "绉绘浜虹幇浣忓湴鍧�鐪佸悕绉�")
+    private String residenceprovincename;
+
+    /** 绉绘浜哄競缂栧彿 鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绉绘浜哄競缂栧彿 鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "绉绘浜哄競缂栧彿 鏍规嵁琛屾斂鍖哄垝琛�")
+    private String residencecity;
+
+    /** 绉绘浜哄競鍚嶇О */
+    @ApiModelProperty("绉绘浜哄競鍚嶇О")
+    @Excel(name = "绉绘浜哄競鍚嶇О")
+    private String residencecityname;
+
+    /** 绉绘浜烘墍灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绉绘浜烘墍灞炶閬擄紙闀囷級鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "绉绘浜烘墍灞炶閬�", readConverterExp = "闀�=")
+    private String residencetown;
+
+    /** 绉绘浜烘墍灞炶閬擄紙闀囷級鍚嶇О */
+    @ApiModelProperty("绉绘浜烘墍灞炶閬擄紙闀囷級鍚嶇О")
+    @Excel(name = "绉绘浜烘墍灞炶閬�", readConverterExp = "闀�=")
+    private String residencetownname;
+
+    /** 绉绘浜虹ぞ鍖猴紙鏉戯級缂栧彿 鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绉绘浜虹ぞ鍖猴紙鏉戯級缂栧彿 鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "绉绘浜虹ぞ鍖�", readConverterExp = "鏉�=")
+    private String residencecommunity;
+
+    /** 绉绘浜虹ぞ鍖猴紙鏉戯級鍚嶇О */
+    @ApiModelProperty("绉绘浜虹ぞ鍖猴紙鏉戯級鍚嶇О")
+    @Excel(name = "绉绘浜虹ぞ鍖�", readConverterExp = "鏉�=")
+    private String residencecommunityname;
+
+    /** 绉绘浜烘墍灞炲尯鍩熺紪鍙� 鏍规嵁琛屾斂鍖哄垝琛� */
+    @ApiModelProperty("绉绘浜烘墍灞炲尯鍩熺紪鍙� 鏍规嵁琛屾斂鍖哄垝琛�")
+    @Excel(name = "绉绘浜烘墍灞炲尯鍩熺紪鍙� 鏍规嵁琛屾斂鍖哄垝琛�")
+    private String residencecountycode;
+
+    /** 绉绘浜烘墍灞炲尯鍩熷悕绉� */
+    @ApiModelProperty("绉绘浜烘墍灞炲尯鍩熷悕绉�")
+    @Excel(name = "绉绘浜烘墍灞炲尯鍩熷悕绉�")
+    private String residencecountyname;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java
index 83d4bf5..9330b0e 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonateorgan.java
@@ -84,6 +84,14 @@
     private Date organgettime;
 
     /**
+     * 棰勮鑾峰彇鏃堕棿
+     */
+    @ApiModelProperty("棰勮鑾峰彇鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "棰勮鑾峰彇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date estimatedtime;
+
+    /**
      * 鍖荤敓濮撳悕
      */
     @ApiModelProperty("鍖荤敓濮撳悕")
@@ -301,8 +309,9 @@
     private Integer transplantstate;
 
 
-
-    /** 绯荤粺缂栧彿 */
+    /**
+     * 绯荤粺缂栧彿
+     */
     @ApiModelProperty("绯荤粺缂栧彿")
     @Excel(name = "绯荤粺缂栧彿")
     private String caseno;
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
new file mode 100644
index 0000000..ea15913
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonationwitnessorgan.java
@@ -0,0 +1,118 @@
+package com.ruoyi.project.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+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;
+
+/**
+ * 鎹愮尞鍣ㄥ畼鑾峰彇瀵硅薄 service_donationwitnessorgan
+ * 
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Data
+@ApiModel("鎹愮尞鍣ㄥ畼鑾峰彇")
+public class ServiceDonationwitnessorgan 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;
+
+    /** 鎹愮尞鑰呯紪鍙� */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /** 鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
+    @Excel(name = "鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
+    private String organno;
+
+    /** 鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ")
+    @Excel(name = "鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ")
+    private String organname;
+
+    /** 鍣ㄥ畼缂栧彿  */
+    @ApiModelProperty("鍣ㄥ畼缂栧彿 ")
+    @Excel(name = "鍣ㄥ畼缂栧彿 ")
+    private String organnumber;
+
+    /** 鍣ㄥ畼鑾峰彇鐘舵�� 锛�0锛氭湭鑾峰彇锛�1锛氬凡鑾峰彇锛�2锛氬純鐢� */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鐘舵�� 锛�0锛氭湭鑾峰彇锛�1锛氬凡鑾峰彇锛�2锛氬純鐢�")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鐘舵�� 锛�0锛氭湭鑾峰彇锛�1锛氬凡鑾峰彇锛�2锛氬純鐢�")
+    private String organstate;
+
+    /** 鏈幏鍙栧師鍥� */
+    @ApiModelProperty("鏈幏鍙栧師鍥�")
+    @Excel(name = "鏈幏鍙栧師鍥�")
+    private String notgetreason;
+
+    /** 鍣ㄥ畼鑾峰彇鏃堕棿 */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date organgettime;
+
+    /** 鍖荤敓濮撳悕 */
+    @ApiModelProperty("鍖荤敓濮撳悕")
+    @Excel(name = "鍖荤敓濮撳悕")
+    private String organgetdoct;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    private String gainhospitalno;
+
+    /** 鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    @Excel(name = "鍣ㄥ畼鑾峰彇鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    private String gainhospitalname;
+
+    /** 鑾峰彇鍓嶆椿妫�锛屽弬瑙乻ys_0_1 */
+    @ApiModelProperty("鑾峰彇鍓嶆椿妫�锛屽弬瑙乻ys_0_1")
+    @Excel(name = "鑾峰彇鍓嶆椿妫�锛屽弬瑙乻ys_0_1")
+    private String isbiopsybefore;
+
+    /** 鑾峰彇鍚庢椿妫�锛屽弬瑙乻ys_0_1 */
+    @ApiModelProperty("鑾峰彇鍚庢椿妫�锛屽弬瑙乻ys_0_1")
+    @Excel(name = "鑾峰彇鍚庢椿妫�锛屽弬瑙乻ys_0_1")
+    private String isbiopsyafter;
+
+    /** 灞炰簬杈圭紭鍣ㄥ畼锛屽弬瑙乻ys_0_1 */
+    @ApiModelProperty("灞炰簬杈圭紭鍣ㄥ畼锛屽弬瑙乻ys_0_1")
+    @Excel(name = "灞炰簬杈圭紭鍣ㄥ畼锛屽弬瑙乻ys_0_1")
+    private String ismarginalorgan;
+
+    /** 鐥呭師鑿岄槼鎬э紝鍙傝sys_0_1 */
+    @ApiModelProperty("鐥呭師鑿岄槼鎬э紝鍙傝sys_0_1")
+    @Excel(name = "鐥呭師鑿岄槼鎬э紝鍙傝sys_0_1")
+    private String ispathogenpositive;
+
+    /** 鍘熷彂鎬ф棤鍔熻兘锛屽弬瑙乻ys_0_1 */
+    @ApiModelProperty("鍘熷彂鎬ф棤鍔熻兘锛屽弬瑙乻ys_0_1")
+    @Excel(name = "鍘熷彂鎬ф棤鍔熻兘锛屽弬瑙乻ys_0_1")
+    private String ispnf;
+
+    /** 鍔熻兘寤惰繜鎬ф仮澶嶏紝鍙傝sys_0_1 */
+    @ApiModelProperty("鍔熻兘寤惰繜鎬ф仮澶嶏紝鍙傝sys_0_1")
+    @Excel(name = "鍔熻兘寤惰繜鎬ф仮澶嶏紝鍙傝sys_0_1")
+    private String isdgf;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java
new file mode 100644
index 0000000..7b19381
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java
@@ -0,0 +1,105 @@
+package com.ruoyi.project.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+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;
+
+/**
+ * 鎹愮尞鍣ㄥ畼瀵硅薄 service_donorchargeorgan
+ * 
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Data
+@ApiModel("鎹愮尞鍣ㄥ畼")
+public class ServiceDonorchargeorgan 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;
+
+    /** 鎹愮尞浜哄悕瀛� */
+    @ApiModelProperty("鎹愮尞浜哄悕瀛�")
+    @Excel(name = "鎹愮尞浜哄悕瀛�")
+    private String donorname;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯鍚嶇О 瀵瑰簲鏈烘瀯琛�")
+    private String hospitalname;
+
+    /** 鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛� */
+    @ApiModelProperty("鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    @Excel(name = "鍣ㄥ畼绉绘鏈烘瀯缂栧彿 瀵瑰簲鏈烘瀯琛�")
+    private String hospitalno;
+
+    /** 鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
+    @Excel(name = "鍣ㄥ畼绫诲埆 璇﹁瀛楀吀sys_Organ")
+    private String organno;
+
+    /** 鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ */
+    @ApiModelProperty("鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ")
+    @Excel(name = "鍣ㄥ畼绫诲埆鍚嶇О 璇﹁瀛楀吀sys_Organ")
+    private String organname;
+
+    /** 鍣ㄥ畼搴旀敹璐圭敤 */
+    @ApiModelProperty("鍣ㄥ畼搴旀敹璐圭敤")
+    @Excel(name = "鍣ㄥ畼搴旀敹璐圭敤")
+    private BigDecimal organcharge;
+
+    /** 璐圭敤褰曞叆鏃堕棿 */
+    @ApiModelProperty("璐圭敤褰曞叆鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "璐圭敤褰曞叆鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date organtime;
+
+    /** 璐圭敤褰曞叆浜� */
+    @ApiModelProperty("璐圭敤褰曞叆浜�")
+    @Excel(name = "璐圭敤褰曞叆浜�")
+    private String chargeoperator;
+
+    /** 鍣ㄥ畼瀹為檯鏀跺埌璐圭敤 */
+    @ApiModelProperty("鍣ㄥ畼瀹為檯鏀跺埌璐圭敤")
+    @Excel(name = "鍣ㄥ畼瀹為檯鏀跺埌璐圭敤")
+    private BigDecimal amount;
+
+    /** 鍣ㄥ畼瀹為檯鏀跺埌璐圭敤鏃堕棿 */
+    @ApiModelProperty("鍣ㄥ畼瀹為檯鏀跺埌璐圭敤鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "鍣ㄥ畼瀹為檯鏀跺埌璐圭敤鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date amounttime;
+
+    /** 鏀惰垂褰曞叆浜� */
+    @ApiModelProperty("鏀惰垂褰曞叆浜�")
+    @Excel(name = "鏀惰垂褰曞叆浜�")
+    private String amountoperator;
+
+    /** 鍣ㄥ畼璐圭敤鏀跺彇鐘舵�侊細0锛氭湭鏀跺彇锛�1锛氬凡鏀跺彇锛�2锛氭斁寮� */
+    @ApiModelProperty("鍣ㄥ畼璐圭敤鏀跺彇鐘舵�侊細0锛氭湭鏀跺彇锛�1锛氬凡鏀跺彇锛�2锛氭斁寮�")
+    @Excel(name = "鍣ㄥ畼璐圭敤鏀跺彇鐘舵�侊細0锛氭湭鏀跺彇锛�1锛氬凡鏀跺彇锛�2锛氭斁寮�")
+    private Long chargestate;
+
+    /** 鍣ㄥ畼瀹為檯鏀跺埌璐圭敤璇存槑 */
+    @ApiModelProperty("鍣ㄥ畼瀹為檯鏀跺埌璐圭敤璇存槑")
+    @Excel(name = "鍣ㄥ畼瀹為檯鏀跺埌璐圭敤璇存槑")
+    private String organchargedesc;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
index c5a3aed..a2dadb9 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceReimbursement.java
@@ -163,7 +163,9 @@
     @Excel(name = "涓績绛惧瓧")
     private String opochecker;
 
-    /** 璐㈠姟鍓櫌闀跨瀛� */
+    /**
+     * 璐㈠姟鍓櫌闀跨瀛�
+     */
     @ApiModelProperty("闄㈤暱绛惧瓧")
     @Excel(name = "闄㈤暱绛惧瓧")
     private String president;
@@ -270,7 +272,7 @@
     private Long flowlevel;
 
     /**
-     *  100锛氫笂浼犲尰闄�  199锛氬尰闄㈤┏鍥�
+     * 100锛氫笂浼犲尰闄�  199锛氬尰闄㈤┏鍥�
      */
     @ApiModelProperty("閫�鍥炴椂鐨勫鏍哥骇鍒�")
     private Long backflowlevel;
@@ -318,7 +320,9 @@
     private String riqi;
 
 
-    /** 缂栧彿(鎵撳嵃鐨勬椂鍊欙紝鍦ㄦ枃妗d笂鏄剧ず) */
+    /**
+     * 缂栧彿(鎵撳嵃鐨勬椂鍊欙紝鍦ㄦ枃妗d笂鏄剧ず)
+     */
     @ApiModelProperty("缂栧彿(鎵撳嵃鐨勬椂鍊欙紝鍦ㄦ枃妗d笂鏄剧ず)")
     @Excel(name = "缂栧彿")
     private String bh;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecomporganMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecomporganMapper.java
new file mode 100644
index 0000000..e355b05
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatecomporganMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绉绘Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Mapper
+public interface ServiceDonatecomporganMapper extends BaseMapper<ServiceDonatecomporgan> {
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼绉绘鍒楄〃
+     *
+     * @param serviceDonatecomporgan 鎹愮尞鍣ㄥ畼绉绘
+     * @return 鎹愮尞鍣ㄥ畼绉绘闆嗗悎
+     */
+    public List<ServiceDonatecomporgan> selectServiceDonatecomporganList(ServiceDonatecomporgan serviceDonatecomporgan);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessorganMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessorganMapper.java
new file mode 100644
index 0000000..1ab496e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonationwitnessorganMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼鑾峰彇Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Mapper
+public interface ServiceDonationwitnessorganMapper extends BaseMapper<ServiceDonationwitnessorgan> {
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鑾峰彇鍒楄〃
+     *
+     * @param serviceDonationwitnessorgan 鎹愮尞鍣ㄥ畼鑾峰彇
+     * @return 鎹愮尞鍣ㄥ畼鑾峰彇闆嗗悎
+     */
+    public List<ServiceDonationwitnessorgan> selectServiceDonationwitnessorganList(ServiceDonationwitnessorgan serviceDonationwitnessorgan);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonorchargeorganMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonorchargeorganMapper.java
new file mode 100644
index 0000000..b3779d0
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonorchargeorganMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.project.domain.ServiceDonorchargeorgan;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼Mapper鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Mapper
+public interface ServiceDonorchargeorganMapper extends BaseMapper<ServiceDonorchargeorgan> {
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鍒楄〃
+     *
+     * @param serviceDonorchargeorgan 鎹愮尞鍣ㄥ畼
+     * @return 鎹愮尞鍣ㄥ畼闆嗗悎
+     */
+    public List<ServiceDonorchargeorgan> selectServiceDonorchargeorganList(ServiceDonorchargeorgan serviceDonorchargeorgan);
+}
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 53f6015..0a93d0b 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
@@ -1,29 +1,30 @@
 package com.ruoyi.project.service;
 
-import java.util.List;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
 import com.ruoyi.project.domain.vo.DonationCompletionVO;
-import com.ruoyi.project.domain.vo.DonationWitnessVO;
+
+import java.util.List;
 
 /**
  * 鎹愮尞瀹屾垚Service鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2021-11-19
  */
-public interface IServiceDonatecompletioninfoService extends IService<ServiceDonatecompletioninfo>
-{
+public interface IServiceDonatecompletioninfoService extends IService<ServiceDonatecompletioninfo> {
 
     /**
      * 鏌ヨ鎹愮尞瀹屾垚鍒楄〃
-     * 
+     *
      * @param serviceDonatecompletioninfo 鎹愮尞瀹屾垚
      * @return 鎹愮尞瀹屾垚闆嗗悎
      */
     public List<ServiceDonatecompletioninfo> queryList(ServiceDonatecompletioninfo serviceDonatecompletioninfo);
 
+    public List<ServiceDonatecompletioninfo> queryListDetail(ServiceDonatecompletioninfo serviceDonatecompletioninfo);
+
     List<DonationCompletionVO> selectVOList(DonationCompletionVO donationCompletionVO);
 
-    void delDuplicateDonateCompletioninfo(long infoid,String createby);
+    void delDuplicateDonateCompletioninfo(long infoid, String createby);
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecomporganService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecomporganService.java
new file mode 100644
index 0000000..5b3cf99
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatecomporganService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绉绘Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+public interface IServiceDonatecomporganService extends IService<ServiceDonatecomporgan> {
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼绉绘鍒楄〃
+     *
+     * @param serviceDonatecomporgan 鎹愮尞鍣ㄥ畼绉绘
+     * @return 鎹愮尞鍣ㄥ畼绉绘闆嗗悎
+     */
+    public List<ServiceDonatecomporgan> queryList(ServiceDonatecomporgan serviceDonatecomporgan);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessorganService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessorganService.java
new file mode 100644
index 0000000..a530a0b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessorganService.java
@@ -0,0 +1,24 @@
+package com.ruoyi.project.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼鑾峰彇Service鎺ュ彛
+ * 
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+public interface IServiceDonationwitnessorganService extends IService<ServiceDonationwitnessorgan>
+{
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鑾峰彇鍒楄〃
+     * 
+     * @param serviceDonationwitnessorgan 鎹愮尞鍣ㄥ畼鑾峰彇
+     * @return 鎹愮尞鍣ㄥ畼鑾峰彇闆嗗悎
+     */
+    public List<ServiceDonationwitnessorgan> queryList(ServiceDonationwitnessorgan serviceDonationwitnessorgan);
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonorchargeorganService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonorchargeorganService.java
new file mode 100644
index 0000000..8e626e4
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonorchargeorganService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.project.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.project.domain.ServiceDonorchargeorgan;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼Service鎺ュ彛
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+public interface IServiceDonorchargeorganService extends IService<ServiceDonorchargeorgan> {
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鍒楄〃
+     *
+     * @param serviceDonorchargeorgan 鎹愮尞鍣ㄥ畼
+     * @return 鎹愮尞鍣ㄥ畼闆嗗悎
+     */
+    public List<ServiceDonorchargeorgan> queryList(ServiceDonorchargeorgan serviceDonorchargeorgan);
+}
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 ad32b72..866ebfd 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
@@ -6,15 +6,20 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
 import com.ruoyi.project.domain.ServiceDonateorgan;
 import com.ruoyi.project.domain.vo.DonationCompletionVO;
+import com.ruoyi.project.service.IServiceDonatecomporganService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 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.ServiceDonatecompletioninfoMapper;
 import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
@@ -22,56 +27,99 @@
 
 /**
  * 鎹愮尞瀹屾垚Service涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2021-11-19
  */
 @Service
-public class ServiceDonatecompletioninfoServiceImpl extends ServiceImpl<ServiceDonatecompletioninfoMapper, ServiceDonatecompletioninfo> implements IServiceDonatecompletioninfoService 
-{
+public class ServiceDonatecompletioninfoServiceImpl extends ServiceImpl<ServiceDonatecompletioninfoMapper, ServiceDonatecompletioninfo> implements IServiceDonatecompletioninfoService {
 
     @Autowired
     ServiceDonatecompletioninfoMapper serviceDonatecompletioninfoMapper;
 
+    @Autowired
+    IServiceDonatecomporganService serviceDonatecomporganService;
+
     /**
      * 鏌ヨ鎹愮尞瀹屾垚鍒楄〃
-     * 
+     *
      * @param serviceDonatecompletioninfo 鎹愮尞瀹屾垚
      * @return 鎹愮尞瀹屾垚
      */
     @Override
     public List<ServiceDonatecompletioninfo> queryList(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
         LambdaQueryWrapper<ServiceDonatecompletioninfo> wrappers = Wrappers.lambdaQuery();
-        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getDonorno())){
-            wrappers.eq(ServiceDonatecompletioninfo::getDonorno ,serviceDonatecompletioninfo.getDonorno());
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getDonorno())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getDonorno, serviceDonatecompletioninfo.getDonorno());
         }
-        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getIsbodydonation())){
-            wrappers.eq(ServiceDonatecompletioninfo::getIsbodydonation ,serviceDonatecompletioninfo.getIsbodydonation());
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getIsbodydonation())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getIsbodydonation, serviceDonatecompletioninfo.getIsbodydonation());
         }
-        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getReceivingunit())){
-            wrappers.eq(ServiceDonatecompletioninfo::getReceivingunit ,serviceDonatecompletioninfo.getReceivingunit());
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getReceivingunit())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getReceivingunit, serviceDonatecompletioninfo.getReceivingunit());
         }
-        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getId())){
-            wrappers.eq(ServiceDonatecompletioninfo::getId ,serviceDonatecompletioninfo.getId());
+        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getId())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getId, serviceDonatecompletioninfo.getId());
         }
-        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getInfoid())){
-            wrappers.eq(ServiceDonatecompletioninfo::getInfoid ,serviceDonatecompletioninfo.getInfoid());
+        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getInfoid())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getInfoid, serviceDonatecompletioninfo.getInfoid());
         }
         return this.list(wrappers);
     }
+
+    /**
+     * 鏆傛椂鍏堜笉鐢ㄤ簡
+     *
+     * @param serviceDonatecompletioninfo
+     * @return
+     */
+    @Override
+    public List<ServiceDonatecompletioninfo> queryListDetail(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
+        LambdaQueryWrapper<ServiceDonatecompletioninfo> wrappers = Wrappers.lambdaQuery();
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getDonorno())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getDonorno, serviceDonatecompletioninfo.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getIsbodydonation())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getIsbodydonation, serviceDonatecompletioninfo.getIsbodydonation());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getReceivingunit())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getReceivingunit, serviceDonatecompletioninfo.getReceivingunit());
+        }
+        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getId())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getId, serviceDonatecompletioninfo.getId());
+        }
+        if (StringUtils.isNotNull(serviceDonatecompletioninfo.getInfoid())) {
+            wrappers.eq(ServiceDonatecompletioninfo::getInfoid, serviceDonatecompletioninfo.getInfoid());
+        }
+        List<ServiceDonatecompletioninfo> serviceDonatecompletioninfoList = this.list(wrappers);
+        if (CollectionUtils.isNotEmpty(serviceDonatecompletioninfoList)) {
+            for (ServiceDonatecompletioninfo serviceDonatecompletioninfo1 : serviceDonatecompletioninfoList) {
+                if (serviceDonatecompletioninfo1.getInfoid() != null) {
+                    ServiceDonatecomporgan serviceDonatecomporgan = new ServiceDonatecomporgan();
+                    serviceDonatecomporgan.setInfoid(serviceDonatecompletioninfo1.getInfoid());
+                    List<ServiceDonatecomporgan> serviceDonatecomporgans = serviceDonatecomporganService.queryList(serviceDonatecomporgan);
+                    serviceDonatecompletioninfo1.setServiceDonatecomporganList(serviceDonatecomporgans);
+                }
+
+            }
+        }
+
+        return this.list(wrappers);
+    }
+
 
     @Override
     public List<DonationCompletionVO> selectVOList(DonationCompletionVO donationCompletionVO) {
 
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        List <SysRole> l = user.getRoles();
+        List<SysRole> l = user.getRoles();
         Boolean b = false;
-        for(SysRole r : l){
-            if(r.getRoleId().longValue() == 3){
+        for (SysRole r : l) {
+            if (r.getRoleId().longValue() == 3) {
                 b = true;
             }
         }
-        if(b){
+        if (b) {
             donationCompletionVO.setBasecreateby(user.getUserName());
         }
 
@@ -79,8 +127,8 @@
     }
 
     @Override
-    public void delDuplicateDonateCompletioninfo(long infoid,String createby) {
-        serviceDonatecompletioninfoMapper.delDuplicateDonateCompletioninfo(infoid,createby);
+    public void delDuplicateDonateCompletioninfo(long infoid, String createby) {
+        serviceDonatecompletioninfoMapper.delDuplicateDonateCompletioninfo(infoid, createby);
     }
 
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecomporganServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecomporganServiceImpl.java
new file mode 100644
index 0000000..5eccb6c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecomporganServiceImpl.java
@@ -0,0 +1,121 @@
+package com.ruoyi.project.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.ServiceDonatecomporgan;
+import com.ruoyi.project.mapper.ServiceDonatecomporganMapper;
+import com.ruoyi.project.service.IServiceDonatecomporganService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼绉绘Service涓氬姟灞傚鐞�
+ * 
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Service
+public class ServiceDonatecomporganServiceImpl extends ServiceImpl<ServiceDonatecomporganMapper, ServiceDonatecomporgan> implements IServiceDonatecomporganService
+{
+
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼绉绘鍒楄〃
+     * 
+     * @param serviceDonatecomporgan 鎹愮尞鍣ㄥ畼绉绘
+     * @return 鎹愮尞鍣ㄥ畼绉绘
+     */
+    @Override
+    public List<ServiceDonatecomporgan> queryList(ServiceDonatecomporgan serviceDonatecomporgan) {
+        LambdaQueryWrapper<ServiceDonatecomporgan> wrappers = Wrappers.lambdaQuery();
+        if (serviceDonatecomporgan.getInfoid() != null){
+            wrappers.eq(ServiceDonatecomporgan::getInfoid ,serviceDonatecomporgan.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getOrganno())){
+            wrappers.eq(ServiceDonatecomporgan::getOrganno ,serviceDonatecomporgan.getOrganno());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getOrganname())){
+            wrappers.like(ServiceDonatecomporgan::getOrganname ,serviceDonatecomporgan.getOrganname());
+        }
+        if (serviceDonatecomporgan.getTransplantstate() != null){
+            wrappers.eq(ServiceDonatecomporgan::getTransplantstate ,serviceDonatecomporgan.getTransplantstate());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getAbandonreason())){
+            wrappers.eq(ServiceDonatecomporgan::getAbandonreason ,serviceDonatecomporgan.getAbandonreason());
+        }
+        if (serviceDonatecomporgan.getTransplanttime() != null){
+            wrappers.eq(ServiceDonatecomporgan::getTransplanttime ,serviceDonatecomporgan.getTransplanttime());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getTransplantdoct())){
+            wrappers.eq(ServiceDonatecomporgan::getTransplantdoct ,serviceDonatecomporgan.getTransplantdoct());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getTransplanthospitalno())){
+            wrappers.eq(ServiceDonatecomporgan::getTransplanthospitalno ,serviceDonatecomporgan.getTransplanthospitalno());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getTransplanthospitalname())){
+            wrappers.like(ServiceDonatecomporgan::getTransplanthospitalname ,serviceDonatecomporgan.getTransplanthospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getName())){
+            wrappers.like(ServiceDonatecomporgan::getName ,serviceDonatecomporgan.getName());
+        }
+        if (serviceDonatecomporgan.getSex() != null){
+            wrappers.eq(ServiceDonatecomporgan::getSex ,serviceDonatecomporgan.getSex());
+        }
+        if (serviceDonatecomporgan.getIdcardtype() != null){
+            wrappers.eq(ServiceDonatecomporgan::getIdcardtype ,serviceDonatecomporgan.getIdcardtype());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getIdcardno())){
+            wrappers.eq(ServiceDonatecomporgan::getIdcardno ,serviceDonatecomporgan.getIdcardno());
+        }
+        if (serviceDonatecomporgan.getAge() != null){
+            wrappers.eq(ServiceDonatecomporgan::getAge ,serviceDonatecomporgan.getAge());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getAgeunit())){
+            wrappers.eq(ServiceDonatecomporgan::getAgeunit ,serviceDonatecomporgan.getAgeunit());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getBirthday())){
+            wrappers.eq(ServiceDonatecomporgan::getBirthday ,serviceDonatecomporgan.getBirthday());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getPhone())){
+            wrappers.eq(ServiceDonatecomporgan::getPhone ,serviceDonatecomporgan.getPhone());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidenceaddress())){
+            wrappers.eq(ServiceDonatecomporgan::getResidenceaddress ,serviceDonatecomporgan.getResidenceaddress());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidenceprovince())){
+            wrappers.eq(ServiceDonatecomporgan::getResidenceprovince ,serviceDonatecomporgan.getResidenceprovince());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidenceprovincename())){
+            wrappers.like(ServiceDonatecomporgan::getResidenceprovincename ,serviceDonatecomporgan.getResidenceprovincename());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencecity())){
+            wrappers.eq(ServiceDonatecomporgan::getResidencecity ,serviceDonatecomporgan.getResidencecity());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencecityname())){
+            wrappers.like(ServiceDonatecomporgan::getResidencecityname ,serviceDonatecomporgan.getResidencecityname());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencetown())){
+            wrappers.eq(ServiceDonatecomporgan::getResidencetown ,serviceDonatecomporgan.getResidencetown());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencetownname())){
+            wrappers.like(ServiceDonatecomporgan::getResidencetownname ,serviceDonatecomporgan.getResidencetownname());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencecommunity())){
+            wrappers.eq(ServiceDonatecomporgan::getResidencecommunity ,serviceDonatecomporgan.getResidencecommunity());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencecommunityname())){
+            wrappers.like(ServiceDonatecomporgan::getResidencecommunityname ,serviceDonatecomporgan.getResidencecommunityname());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencecountycode())){
+            wrappers.eq(ServiceDonatecomporgan::getResidencecountycode ,serviceDonatecomporgan.getResidencecountycode());
+        }
+        if (StringUtils.isNotBlank(serviceDonatecomporgan.getResidencecountyname())){
+            wrappers.like(ServiceDonatecomporgan::getResidencecountyname ,serviceDonatecomporgan.getResidencecountyname());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
index 8e32765..5baef9a 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
@@ -122,6 +122,9 @@
         if (serviceDonateorgan.getTransplanttime() != null) {
             wrappers.eq(ServiceDonateorgan::getTransplanttime, serviceDonateorgan.getTransplanttime());
         }
+        if (serviceDonateorgan.getEstimatedtime() != null) {
+            wrappers.eq(ServiceDonateorgan::getEstimatedtime, serviceDonateorgan.getEstimatedtime());
+        }
         return this.list(wrappers);
     }
 
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
new file mode 100644
index 0000000..db9643b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessorganServiceImpl.java
@@ -0,0 +1,87 @@
+package com.ruoyi.project.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
+import com.ruoyi.project.mapper.ServiceDonationwitnessorganMapper;
+import com.ruoyi.project.service.IServiceDonationwitnessorganService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼鑾峰彇Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Service
+public class ServiceDonationwitnessorganServiceImpl extends ServiceImpl<ServiceDonationwitnessorganMapper, ServiceDonationwitnessorgan> implements IServiceDonationwitnessorganService {
+
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鑾峰彇鍒楄〃
+     *
+     * @param serviceDonationwitnessorgan 鎹愮尞鍣ㄥ畼鑾峰彇
+     * @return 鎹愮尞鍣ㄥ畼鑾峰彇
+     */
+    @Override
+    public List<ServiceDonationwitnessorgan> queryList(ServiceDonationwitnessorgan serviceDonationwitnessorgan) {
+        LambdaQueryWrapper<ServiceDonationwitnessorgan> wrappers = Wrappers.lambdaQuery();
+        if (serviceDonationwitnessorgan.getInfoid() != null) {
+            wrappers.eq(ServiceDonationwitnessorgan::getInfoid, serviceDonationwitnessorgan.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getDonorno())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getDonorno, serviceDonationwitnessorgan.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getOrganno())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getOrganno, serviceDonationwitnessorgan.getOrganno());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getOrganname())) {
+            wrappers.like(ServiceDonationwitnessorgan::getOrganname, serviceDonationwitnessorgan.getOrganname());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getOrgannumber())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getOrgannumber, serviceDonationwitnessorgan.getOrgannumber());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getOrganstate())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getOrganstate, serviceDonationwitnessorgan.getOrganstate());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getNotgetreason())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getNotgetreason, serviceDonationwitnessorgan.getNotgetreason());
+        }
+        if (serviceDonationwitnessorgan.getOrgangettime() != null) {
+            wrappers.eq(ServiceDonationwitnessorgan::getOrgangettime, serviceDonationwitnessorgan.getOrgangettime());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getOrgangetdoct())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getOrgangetdoct, serviceDonationwitnessorgan.getOrgangetdoct());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getGainhospitalno())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getGainhospitalno, serviceDonationwitnessorgan.getGainhospitalno());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getGainhospitalname())) {
+            wrappers.like(ServiceDonationwitnessorgan::getGainhospitalname, serviceDonationwitnessorgan.getGainhospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getIsbiopsybefore())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getIsbiopsybefore, serviceDonationwitnessorgan.getIsbiopsybefore());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getIsbiopsyafter())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getIsbiopsyafter, serviceDonationwitnessorgan.getIsbiopsyafter());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getIsmarginalorgan())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getIsmarginalorgan, serviceDonationwitnessorgan.getIsmarginalorgan());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getIspathogenpositive())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getIspathogenpositive, serviceDonationwitnessorgan.getIspathogenpositive());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getIspnf())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getIspnf, serviceDonationwitnessorgan.getIspnf());
+        }
+        if (StringUtils.isNotBlank(serviceDonationwitnessorgan.getIsdgf())) {
+            wrappers.eq(ServiceDonationwitnessorgan::getIsdgf, serviceDonationwitnessorgan.getIsdgf());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonorchargeorganServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonorchargeorganServiceImpl.java
new file mode 100644
index 0000000..971f64c
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonorchargeorganServiceImpl.java
@@ -0,0 +1,78 @@
+package com.ruoyi.project.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.project.domain.ServiceDonorchargeorgan;
+import com.ruoyi.project.mapper.ServiceDonorchargeorganMapper;
+import com.ruoyi.project.service.IServiceDonorchargeorganService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鎹愮尞鍣ㄥ畼Service涓氬姟灞傚鐞�
+ *
+ * @author ruoyi
+ * @date 2023-12-25
+ */
+@Service
+public class ServiceDonorchargeorganServiceImpl extends ServiceImpl<ServiceDonorchargeorganMapper, ServiceDonorchargeorgan> implements IServiceDonorchargeorganService {
+
+
+    /**
+     * 鏌ヨ鎹愮尞鍣ㄥ畼鍒楄〃
+     *
+     * @param serviceDonorchargeorgan 鎹愮尞鍣ㄥ畼
+     * @return 鎹愮尞鍣ㄥ畼
+     */
+    @Override
+    public List<ServiceDonorchargeorgan> queryList(ServiceDonorchargeorgan serviceDonorchargeorgan) {
+        LambdaQueryWrapper<ServiceDonorchargeorgan> wrappers = Wrappers.lambdaQuery();
+        if (serviceDonorchargeorgan.getInfoid() != null) {
+            wrappers.eq(ServiceDonorchargeorgan::getInfoid, serviceDonorchargeorgan.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getDonorname())) {
+            wrappers.like(ServiceDonorchargeorgan::getDonorname, serviceDonorchargeorgan.getDonorname());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getHospitalname())) {
+            wrappers.like(ServiceDonorchargeorgan::getHospitalname, serviceDonorchargeorgan.getHospitalname());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getHospitalno())) {
+            wrappers.eq(ServiceDonorchargeorgan::getHospitalno, serviceDonorchargeorgan.getHospitalno());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getOrganno())) {
+            wrappers.eq(ServiceDonorchargeorgan::getOrganno, serviceDonorchargeorgan.getOrganno());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getOrganname())) {
+            wrappers.like(ServiceDonorchargeorgan::getOrganname, serviceDonorchargeorgan.getOrganname());
+        }
+        if (serviceDonorchargeorgan.getOrgancharge() != null) {
+            wrappers.eq(ServiceDonorchargeorgan::getOrgancharge, serviceDonorchargeorgan.getOrgancharge());
+        }
+        if (serviceDonorchargeorgan.getOrgantime() != null) {
+            wrappers.eq(ServiceDonorchargeorgan::getOrgantime, serviceDonorchargeorgan.getOrgantime());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getChargeoperator())) {
+            wrappers.eq(ServiceDonorchargeorgan::getChargeoperator, serviceDonorchargeorgan.getChargeoperator());
+        }
+        if (serviceDonorchargeorgan.getAmount() != null) {
+            wrappers.eq(ServiceDonorchargeorgan::getAmount, serviceDonorchargeorgan.getAmount());
+        }
+        if (serviceDonorchargeorgan.getAmounttime() != null) {
+            wrappers.eq(ServiceDonorchargeorgan::getAmounttime, serviceDonorchargeorgan.getAmounttime());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getAmountoperator())) {
+            wrappers.eq(ServiceDonorchargeorgan::getAmountoperator, serviceDonorchargeorgan.getAmountoperator());
+        }
+        if (serviceDonorchargeorgan.getChargestate() != null) {
+            wrappers.eq(ServiceDonorchargeorgan::getChargestate, serviceDonorchargeorgan.getChargestate());
+        }
+        if (StringUtils.isNotBlank(serviceDonorchargeorgan.getOrganchargedesc())) {
+            wrappers.eq(ServiceDonorchargeorgan::getOrganchargedesc, serviceDonorchargeorgan.getOrganchargedesc());
+        }
+        return this.list(wrappers);
+    }
+
+}
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml
new file mode 100644
index 0000000..4f6387d
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatecomporganMapper.xml
@@ -0,0 +1,138 @@
+<?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">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonatecomporganMapper">
+
+    <resultMap type="com.ruoyi.project.domain.ServiceDonatecomporgan" id="ServiceDonatecomporganResult">
+        <result property="id" column="ID"/>
+        <result property="infoid" column="InfoID"/>
+        <result property="organno" column="OrganNo"/>
+        <result property="organname" column="OrganName"/>
+        <result property="transplantstate" column="transplantstate"/>
+        <result property="abandonreason" column="AbandonReason"/>
+        <result property="transplanttime" column="TransplantTime"/>
+        <result property="transplantdoct" column="TransplantDoct"/>
+        <result property="transplanthospitalno" column="TransplantHospitalNo"/>
+        <result property="transplanthospitalname" column="TransplantHospitalName"/>
+        <result property="name" column="Name"/>
+        <result property="sex" column="Sex"/>
+        <result property="idcardtype" column="IDCardType"/>
+        <result property="idcardno" column="IDCardNo"/>
+        <result property="age" column="Age"/>
+        <result property="ageunit" column="AgeUnit"/>
+        <result property="birthday" column="Birthday"/>
+        <result property="phone" column="Phone"/>
+        <result property="residenceaddress" column="ResidenceAddress"/>
+        <result property="residenceprovince" column="ResidenceProvince"/>
+        <result property="residenceprovincename" column="ResidenceProvinceName"/>
+        <result property="residencecity" column="ResidenceCity"/>
+        <result property="residencecityname" column="ResidenceCityName"/>
+        <result property="residencetown" column="ResidenceTown"/>
+        <result property="residencetownname" column="ResidenceTownName"/>
+        <result property="residencecommunity" column="ResidenceCommunity"/>
+        <result property="residencecommunityname" column="ResidenceCommunityName"/>
+        <result property="residencecountycode" column="ResidenceCountyCode"/>
+        <result property="residencecountyname" column="ResidenceCountyName"/>
+        <result property="delFlag" 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="selectServiceDonatecomporganVo">
+        select ID,
+               InfoID,
+               OrganNo,
+               OrganName,
+               transplantstate,
+               AbandonReason,
+               TransplantTime,
+               TransplantDoct,
+               TransplantHospitalNo,
+               TransplantHospitalName,
+               Name,
+               Sex,
+               IDCardType,
+               IDCardNo,
+               Age,
+               AgeUnit,
+               Birthday,
+               Phone,
+               ResidenceAddress,
+               ResidenceProvince,
+               ResidenceProvinceName,
+               ResidenceCity,
+               ResidenceCityName,
+               ResidenceTown,
+               ResidenceTownName,
+               ResidenceCommunity,
+               ResidenceCommunityName,
+               ResidenceCountyCode,
+               ResidenceCountyName,
+               del_flag,
+               create_by,
+               create_time,
+               update_by,
+               update_time
+        from service_donatecomporgan
+    </sql>
+
+    <select id="selectServiceDonatecomporganList" parameterType="com.ruoyi.project.domain.ServiceDonatecomporgan"
+            resultMap="ServiceDonatecomporganResult">
+        <include refid="selectServiceDonatecomporganVo"/>
+        <where>
+            <if test="infoid != null ">and InfoID = #{infoid}</if>
+            <if test="organno != null  and organno != ''">and OrganNo = #{organno}</if>
+            <if test="organname != null  and organname != ''">and OrganName like concat('%', #{organname}, '%')</if>
+            <if test="transplantstate != null ">and transplantstate = #{transplantstate}</if>
+            <if test="abandonreason != null  and abandonreason != ''">and AbandonReason = #{abandonreason}</if>
+            <if test="transplanttime != null ">and TransplantTime = #{transplanttime}</if>
+            <if test="transplantdoct != null  and transplantdoct != ''">and TransplantDoct = #{transplantdoct}</if>
+            <if test="transplanthospitalno != null  and transplanthospitalno != ''">and TransplantHospitalNo =
+                #{transplanthospitalno}
+            </if>
+            <if test="transplanthospitalname != null  and transplanthospitalname != ''">and TransplantHospitalName like
+                concat('%', #{transplanthospitalname}, '%')
+            </if>
+            <if test="name != null  and name != ''">and Name like concat('%', #{name}, '%')</if>
+            <if test="sex != null ">and Sex = #{sex}</if>
+            <if test="idcardtype != null ">and IDCardType = #{idcardtype}</if>
+            <if test="idcardno != null  and idcardno != ''">and IDCardNo = #{idcardno}</if>
+            <if test="age != null ">and Age = #{age}</if>
+            <if test="ageunit != null  and ageunit != ''">and AgeUnit = #{ageunit}</if>
+            <if test="birthday != null  and birthday != ''">and Birthday = #{birthday}</if>
+            <if test="phone != null  and phone != ''">and Phone = #{phone}</if>
+            <if test="residenceaddress != null  and residenceaddress != ''">and ResidenceAddress = #{residenceaddress}
+            </if>
+            <if test="residenceprovince != null  and residenceprovince != ''">and ResidenceProvince =
+                #{residenceprovince}
+            </if>
+            <if test="residenceprovincename != null  and residenceprovincename != ''">and ResidenceProvinceName like
+                concat('%', #{residenceprovincename}, '%')
+            </if>
+            <if test="residencecity != null  and residencecity != ''">and ResidenceCity = #{residencecity}</if>
+            <if test="residencecityname != null  and residencecityname != ''">and ResidenceCityName like concat('%',
+                #{residencecityname}, '%')
+            </if>
+            <if test="residencetown != null  and residencetown != ''">and ResidenceTown = #{residencetown}</if>
+            <if test="residencetownname != null  and residencetownname != ''">and ResidenceTownName like concat('%',
+                #{residencetownname}, '%')
+            </if>
+            <if test="residencecommunity != null  and residencecommunity != ''">and ResidenceCommunity =
+                #{residencecommunity}
+            </if>
+            <if test="residencecommunityname != null  and residencecommunityname != ''">and ResidenceCommunityName like
+                concat('%', #{residencecommunityname}, '%')
+            </if>
+            <if test="residencecountycode != null  and residencecountycode != ''">and ResidenceCountyCode =
+                #{residencecountycode}
+            </if>
+            <if test="residencecountyname != null  and residencecountyname != ''">and ResidenceCountyName like
+                concat('%', #{residencecountyname}, '%')
+            </if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
index 1ac7204..6bb212e 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
@@ -22,6 +22,7 @@
         <result property="reallocationreason" column="ReallocationReason"/>
         <result property="transplantdoct" column="TransplantDoct"/>
         <result property="transplanttime" column="TransplantTime"/>
+        <result property="estimatedtime" column="EstimatedTime"/>
         <result property="isbiopsybefore" column="IsBiopsyBefore"/>
         <result property="isbiopsyafter" column="IsBiopsyAfter"/>
         <result property="ismarginalorgan" column="IsMarginalOrgan"/>
@@ -37,7 +38,7 @@
         <result property="applicantusername" column="ApplicantUserName"/>
         <result property="applicanttime" column="ApplicantTime"/>
         <result property="checkuserid" column="CheckUserID"/>
-        <result property="caseno"    column="CaseNo"    />
+        <result property="caseno" column="CaseNo"/>
         <result property="checkusername" column="CheckUserName"/>
         <result property="checktime" column="CheckTime"/>
         <result property="checksuggestion" column="CheckSuggestion"/>
@@ -112,6 +113,7 @@
                CheckTime,
                CheckSuggestion,
                AllocationStatus,
+               EstimatedTime,
                Name,
                Sex,
                IDCardType,
@@ -153,6 +155,7 @@
             <if test="organstate != null ">and OrganState = #{organstate}</if>
             <if test="organnumber != null  and organnumber != ''">and OrganNumber = #{organnumber}</if>
             <if test="organgettime != null ">and OrganGetTime = #{organgettime}</if>
+            <if test="estimatedtime != null ">and EstimatedTime = #{estimatedtime}</if>
             <if test="organgetdoct != null  and organgetdoct != ''">and OrganGetDoct = #{organgetdoct}</if>
             <if test="gainhospitalno != null  and gainhospitalno != ''">and GainHospitalNo = #{gainhospitalno}</if>
             <if test="gainhospitalname != null  and gainhospitalname != ''">and GainHospitalName like concat('%',
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
new file mode 100644
index 0000000..3e021ca
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessorganMapper.xml
@@ -0,0 +1,88 @@
+<?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">
+<mapper namespace="com.ruoyi.project.mapper.ServiceDonationwitnessorganMapper">
+
+    <resultMap type="com.ruoyi.project.domain.ServiceDonationwitnessorgan" id="ServiceDonationwitnessorganResult">
+        <result property="id" column="ID"/>
+        <result property="infoid" column="InfoID"/>
+        <result property="donorno" column="DonorNo"/>
+        <result property="organno" column="OrganNo"/>
+        <result property="organname" column="OrganName"/>
+        <result property="organnumber" column="OrganNumber"/>
+        <result property="organstate" column="OrganState"/>
+        <result property="notgetreason" column="notgetreason"/>
+        <result property="organgettime" column="OrganGetTime"/>
+        <result property="organgetdoct" column="OrganGetDoct"/>
+        <result property="gainhospitalno" column="GainHospitalNo"/>
+        <result property="gainhospitalname" column="GainHospitalName"/>
+        <result property="isbiopsybefore" column="IsBiopsyBefore"/>
+        <result property="isbiopsyafter" column="IsBiopsyAfter"/>
+        <result property="ismarginalorgan" column="IsMarginalOrgan"/>
+        <result property="ispathogenpositive" column="IsPathogenPositive"/>
+        <result property="ispnf" column="IsPNF"/>
+        <result property="isdgf" column="IsDGF"/>
+        <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="selectServiceDonationwitnessorganVo">
+        select ID,
+               InfoID,
+               DonorNo,
+               OrganNo,
+               OrganName,
+               OrganNumber,
+               OrganState,
+               notgetreason,
+               OrganGetTime,
+               OrganGetDoct,
+               GainHospitalNo,
+               GainHospitalName,
+               IsBiopsyBefore,
+               IsBiopsyAfter,
+               IsMarginalOrgan,
+               IsPathogenPositive,
+               IsPNF,
+               IsDGF,
+               del_flag,
+               create_by,
+               create_time,
+               update_by,
+               update_time
+        from service_donationwitnessorgan
+    </sql>
+
+    <select id="selectServiceDonationwitnessorganList"
+            parameterType="com.ruoyi.project.domain.ServiceDonationwitnessorgan"
+            resultMap="ServiceDonationwitnessorganResult">
+        <include refid="selectServiceDonationwitnessorganVo"/>
+        <where>
+            <if test="infoid != null ">and InfoID = #{infoid}</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>
+            <if test="organnumber != null  and organnumber != ''">and OrganNumber = #{organnumber}</if>
+            <if test="organstate != null  and organstate != ''">and OrganState = #{organstate}</if>
+            <if test="notgetreason != null  and notgetreason != ''">and notgetreason = #{notgetreason}</if>
+            <if test="organgettime != null ">and OrganGetTime = #{organgettime}</if>
+            <if test="organgetdoct != null  and organgetdoct != ''">and OrganGetDoct = #{organgetdoct}</if>
+            <if test="gainhospitalno != null  and gainhospitalno != ''">and GainHospitalNo = #{gainhospitalno}</if>
+            <if test="gainhospitalname != null  and gainhospitalname != ''">and GainHospitalName like concat('%',
+                #{gainhospitalname}, '%')
+            </if>
+            <if test="isbiopsybefore != null  and isbiopsybefore != ''">and IsBiopsyBefore = #{isbiopsybefore}</if>
+            <if test="isbiopsyafter != null  and isbiopsyafter != ''">and IsBiopsyAfter = #{isbiopsyafter}</if>
+            <if test="ismarginalorgan != null  and ismarginalorgan != ''">and IsMarginalOrgan = #{ismarginalorgan}</if>
+            <if test="ispathogenpositive != null  and ispathogenpositive != ''">and IsPathogenPositive =
+                #{ispathogenpositive}
+            </if>
+            <if test="ispnf != null  and ispnf != ''">and IsPNF = #{ispnf}</if>
+            <if test="isdgf != null  and isdgf != ''">and IsDGF = #{isdgf}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonorchargeorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonorchargeorganMapper.xml
new file mode 100644
index 0000000..6f5d8a8
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonorchargeorganMapper.xml
@@ -0,0 +1,54 @@
+<?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">
+<mapper namespace="com.ruoyi.system.mapper.ServiceDonorchargeorganMapper">
+    
+    <resultMap type="ServiceDonorchargeorgan" id="ServiceDonorchargeorganResult">
+        <result property="id"    column="ID"    />
+        <result property="infoid"    column="InfoID"    />
+        <result property="donorname"    column="donorname"    />
+        <result property="hospitalname"    column="HospitalName"    />
+        <result property="hospitalno"    column="HospitalNo"    />
+        <result property="organno"    column="OrganNo"    />
+        <result property="organname"    column="OrganName"    />
+        <result property="organcharge"    column="organcharge"    />
+        <result property="organtime"    column="organtime"    />
+        <result property="chargeoperator"    column="chargeoperator"    />
+        <result property="amount"    column="amount"    />
+        <result property="amounttime"    column="amounttime"    />
+        <result property="amountoperator"    column="amountoperator"    />
+        <result property="chargestate"    column="chargestate"    />
+        <result property="organchargedesc"    column="organchargedesc"    />
+        <result property="delFlag"    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="selectServiceDonorchargeorganVo">
+        select ID, InfoID, donorname, HospitalName, HospitalNo, OrganNo, OrganName, organcharge, organtime, chargeoperator, amount, amounttime, amountoperator, chargestate, organchargedesc, del_flag, create_by, create_time, update_by, update_time from service_donorchargeorgan
+    </sql>
+
+    <select id="selectServiceDonorchargeorganList" parameterType="ServiceDonorchargeorgan" resultMap="ServiceDonorchargeorganResult">
+        <include refid="selectServiceDonorchargeorganVo"/>
+        <where>
+            <if test="infoid != null "> and InfoID = #{infoid}</if>
+            <if test="donorname != null  and donorname != ''"> and donorname like concat('%', #{donorname}, '%')</if>
+            <if test="hospitalname != null  and hospitalname != ''"> and HospitalName like concat('%', #{hospitalname}, '%')</if>
+            <if test="hospitalno != null  and hospitalno != ''"> and HospitalNo = #{hospitalno}</if>
+            <if test="organno != null  and organno != ''"> and OrganNo = #{organno}</if>
+            <if test="organname != null  and organname != ''"> and OrganName like concat('%', #{organname}, '%')</if>
+            <if test="organcharge != null "> and organcharge = #{organcharge}</if>
+            <if test="organtime != null "> and organtime = #{organtime}</if>
+            <if test="chargeoperator != null  and chargeoperator != ''"> and chargeoperator = #{chargeoperator}</if>
+            <if test="amount != null "> and amount = #{amount}</if>
+            <if test="amounttime != null "> and amounttime = #{amounttime}</if>
+            <if test="amountoperator != null  and amountoperator != ''"> and amountoperator = #{amountoperator}</if>
+            <if test="chargestate != null "> and chargestate = #{chargestate}</if>
+            <if test="organchargedesc != null  and organchargedesc != ''"> and organchargedesc = #{organchargedesc}</if>
+        </where>
+    </select>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3