From 63b95a545b17b5efdfcfc902f129d354600c44ab Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期一, 21 九月 2026 10:52:41 +0800
Subject: [PATCH] 驾驶舱相关统计修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceTotalsController.java |    9 ++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organList.java                  |   53 +++++++++++++
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceTotalsMapper.java           |   12 +++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceTotalsServiceImp.java |   18 ++++
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java                     |    4 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/iServiceTotalsService.java        |   12 +++
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml        |    8 +-
 ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml                 |   31 +++++++
 ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml         |   18 ++--
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml            |   22 ++--
 10 files changed, 163 insertions(+), 24 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 717c0aa..0570013 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
@@ -120,4 +120,13 @@
             List<ServiceTotalsOrganTotals> list = service.organTotals(totals);
             return Result.success(list);
         }
+
+        @ApiOperation("鎹愮尞鍣ㄥ畼缁熻鏄庣粏鍒楄〃")
+        @PostMapping("/organList")
+        public Result<List<organList>> organList(@RequestBody ServiceTotals totals)
+        {
+            List<organList> list = service.organList(totals);
+            Long count=service.organCount(totals);
+            return Result.success(count,list);
+        }
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java
index 6713358..f8920d7 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/TimeVO.java
@@ -23,5 +23,9 @@
     //鍣ㄥ畼绉绘鐘舵�� 锛�0锛氭湭绉绘锛�1锛氬凡绉绘锛�2锛氬純鐢�
     private Integer transplantstate = null;
 
+    private String reportId;
+
+    private String gcsScore;
+
 
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organList.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organList.java
new file mode 100644
index 0000000..2334b8e
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organList.java
@@ -0,0 +1,53 @@
+package com.ruoyi.project.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel("鎹愮尞鍣ㄥ畼缁熻鏄庣粏")
+public class organList {
+    @ApiModelProperty("id")
+    private Integer id;
+
+    @ApiModelProperty("妗堜緥缂栧彿")
+    private String caseNo;
+
+    @ApiModelProperty("濮撳悕")
+    private String name;
+
+    @ApiModelProperty("鍦板尯")
+    private String RegisterCountyName;
+
+    @ApiModelProperty("骞翠唤")
+    private String donateYear;
+
+    @ApiModelProperty("鍣ㄥ畼鐘舵��")
+    private Integer transplantstate;
+
+    @ApiModelProperty("鍣ㄥ畼鍚嶇О")
+    private String OrganName;
+
+    @ApiModelProperty("绉绘鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date TransplantTime;
+
+    @ApiModelProperty("鍙椾綋濮撳悕")
+    private String TransplantName;
+
+    @ApiModelProperty("绉绘鍖荤敓")
+    private String TransplantDoct;
+
+    @ApiModelProperty("绉绘鍖婚櫌")
+    private String HospitalName;
+
+    @ApiModelProperty("鑾峰彇鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date OrganGetTime;
+
+    @ApiModelProperty("寮冪敤鍘熷洜")
+    private String notgetreason;
+}
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 37b462b..010a0a3 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
@@ -87,5 +87,17 @@
      */
     List<ServiceTotalsOrganTotals> organTotals(ServiceTotals totals);
 
+    /**
+     * 鎹愮尞鍣ㄥ畼缁熻鏄庣粏鍒楄〃
+     *
+     */
+    public List<organList> organList(ServiceTotals totals);
+
+    /**
+     * 鎹愮尞鍣ㄥ畼缁熻鏄庣粏鏁伴噺
+     *
+     */
+    public Long organCount(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 edd5c21..e7743d0 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
@@ -81,5 +81,17 @@
      *
      */
     List<ServiceTotalsOrganTotals> organTotals(ServiceTotals totals);
+
+    /**
+     * 鎹愮尞鍣ㄥ畼缁熻鏄庣粏鍒楄〃
+     *
+     */
+    public List<organList> organList(ServiceTotals totals);
+
+    /**
+     * 鎹愮尞鍣ㄥ畼缁熻鏄庣粏鏁伴噺
+     *
+     */
+    public Long organCount(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 d294c1f..24aa9aa 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
@@ -141,4 +141,22 @@
         return mapper.organTotals(totals);
     }
 
+    /**
+     * 鎹愮尞鍣ㄥ畼缁熻鏄庣粏鍒楄〃
+     *
+     */
+    @Override
+    public List<organList> organList(ServiceTotals totals) {
+        return mapper.organList(totals);
+    }
+
+    /**
+     * 鎹愮尞鍣ㄥ畼缁熻鏄庣粏鏁伴噺
+     *
+     */
+    @Override
+    public Long organCount(ServiceTotals totals) {
+        return mapper.organCount(totals);
+    }
+
 }
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
index 6077521..a223c09 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonatebaseinfoMapper.xml
@@ -260,7 +260,7 @@
     </select>
     <select id="getDonateBaseCountThisYear" resultType="java.lang.Integer">
         select count(*) from service_donatebaseinfo b
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         <where>
             AND b.del_flag=0
             <if test="starttime != null ">and b.donatetime >= #{starttime}</if>
@@ -300,7 +300,7 @@
     </select>
     <select id="getAllDonateBaseInfoByTime" resultType="com.ruoyi.project.domain.ServiceDonatebaseinfo">
         select * from service_donatebaseinfo b
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         <where>
             <if test="starttime != null ">and b.ReportTime >= #{starttime}</if>
             <if test="caseNo != null ">and b.case_no >= #{caseNo}</if>
@@ -350,21 +350,21 @@
     <select id="getDistrictDonate" resultType="java.lang.String">
         select o.city
         from service_donatebaseinfo b
-                 inner join base_organization o on o.organizationid = b.treatmenthospitalno
+                 left join base_organization o on o.organizationid = b.treatmenthospitalno
         where (b.RecordState = '0' or b.RecordState = '1' or b.RecordState = '2')
     </select>
     <select id="getDistrictComplete" resultType="java.lang.String">
         select o.city
         from service_donatebaseinfo b
                  inner join service_donatecompletioninfo d on d.infoid = b.id
-                 inner join base_organization o on o.organizationid = b.treatmenthospitalno
+                 left join base_organization o on o.organizationid = b.treatmenthospitalno
         where d.CompleteTime > 0
     </select>
     <select id="getDistrictOrgans" resultType="java.lang.String">
         select o.city
         from service_donatebaseinfo b
                  inner join service_donateorgan d on d.infoid = b.id
-                 inner join base_organization o on o.organizationid = b.treatmenthospitalno
+                 left join base_organization o on o.organizationid = b.treatmenthospitalno
         where d.OrganGetTime > 0
     </select>
     <select id="getDonateNameById" resultType="java.lang.String">
@@ -376,7 +376,7 @@
     <select id="getDistrictDonateByTime" resultType="java.lang.String">
         select o.city
         from service_donatebaseinfo b
-                 inner join base_organization o on o.organizationid = b.treatmenthospitalno
+                 left join base_organization o on o.organizationid = b.treatmenthospitalno
         where (b.RecordState = '0' or b.RecordState = '1' or b.RecordState = '2')
           and b.ReportTime >= #{starttime}
           and b.ReportTime &lt;= #{endtime}
@@ -385,7 +385,7 @@
         select o.city
         from service_donatebaseinfo b
                  inner join service_donatecompletioninfo d on d.infoid = b.id
-                 inner join base_organization o on o.organizationid = b.treatmenthospitalno
+                 left join base_organization o on o.organizationid = b.treatmenthospitalno
         where d.del_flag = 0
           and d.CompleteTime >= #{starttime}
           and d.CompleteTime &lt;= #{endtime}
@@ -394,7 +394,7 @@
     <select id="gettreatmenthospitalnoCompleteByTime" resultType="java.lang.String">
         select b.treatmenthospitalno from service_donatebaseinfo b
         inner join service_donatecompletioninfo d on d.infoid=b.id
-        inner join base_organization o on o.organizationid=b.treatmenthospitalno
+        left join base_organization o on o.organizationid=b.treatmenthospitalno
         <where>
             d.del_flag=0
             <if test="starttime != null ">and d.CompleteTime >= #{starttime}</if>
@@ -409,7 +409,7 @@
         select o.city
         from service_donatebaseinfo b
                  inner join service_donateorgan d on d.infoid = b.id
-                 inner join base_organization o on o.organizationid = b.treatmenthospitalno
+                 left join base_organization o on o.organizationid = b.treatmenthospitalno
         WHERE d.del_flag = 0
           AND d.OrganGetTime IS NOT NULL
           AND d.OrganGetTime >= #{starttime}
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
index c5bf61e..b010d21 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
@@ -232,7 +232,7 @@
         <!--        <if test="reporterno != null and reporterno != ''">and b.ReporterNo = #{reporterno}</if>-->
         select count(*) from service_donatecomporgan d
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where b.del_flag=0
         AND d.del_flag=0
         AND d.TransplantTime IS NOT NULL
@@ -262,7 +262,7 @@
 
         select count(*) from service_donationwitnessorgan d
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where b.del_flag=0
         AND d.OrganGetTime IS NOT NULL
         AND d.OrganState=1
@@ -279,7 +279,7 @@
         select count(*) from service_donateorgan d
 
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsBiopsyBefore = "1"
         AND
         d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
@@ -295,7 +295,7 @@
         select count(*) from service_donateorgan d
 
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsBiopsyAfter = "1"
         AND
         d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
@@ -311,7 +311,7 @@
         select count(*) from service_donateorgan d
 
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsMarginalOrgan = "1" AND
         d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
         AND d.OrganNo != 'C69L'
@@ -326,7 +326,7 @@
         select count(*) from service_donateorgan d
 
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsPathogenPositive = "1"
         AND
         d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
@@ -342,7 +342,7 @@
         select count(*) from service_donateorgan d
 
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsPNF = "1"
         <if test="starttime != null ">and d.OrganGetTime >= #{starttime}</if>
         <if test="endtime != null">and d.OrganGetTime &lt;= #{endtime}</if>
@@ -352,7 +352,7 @@
     <select id="getDGFNumberThisYear" resultType="java.lang.Integer">
         select count(*) from service_donateorgan d
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsDGF = "1"
         <if test="starttime != null ">and d.OrganGetTime >= #{starttime}</if>
         <if test="endtime != null ">and d.OrganGetTime &lt;= #{endtime}</if>
@@ -362,7 +362,7 @@
     <select id="selectPNFOrganThisYear" resultType="com.ruoyi.project.domain.ServiceDonateorgan">
         select * from service_donateorgan d
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsPNF = "1"
         AND
         d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
@@ -378,7 +378,7 @@
     <select id="selectDGFOrganThisYear" resultType="com.ruoyi.project.domain.ServiceDonateorgan">
         select * from service_donateorgan d
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where IsDGF = "1"
         AND
         d.OrganGetTime IS NOT NULL AND d.OrganNo != 'C00'
@@ -542,7 +542,7 @@
         select count(*) as gainsum,ifnull(sum( CASE WHEN transplantstate = 3 THEN 1 ELSE 0 END ),0) as abandonCount from
         service_donatecomporgan d
         inner join service_donatebaseinfo b on b.id = d.InfoID
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where d.OrganNo = #{organno}
         -- and (OrganState = "3" or OrganState = "4" or OrganState = "5" or OrganState = "6")
         and d.del_flag=0 and b.del_flag = 0 and b.workflow>5
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
index a930bb3..6d08453 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -288,7 +288,7 @@
     <select id="getDBDDonaterNumberThisYear" resultType="java.lang.Integer">
         select count(*) from service_donationwitness w
         inner join service_donatebaseinfo b on w.InfoID = b.id
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where w.DonationCategory = "DBD"
         <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
         <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
@@ -298,7 +298,7 @@
     <select id="getDCDDonaterNumberThisYear" resultType="java.lang.Integer">
         select count(*) from service_donationwitness w
         inner join service_donatebaseinfo b on w.InfoID = b.id
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where w.DonationCategory = "DCD"
         <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
         <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
@@ -309,7 +309,7 @@
     <select id="getDBCDDonaterNumberThisYear" resultType="java.lang.Integer">
         select count(*) from service_donationwitness w
         inner join service_donatebaseinfo b on w.InfoID = b.id
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         where w.DonationCategory = "DBCD"
         <if test="starttime != null ">and w.OperationBegTime >= #{starttime}</if>
         <if test="endtime != null ">and w.OperationBegTime &lt;= #{endtime}</if>
@@ -338,7 +338,7 @@
     <select id="countThisYearByTime" resultType="java.lang.Integer">
         select count(*) from service_donationwitness w
         inner join service_donatebaseinfo b on w.InfoID = b.id
-        inner join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
+        left join base_organization o on b.TreatmentHospitalNo = o.OrganizationID
         <where>
             w.del_flag=0
             and b.del_flag=0
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
index 9b49fe8..ec964e8 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceTotalsMapper.xml
@@ -209,4 +209,35 @@
                (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 &lt;= #{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 &lt;= #{endTime}</if>
+        </where>
+
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3