From f16ee221c1384160c96a5907791d07e4f6126c4c Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期五, 24 四月 2026 10:48:17 +0800
Subject: [PATCH] 获取捐献进程进度统计

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java               |    5 +++++
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java                  |    4 ++++
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java        |    4 ++++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java       |    5 +++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java        |    3 ++-
 ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml                 |    1 +
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java           |    1 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java |    1 +
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml                        |   30 ++++++++++++++++++++++++++++++
 9 files changed, 53 insertions(+), 1 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
index d79223f..76b8cab 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
@@ -121,11 +121,12 @@
 
         //鑾峰彇鎹愮尞杩涚▼杩涘害
         Map<Integer, Long> terminationCase = total.stream().filter(Objects::nonNull).map(DonatebaseinfoProgressDTO::getTerminationCase).filter(Objects::nonNull).collect(Collectors.groupingBy(type -> type, Collectors.counting()));
-
+        List<Map<String,Object>> totals= serviceDonatebaseinfoService.totalConfirmationBaseInfo(donatebaseinfoProgressVO);
         //鏁版嵁灏佽
         Map<String, Object> map = new HashMap<>();
         map.put("terminationCase", terminationCase);
         map.put("donatebaseinfoProgressDTOS", donatebaseinfoProgressDTOS);
+        map.put("total", totals);
 
         if (!CollectionUtils.isEmpty(total)) totalCount = total.size();
         return getDataTable(map, totalCount);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java
index 5fc7237..4868797 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonatebaseinfoMapper.java
@@ -5,10 +5,12 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import com.ruoyi.project.domain.ServiceDonatebaseinfo;
 import com.ruoyi.project.domain.dto.DonatebaseinfoProgressDTO;
 import com.ruoyi.project.domain.vo.DonatebaseinfoProgressVO;
+import com.ruoyi.project.domain.vo.RelativeConfirmationBaseInfoVO;
 import com.ruoyi.project.domain.vo.TimeVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -57,6 +59,8 @@
 
     List<DonatebaseinfoProgressDTO> donateBaseInfoProgressList(DonatebaseinfoProgressVO donatebaseinfoProgressVO);
 
+    List<Map<String,Object>> totalConfirmationBaseInfo(DonatebaseinfoProgressVO donatebaseinfoProgressVO);
+
     ServiceDonatebaseinfo getById(Long infoid);
 
     int countByRecordState(@Param("recordState") String recordState, @Param("starttime") Date starttime, @Param("endtime") Date endtime);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java
index 0672e60..2e3c68d 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceRelativesconfirmationMapper.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 import java.util.List;
+import java.util.Map;
 
 import com.ruoyi.project.domain.ServiceRelativesconfirmation;
 import com.ruoyi.project.domain.dto.RelativeConfirmationBaseInfoDTO;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java
index 9a5836b..a026c49 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonatebaseinfoService.java
@@ -8,6 +8,7 @@
 import com.ruoyi.project.domain.ServiceDonatebaseinfo;
 import com.ruoyi.project.domain.dto.DonatebaseinfoProgressDTO;
 import com.ruoyi.project.domain.vo.DonatebaseinfoProgressVO;
+import com.ruoyi.project.domain.vo.RelativeConfirmationBaseInfoVO;
 import com.ruoyi.project.domain.vo.TimeVO;
 import com.ruoyi.project.domain.vo.countByRecordStateVO;
 import org.apache.xmlbeans.impl.xb.xsdschema.Public;
@@ -51,6 +52,8 @@
 
     List<DonatebaseinfoProgressDTO> donateBaseInfoProgressList(DonatebaseinfoProgressVO donatebaseinfoProgressVO);
 
+    List<Map<String,Object>> totalConfirmationBaseInfo(DonatebaseinfoProgressVO donatebaseinfoProgressVO);
+
     String gethqzz(Long infoid);
 
     countByRecordStateVO countByRecordState(TimeVO timeVO);
@@ -58,4 +61,6 @@
     String getDonateNameById(Long infoid);
 
     Map<String, Object> getWorkFlow(Long id);
+
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java
index 2524688..32b7bab 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceRelativesconfirmationService.java
@@ -1,6 +1,8 @@
 package com.ruoyi.project.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.project.domain.ServiceRelativesconfirmation;
 import com.ruoyi.project.domain.dto.RelativeConfirmationBaseInfoDTO;
@@ -30,4 +32,6 @@
     List<RelativeConfirmationVO> selectVOList(RelativeConfirmationVO relativeConfirmationVO);
 
     List<RelativeConfirmationBaseInfoDTO> confirmationBaseInfoList(RelativeConfirmationBaseInfoVO relativeConfirmationBaseInfoVO);
+
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java
index dd539ff..b8e392e 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoReportServiceImpl.java
@@ -128,6 +128,7 @@
         serviceDonatebaseinfo1.setReportername(serviceDonatebaseinfoReport.getCoordinatorName());
         serviceDonatebaseinfo1.setBloodtype(serviceDonatebaseinfoReport.getBloodType());
         serviceDonatebaseinfo1.setRhyin(serviceDonatebaseinfoReport.getRhYin());
+        serviceDonatebaseinfo1.setRecordstate("0");
         //鍏堥�氳繃caseNo鏌ヨ鏄惁瀛樺湪
         ServiceDonatebaseinfo serviceDonatebaseinfo = new ServiceDonatebaseinfo();
         serviceDonatebaseinfo.setCaseNo(serviceDonatebaseinfoReport.getCaseNo());
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
index 877ec1d..3ec8b27 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -254,6 +254,11 @@
     }
 
     @Override
+    public List<Map<String,Object>> totalConfirmationBaseInfo(DonatebaseinfoProgressVO donatebaseinfoProgressVO) {
+        return serviceDonatebaseinfoMapper.totalConfirmationBaseInfo(donatebaseinfoProgressVO);
+    }
+
+    @Override
     public String gethqzz(Long infoid) {
         return serviceDonatebaseinfoMapper.gethqzz(infoid);
     }
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
index 185951c..5d97133 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
@@ -478,4 +478,34 @@
         <if test="pageNum != null and pageSize != null">limit #{pageNum},#{pageSize}</if>
 
     </select>
+    <select id="totalConfirmationBaseInfo" resultType="Map">
+        SELECT  recordstate AS recordState, count(recordstate) AS stateCount
+        FROM service_donatebaseinfo sd
+        LEFT JOIN service_medicalevaluation sm ON sd.ID = sm.InfoID
+        AND sm.del_flag = 0 -- 鎹愮尞璇勪及
+        LEFT JOIN service_relativesconfirmation sr ON sd.ID = sr.InfoID
+        AND sr.del_flag = 0-- 鎹愮尞纭
+        LEFT JOIN service_ethicalreviewinitiate se ON sd.ID = se.InfoID
+        AND se.del_flag = 0-- 浼︾悊瀹℃煡
+        LEFT JOIN service_donationwitness sdw ON sd.ID = sdw.InfoID
+        AND sdw.del_flag = 0-- 鑾峰彇瑙佽瘉
+        LEFT JOIN service_donatecompletioninfo sdt ON sd.ID = sdt.InfoID
+        AND sdt.del_flag = 0 -- 瀹屾垚鐧昏
+
+        <where>sd.del_flag = 0
+            <if test="terminationCase != null ">AND sd.termination_case = #{terminationCase}</if>
+            <if test="treatmentHospitalName != null ">AND sd.TreatmentHospitalName = #{treatmentHospitalName}</if>
+            <if test="name != null ">AND sd.Name like concat('%', #{name}, '%')</if>
+            <if test="inpatientNo != null ">AND sd.InpatientNo = #{inpatientNo}</if>
+            <if test="startAge != null">AND sd.age &gt;= #{startAge}</if>
+            <if test="endAge !=null">AND sd.age &lt;= #{endAge}
+            </if>
+            <if test="idcardno != null  and idcardno != ''">and IDCardNo = #{idcardno}</if>
+            <if test="recordstate != null and recordstate != ''">and sd.RecordState = #{recordstate}</if>
+            <if test="workflow != null">and sd.workflow = #{workflow}</if>
+            <if test="diagnosisName != null">and sd.DiagnosisName like concat('%', #{diagnosisName}, '%')</if>
+        </where>
+        GROUP BY recordstate
+    </select>
+
 </mapper>
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
index 7d47e14..d52137d 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceRelativesconfirmationMapper.xml
@@ -341,4 +341,5 @@
         <if test="pageNum != null and pageSize != null">limit #{pageNum},#{pageSize}</if>
     </select>
 
+
 </mapper>

--
Gitblit v1.9.3