From 6be76e5857faa20eca68248187bd181aa50b029b Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期一, 18 五月 2026 09:19:10 +0800
Subject: [PATCH] 理审查专家新增获专家状态统计

---
 ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java                |    8 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewopinionsController.java |    9 +-
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java                           |   14 +--
 ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml                 |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java |    8 +-
 ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml                 |   15 +++
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/Result.java                                    |  132 +++++++++++++++++++++++++++++++++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ReviewInitiateBaseInfoVO.java                  |    7 +
 8 files changed, 175 insertions(+), 22 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java
index e440b41..573b808 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceEthicalreviewinitiateController.java
@@ -134,11 +134,11 @@
     public AjaxResult edit(@RequestBody ServiceEthicalreviewinitiate serviceEthicalreviewinitiate) {
         boolean result=serviceEthicalreviewinitiateService.updateById(serviceEthicalreviewinitiate);
         if (result) {
+            QueryWrapper<ServiceEthicalreviewopinions> ethicalreviewopinionsWrapper=new QueryWrapper<>();
+            ethicalreviewopinionsWrapper.eq("nitiate_id",serviceEthicalreviewinitiate.getId());
+            serviceEthicalreviewopinionsService.remove(ethicalreviewopinionsWrapper);
             for(ServiceEthicalreviewopinions row: serviceEthicalreviewinitiate.getEthicalreviewopinionsList()){
-                if(ObjectUtils.isNotEmpty(row.getId())){
-                    serviceEthicalreviewopinionsService.updateById(row);
-                }
-
+                    serviceEthicalreviewopinionsService.save(row);
             }
             return AjaxResult.success();
         } else
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 1478d4d..626f9a6 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
@@ -8,6 +8,7 @@
 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.domain.Result;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.PageUtils;
@@ -161,15 +162,15 @@
 
     @ApiOperation("涓撳缁熻璇︽儏")
     @GetMapping(value = "/expertTotal")
-    public List<EthicalreviewopinionsTotalVO> expertTotal(String expertNo) {
-        return serviceEthicalreviewopinionsService.expertTotal(expertNo);
+    public Result<List<EthicalreviewopinionsTotalVO>> expertTotal(String expertNo) {
+        return Result.success(serviceEthicalreviewopinionsService.expertTotal(expertNo)) ;
     }
 
 
     @ApiOperation("涓撳鐘舵�佺粺璁�")
     @GetMapping(value = "/stateTotal")
-    public List<EthicalreviewopinionsStateTotalVO> stateTotal(String expertNo) {
-        return serviceEthicalreviewopinionsService.stateTotal(expertNo);
+    public Result<List<EthicalreviewopinionsStateTotalVO>> stateTotal(String expertNo) {
+        return Result.success(serviceEthicalreviewopinionsService.stateTotal(expertNo));
     }
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/Result.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/Result.java
new file mode 100644
index 0000000..61fd297
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/Result.java
@@ -0,0 +1,132 @@
+package com.ruoyi.common.core.domain;
+
+
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+
+public class Result<T> implements Serializable {
+    private static final long serialVersionUID = 1L;
+    public static final int SUCCESS = 200;
+    public static final int FAIL = 500;
+
+    @ApiModelProperty("杩斿洖鍐呭")
+    private String msg = "鎴愬姛";
+
+    @ApiModelProperty("鐘舵�佺爜")
+    private Integer code = 0;
+
+    @ApiModelProperty("鎬绘潯鏁�")
+    private Long total = 0L;
+
+    @ApiModelProperty("鏁版嵁瀵硅薄")
+    private T data;
+
+    public Result() {
+    }
+
+    public Result(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+
+    public static <T> Result<T> success() {
+        Result<T> r = new Result();
+        r.setCode(0);
+        return r;
+    }
+
+    public static <T> Result<T> success(String msg) {
+        Result<T> r = new Result();
+        r.setCode(SUCCESS);
+        r.setData((T) msg);
+        return r;
+    }
+
+    public static <T> Result<T> success(T data) {
+        Result<T> r = new Result();
+        r.setCode(SUCCESS);
+        r.setData(data);
+        return r;
+    }
+
+    public static <T> Result<T> success(Long total, T data) {
+        Result<T> r = new Result();
+        r.setTotal(total);
+        r.setCode(SUCCESS);
+        r.setData(data);
+        return r;
+    }
+
+    public static <T> Result<T> success(String msg, T data) {
+        Result<T> r = new Result();
+        r.setCode(SUCCESS);
+        r.setMsg(msg);
+        r.setData(data);
+        return r;
+    }
+
+
+    public static <T> Result<T> error() {
+        return error(FAIL, "鎿嶄綔澶辫触");
+    }
+
+    public static <T> Result<T> error(String msg) {
+        return error(FAIL, msg);
+    }
+
+    public static <T> Result<T> error(int code, String msg) {
+        return error(code, msg, null);
+    }
+
+    public static <T> Result<T> error(int code, String msg, T data) {
+        Result<T> r = new Result();
+        r.setCode(code);
+        r.setData(data);
+        return r;
+    }
+
+
+
+    public static <T> Result<T> noauth(String msg) {
+        return error(510, msg);
+    }
+
+    public String getMsg() {
+        return this.msg;
+    }
+
+    public Integer getCode() {
+        return this.code;
+    }
+
+    public Long getTotal() {
+        return this.total;
+    }
+
+    public T getData() {
+        return this.data;
+    }
+
+    public void setMsg(final String msg) {
+        this.msg = msg;
+    }
+
+    public void setCode(final Integer code) {
+        this.code = code;
+    }
+
+    public void setTotal(final Long total) {
+        this.total = total;
+    }
+
+    public void setData(final T data) {
+        this.data = data;
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java
index 0d16ef8..27c9dcf 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/dto/ReviewInitiateBaseInfoDTO.java
@@ -171,5 +171,13 @@
     @ApiModelProperty("绛惧悕")
     @Excel(name = "绛惧悕")
     private String sigin;
+
+    @ApiModelProperty("鍙戣捣浜�")
+    @Excel(name = "鍙戣捣浜�")
+    private String  initiatePerson;
+
+    @ApiModelProperty("鍙戣捣涓婚")
+    @Excel(name = "鍙戣捣涓婚")
+    private String  initiateTheme;
 }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java
index 01a32db..72973e5 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/EthicalReviewVO.java
@@ -626,17 +626,7 @@
     @Excel(name = "鎺ユ敹鐘舵��0寰呮帴鏀�1鏈帴鏀�2宸叉帴鏀�3瓒呮椂4涓5瀹屾垚")
     private String receiveStatus;
 
-    /** 鍙戣捣鏃堕棿 */
-    @ApiModelProperty("鍙戣捣鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "鍙戣捣鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date startTime;
 
-    /** 缁撴潫鏃堕棿 */
-    @ApiModelProperty("缁撴潫鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "缁撴潫鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    private Date endTime;
 
     @ApiModelProperty("浼︾悊瀹℃煡id")
     @Excel(name = "浼︾悊瀹℃煡id")
@@ -646,4 +636,8 @@
     @Excel(name = "绛惧悕")
     private String sigin;
 
+    @ApiModelProperty("涓撳绫诲瀷")
+    @Excel(name = "涓撳绫诲瀷")
+    private String expertType;
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ReviewInitiateBaseInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ReviewInitiateBaseInfoVO.java
index c2c4ca2..de014f2 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ReviewInitiateBaseInfoVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ReviewInitiateBaseInfoVO.java
@@ -145,5 +145,12 @@
     @Excel(name = "鐘舵�侊細0锛氭柊寤�;1锛氬鏌ヤ腑;2锛氱粨鏉�")
     private String status;
 
+    @ApiModelProperty("鍙戣捣浜�")
+    @Excel(name = "鍙戣捣浜�")
+    private String  initiatePerson;
+
+    @ApiModelProperty("鍙戣捣涓婚")
+    @Excel(name = "鍙戣捣涓婚")
+    private String  initiateTheme;
 }
 
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml
index 40b1142..25006b3 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewinitiateMapper.xml
@@ -104,7 +104,9 @@
         se.expert_time as expertTime,
         ifnull(se.status,0) as status,
         se.file_patch as filePatch,
-        se.sigin
+        se.sigin,
+        se.initiate_theme,
+        se.initiate_person
         FROM
         service_donatebaseinfo sd
         LEFT JOIN service_ethicalreviewinitiate se ON sd.ID = se.InfoID and sd.del_flag = 0
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml
index ca1ebf5..7a6a1ee 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceEthicalreviewopinionsMapper.xml
@@ -138,6 +138,9 @@
         service_ethicalreviewopinions.ConclusionOrder as conclusionorder,
         service_ethicalreviewopinions.nitiate_id as nitiateId,
         service_ethicalreviewopinions.expert_no as expertNo,
+        service_ethicalreviewopinions.start_time,
+        service_ethicalreviewopinions.end_time,
+        service_ethicalreviewopinions.expert_type,
         service_ethicalreviewopinions.sigin as sigin
         FROM   service_donatebaseinfo
         LEFT JOIN  service_ethicalreviewopinions
@@ -155,8 +158,8 @@
             <if test="treatmenthospitalno != null  and treatmenthospitalno != ''">and
                 `service_donatebaseinfo`.`TreatmentHospitalNo` = #{treatmenthospitalno}
             </if>
-            <if test="recordstate != null  and recordstate != ''">and `service_donatebaseinfo`.`RecordState` =
-                #{recordstate}
+            <if test="recordstate != null  and recordstate != ''">
+                and `service_donatebaseinfo`.`RecordState` = #{recordstate}
             </if>
             <if test="caseNo != null  and caseNo != ''">and `service_donatebaseinfo`.`case_no` =
                 #{caseNo}
@@ -174,6 +177,12 @@
             <if test="workflow != null ">and `service_donatebaseinfo`.`workflow` = #{workflow}</if>
             <if test="nitiateId != null ">and `service_ethicalreviewopinions`.`nitiate_id` = #{nitiateId}</if>
             <if test="expertNo != null ">and `service_ethicalreviewopinions`.`expert_no` = #{expertNo}</if>
+            <if test="receiveStatus != null  and receiveStatus != ''">
+                and `service_ethicalreviewopinions`.`receive_status` in(${receiveStatus})
+            </if>
+            <if test="expertname != null ">and `service_ethicalreviewopinions`.`expertname` = #{expertname}</if>
+            <if test="expertconclusion != null ">and `service_ethicalreviewopinions`.`expertconclusion` = #{expertconclusion}</if>
+
         </where>
 
         order by `service_ethicalreviewopinions`.`ConclusionTime` desc
@@ -219,7 +228,7 @@
             <if test="expertNo != null ">expert_no = #{expertNo}</if>
         </where>
 
-        GROUP BY receive_status
+
     </select>
 
 </mapper>

--
Gitblit v1.9.3