From f4499fef3cddf792743f6ff509591a08c4dd40a7 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期一, 21 九月 2026 11:21:22 +0800
Subject: [PATCH] 在捐献、已获取、案例完成 状态连动保存
---
ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml | 175 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 130 insertions(+), 45 deletions(-)
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
index 935f400..ec964e8 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
@@ -5,99 +5,108 @@
<mapper namespace="com.ruoyi.project.mapper.ServiceTotalsMapper">
<select id="caseTrend" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
- SELECT DATE_FORMAT(a.ReportTime, '%Y-%m') donateTime, register_county_name area, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo_report a
- LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id and a.del_flag=0 and b.del_flag=0
+ resultType="ServiceTotalsTrend">
+ SELECT DATE_FORMAT(a.donatetime, '%Y-%m') donateTime, RegisterCountyName area, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a
+ LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id
<where>
- <if test="area != null and area != ''">and register_county_name>=#{area}</if>
- <if test="startTime != null and startTime != ''">and a.ReportTime>=#{startTime}</if>
- <if test="endTime != null and endTime != ''">and a.ReportTime <= #{endTime}</if>
+ a.del_flag=0
+ <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if>
+ <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if>
</where>
- GROUP BY register_county_name, DATE_FORMAT(a.ReportTime, '%Y-%m')
+ GROUP BY RegisterCountyName, DATE_FORMAT(a.donatetime, '%Y-%m')
</select>
<select id="caseTrendMoon" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
- SELECT DATE_FORMAT(a.ReportTime, '%Y-%m') donateTime, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a
- LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id and a.del_flag=0 and b.del_flag=0
+ resultType="ServiceTotalsTrend">
+ SELECT DATE_FORMAT(a.donatetime, '%Y-%m') donateTime, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a
+ LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id
<where>
- <if test="area != null and area != ''">and register_county_name>=#{area}</if>
- <if test="startTime != null and startTime != ''">and a.ReportTime>=#{startTime}</if>
- <if test="endTime != null and endTime != ''">and a.ReportTime <= #{endTime}</if>
+ a.del_flag=0
+ <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if>
+ <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if>
</where>
- GROUP BY DATE_FORMAT(a.ReportTime, '%Y-%m')
+ GROUP BY DATE_FORMAT(a.donatetime, '%Y-%m')
</select>
<select id="caseTrendArea" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
- SELECT register_county_name area, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a
- LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id and a.del_flag=0 and b.del_flag=0
+ resultType="ServiceTotalsTrend">
+ SELECT RegisterCountyName area, COUNT(*) potentialCount,COUNT(IF(complete_state=3, true, null)) completeCount FROM service_donatebaseinfo a
+ LEFT JOIN service_donatecompletioninfo b ON b.InfoID=a.id
<where>
- <if test="area != null and area != ''">and register_county_name>=#{area}</if>
- <if test="startTime != null and startTime != ''">and a.ReportTime>=#{startTime}</if>
- <if test="endTime != null and endTime != ''">and a.ReportTime <= #{endTime}</if>
+ a.del_flag=0
+ <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if>
+ <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if>
</where>
- GROUP BY register_county_name
+ GROUP BY RegisterCountyName
</select>
<select id="organ" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
- SELECT DATE_FORMAT(a.OrganGetTime, '%Y-%m') donateTime,a.OrganName organName, COUNT(*) getCount,
+ resultType="ServiceTotalsOrgan">
+ SELECT DATE_FORMAT(a.organ_start_time, '%Y-%m') donateTime,a.OrganName organName, COUNT(*) getCount,c.RegisterCountyName area,
COUNT(IF(transplantstate=3, true, NULL)) useCount FROM service_donationwitnessorgan a
- LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName and a.del_flag=0 and b.del_flag=0
+ LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName
+ LEFT JOIN service_donatebaseinfo c ON a.InfoID=c.ID
<where>
+ a.del_flag=0
<if test="area != null and area != ''">
and a.InfoID in (select id FROM service_donatecompletioninfo where RegisterCountyName>=#{area} )
</if>
+ <if test="area != null and area != ''">and c.RegisterCountyName>=#{area}</if>
<if test="organName != null and organName != ''">and a.OrganName>=#{organName}</if>
- <if test="startTime != null and startTime != ''">and a.OrganGetTime>=#{startTime}</if>
- <if test="endTime != null and endTime != ''">and a.OrganGetTime <= #{endTime}</if>
+ <if test="startTime != null and startTime != ''">and a.organ_start_time>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.organ_start_time <= #{endTime}</if>
</where>
- GROUP BY DATE_FORMAT(a.OrganGetTime, '%Y-%m'),a.OrganName
+ GROUP BY DATE_FORMAT(a.organ_start_time, '%Y-%m'),a.OrganName,c.RegisterCountyName
</select>
<select id="organMoon" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
- SELECT DATE_FORMAT(a.OrganGetTime, '%Y-%m') donateTime, COUNT(*) getCount,
+ resultType="ServiceTotalsOrgan">
+ SELECT DATE_FORMAT(a.organ_start_time, '%Y-%m') donateTime, COUNT(*) getCount,
COUNT(IF(transplantstate=3, true, NULL)) useCount FROM service_donationwitnessorgan a
- LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName and a.del_flag=0 and b.del_flag=0
+ LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName
<where>
+ a.del_flag=0
<if test="area != null and area != ''">
and a.InfoID in (select id FROM service_donatecompletioninfo where RegisterCountyName>=#{area} )
</if>
<if test="organName != null and organName != ''">and a.OrganName>=#{organName}</if>
- <if test="startTime != null and startTime != ''">and a.OrganGetTime>=#{startTime}</if>
- <if test="endTime != null and endTime != ''">and a.OrganGetTime <= #{endTime}</if>
+ <if test="startTime != null and startTime != ''">and a.organ_start_time>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.organ_start_time <= #{endTime}</if>
</where>
- GROUP BY DATE_FORMAT(a.OrganGetTime, '%Y-%m')
+ GROUP BY DATE_FORMAT(a.organ_start_time, '%Y-%m')
</select>
<select id="organType" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
+ resultType="ServiceTotalsOrgan">
SELECT a.OrganName organName, COUNT(*) getCount,
COUNT(IF(transplantstate=3, true, NULL)) useCount FROM service_donationwitnessorgan a
- LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName and a.del_flag=0 and b.del_flag=0
+ LEFT JOIN service_donatecomporgan b ON a.InfoID=b.InfoID AND a.OrganName=b.OrganName
<where>
+ a.del_flag=0
<if test="area != null and area != ''">
and a.InfoID in (select id FROM service_donatecompletioninfo where RegisterCountyName>=#{area} )
</if>
<if test="organName != null and organName != ''">and a.OrganName>=#{organName}</if>
- <if test="startTime != null and startTime != ''">and a.OrganGetTime>=#{startTime}</if>
- <if test="endTime != null and endTime != ''">and a.OrganGetTime <= #{endTime}</if>
+ <if test="startTime != null and startTime != ''">and a.organ_start_time>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.organ_start_time <= #{endTime}</if>
</where>
GROUP BY a.OrganName
</select>
<select id="caseSex" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
+ resultType="ServiceTotalsSex">
SELECT COUNT(sex) totalCount, COUNT(IF(sex=1, true, NULL)) manCount ,COUNT(IF(sex=2, true, NULL)) womanCount
FROM service_donatebaseinfo
<where>
+ del_flag=0
<if test="area != null and area != ''">
and RegisterCountyName>=#{area}
</if>
- <if test="bloodType != null and bloodType != ''">
- and BloodType>=#{bloodType}
+ <if test="boodType != null and boodType != ''">
+ and BloodType>=#{boodType}
</if>
<if test="sex != null and sex != ''">
and sex>=#{sex}
@@ -115,11 +124,12 @@
resultType="ServiceTotals">
SELECT AVG(age) avgAge FROM service_donatebaseinfo
<where>
+ del_flag=0
<if test="area != null and area != ''">
and RegisterCountyName>=#{area}
</if>
- <if test="bloodType != null and bloodType != ''">
- and BloodType>=#{bloodType}
+ <if test="boodType != null and boodType != ''">
+ and BloodType>=#{boodType}
</if>
<if test="sex != null and sex != ''">
and sex>=#{sex}
@@ -133,15 +143,16 @@
</select>
<select id="caseBloodType" parameterType="com.ruoyi.project.domain.ServiceTotals"
- resultType="ServiceTotals">
+ resultType="ServiceTotalsBood">
SELECT COUNT(BloodType) boodTypeCount,BloodType bloodType
FROM service_donatebaseinfo
<where>
+ del_flag=0
<if test="area != null and area != ''">
and RegisterCountyName>=#{area}
</if>
- <if test="bloodType != null and bloodType != ''">
- and BloodType>=#{bloodType}
+ <if test="boodType != null and boodType != ''">
+ and BloodType>=#{boodType}
</if>
<if test="sex != null and sex != ''">
and sex>=#{sex}
@@ -155,4 +166,78 @@
GROUP BY BloodType
</select>
+ <select id="totals" parameterType="com.ruoyi.project.domain.ServiceTotals"
+ resultType="ServiceTotalsTotal">
+ SELECT ( SELECT COUNT(*) FROM service_donatebaseinfo WHERE del_flag=0) totalPotential,
+ (SELECT COUNT(*) FROM service_donatecompletioninfo WHERE del_flag=0 and complete_state=3) totalCompletion
+ </select>
+
+ <select id="trendList" parameterType="com.ruoyi.project.domain.ServiceTotals"
+ resultType="trendList">
+ SELECT a.id,a.case_no,a.NAME ,a.InpatientNo,a.TreatmentHospitalName,a.workflow,a.donatetime,d.DeathReason,
+ (SELECT GROUP_CONCAT(c.OrganName) FROM service_donateorgan c WHERE c.InfoId=a.id AND c.del_flag=0) OrganName
+ FROM service_donatebaseinfo a
+ LEFT JOIN service_deathinfo d ON d.InfoID=a.id
+ <where>
+ a.del_flag=0
+ <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if>
+ <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if>
+ </where>
+
+ </select>
+
+ <select id="trendCount" parameterType="com.ruoyi.project.domain.ServiceTotals"
+ resultType="Long">
+ SELECT count(*)
+ FROM service_donatebaseinfo a
+ LEFT JOIN service_deathinfo d ON d.InfoID=a.id
+ <where>
+ a.del_flag=0
+ <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if>
+ <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if>
+ </where>
+
+ </select>
+
+ <select id="organTotals" parameterType="com.ruoyi.project.domain.ServiceTotals"
+ resultType="ServiceTotalsOrganTotals">
+ SELECT ( SELECT COUNT(*) FROM service_donatecomporgan WHERE del_flag=0 AND transplantstate=1) totalTransplant,
+ ( SELECT COUNT(*) FROM service_donatecomporgan WHERE del_flag=0 AND transplantstate=4) totalDiscard,
+ (SELECT COUNT(*) FROM service_donationwitnessorgan WHERE del_flag=0 AND OrganState=3) totalGet,
+ (SELECT COUNT(*) FROM service_donationwitnessorgan WHERE del_flag=0 AND OrganState=4) totalRecycle
+ </select>
+
+ <select id="organList" parameterType="com.ruoyi.project.domain.ServiceTotals"
+ resultType="organList">
+ SELECT a.id,a.case_no,a.NAME,a.RegisterCountyName,YEAR(a.donatetime) donateYear,b.OrganName,b.transplantstate,
+ b.TransplantTime,b.Name,b.TransplantDoct,b.HospitalName,c.OrganGetTime,c.notgetreason
+ FROM service_donatebaseinfo a LEFT JOIN service_donatecomporgan b ON a.ID=b.InfoID
+ LEFT JOIN service_donationwitnessorgan c ON a.ID=c.InfoID
+ <where>
+ a.del_flag=0 AND b.del_flag=0 AND c.del_flag=0
+ <if test="organName != null and organName != ''">and b.OrganName>=#{organName}</if>
+ <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if>
+ <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if>
+ </where>
+
+ </select>
+
+ <select id="organCount" parameterType="com.ruoyi.project.domain.ServiceTotals"
+ resultType="Long">
+ SELECT count(*)
+ FROM service_donatebaseinfo a LEFT JOIN service_donatecomporgan b ON a.ID=b.InfoID
+ LEFT JOIN service_donationwitnessorgan c ON a.ID=c.InfoID
+ <where>
+ a.del_flag=0 AND b.del_flag=0 AND c.del_flag=0
+ <if test="organName != null and organName != ''">and b.OrganName>=#{organName}</if>
+ <if test="area != null and area != ''">and a.RegisterCountyName>=#{area}</if>
+ <if test="startTime != null and startTime != ''">and a.donatetime>=#{startTime}</if>
+ <if test="endTime != null and endTime != ''">and a.donatetime <= #{endTime}</if>
+ </where>
+
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3