From c9d33a3083bf4a226e736a447ce920a665409a06 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期五, 18 九月 2026 14:33:11 +0800
Subject: [PATCH] 案例趋势相关统计
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTotalsController.java | 8 ++++
ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTotalsMapper.java | 6 +++
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTotalsServiceImp.java | 9 ++++
ruoyi-project/src/main/java/com/ruoyi/project/service/iServiceTotalsService.java | 6 +++
ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml | 30 ++++++++++-----
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrgan.java | 3 +
ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrganTotals.java | 22 +++++++++++
7 files changed, 74 insertions(+), 10 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTotalsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTotalsController.java
index 22d1fd5..717c0aa 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTotalsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTotalsController.java
@@ -112,4 +112,12 @@
Long count=service.trendCount(totals);
return Result.success(count,list);
}
+
+ @ApiOperation("鍣ㄧ绉绘鎬荤粺璁�")
+ @PostMapping("/organTotals")
+ public Result<List<ServiceTotalsOrganTotals>> organTotals(@RequestBody ServiceTotals totals)
+ {
+ List<ServiceTotalsOrganTotals> list = service.organTotals(totals);
+ return Result.success(list);
+ }
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrgan.java
index 75a79bb..86967da 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrgan.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrgan.java
@@ -19,4 +19,7 @@
@ApiModelProperty("绉绘鏁�")
private Integer useCount;
+
+ @ApiModelProperty("鍖哄煙")
+ private String area;
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrganTotals.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrganTotals.java
new file mode 100644
index 0000000..cb48566
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/ServiceTotalsOrganTotals.java
@@ -0,0 +1,22 @@
+package com.ruoyi.project.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("opo鍣ㄧ鎬荤粺璁�")
+public class ServiceTotalsOrganTotals {
+
+ @ApiModelProperty("鎬昏幏鍙栨暟")
+ private Integer totalGet;
+
+ @ApiModelProperty("鎬诲洖绾虫暟")
+ private Integer totalRecycle;
+
+ @ApiModelProperty("鎬荤Щ妞嶆暟")
+ private Integer totalTransplant;
+
+ @ApiModelProperty("鎬诲純鐢ㄦ暟")
+ private Integer totalDiscard;
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTotalsMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTotalsMapper.java
index 00c4463..37b462b 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTotalsMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTotalsMapper.java
@@ -81,5 +81,11 @@
public Long trendCount(ServiceTotals totals);
+ /**
+ * 鍣ㄧ绉绘鎬荤粺璁�
+ *
+ */
+ List<ServiceTotalsOrganTotals> organTotals(ServiceTotals totals);
+
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/iServiceTotalsService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/iServiceTotalsService.java
index e659ded..edd5c21 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/iServiceTotalsService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/iServiceTotalsService.java
@@ -75,5 +75,11 @@
*
*/
Long trendCount(ServiceTotals totals);
+
+ /**
+ * 鍣ㄧ绉绘鎬荤粺璁�
+ *
+ */
+ List<ServiceTotalsOrganTotals> organTotals(ServiceTotals totals);
}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTotalsServiceImp.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTotalsServiceImp.java
index 3c24c1a..d294c1f 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTotalsServiceImp.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTotalsServiceImp.java
@@ -132,4 +132,13 @@
return mapper.trendCount(totals);
}
+ /**
+ * 鍣ㄧ绉绘鎬荤粺璁�
+ *
+ */
+ @Override
+ public List<ServiceTotalsOrganTotals> organTotals(ServiceTotals totals) {
+ return mapper.organTotals(totals);
+ }
+
}
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
index d7258bb..9b49fe8 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
@@ -45,24 +45,26 @@
<select id="organ" parameterType="com.ruoyi.project.domain.ServiceTotals"
resultType="ServiceTotalsOrgan">
- SELECT DATE_FORMAT(a.OrganGetTime, '%Y-%m') donateTime,a.OrganName organName, COUNT(*) getCount,
+ 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
+ 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="ServiceTotalsOrgan">
- SELECT DATE_FORMAT(a.OrganGetTime, '%Y-%m') donateTime, COUNT(*) getCount,
+ 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
<where>
@@ -71,10 +73,10 @@
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"
@@ -88,8 +90,8 @@
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>
@@ -199,4 +201,12 @@
</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>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3