From b700ed6963d12a004b2d000e2446b4ef31aac0f0 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 24 七月 2024 15:10:55 +0800
Subject: [PATCH] 变更

---
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganQuality.java                     |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java            |    3 +
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganInfoVO.java                      |    4 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java         |    9 +---
 ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistinctOrgansCount.java              |   25 ++++++++++++
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java |   49 +++++++++++++-----------
 ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml                  |    6 +-
 7 files changed, 63 insertions(+), 35 deletions(-)

diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistinctOrgansCount.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistinctOrgansCount.java
new file mode 100644
index 0000000..26cba7b
--- /dev/null
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/DistinctOrgansCount.java
@@ -0,0 +1,25 @@
+package com.ruoyi.project.domain.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "DistinctOrgansCount", description = "DistinctOrgansCount")
+public class DistinctOrgansCount {
+
+    /**
+     * 鑾峰彇鍊�
+     */
+    @ApiModelProperty(value = "鑾峰彇鍊�")
+    private Integer gainsum;
+
+    /**
+     * 搴熷純鍊�
+     */
+    @ApiModelProperty(value = "搴熷純鍊�")
+    private Integer abandonCount;
+
+
+}
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganInfoVO.java
similarity index 72%
rename from ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java
rename to ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganInfoVO.java
index 5bc5515..9bbe309 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organInfoVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganInfoVO.java
@@ -3,7 +3,7 @@
 import lombok.Data;
 
 @Data
-public class organInfoVO {
+public class OrganInfoVO {
 
     private String organNo;
 
@@ -11,4 +11,6 @@
 
     private int count;
 
+    private int abandonCount;
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganQuality.java
similarity index 97%
rename from ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java
rename to ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganQuality.java
index 28acfa1..17e3dc7 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/organQuality.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/vo/OrganQuality.java
@@ -4,7 +4,7 @@
 import lombok.Data;
 
 @Data
-public class organQuality {
+public class OrganQuality {
 
     //鍣ㄥ畼鎹愮尞杞寲鐜�
     private double donateTransferRate;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java
index 48f1a49..5a0b1af 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/ServiceDonateorganMapper.java
@@ -8,6 +8,7 @@
 import java.util.List;
 
 import com.ruoyi.project.domain.ServiceDonateorgan;
+import com.ruoyi.project.domain.vo.DistinctOrgansCount;
 import com.ruoyi.project.domain.vo.DonateOrganVO;
 import com.ruoyi.project.domain.vo.TimeVO;
 import org.apache.ibatis.annotations.Mapper;
@@ -70,7 +71,7 @@
 
     int getOrgansCount(@Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("organizationid") String organizationid);
 
-    int getDistinctOrgansCount(@Param("organno") String organno, @Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("city") String city, @Param("reporterno") String reporterno);
+    DistinctOrgansCount getDistinctOrgansCount(@Param("organno") String organno, @Param("starttime") Date starttime, @Param("endtime") Date endtime, @Param("city") String city, @Param("reporterno") String reporterno);
 
     String getOrganNameByNo(String organno);
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java
index a5c2481..d39982f 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonateorganService.java
@@ -1,15 +1,10 @@
 package com.ruoyi.project.service;
 
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.project.domain.ServiceDonateorgan;
-import com.ruoyi.project.domain.ServiceOrganallocation;
 import com.ruoyi.project.domain.vo.*;
-import org.springframework.web.bind.annotation.PathVariable;
 
 /**
  * 鎹愮尞鍣ㄥ畼绠$悊Service鎺ュ彛
@@ -35,7 +30,7 @@
 
     public String getOrganNumber(ServiceDonateorgan serviceDonateorgan);
 
-    organQuality getOrganQuality(TimeVO timeVO);
+    OrganQuality getOrganQuality(TimeVO timeVO);
 
     List<DonateOrganVO> selectVOList(DonateOrganVO donateOrganVO);
 
@@ -70,7 +65,7 @@
 
     List<organNumberByOrgVO> getOrganNumberByOrg(TimeVO timeVO);
 
-    List<organInfoVO> getOrganCount(TimeVO timeVO);
+    List<OrganInfoVO> getOrganCount(TimeVO timeVO);
 
     List<ServiceDonateorgan> saveData(List<ServiceDonateorgan> serviceDonateorgans);
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
index ab58bbb..ba76377 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java
@@ -1,10 +1,8 @@
 package com.ruoyi.project.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
@@ -21,12 +19,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Logger;
 
 /**
  * 鎹愮尞鍣ㄥ畼绠$悊Service涓氬姟灞傚鐞�
@@ -237,8 +232,8 @@
     }
 
     @Override
-    public organQuality getOrganQuality(TimeVO timeVO) {
-        organQuality og = new organQuality();
+    public OrganQuality getOrganQuality(TimeVO timeVO) {
+        OrganQuality og = new OrganQuality();
 
         //鏈勾搴﹁幏鍙栨崘鐚�呮暟閲�
         int transferNumber = serviceDonationwitnessMapper.countThisYearByTime(timeVO);
@@ -259,6 +254,9 @@
         int DCDDonaterNumber = serviceDonationwitnessMapper.getDCDDonaterNumberThisYear(timeVO);
         //鏈勾搴BCD鏉ユ簮鍣ㄥ畼鎹愮尞鑰�
         int DBCDDonaterNumber = serviceDonationwitnessMapper.getDBCDDonaterNumberThisYear(timeVO);
+        //鏌ュ嚭鏉ョ殑transferNumber鏈夐棶棰橈紝鍏堜笉鐢ㄤ簡锛岀敤涓嬮潰鐩稿姞鐨則ransferNumber
+        transferNumber = DBDDonaterNumber + DCDDonaterNumber + DBCDDonaterNumber;
+        log.info("transferNumber鐨勫�间负锛歿}, DBDDonaterNumber鐨勫�间负锛歿}锛�   DCDDonaterNumber鐨勫�间负锛歿}锛�   DBCDDonaterNumber鐨勫�间负锛歿}", transferNumber, DBDDonaterNumber, DCDDonaterNumber, DBCDDonaterNumber);
         if (transferNumber == 0) {
             og.setOrganProductionRate(0.0);
             og.setDBDDonateRate(0.0);
@@ -297,14 +295,14 @@
             og.setMarginOrganRate(0.0);
             og.setGermPositiveRate(0.0);
         } else {
-            log.info("timeVO鐨勫�间负 锛� {}",timeVO);
+            log.info("timeVO鐨勫�间负 锛� {}", timeVO);
             TimeVO timeVO1 = DtoConversionUtils.sourceToTarget(timeVO, TimeVO.class);
             timeVO1.setTransplantstate(1);
             //鑾峰彇鏈勾搴﹀凡缁忕Щ妞嶅櫒瀹樻暟閲�
             int organTransplantNumber2 = serviceDonateorganMapper.getAllFinishedOrgansThisYear(timeVO1);
-            log.info("timeVO1鐨勫�间负 锛� {}",timeVO1);
-            log.info("organTransplantNumber2鐨勫�间负 锛� {}",organTransplantNumber2);
-            log.info("organTransplantNumber鐨勫�间负 锛� {}",organTransplantNumber);
+            log.info("timeVO1鐨勫�间负 锛� {}", timeVO1);
+            log.info("organTransplantNumber2鐨勫�间负 锛� {}", organTransplantNumber2);
+            log.info("organTransplantNumber鐨勫�间负 锛� {}", organTransplantNumber);
             double organUsedRate = (double) organTransplantNumber2 / (double) organTransplantNumber;
             og.setOrganUsedRate(organUsedRate);
 
@@ -721,8 +719,8 @@
     }
 
     @Override
-    public List<organInfoVO> getOrganCount(TimeVO timeVO) {
-        List<organInfoVO> l = new ArrayList<>();
+    public List<OrganInfoVO> getOrganCount(TimeVO timeVO) {
+        List<OrganInfoVO> l = new ArrayList<>();
 
         //List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganMapper.selectAll(timeVO);
         Map<String, Integer> map_organs = new HashMap<String, Integer>();
@@ -736,17 +734,24 @@
 
         for (SysDictData sysDictData : data) {
             if (!sysDictData.getDictValue().equals("C00")) {
-                int count = serviceDonateorganMapper.getDistinctOrgansCount(sysDictData.getDictValue(), timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno());
-                map_organs.put(sysDictData.getDictValue(), count);
+                DistinctOrgansCount distinctOrgansCount = serviceDonateorganMapper.getDistinctOrgansCount(sysDictData.getDictValue(), timeVO.getStarttime(), timeVO.getEndtime(), timeVO.getCity(), timeVO.getReporterno());
+//                map_organs.put(sysDictData.getDictValue(), distinctOrgansCount.getGainsum());
+//                map_organs.put("abandonCount", distinctOrgansCount.getAbandonCount());
+                OrganInfoVO organ = new OrganInfoVO();
+                organ.setOrganNo(sysDictData.getDictValue());
+                organ.setCount(distinctOrgansCount.getGainsum());
+                organ.setAbandonCount(distinctOrgansCount.getAbandonCount());
+                l.add(organ);
             }
         }
-        for (Map.Entry<String, Integer> entry : map_organs.entrySet()) {
-            organInfoVO organ = new organInfoVO();
-            organ.setOrganNo(entry.getKey());
-            //organ.setOrganName(serviceDonateorganMapper.getOrganNameByNo(entry.getKey()));
-            organ.setCount(entry.getValue());
-            l.add(organ);
-        }
+//        for (Map.Entry<String, Integer> entry : map_organs.entrySet()) {
+//            OrganInfoVO organ = new OrganInfoVO();
+//            organ.setOrganNo(entry.getKey());
+//            //organ.setOrganName(serviceDonateorganMapper.getOrganNameByNo(entry.getKey()));
+//            organ.setCount(entry.getValue());
+//            organ.setAbandonCount();
+//            l.add(organ);
+//        }
 
         return l;
     }
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
index 08f207a..56945d9 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonateorganMapper.xml
@@ -534,8 +534,8 @@
           and OrganGetTime >= #{starttime}
           and OrganGetTime &lt;= #{endtime}
     </select>
-    <select id="getDistinctOrgansCount" resultType="java.lang.Integer">
-        select count(*) from service_donationwitnessorgan d
+    <select id="getDistinctOrgansCount" resultType="com.ruoyi.project.domain.vo.DistinctOrgansCount">
+        select count(*) as gainsum,sum(case when transplantstate=3 then 1 else 0 end) 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
         where d.OrganNo = #{organno}
@@ -645,4 +645,4 @@
         order by create_time desc
     </select>
 
-</mapper>
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3