From 3165f71939bf0783787fbe19ac77063c23ec22bc Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 12 九月 2025 15:01:55 +0800
Subject: [PATCH] 通过生日算年龄

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonateorganServiceImpl.java |   48 ++++++++++++++++++++++++++----------------------
 1 files changed, 26 insertions(+), 22 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 ba76377..525832a 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
@@ -10,6 +10,7 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.DtoConversionUtils;
+import com.ruoyi.project.common.CalculateDateUtils;
 import com.ruoyi.project.domain.*;
 import com.ruoyi.project.domain.vo.*;
 import com.ruoyi.project.mapper.*;
@@ -21,6 +22,8 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.*;
 
 /**
@@ -442,8 +445,17 @@
 
     @Override
     public List<DonateOrganVO> selectVOList(DonateOrganVO donateOrganVO) {
-
-        return serviceDonateorganMapper.selectVOList(donateOrganVO);
+        List<DonateOrganVO> donateOrganVOS = serviceDonateorganMapper.selectVOList(donateOrganVO);
+        for (DonateOrganVO donateOrganVO1:donateOrganVOS) {
+            if (donateOrganVO1.getBirthday() != null) {
+                Map<String, String> map = CalculateDateUtils.calculateAge(donateOrganVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
+                donateOrganVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                donateOrganVO1.setAgeunit(map.get("ageUnit"));
+                donateOrganVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                donateOrganVO1.setAgeunit2(map.get("ageUnit2"));
+            }
+        }
+        return donateOrganVOS;
     }
 
     @Override
@@ -719,41 +731,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")) {
                 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);
+                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());
-//            organ.setAbandonCount();
-//            l.add(organ);
-//        }
-
-        return l;
+        map.put("countSum", countSum);
+        map.put("abandonCountSum", abandonCountSum);
+        map.put("organInfoVOList", organInfoVOList);
+        return map;
     }
 
     @Override

--
Gitblit v1.9.3