From fb4d7127cd860b39e1c1c4242cfbbc09a659fc7a Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 26 七月 2024 17:54:35 +0800
Subject: [PATCH] 变更

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java |  147 ++++++++++++++++++-------------------------------
 1 files changed, 54 insertions(+), 93 deletions(-)

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 8e32765..f230e30 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,13 +1,15 @@
 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;
 import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.project.domain.*;
 import com.ruoyi.project.domain.vo.*;
 import com.ruoyi.project.mapper.*;
@@ -17,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涓氬姟灞傚鐞�
@@ -122,6 +121,9 @@
         if (serviceDonateorgan.getTransplanttime() != null) {
             wrappers.eq(ServiceDonateorgan::getTransplanttime, serviceDonateorgan.getTransplanttime());
         }
+        if (serviceDonateorgan.getEstimatedtime() != null) {
+            wrappers.eq(ServiceDonateorgan::getEstimatedtime, serviceDonateorgan.getEstimatedtime());
+        }
         return this.list(wrappers);
     }
 
@@ -142,15 +144,6 @@
                 map_accept.put(org_accept.getCity(), map_accept.getOrDefault(org_accept.getCity(), 0) + 1);
             }
         }
-//        List<BasePrcaddressDict> city = basePrcaddressDictMapper.getAllCityOfZJ();
-//        for(BasePrcaddressDict c : city){
-//            NumberOfOrgans numberOfOrgans = new NumberOfOrgans();
-//            numberOfOrgans.setDistrict(c.getAreaname());
-//            numberOfOrgans.setNumberOfHospitals(baseOrganizationMapper.getOrganizationByCity(c.getAreanumber()));
-//            numberOfOrgans.setDonateNumber(map_donate.getOrDefault(c.getAreaname(),0));
-//            numberOfOrgans.setAcceptNumber(map_accept.getOrDefault(c.getAreaname(),0));
-//            list.add(numberOfOrgans);
-//        }
 
         List<String> regions = new ArrayList<String>();
         regions.add("0");
@@ -239,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);
@@ -253,7 +246,7 @@
             og.setDonateTransferRate(transferRate);
         }
 
-        //鏈勾搴︾Щ妞嶅櫒瀹樻暟閲�
+        //鏈勾搴︾Щ妞嶅櫒瀹樻暟閲忥紙鍚純鐢級
         int organTransplantNumber = serviceDonateorganMapper.getAllFinishedOrgansThisYear(timeVO);
         //鏈勾搴BD鏉ユ簮鍣ㄥ畼鎹愮尞鑰�
         int DBDDonaterNumber = serviceDonationwitnessMapper.getDBDDonaterNumberThisYear(timeVO);
@@ -261,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);
@@ -299,7 +295,15 @@
             og.setMarginOrganRate(0.0);
             og.setGermPositiveRate(0.0);
         } else {
-            double organUsedRate = (double) organTransplantNumber / (double) getOrganNumber;
+            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);
+            double organUsedRate = (double) organTransplantNumber2 / (double) organTransplantNumber;
             og.setOrganUsedRate(organUsedRate);
 
             double biopsyBeforeRate = (double) biopsyBeforeNumber / (double) getOrganNumber;
@@ -715,34 +719,33 @@
     }
 
     @Override
-    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>();
-        //List<String> organNo = new ArrayList<>();
+    public Map<String, Object> getOrganCount(TimeVO timeVO) {
+        Map<String, Object> map = new HashMap<>();
+        List<OrganInfoVO> organInfoVOList = new ArrayList<>();
+        Integer countSum = 0;
+        Integer abandonCountSum = 0;
 
         List<SysDictData> data = dictDataMapper.selectDictDataByType("sys_Organ");
         if (StringUtils.isNull(data)) {
             data = new ArrayList<SysDictData>();
         }
 
-
         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());
+                OrganInfoVO organ = new OrganInfoVO();
+                organ.setOrganNo(sysDictData.getDictValue());
+                organ.setCount(distinctOrgansCount.getGainsum());
+                organ.setAbandonCount(distinctOrgansCount.getAbandonCount());
+                countSum = countSum + distinctOrgansCount.getGainsum();
+                abandonCountSum = abandonCountSum + distinctOrgansCount.getAbandonCount();
+                organInfoVOList.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);
-        }
-
-        return l;
+        map.put("countSum", countSum);
+        map.put("abandonCountSum", abandonCountSum);
+        map.put("organInfoVOList", organInfoVOList);
+        return map;
     }
 
     @Override
@@ -768,17 +771,6 @@
             log.info("serviceDonateorgan鐨勬暟鎹负: {}", serviceDonateorgan);
             boolean save = this.save(serviceDonateorgan);
 
-
-//            //淇濆瓨service_organallocation
-//            ServiceOrganallocation serviceOrganallocation = new ServiceOrganallocation();
-//            serviceOrganallocation.setAgeunit(serviceDonateorgan.getAgeunit());
-//            serviceOrganallocation.setApplicanttime(serviceDonateorgan.getApplicanttime());
-//            serviceOrganallocation.setIdcardno(serviceDonateorgan.getIdcardno());
-//            serviceOrganallocation.setIdcardtype(Long.valueOf(serviceDonateorgan.getIdcardtype()));
-//            serviceOrganallocation.setOrganid(serviceDonateorgan.getId());
-//            serviceOrganallocation.setOrgannumber(serviceDonateorgan.getOrgannumber());
-//            log.info("serviceOrganallocation鐨勬暟鎹负: {}", serviceOrganallocation);
-//            serviceOrganallocationService.save(serviceOrganallocation);
         }
         return serviceDonateorgans;
     }
@@ -796,52 +788,6 @@
         return true;
     }
 
-
-//    @Override
-//    public List<DonateByRegionVO> OrgansOfHospitalByMonth() {
-//        List<BaseOrganization> baseOrganizations = baseOrganizationMapper.getHospitalList();
-//        List<DonateByRegionVO> l = new ArrayList<>();
-//        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getAllDonateBaseInfo();
-//
-//        for(BaseOrganization b : baseOrganizations){
-//            HashMap<String, Integer> map_baseinfo_count = new HashMap<String, Integer>();
-//            HashMap<String, Integer> map_completion_count = new HashMap<String, Integer>();
-//            //List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.getBaseInfoByHospital(b.getOrganizationid());
-//            List<ServiceDonatebaseinfo> serviceDonatebaseinfoOfThisHospital = new ArrayList<>();
-//            for(ServiceDonatebaseinfo sd : serviceDonatebaseinfos){
-//                if(b.getOrganizationid().equals(sd.getTreatmenthospitalno())){
-//                    serviceDonatebaseinfoOfThisHospital.add(sd);
-//                }
-//            }
-//            for(ServiceDonatebaseinfo s : serviceDonatebaseinfoOfThisHospital){
-//                Date dt = s.getReporttime();
-//                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//                String date = formatter.format(dt);
-//                String month = date.substring(0, 7);
-//                map_baseinfo_count.put(month, map_baseinfo_count.getOrDefault(month,0) + 1);
-//                ServiceDonatecompletioninfo sc = serviceDonatecompletioninfoMapper.getByInfoId(s.getId());
-//                if(sc != null){
-//                    map_completion_count.put(month, map_completion_count.getOrDefault(month,0) + 1);
-//                }
-//                else{
-//                    map_completion_count.put(month, map_completion_count.getOrDefault(month,0));
-//                }
-//
-//            }
-//
-//            for(Map.Entry<String, Integer> entry: map_baseinfo_count.entrySet()) {
-//                DonateByRegionVO d = new DonateByRegionVO();
-//                d.setHospitalNumber(b.getOrganizationid());
-//                d.setHospitalName(b.getOrganizationname());
-//                d.setRegionLevel(b.getRegionallevel());
-//                d.setMonth(entry.getKey());
-//                d.setBaseInfoCount(entry.getValue());
-//                d.setCompletionCount(map_completion_count.get(entry.getKey()));
-//                l.add(d);
-//            }
-//        }
-//        return l;
-//    }
 
     @Override
     public List<DonateNumberByMonth> getDonatePeopleByMonth(TimeVO timeVO) {
@@ -976,5 +922,20 @@
         return l;
     }
 
+    @Override
+    public List<ServiceDonateorgan> countList(ServiceDonateorgan serviceDonateorgan) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        List<SysRole> l = user.getRoles();
+        Boolean b = false;
+        for (SysRole r : l) {
+            if (r.getRoleId().longValue() == 3) {
+                b = true;
+            }
+        }
+        if (b) {
+            serviceDonateorgan.setCreateBy(user.getUserName());
+        }
+        return serviceDonateorganMapper.countList(serviceDonateorgan);
+    }
 
 }

--
Gitblit v1.9.3