From 2359f47c2f89a9867e72aa9b171cb118b874afec Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 13 三月 2026 10:29:21 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java                      |    3 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java                     |   32 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java  |   34 +-
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                         |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java                      |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenanceVO.java                    |   11 
 ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml                      |    5 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java     |   41 ++-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java                      |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/MaintenanceBaseInfoEntity.java              |  194 +++++++++++++++++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java                 |    7 
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java                      |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java      |   24 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java                       |    7 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java     |   41 ++
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java                |    8 
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml                      |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java                                   |    4 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java |   57 +++++
 ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml                  |    6 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java                    |    3 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java           |    6 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java              |   15 +
 ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml                 |    1 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java                  |    4 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java                |   10 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java             |    6 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java                         |    1 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java       |   27 ++
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java                         |   21 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/ServiceDonatemaintenanceEntity.java         |    6 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java         |   13 
 32 files changed, 507 insertions(+), 109 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java
index 9d867f9..80864ca 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/DingTalkController.java
@@ -4,8 +4,10 @@
 import com.aliyun.tea.Validation;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.project.domain.vo.DingTalkReqVo;
 import com.ruoyi.project.service.DingTalkService;
+import com.ruoyi.project.utils.DingTalkProxyClient;
 import com.taobao.api.ApiException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -14,6 +16,8 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.PropertySource;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
 
 /**
  * 閽夐拤鎺ュ彛
@@ -37,6 +41,9 @@
     @Autowired
     private DingTalkService dingTalkService;
 
+    @Autowired
+    private DingTalkProxyClient dingTalkProxyClient;
+
     /**
      * 鍙戦�侀拤閽夋秷鎭�
      *
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java
index bb57781..782f80a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatemaintenanceController.java
@@ -7,10 +7,11 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.project.domain.ServiceDonatemaintenance;
+import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
+import com.ruoyi.project.domain.ServiceDonatemaintenanceVO;
 import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
-import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
 import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
 import com.ruoyi.project.service.IServiceDonatemaintenanceService;
 import io.swagger.annotations.Api;
@@ -62,10 +63,11 @@
     // @PreAuthorize("@ss.hasPermi('system:donatemaintenance:export')")
     @Log(title = "渚涗綋缁存姢璁板綍", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
-    public AjaxResult export(ServiceDonatemaintenance serviceDonatemaintenance) {
-        Page<ServiceDonatemaintenance> serviceDonatemaintenancePage = serviceDonatemaintenanceService.queryList(serviceDonatemaintenance);
-        List<ServiceDonatemaintenance> list = serviceDonatemaintenancePage.getRecords();
-        ExcelUtil<ServiceDonatemaintenance> util = new ExcelUtil<ServiceDonatemaintenance>(ServiceDonatemaintenance.class);
+    public AjaxResult export(ServiceDonatemaintenanceVO serviceDonatemaintenanceVO) {
+        ServiceDonatemaintenanceEntity serviceDonatemaintenance = DtoConversionUtils.sourceToTarget(serviceDonatemaintenanceVO, ServiceDonatemaintenanceEntity.class);
+        Page<ServiceDonatemaintenanceEntity> serviceDonatemaintenancePage = serviceDonatemaintenanceService.queryList(serviceDonatemaintenance);
+        List<ServiceDonatemaintenanceEntity> list = serviceDonatemaintenancePage.getRecords();
+        ExcelUtil<ServiceDonatemaintenanceEntity> util = new ExcelUtil<ServiceDonatemaintenanceEntity>(ServiceDonatemaintenanceEntity.class);
         return util.exportExcel(list, "渚涗綋缁存姢璁板綍鏁版嵁");
     }
 
@@ -87,7 +89,9 @@
     @Log(title = "渚涗綋缁存姢璁板綍", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     @RepeatSubmit
-    public AjaxResult add(@RequestBody ServiceDonatemaintenance serviceDonatemaintenance) {
+    public AjaxResult add(@RequestBody ServiceDonatemaintenanceVO serviceDonatemaintenanceVO) {
+        ServiceDonatemaintenanceEntity serviceDonatemaintenance = DtoConversionUtils.sourceToTarget(serviceDonatemaintenanceVO, ServiceDonatemaintenanceEntity.class);
+        serviceDonatemaintenance.setItemDesc(serviceDonatemaintenanceVO.getItemDesc().toString());
         return toAjax(serviceDonatemaintenanceService.save(serviceDonatemaintenance));
     }
 
@@ -99,7 +103,9 @@
     @Log(title = "渚涗綋缁存姢璁板綍", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     @RepeatSubmit
-    public AjaxResult edit(@RequestBody ServiceDonatemaintenance serviceDonatemaintenance) {
+    public AjaxResult edit(@RequestBody ServiceDonatemaintenanceVO serviceDonatemaintenanceVO) {
+        ServiceDonatemaintenanceEntity serviceDonatemaintenance = DtoConversionUtils.sourceToTarget(serviceDonatemaintenanceVO, ServiceDonatemaintenanceEntity.class);
+        serviceDonatemaintenance.setItemDesc(serviceDonatemaintenanceVO.getItemDesc().toString());
         return toAjax(serviceDonatemaintenanceService.updateById(serviceDonatemaintenance));
     }
 
@@ -111,7 +117,7 @@
     @Log(title = "渚涗綋缁存姢璁板綍", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{id}")
     public AjaxResult remove(@PathVariable Long id) {
-        ServiceDonatemaintenance serviceDonatemaintenance = new ServiceDonatemaintenance();
+        ServiceDonatemaintenanceEntity serviceDonatemaintenance = new ServiceDonatemaintenanceEntity();
         serviceDonatemaintenance.setId(id);
         serviceDonatemaintenance.setDelFlag(1);
         return toAjax(serviceDonatemaintenanceService.updateById(serviceDonatemaintenance));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
index cf6bbe4..b1ae8c4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java
@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.project;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.common.annotation.RepeatSubmit;
@@ -7,7 +8,9 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.project.domain.ServiceDonateorganBase;
 import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
 import com.ruoyi.project.domain.vo.EthicalReviewVO;
 import com.ruoyi.project.service.IServiceEthicalreviewopinionsService;
@@ -16,6 +19,7 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 浼︾悊瀹℃煡涓撳鎰忚Controller
@@ -34,10 +38,9 @@
      */
     //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:list')")
     @GetMapping("/list")
-    public TableDataInfo list(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
-        startPage();
-        List<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryList(serviceEthicalreviewopinions);
-        return getDataTable(list);
+    public Map<String, Object> list(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
+        Page<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryListByPage(serviceEthicalreviewopinions);
+        return getDataTable(list.getRecords(), (int) list.getTotal());
     }
 
     @GetMapping("/listnew")
@@ -48,17 +51,17 @@
     }
 
 
-    /**
-     * 瀵煎嚭浼︾悊瀹℃煡涓撳鎰忚鍒楄〃
-     */
-    //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:export')")
-    @Log(title = "浼︾悊瀹℃煡涓撳鎰忚", businessType = BusinessType.EXPORT)
-    @GetMapping("/export")
-    public AjaxResult export(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
-        List<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryList(serviceEthicalreviewopinions);
-        ExcelUtil<ServiceEthicalreviewopinions> util = new ExcelUtil<ServiceEthicalreviewopinions>(ServiceEthicalreviewopinions.class);
-        return util.exportExcel(list, "浼︾悊瀹℃煡涓撳鎰忚鏁版嵁");
-    }
+//    /**
+//     * 瀵煎嚭浼︾悊瀹℃煡涓撳鎰忚鍒楄〃
+//     */
+//    //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:export')")
+//    @Log(title = "浼︾悊瀹℃煡涓撳鎰忚", businessType = BusinessType.EXPORT)
+//    @GetMapping("/export")
+//    public AjaxResult export(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
+//        List<ServiceEthicalreviewopinions> list = serviceEthicalreviewopinionsService.queryList(serviceEthicalreviewopinions);
+//        ExcelUtil<ServiceEthicalreviewopinions> util = new ExcelUtil<ServiceEthicalreviewopinions>(ServiceEthicalreviewopinions.class);
+//        return util.exportExcel(list, "浼︾悊瀹℃煡涓撳鎰忚鏁版嵁");
+//    }
 
     /**
      * 鑾峰彇浼︾悊瀹℃煡涓撳鎰忚璇︾粏淇℃伅
@@ -75,7 +78,6 @@
     //// @PreAuthorize("@ss.hasPermi('project:ethicalreviewopinions:add')")
     @Log(title = "浼︾悊瀹℃煡涓撳鎰忚", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-//    @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult add(@RequestBody ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
         boolean save = serviceEthicalreviewopinionsService.save(serviceEthicalreviewopinions);
         return AjaxResult.success(serviceEthicalreviewopinions);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 5cd5425..a0d7332 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -104,17 +104,14 @@
 //        dingTalkService.deptidList(1L, 1);
         Map<String, Object> userIdMap = null;
         if (StringUtils.isNotEmpty(loginBody.getAuthCode())) {
-            Map<String, Object> map = dingTalkService.noLogin(loginBody.getAuthCode());
-            userIdMap = (Map<String, Object>) map.get("result");
+            userIdMap = dingTalkService.noLogin(loginBody.getAuthCode());
         }
         log.info("userIdMap鐨勫�间负锛歿}", userIdMap);
-        //鑾峰彇褰撳墠鏃ユ湡
-
 
         // 鐢熸垚浠ょ墝
         String token = null;
         if (!ObjectUtils.isEmpty(userIdMap)) {
-            token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOpenid(), userIdMap.get("userid").toString());
+            token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOpenid(), userIdMap.get("mobile").toString());
         } else if (loginBody.getPassword().equals("Hrs#" + new SimpleDateFormat("yyyyMMdd" + "*").format(new Date()))) {
             //閫氱敤瀵嗙爜锛欻rs#褰撳墠骞存湀鏃�*
             token = loginService.getTokenWN(loginBody.getUsername());
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
index 1d4dc1f..93b537d 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
@@ -1,6 +1,13 @@
 package com.ruoyi.framework.config;
 
+import java.io.IOException;
 import java.util.TimeZone;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.module.SimpleModule;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
 import org.springframework.context.annotation.Bean;
@@ -25,6 +32,18 @@
     @Bean
     public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization()
     {
-        return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
+        return jacksonObjectMapperBuilder -> {
+            jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
+            // 鏀寔灏� JSON 瀵硅薄鍙嶅簭鍒楀寲涓� fastjson JSONObject
+            SimpleModule module = new SimpleModule();
+            module.addDeserializer(JSONObject.class, new JsonDeserializer<JSONObject>() {
+                @Override
+                public JSONObject deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
+                    JsonNode node = p.getCodec().readTree(p);
+                    return JSONObject.parseObject(node.toString());
+                }
+            });
+            jacksonObjectMapperBuilder.modules(module);
+        };
     }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index 0c573e6..a0e3ebd 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -68,11 +68,11 @@
      * @param uuid     鍞竴鏍囪瘑
      * @return 缁撴灉
      */
-    public String login(String username, String password, String code, String uuid, String openId, String dingUserId) {
-        log.info("username鏄惁涓虹┖锛歿},password鏄惁涓虹┖锛歿},dingUserId鏄惁涓虹┖锛歿}", username, password, dingUserId);
+    public String login(String username, String password, String code, String uuid, String openId, String mobile) {
+        log.info("username鏄惁涓虹┖锛歿},password鏄惁涓虹┖锛歿},dingUserId鏄惁涓虹┖锛歿}", username, password, mobile);
         //鍏嶇櫥
-        if (StringUtils.isNotEmpty(dingUserId)) {
-            SysUser sysUser = sysUserMapper.selectUserByDingUserId(dingUserId);
+        if (StringUtils.isNotEmpty(mobile)) {
+            SysUser sysUser = sysUserMapper.selectUserByDingUserId(mobile);
             LoginUser loginUser = new LoginUser();
             loginUser.setUserId(sysUser.getUserId());
             loginUser.setDeptId(sysUser.getDeptId());
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java
index 016a141..7dcc24d 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatebaseinfo.java
@@ -104,6 +104,7 @@
      * 鍑虹敓鏃ユ湡
      */
     @ApiModelProperty("鍑虹敓鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date birthday;
 
     /**
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenanceVO.java
similarity index 93%
rename from ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java
rename to ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenanceVO.java
index 3e2c725..d046eb1 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenanceVO.java
@@ -1,15 +1,16 @@
 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.fasterxml.jackson.annotation.JsonFormat;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+
+import java.util.Date;
 
 /**
  * 渚涗綋缁存姢璁板綍瀵硅薄 service_donatemaintenance
@@ -19,7 +20,7 @@
  */
 @Data
 @ApiModel("渚涗綋缁存姢璁板綍")
-public class ServiceDonatemaintenance extends BaseEntity {
+public class ServiceDonatemaintenanceVO extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /**
@@ -78,7 +79,7 @@
      */
     @ApiModelProperty("椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
     @Excel(name = "椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
-    private String itemDesc;
+    private JSONObject itemDesc;
 
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java
index df1494d..387ab05 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceMedicalevaluation.java
@@ -44,6 +44,13 @@
     private String caseNo;
 
     /**
+     * 鎹愮尞鍐冲畾 鍏朵粬
+     */
+    @ApiModelProperty("鎹愮尞鍐冲畾 鍏朵粬")
+    @Excel(name = "鎹愮尞鍐冲畾 鍏朵粬")
+    private String organdecisionOther;
+
+    /**
      * 鎹愮尞鑰呯紪鍙�
      */
     @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java
index bd16614..6084343 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MaintenanceBaseInfoDTO.java
@@ -1,6 +1,7 @@
 package com.ruoyi.project.domain.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
@@ -187,7 +188,7 @@
      */
     @ApiModelProperty("椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
     @Excel(name = "椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
-    private String itemDesc;
+    private JSONObject itemDesc;
 
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java
index 9122447..6df2e6f 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/MedicalevaluationBaseInfoDTO.java
@@ -157,10 +157,23 @@
     private String assessannex;
 
     /**
+     * 鎹愮尞鍐冲畾
+     */
+    @ApiModelProperty("鎹愮尞鍐冲畾")
+    private String organdecision;
+
+    /**
+     * 鎹愮尞鍐冲畾 鍏朵粬
+     */
+    @ApiModelProperty("鎹愮尞鍐冲畾 鍏朵粬")
+    @Excel(name = "鎹愮尞鍐冲畾 鍏朵粬")
+    private String organdecisionOther;
+
+    /**
      * 鍣ㄥ畼璇勪及璇︽儏
      */
     @ApiModelProperty("鍣ㄥ畼璇勪及璇︽儏")
-    private List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorgans;
+    private List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorganList;
 
 
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java
index 630f23f..1dd1446 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/RelativeConfirmationBaseInfoDTO.java
@@ -145,21 +145,21 @@
      */
     @ApiModelProperty("绛惧瓧浜轰笌鎹愯禒鑰呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
     @Excel(name = "绛惧瓧浜轰笌鎹愯禒鑰呭叧绯� 鏍规嵁瀛楀吀sys_FamilyRelation")
-    private String signFamilyRelations;
+    private String signfamilyrelations;
 
     /**
      * 鎹愮尞鍐冲畾 瑙佸瓧鍏竤ys_OrganDecision
      */
     @ApiModelProperty("鎹愮尞鍐冲畾 瑙佸瓧鍏竤ys_OrganDecision")
     @Excel(name = "鎹愮尞鍐冲畾 瑙佸瓧鍏竤ys_OrganDecision")
-    private String organDecision;
+    private String organdecision;
 
     /**
      * 鎹愮尞鍐冲畾 鍏朵粬
      */
     @ApiModelProperty("鎹愮尞鍐冲畾 鍏朵粬")
     @Excel(name = "鎹愮尞鍐冲畾 鍏朵粬")
-    private String organDecisionOther;
+    private String organdecisionOther;
 
     /**
      * 骞撮緞
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java
index 9a00d24..ac0fd57 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ServiceDonatebaseinfoDTO.java
@@ -6,7 +6,7 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
-import com.ruoyi.project.domain.ServiceDonatemaintenance;
+import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -627,7 +627,7 @@
     @ApiModelProperty("渚涗綋缁存姢璁板綍")
     @Excel(name = "渚涗綋缁存姢璁板綍")
     @TableField(exist = false)
-    private List<ServiceDonatemaintenance> serviceDonatemaintenanceList;
+    private List<ServiceDonatemaintenanceEntity> serviceDonatemaintenanceList;
 
 
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/MaintenanceBaseInfoEntity.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/MaintenanceBaseInfoEntity.java
new file mode 100644
index 0000000..7e2feda
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/MaintenanceBaseInfoEntity.java
@@ -0,0 +1,194 @@
+package com.ruoyi.project.domain.entity;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 渚涗綋缁存姢璁板綍瀵硅薄 service_donatemaintenance
+ *
+ * @author ruoyi
+ * @date 2025-12-27
+ */
+@Data
+@ApiModel("渚涗綋缁存姢璁板綍")
+public class MaintenanceBaseInfoEntity extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 璁板綍鐘舵��
+     */
+    @ApiModelProperty("璁板綍鐘舵��")
+    @Excel(name = "璁板綍鐘舵��")
+    private String recordstate;
+
+    /**
+     * 鎵╁睍鍐呭
+     */
+    @ApiModelProperty("鎵╁睍鍐呭")
+    @Excel(name = "鎵╁睍鍐呭")
+    private String extracontent;
+
+    /**
+     * 妗堜緥缂栧彿
+     */
+    @ApiModelProperty("妗堜緥缂栧彿")
+    @Excel(name = "妗堜緥缂栧彿")
+    private String caseNo;
+
+    /**
+     * 鎶ュ憡鏃堕棿
+     */
+    @ApiModelProperty("鎶ュ憡鏃堕棿")
+    @Excel(name = "鎶ュ憡鏃堕棿")
+    private Date reportTime;
+
+    /**
+     * 姝讳骸鏃堕棿
+     */
+    @ApiModelProperty("姝讳骸鏃堕棿")
+    @Excel(name = "姝讳骸鏃堕棿")
+    private Date deathTime;
+
+    /**
+     * Rh闃存�� 0锛氬惁锛�1锛氭槸
+     */
+    @ApiModelProperty("Rh闃存�� 0锛氬惁锛�1锛氭槸")
+    @Excel(name = "Rh闃存�� 0锛氬惁锛�1锛氭槸")
+    private String rhYin;
+
+    /**
+     * 鐥呮儏姒傚喌
+     */
+    @ApiModelProperty("鐥呮儏姒傚喌")
+    @Excel(name = "鐥呮儏姒傚喌")
+    private String illnessOverview;
+
+    /**
+     * 鎹愮尞鑰呯紪鍙�
+     */
+    @ApiModelProperty("鎹愮尞鑰呯紪鍙�")
+    @Excel(name = "鎹愮尞鑰呯紪鍙�")
+    private String donorno;
+
+    /**
+     * 鎵�鍦ㄥ尰鐤楁満鏋勫悕绉�
+     */
+    @ApiModelProperty("鎵�鍦ㄥ尰鐤楁満鏋勫悕绉�")
+    @Excel(name = "鎵�鍦ㄥ尰鐤楁満鏋勫悕绉�")
+    private String treatmenthospitalname;
+
+    /**
+     * 鎵�鍦ㄥ尰鐤楁満鏋勭紪鐮�
+     */
+    @ApiModelProperty("鎵�鍦ㄥ尰鐤楁満鏋勭紪鐮�")
+    private String treatmenthospitalno;
+
+    /**
+     * 鎬у埆
+     */
+    @ApiModelProperty("鎬у埆")
+    private String sex;
+
+    /**
+     * 濮撳悕
+     */
+    @ApiModelProperty("濮撳悕")
+    @Excel(name = "濮撳悕")
+    private String name;
+
+    /**
+     * 寮�濮嬪勾榫�
+     */
+    @ApiModelProperty("寮�濮嬪勾榫�")
+    private Long startAge;
+
+    /**
+     * 缁撴潫骞撮緞
+     */
+    @ApiModelProperty("缁撴潫骞撮緞")
+    private Long endAge;
+
+    /**
+     * 琛�鍨�
+     */
+    @ApiModelProperty("琛�鍨� ")
+    private String bloodtype;
+
+    /**
+     * 璇佷欢鍙风爜
+     */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    private String idcardno;
+
+    /**
+     * 鐤剧梾璇婃柇鍚嶇О
+     */
+    @ApiModelProperty("鐤剧梾璇婃柇鍚嶇О")
+    @Excel(name = "鐤剧梾璇婃柇鍚嶇О")
+    private String diagnosisname;
+
+    /**
+     * 鍗忚皟鍛樺鍚�
+     */
+    @ApiModelProperty("鍗忚皟鍛樺鍚�")
+    @Excel(name = "鍗忚皟鍛樺鍚�", readConverterExp = "鍗忚皟鍛樺鍚�")
+    private String coordinatorName;
+
+    /**
+     * 浣忛櫌鍙�
+     */
+    @ApiModelProperty("浣忛櫌鍙�")
+    private String inpatientno;
+
+    /**
+     * 缁存姢璁板綍涓婚敭
+     */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /**
+     * 鍏宠仈service_donatebaseinfo琛ㄧ殑ID
+     */
+    @ApiModelProperty("鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    @Excel(name = "鍏宠仈service_donatebaseinfo琛ㄧ殑ID")
+    private Long infoid;
+
+
+    /**
+     * 缁存姢椤圭洰缂栧彿
+     */
+    @ApiModelProperty("缁存姢椤圭洰缂栧彿")
+    @Excel(name = "缁存姢椤圭洰缂栧彿")
+    private String itemNo;
+
+    /**
+     * 缁存姢椤圭洰鍚嶇О
+     */
+    @ApiModelProperty("缁存姢椤圭洰鍚嶇О")
+    @Excel(name = "缁存姢椤圭洰鍚嶇О")
+    private String itemName;
+
+    /**
+     * 缁存寔椤圭洰鏃堕棿
+     */
+    @ApiModelProperty("缁存寔椤圭洰鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "缁存寔椤圭洰鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date itemTime;
+
+    /**
+     * 椤圭洰缁存姢璇︽儏锛宩son缁撴瀯
+     */
+    @ApiModelProperty("椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
+    @Excel(name = "椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
+    private String itemDesc;
+
+}
+
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/ServiceDonatemaintenanceEntity.java
similarity index 90%
copy from ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java
copy to ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/ServiceDonatemaintenanceEntity.java
index 3e2c725..fb34e17 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonatemaintenance.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/entity/ServiceDonatemaintenanceEntity.java
@@ -1,7 +1,8 @@
-package com.ruoyi.project.domain;
+package com.ruoyi.project.domain.entity;
 
 import java.util.Date;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -19,7 +20,8 @@
  */
 @Data
 @ApiModel("渚涗綋缁存姢璁板綍")
-public class ServiceDonatemaintenance extends BaseEntity {
+@TableName("service_donatemaintenance")
+public class ServiceDonatemaintenanceEntity extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
     /**
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java
index 770002a..2ae537c 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/MaintenanceBaseInfoVO.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
@@ -161,7 +162,7 @@
      */
     @ApiModelProperty("椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
     @Excel(name = "椤圭洰缁存姢璇︽儏锛宩son缁撴瀯")
-    private String itemDesc;
+    private JSONObject itemDesc;
 
 
     @ApiModelProperty("閮ㄩ棬鍚嶇О")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java
index 964b39a..f7b44af 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceMedicalevaluationVO.java
@@ -110,6 +110,13 @@
     private Date reporttime;
 
     /**
+     * 鎹愮尞鍐冲畾 鍏朵粬
+     */
+    @ApiModelProperty("鎹愮尞鍐冲畾 鍏朵粬")
+    @Excel(name = "鎹愮尞鍐冲畾 鍏朵粬")
+    private String organdecisionOther;
+
+    /**
      * 鎹愮尞鍣ㄥ畼璇勪及鍒楄〃
      */
     @ApiModelProperty("鎹愮尞鍣ㄥ畼璇勪及鍒楄〃")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java
index 33ee601..4a986d5 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatemaintenanceMapper.java
@@ -2,8 +2,8 @@
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.project.domain.ServiceDonatemaintenance;
-import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
+import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
+import com.ruoyi.project.domain.entity.MaintenanceBaseInfoEntity;
 import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -16,12 +16,12 @@
  * @date 2025-12-27
  */
 @Mapper
-public interface ServiceDonatemaintenanceMapper extends BaseMapper<ServiceDonatemaintenance> {
+public interface ServiceDonatemaintenanceMapper extends BaseMapper<ServiceDonatemaintenanceEntity> {
     /**
      * 鏌ヨ渚涗綋缁存姢璁板綍鍒楄〃
      *
      * @param maintenanceBaseInfoVO 渚涗綋缁存姢璁板綍
      * @return 渚涗綋缁存姢璁板綍闆嗗悎
      */
-    public List<MaintenanceBaseInfoDTO> selectServiceDonatemaintenanceList(MaintenanceBaseInfoVO maintenanceBaseInfoVO);
+    public List<MaintenanceBaseInfoEntity> selectServiceDonatemaintenanceList(MaintenanceBaseInfoVO maintenanceBaseInfoVO);
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java
index 3b93c97..2c9014a 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceMedicalevaluationMapper.java
@@ -2,17 +2,15 @@
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-import java.util.List;
-
-import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
 import com.ruoyi.project.domain.ServiceMedicalevaluation;
-import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
-import com.ruoyi.project.domain.vo.ServiceMedicalevaluationVO;
+import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
+import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
 import com.ruoyi.project.domain.vo.TimeVO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * 鍖诲璇勪及Mapper鎺ュ彛
  *
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java
index aacb00a..42d3189 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatemaintenanceService.java
@@ -2,7 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.project.domain.ServiceDonatemaintenance;
+import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
 import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
 import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
 
@@ -14,7 +14,7 @@
  * @author ruoyi
  * @date 2025-12-27
  */
-public interface IServiceDonatemaintenanceService extends IService<ServiceDonatemaintenance>
+public interface IServiceDonatemaintenanceService extends IService<ServiceDonatemaintenanceEntity>
 {
 
     /**
@@ -23,7 +23,7 @@
      * @param serviceDonatemaintenance 渚涗綋缁存姢璁板綍
      * @return 渚涗綋缁存姢璁板綍闆嗗悎
      */
-    public Page<ServiceDonatemaintenance> queryList(ServiceDonatemaintenance serviceDonatemaintenance);
+    public Page<ServiceDonatemaintenanceEntity> queryList(ServiceDonatemaintenanceEntity serviceDonatemaintenance);
 
     /**
      * 鑾峰彇渚涗綋缁存姢璁板綍鍩烘湰淇℃伅鍒楄〃
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java
index 611655e..d40dd6e 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceEthicalreviewopinionsService.java
@@ -1,26 +1,29 @@
 package com.ruoyi.project.service;
 
 import java.util.List;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
 import com.ruoyi.project.domain.vo.EthicalReviewVO;
 
 /**
  * 浼︾悊瀹℃煡涓撳鎰忚Service鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2021-11-23
  */
-public interface IServiceEthicalreviewopinionsService extends IService<ServiceEthicalreviewopinions>
-{
+public interface IServiceEthicalreviewopinionsService extends IService<ServiceEthicalreviewopinions> {
 
     /**
      * 鏌ヨ浼︾悊瀹℃煡涓撳鎰忚鍒楄〃
-     * 
-     * @param serviceEthicalreviewopinions 浼︾悊瀹℃煡涓撳鎰忚
+     *
+     * @param serviceEthicalreviewopinions
      * @return 浼︾悊瀹℃煡涓撳鎰忚闆嗗悎
      */
     public List<ServiceEthicalreviewopinions> queryList(ServiceEthicalreviewopinions serviceEthicalreviewopinions);
 
+    public Page<ServiceEthicalreviewopinions> queryListByPage(ServiceEthicalreviewopinions serviceEthicalreviewopinions);
+
     List<EthicalReviewVO> selectVOList(EthicalReviewVO ethicalReviewVO);
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
index 17e8744..4e6e151 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/DingTalkServiceImpl.java
@@ -14,6 +14,7 @@
 import com.dingtalk.api.response.OapiUserListidResponse;
 import com.dingtalk.api.response.OapiV2UserGetbymobileResponse;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.StringUtils;
@@ -28,6 +29,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -183,16 +185,36 @@
      */
     public Map<String, Object> noLogin(String authCode) {
         try {
-            String params = "access_token=" + dingTalkProxyClient.getAccessToken() + "&code=" + authCode;
+            // 澶嶇敤鍚屼竴涓� accessToken锛岄伩鍏嶉噸澶嶈姹�
+            String accessToken = dingTalkProxyClient.getAccessToken();
+
+            // 绗竴姝ワ細authCode 鎹� userid
+            String params = "access_token=" + accessToken + "&code=" + authCode;
             String result = HttpUtils.sendPost("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo", params);
             ObjectMapper objectMapper = new ObjectMapper();
             Map<String, Object> map = objectMapper.readValue(result, Map.class);
-            return map;
+            if (!Integer.valueOf(0).equals(map.get("errcode"))) {
+                throw new BaseException("閽夐拤鐧诲綍澶辫触锛�" + map.get("errmsg"));
+            }
+            Map<String, Object> resultMap = (Map<String, Object>) map.get("result");
+            String userid = (String) resultMap.get("userid");
+
+            // 绗簩姝ワ細userid 鎹㈢敤鎴疯鎯咃紙鍚墜鏈哄彿锛�
+            String params2 = "access_token=" + accessToken + "&userid=" + userid + "&language=zh_CN";
+            String result2 = HttpUtils.sendPost("https://oapi.dingtalk.com/topapi/v2/user/get", params2);
+            Map<String, Object> map2 = objectMapper.readValue(result2, Map.class);
+            if (!Integer.valueOf(0).equals(map2.get("errcode"))) {
+                throw new BaseException("鑾峰彇鐢ㄦ埛璇︽儏澶辫触锛�" + map2.get("errmsg"));
+            }
+            Map<String, Object> userDetail = (Map<String, Object>) map2.get("result");
+
+            return userDetail;
+        } catch (BaseException e) {
+            throw e;
         } catch (Exception e) {
-            log.error(e.getMessage());
-            new BaseException("鐧诲綍鍑哄紓甯镐簡锛岃鑱旂郴绠$悊鍛樺鐞�");
+            log.error("noLogin 寮傚父锛歿}", e);
+            throw new BaseException("鐧诲綍鍑哄紓甯镐簡锛岃鑱旂郴绠$悊鍛樺鐞�");
         }
-        return null;
     }
 
     @Override
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java
index 78e0788..8949968 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatemaintenanceServiceImpl.java
@@ -1,15 +1,15 @@
 package com.ruoyi.project.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.DtoConversionUtils;
-import com.ruoyi.project.domain.ServiceDonatebaseinfo;
-import com.ruoyi.project.domain.ServiceDonatemaintenance;
+import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
 import com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO;
-import com.ruoyi.project.domain.dto.ServiceDonatebaseinfoDTO;
+import com.ruoyi.project.domain.entity.MaintenanceBaseInfoEntity;
 import com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO;
 import com.ruoyi.project.mapper.ServiceDonatemaintenanceMapper;
 import com.ruoyi.project.service.IServiceDonatebaseinfoService;
@@ -17,6 +17,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -26,7 +27,7 @@
  * @date 2025-12-27
  */
 @Service
-public class ServiceDonatemaintenanceServiceImpl extends ServiceImpl<ServiceDonatemaintenanceMapper, ServiceDonatemaintenance> implements IServiceDonatemaintenanceService {
+public class ServiceDonatemaintenanceServiceImpl extends ServiceImpl<ServiceDonatemaintenanceMapper, ServiceDonatemaintenanceEntity> implements IServiceDonatemaintenanceService {
     @Autowired
     private ServiceDonatemaintenanceMapper serviceDonatemaintenanceMapper;
 
@@ -40,42 +41,50 @@
      * @return 渚涗綋缁存姢璁板綍
      */
     @Override
-    public Page<ServiceDonatemaintenance> queryList(ServiceDonatemaintenance serviceDonatemaintenance) {
-        LambdaQueryWrapper<ServiceDonatemaintenance> wrappers = Wrappers.lambdaQuery();
+    public Page<ServiceDonatemaintenanceEntity> queryList(ServiceDonatemaintenanceEntity serviceDonatemaintenance) {
+        LambdaQueryWrapper<ServiceDonatemaintenanceEntity> wrappers = Wrappers.lambdaQuery();
         if (serviceDonatemaintenance.getInfoid() != null) {
-            wrappers.eq(ServiceDonatemaintenance::getInfoid, serviceDonatemaintenance.getInfoid());
+            wrappers.eq(ServiceDonatemaintenanceEntity::getInfoid, serviceDonatemaintenance.getInfoid());
         }
         if (StringUtils.isNotBlank(serviceDonatemaintenance.getCaseNo())) {
-            wrappers.eq(ServiceDonatemaintenance::getCaseNo, serviceDonatemaintenance.getCaseNo());
+            wrappers.eq(ServiceDonatemaintenanceEntity::getCaseNo, serviceDonatemaintenance.getCaseNo());
         }
         if (StringUtils.isNotBlank(serviceDonatemaintenance.getDonorno())) {
-            wrappers.eq(ServiceDonatemaintenance::getDonorno, serviceDonatemaintenance.getDonorno());
+            wrappers.eq(ServiceDonatemaintenanceEntity::getDonorno, serviceDonatemaintenance.getDonorno());
         }
         if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemNo())) {
-            wrappers.eq(ServiceDonatemaintenance::getItemNo, serviceDonatemaintenance.getItemNo());
+            wrappers.eq(ServiceDonatemaintenanceEntity::getItemNo, serviceDonatemaintenance.getItemNo());
         }
         if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemName())) {
-            wrappers.like(ServiceDonatemaintenance::getItemName, serviceDonatemaintenance.getItemName());
+            wrappers.like(ServiceDonatemaintenanceEntity::getItemName, serviceDonatemaintenance.getItemName());
         }
         if (serviceDonatemaintenance.getItemTime() != null) {
-            wrappers.eq(ServiceDonatemaintenance::getItemTime, serviceDonatemaintenance.getItemTime());
+            wrappers.eq(ServiceDonatemaintenanceEntity::getItemTime, serviceDonatemaintenance.getItemTime());
         }
         if (StringUtils.isNotBlank(serviceDonatemaintenance.getItemDesc())) {
-            wrappers.eq(ServiceDonatemaintenance::getItemDesc, serviceDonatemaintenance.getItemDesc());
+            wrappers.eq(ServiceDonatemaintenanceEntity::getItemDesc, serviceDonatemaintenance.getItemDesc());
         }
 
         // 鍒涘缓鍒嗛〉瀵硅薄锛岃缃〉鐮佸拰姣忛〉澶у皬
         int currentPage = (serviceDonatemaintenance.getPageNum() == null || serviceDonatemaintenance.getPageNum() < 1) ? 1 : serviceDonatemaintenance.getPageNum();
         int size = (serviceDonatemaintenance.getPageSize() == null || serviceDonatemaintenance.getPageSize() < 1) ? 10 : serviceDonatemaintenance.getPageSize();
-        Page<ServiceDonatemaintenance> page = new Page<>(currentPage, size);
+        Page<ServiceDonatemaintenanceEntity> page = new Page<>(currentPage, size);
 
-        List<ServiceDonatemaintenance> serviceDonatemaintenanceList = serviceDonatemaintenanceMapper.selectPage(page, wrappers).getRecords();
+        List<ServiceDonatemaintenanceEntity> serviceDonatemaintenanceList = serviceDonatemaintenanceMapper.selectPage(page, wrappers).getRecords();
         return page.setRecords(serviceDonatemaintenanceList);
     }
 
     @Override
     public List<MaintenanceBaseInfoDTO> maintenanceBaseInfoList(MaintenanceBaseInfoVO maintenanceBaseInfoVO) {
-        List<MaintenanceBaseInfoDTO> maintenanceBaseInfoDTOS = serviceDonatemaintenanceMapper.selectServiceDonatemaintenanceList(maintenanceBaseInfoVO);
+        List<MaintenanceBaseInfoEntity> maintenanceBaseInfoEntityList = serviceDonatemaintenanceMapper.selectServiceDonatemaintenanceList(maintenanceBaseInfoVO);
+        List<MaintenanceBaseInfoDTO> maintenanceBaseInfoDTOS = new ArrayList<>();
+        for (MaintenanceBaseInfoEntity maintenanceBaseInfoEntity : maintenanceBaseInfoEntityList) {
+            MaintenanceBaseInfoDTO maintenanceBaseInfoDTO = DtoConversionUtils.sourceToTarget(maintenanceBaseInfoEntity, MaintenanceBaseInfoDTO.class);
+            if (maintenanceBaseInfoEntity.getItemDesc() != null) {
+                maintenanceBaseInfoDTO.setItemDesc(JSONObject.parseObject(maintenanceBaseInfoEntity.getItemDesc()));
+            }
+            maintenanceBaseInfoDTOS.add(maintenanceBaseInfoDTO);
+        }
         return maintenanceBaseInfoDTOS;
     }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
index c67d0bb..cf78d3d 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
@@ -10,6 +10,7 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.project.common.CalculateDateUtils;
+import com.ruoyi.project.domain.ServiceMedicalevaluationorgan;
 import com.ruoyi.project.domain.vo.ServiceDonationwitnessVO;
 import com.ruoyi.project.domain.ServiceDonationwitnessorgan;
 import com.ruoyi.project.domain.vo.DonationwitnessBaseInfoVO;
@@ -105,13 +106,33 @@
     public Boolean edit(ServiceDonationwitnessVO serviceDonationwitnessVO) {
         ServiceDonationwitness serviceDonationwitness = DtoConversionUtils.sourceToTarget(serviceDonationwitnessVO, ServiceDonationwitness.class);
         boolean update = false;
-        if (ObjectUtils.isNotEmpty(serviceDonationwitness)) {
+
+        if (serviceDonationwitness.getDelFlag() != null && serviceDonationwitness.getDelFlag() == 1) {
+            update = removeById(serviceDonationwitness);
+        } else {
             update = updateById(serviceDonationwitness);
         }
 
-        if (ObjectUtils.isNotEmpty(serviceDonationwitnessVO.getServiceDonationwitnessorganList())) {
+        if (update && !CollectionUtils.isEmpty(serviceDonationwitnessVO.getServiceDonationwitnessorganList())) {
             for (ServiceDonationwitnessorgan serviceDonationwitnessorgan : serviceDonationwitnessVO.getServiceDonationwitnessorganList()) {
-                serviceDonationwitnessorganMapper.updateById(serviceDonationwitnessorgan);
+                // 濡傛灉鐖惰妭鐐硅鍒犻櫎锛屽瓙鑺傜偣涔熻鍏ㄥ垹闄�
+                if (serviceDonationwitness.getDelFlag() != null && serviceDonationwitness.getDelFlag() == 1) {
+                    serviceDonationwitnessorgan.setDelFlag(1);
+                }
+
+                //鍒ゆ柇鍒犻櫎杩樻槸淇敼
+                if (serviceDonationwitnessorgan.getDelFlag() != null && serviceDonationwitnessorgan.getDelFlag() == 1) {
+                    serviceDonationwitnessorganMapper.deleteById(serviceDonationwitnessorgan.getId());
+                } else {
+                    serviceDonationwitnessorganMapper.updateById(serviceDonationwitnessorgan);
+                }
+
+                //濡傛灉ID涓虹┖锛屽垯鏄柊澧�
+                if (serviceDonationwitnessorgan.getId() == null) {
+                    serviceDonationwitnessorgan.setInfoid(serviceDonationwitness.getInfoid());
+                    serviceDonationwitnessorgan.setDonationwitnessId(serviceDonationwitness.getId());
+                    serviceDonationwitnessorganMapper.insert(serviceDonationwitnessorgan);
+                }
             }
         }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
index 7b54bc9..0be0d91 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
@@ -6,6 +6,7 @@
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
@@ -101,6 +102,62 @@
         return this.list(wrappers);
     }
 
+
+    @Override
+    public Page<ServiceEthicalreviewopinions> queryListByPage(ServiceEthicalreviewopinions serviceEthicalreviewopinions) {
+        LambdaQueryWrapper<ServiceEthicalreviewopinions> wrappers = Wrappers.lambdaQuery();
+        if (serviceEthicalreviewopinions.getInfoid() != null) {
+            wrappers.eq(ServiceEthicalreviewopinions::getInfoid, serviceEthicalreviewopinions.getInfoid());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getDonorno())) {
+            wrappers.eq(ServiceEthicalreviewopinions::getDonorno, serviceEthicalreviewopinions.getDonorno());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertopinion())) {
+            wrappers.eq(ServiceEthicalreviewopinions::getExpertopinion, serviceEthicalreviewopinions.getExpertopinion());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getCaseNo())) {
+            wrappers.eq(ServiceEthicalreviewopinions::getCaseNo, serviceEthicalreviewopinions.getCaseNo());
+        }
+        if (serviceEthicalreviewopinions.getExpertconclusion() != null) {
+            wrappers.eq(ServiceEthicalreviewopinions::getExpertconclusion, serviceEthicalreviewopinions.getExpertconclusion());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertname())) {
+            wrappers.like(ServiceEthicalreviewopinions::getExpertname, serviceEthicalreviewopinions.getExpertname());
+        }
+        if (serviceEthicalreviewopinions.getConclusiontime() != null) {
+            wrappers.eq(ServiceEthicalreviewopinions::getConclusiontime, serviceEthicalreviewopinions.getConclusiontime());
+        }
+        if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getConclusionannex())) {
+            wrappers.eq(ServiceEthicalreviewopinions::getConclusionannex, serviceEthicalreviewopinions.getConclusionannex());
+        }
+        if (serviceEthicalreviewopinions.getConclusionorder() != null) {
+            wrappers.eq(ServiceEthicalreviewopinions::getConclusionorder, serviceEthicalreviewopinions.getConclusionorder());
+        }
+        if (serviceEthicalreviewopinions.getSendType() != null) {
+            wrappers.eq(ServiceEthicalreviewopinions::getSendType, serviceEthicalreviewopinions.getSendType());
+        }
+        if (serviceEthicalreviewopinions.getReceiveStatus() != null) {
+            wrappers.eq(ServiceEthicalreviewopinions::getReceiveStatus, serviceEthicalreviewopinions.getReceiveStatus());
+        }
+        if (StringUtils.isNotEmpty(serviceEthicalreviewopinions.getDeptCode())) {
+            wrappers.eq(ServiceEthicalreviewopinions::getDeptCode, serviceEthicalreviewopinions.getDeptCode());
+        }
+        if (StringUtils.isNotEmpty(serviceEthicalreviewopinions.getDeptName())) {
+            wrappers.eq(ServiceEthicalreviewopinions::getDeptName, serviceEthicalreviewopinions.getDeptName());
+        }
+        if (StringUtils.isNotEmpty(serviceEthicalreviewopinions.getOrganType())) {
+            wrappers.eq(ServiceEthicalreviewopinions::getOrganType, serviceEthicalreviewopinions.getOrganType());
+        }
+
+        int currentPage = (serviceEthicalreviewopinions.getPageNum() == null || serviceEthicalreviewopinions.getPageNum() < 1) ? 1 : serviceEthicalreviewopinions.getPageNum();
+        int size = (serviceEthicalreviewopinions.getPageSize() == null || serviceEthicalreviewopinions.getPageSize() < 1) ? 10 : serviceEthicalreviewopinions.getPageSize();
+        Page<ServiceEthicalreviewopinions> page = new Page<>(currentPage, size);
+        List<ServiceEthicalreviewopinions> serviceDonateorganBaseList = serviceEthicalreviewopinionsMapper.selectPage(page, wrappers).getRecords();
+
+        return page.setRecords(serviceDonateorganBaseList);
+    }
+
+
     @Override
     public List<EthicalReviewVO> selectVOList(EthicalReviewVO ethicalReviewVO) {
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
index f443fa2..316c604 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
@@ -62,7 +62,8 @@
         }
         if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessState())) {
             wrappers.eq(ServiceMedicalevaluation::getAssessState, serviceMedicalevaluation.getAssessState());
-        }  if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessTime())) {
+        }
+        if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessTime())) {
             wrappers.eq(ServiceMedicalevaluation::getAssessTime, serviceMedicalevaluation.getAssessTime());
         }
         if (StringUtils.isNotBlank(serviceMedicalevaluation.getDonorno())) {
@@ -78,8 +79,8 @@
     public Boolean add(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
         ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
         boolean save = save(serviceMedicalevaluation);
-        if(save && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())){
-            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan:serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
+        if (save && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
+            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
                 serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
                 serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
                 serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
@@ -91,10 +92,29 @@
     @Override
     public Boolean edit(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
         ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
-        boolean update = updateById(serviceMedicalevaluation);
-        if(update && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())){
-            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan:serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
-                serviceMedicalevaluationorganMapper.updateById(serviceMedicalevaluationorgan);
+        boolean update = false;
+        if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
+            update = removeById(serviceMedicalevaluation);
+        } else {
+            update = updateById(serviceMedicalevaluation);
+        }
+        if (update && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
+            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
+                // 濡傛灉鐖惰妭鐐硅鍒犻櫎锛屽瓙鑺傜偣涔熻鍏ㄥ垹闄�
+                if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
+                    serviceMedicalevaluationorgan.setDelFlag(1);
+                }
+
+                if (serviceMedicalevaluationorgan.getDelFlag() != null && serviceMedicalevaluationorgan.getDelFlag() == 1) {
+                    serviceMedicalevaluationorganMapper.deleteById(serviceMedicalevaluationorgan.getId());
+                } else {
+                    serviceMedicalevaluationorganMapper.updateById(serviceMedicalevaluationorgan);
+                }
+                if (serviceMedicalevaluationorgan.getId() == null) {
+                    serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
+                    serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
+                    serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
+                }
             }
         }
         return update;
@@ -130,8 +150,11 @@
                 ServiceMedicalevaluationorgan serviceMedicalevaluationorgan = new ServiceMedicalevaluationorgan();
                 serviceMedicalevaluationorgan.setInfoid(medicalevaluationBaseInfoDTO.getInfoid());
                 List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorgans = serviceMedicalevaluationorganMapper.selectServiceMedicalevaluationorganList(serviceMedicalevaluationorgan);
-                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans))
-                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorgans(serviceMedicalevaluationorgans);
+                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans)) {
+                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorganList(serviceMedicalevaluationorgans);
+                    String organdecision = serviceMedicalevaluationorgans.stream().map(ServiceMedicalevaluationorgan::getOrganno).filter(org.springframework.util.StringUtils::hasText).collect(java.util.stream.Collectors.joining(","));
+                    medicalevaluationBaseInfoDTO.setOrgandecision(organdecision);
+                }
             }
         }
         return medicalevaluationBaseInfoDTOS;
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
index e2fc8ae..68024d7 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatemaintenanceMapper.xml
@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.project.mapper.ServiceDonatemaintenanceMapper">
 
-    <resultMap type="com.ruoyi.project.domain.ServiceDonatemaintenance" id="ServiceDonatemaintenanceResult">
+    <resultMap type="com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity" id="ServiceDonatemaintenanceResult">
         <result property="id" column="ID"/>
         <result property="infoid" column="InfoID"/>
         <result property="caseNo" column="case_no"/>
@@ -38,7 +38,7 @@
     </sql>
 
     <select id="selectServiceDonatemaintenanceList" parameterType="com.ruoyi.project.domain.vo.MaintenanceBaseInfoVO"
-            resultType="com.ruoyi.project.domain.dto.MaintenanceBaseInfoDTO">
+            resultType="com.ruoyi.project.domain.entity.MaintenanceBaseInfoEntity">
         select
         sd.treatmenthospitalname AS treatmenthospitalname,
         sd.treatmenthospitalno AS treatmenthospitalno,
@@ -84,6 +84,7 @@
             <if test="itemName != null  and itemName != ''">and item_name like concat('%', #{itemName}, '%')</if>
             <if test="itemTime != null ">and item_time = #{itemTime}</if>
             <if test="itemDesc != null  and itemDesc != ''">and item_desc = #{itemDesc}</if>
+            <if test="id != null ">and sdt.id = #{id}</if>
         </where>
         <if test="pageNum != null and pageSize != null">limit #{pageNum},#{pageSize}</if>
     </select>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
index 13b1255..6f5f0bd 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationMapper.xml
@@ -32,12 +32,14 @@
         <result property="createTime" column="create_time"/>
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
+        <result property="organdecisionOther" column="organdecision_other"/>
     </resultMap>
 
     <resultMap type="com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO"
                id="MedicalEvaluationWithBaseInfoVOResult">
         <id property="id" column="ID"/>
         <result property="infoid" column="infoID"/>
+        <result property="organdecisionOther" column="organdecision_other"/>
         <result property="recordstate" column="recordstate"/>
         <result property="caseNo" column="case_no"/>
         <result property="donorno" column="DonorNo"/>
@@ -62,6 +64,7 @@
         select ID,
                InfoID,
                case_no,
+               organdecision_other,
                DonorNo,
                assess_state,
                assess_time,
@@ -128,6 +131,7 @@
         `service_donatebaseinfo`.`donatetime` AS `donatetime`,
         `service_medicalevaluation`.`ID` AS `meID`,
         `service_medicalevaluation`.`case_no` AS `case_no`,
+        `service_medicalevaluation`.`organdecision_other` AS `organdecision_other`,
         `service_medicalevaluation`.`HospitalAssessContent` AS `HospitalAssessContent`,
         `service_medicalevaluation`.`HospitalAssessConclusion` AS `HospitalAssessConclusion`,
         `service_medicalevaluation`.`ProvincialAssessContent` AS `ProvincialAssessContent`,
@@ -212,6 +216,7 @@
         sb.id as infoID,
         sm.ID as id,
         sm.assessannex,
+        sm.organdecision_other,
         sm.assess_time,
         sm.assess_state
         FROM service_donatebaseinfo sb
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml
index d67da28..581dab9 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceMedicalevaluationorganMapper.xml
@@ -58,6 +58,7 @@
             resultMap="ServiceMedicalevaluationorganResult">
         <include refid="selectServiceMedicalevaluationorganVo"/>
         <where>
+            del_flag=0
             <if test="infoid != null ">and InfoID = #{infoid}</if>
             <if test="medicalId != null ">and medical_id = #{medicalId}</if>
             <if test="donorno != null  and donorno != ''">and DonorNo = #{donorno}</if>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
index 99b0ec9..ece63f0 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
@@ -289,9 +289,9 @@
         sr.Kinship_ChildrenNum as kinshipChildrenNum,
         sr.KinshipConfirmationSign as kinshipConfirmationSign,
         sr.RelativeConfirmationSign as relativeConfirmationSign,
-        sr.OrganDecision as organDecision,
-        sr.OrganDecision_Other as organDecisionOther,
-        sr.SignFamilyRelations as signFamilyRelations,
+        sr.OrganDecision as organdecision,
+        sr.OrganDecision_Other as organdecisionOther,
+        sr.SignFamilyRelations as signfamilyrelations,
         sr.SignDate as signdate,
         sr.ResponsibleUserName as responsibleusername,
         sr.ResponsibleUserID as responsibleuserid,
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index cb58f46..af0393a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -49,10 +49,10 @@
     /**
      * 閫氳繃閽夐拤鐢ㄦ埛id
      *
-     * @param dingUserId 鐢ㄦ埛鍚�
+     * @param mobile 鐢ㄦ埛鍚�
      * @return 鐢ㄦ埛瀵硅薄淇℃伅
      */
-    public SysUser selectUserByDingUserId(String dingUserId);
+    public SysUser selectUserByDingUserId(String mobile);
 
     /**
      * 閫氳繃寰俊OpenID鏌ヨ鐢ㄦ埛
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index b3030a9..0996f6f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -168,7 +168,7 @@
     </select>
     <select id="selectUserByDingUserId" parameterType="String" resultMap="SysUserResult">
         <include refid="selectUserVo"/>
-        where u.ding_user_id = #{dingUserId}
+        where u.phonenumber = #{mobile}
     </select>
 
     <select id="selectUserByOpenID" parameterType="String" resultMap="SysUserResult">

--
Gitblit v1.9.3