From b1ffaa0bfbe610b16b64966965fe13b7e2a57d93 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 04 十一月 2025 19:06:30 +0800
Subject: [PATCH] 处理年龄问题

---
 ruoyi-admin/pom.xml                                                                                     |    4 
 ruoyi-admin/src/main/resources/application-druid.yml                                                    |    2 
 ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java               |    6 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java |   38 ++++++-
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java        |   37 ++++++-
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java         |   31 ++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java      |   37 ++++++-
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java  |   45 +++++++-
 ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml                        |    1 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java |   37 ++++++-
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java       |   38 ++++++-
 11 files changed, 234 insertions(+), 42 deletions(-)

diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 88518bd..4ac2af2 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -8,8 +8,8 @@
         <version>3.7.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-        <packaging>war</packaging>
-<!--    <packaging>jar</packaging>-->
+    <packaging>war</packaging>
+    <!--    <packaging>jar</packaging>-->
     <artifactId>smartor-opo</artifactId>
 
     <description>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
index fb694f1..67a9217 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoController.java
@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.project;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.config.RuoYiConfig;
@@ -15,8 +16,10 @@
 import com.ruoyi.framework.config.ServerConfig;
 import com.ruoyi.project.common.CalculateDateUtils;
 import com.ruoyi.project.domain.ServiceDonatebaseinfo;
+import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.domain.vo.TimeVO;
 import com.ruoyi.project.service.IServiceDonatebaseinfoService;
+import com.ruoyi.project.service.IServiceDonationwitnessService;
 import com.ruoyi.project.service.IServiceExternalpersonService;
 import com.ruoyi.system.mapper.SysDeptMapper;
 import freemarker.template.Configuration;
@@ -26,6 +29,7 @@
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.*;
@@ -48,6 +52,9 @@
 public class ServiceDonatebaseinfoController extends BaseController {
     @Autowired
     private IServiceDonatebaseinfoService serviceDonatebaseinfoService;
+
+    @Autowired
+    private IServiceDonationwitnessService serviceDonationwitnessService;
 
     @Autowired
     private IServiceExternalpersonService serviceExternalpersonService;
@@ -119,6 +126,30 @@
             serviceDonatebaseinfo.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
             serviceDonatebaseinfo.setAgeunit2(map.get("ageUnit2"));
         }
+
+        serviceDonatebaseinfo.setAgeunit("-");
+        serviceDonatebaseinfo.setAge(null);
+        serviceDonatebaseinfo.setAge2(null);
+
+        //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+        ServiceDonationwitness sdw = new ServiceDonationwitness();
+        sdw.setInfoid(serviceDonatebaseinfo.getId());
+        List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessService.selectServiceDonationwitnessList(sdw);
+        if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && serviceDonatebaseinfo.getBirthday() != null) {
+            Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
+            if (ObjectUtils.isNotEmpty(deathtime)) {
+                Map<String, String> map = CalculateDateUtils.calculateAge(serviceDonatebaseinfo.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                if (Objects.isNull(map)) {
+                    log.error("serviceDonatebaseinfo鍑虹敓鏃ユ湡锛歿},serviceDonatebaseinfo姝讳骸鏃ユ湡锛歿}", serviceDonatebaseinfo.getBirthday(), deathtime);
+                }
+                serviceDonatebaseinfo.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                serviceDonatebaseinfo.setAgeunit(map.get("ageUnit"));
+                serviceDonatebaseinfo.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                serviceDonatebaseinfo.setAgeunit2(map.get("ageUnit2"));
+            }
+        }
+
+
         return AjaxResult.success(serviceDonatebaseinfo);
     }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
index 24cbe39..d80dd34 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceMedicalevaluationController.java
@@ -3,14 +3,19 @@
 import java.time.LocalDate;
 import java.time.ZoneId;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.annotation.NotRepeatCommit;
 import com.ruoyi.project.common.CalculateDateUtils;
+import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
+import com.ruoyi.project.service.IServiceDonationwitnessService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
@@ -38,12 +43,16 @@
  * @author ruoyi
  * @date 2021-11-19
  */
+@Slf4j
 @Api("鍖荤枟璇勪及绠$悊")
 @RestController
 @RequestMapping("/project/medicalevaluation")
 public class ServiceMedicalevaluationController extends BaseController {
     @Autowired
     private IServiceMedicalevaluationService serviceMedicalevaluationService;
+
+    @Autowired
+    private IServiceDonationwitnessService serviceDonationwitnessService;
 
     /**
      * 鏌ヨ鍖诲璇勪及鍒楄〃
@@ -63,13 +72,29 @@
         startPage();
         List<MedicalEvaluationVO> list = serviceMedicalevaluationService.selectVOList(medicalEvaluationVO);
         for (MedicalEvaluationVO medicalEvaluationVO1 : list) {
-            if (medicalEvaluationVO1.getBirthday() != null) {
-                Map<String, String> map = CalculateDateUtils.calculateAge(medicalEvaluationVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
-                medicalEvaluationVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
-                medicalEvaluationVO1.setAgeunit(map.get("ageUnit"));
-                medicalEvaluationVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
-                medicalEvaluationVO1.setAgeunit2(map.get("ageUnit2"));
+            //鍏堢粰涓勾榫勯粯璁ゅ�硷紙鍥犱负age鏄暟瀛楃被鍨嬶紝涓嶈兘鏀炬í鏉狅紝鎵�浠ュ氨鎵�妯墰鏀惧埌鍗曚綅涓婏級
+            medicalEvaluationVO1.setAgeunit("-");
+            medicalEvaluationVO1.setAge(null);
+            medicalEvaluationVO1.setAge2(null);
+            //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+            ServiceDonationwitness sdw = new ServiceDonationwitness();
+            sdw.setInfoid(medicalEvaluationVO1.getInfoid());
+            List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessService.selectServiceDonationwitnessList(sdw);
+            if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && medicalEvaluationVO1.getBirthday() != null) {
+                Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
+                if (ObjectUtils.isNotEmpty(deathtime)) {
+                    Map<String, String> map = CalculateDateUtils.calculateAge(medicalEvaluationVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                    if (ObjectUtils.isEmpty(map)) {
+                        log.error("MedicalEvaluationVO鍑虹敓鏃ユ湡锛歿},MedicalEvaluationVO姝讳骸鏃ユ湡锛歿}", medicalEvaluationVO1.getBirthday(), deathtime);
+                        continue;
+                    }
+                    medicalEvaluationVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                    medicalEvaluationVO1.setAgeunit(map.get("ageUnit"));
+                    medicalEvaluationVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                    medicalEvaluationVO1.setAgeunit2(map.get("ageUnit2"));
+                }
             }
+
         }
         return getDataTable(list);
     }
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 74b64d5..be357fe 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -10,7 +10,7 @@
         #        url: jdbc:mysql://116.62.18.175:6002/opo?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
         #        username: opo
         #        password: Smartor.2023
-        url: jdbc:mysql://192.168.100.10:3306/opo?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+        url: jdbc:mysql://haiershi.a1.luyouxia.net:23844/opo?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
         username: smartor
         password: Smartor.2023
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
index fd85e85..30c0043 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IServiceDonationwitnessService.java
@@ -9,7 +9,7 @@
 
 /**
  * 鎹愮尞瑙佽瘉Service鎺ュ彛
- * 
+ *
  * @author ruoyi
  * @date 2021-11-17
  */
@@ -18,12 +18,14 @@
 
     /**
      * 鏌ヨ鎹愮尞瑙佽瘉鍒楄〃
-     * 
+     *
      * @param serviceDonationwitness 鎹愮尞瑙佽瘉
      * @return 鎹愮尞瑙佽瘉闆嗗悎
      */
     public List<ServiceDonationwitness> queryList(ServiceDonationwitness serviceDonationwitness);
 
+    public List<ServiceDonationwitness> selectServiceDonationwitnessList(ServiceDonationwitness serviceDonationwitness);
+
     List<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO);
 
     ServiceDonationwitness getByInfoId(Long infoid);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
index 0f4e8a5..43237dd 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -237,13 +237,38 @@
         }
         List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
         for (ServiceDonatebaseinfo serviceDonatebaseinfo1 : serviceDonatebaseinfos) {
-            if (serviceDonatebaseinfo1.getBirthday() != null) {
-                Map<String, String> map = CalculateDateUtils.calculateAge(serviceDonatebaseinfo1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
-                serviceDonatebaseinfo1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
-                serviceDonatebaseinfo1.setAgeunit(map.get("ageUnit"));
-                serviceDonatebaseinfo1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
-                serviceDonatebaseinfo1.setAgeunit2(map.get("ageUnit2"));
+            //杩欓噷涓嶈兘鍐嶉�氳繃褰撳墠鏃堕棿绠楀勾榫勪簡锛屾偅鑰呭彲鑳藉凡缁忔浜′簡
+//            if (serviceDonatebaseinfo1.getBirthday() != null) {
+//                Map<String, String> map = CalculateDateUtils.calculateAge(serviceDonatebaseinfo1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
+//                serviceDonatebaseinfo1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+//                serviceDonatebaseinfo1.setAgeunit(map.get("ageUnit"));
+//                serviceDonatebaseinfo1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+//                serviceDonatebaseinfo1.setAgeunit2(map.get("ageUnit2"));
+//            }
+            //鍏堢粰涓勾榫勯粯璁ゅ�硷紙鍥犱负age鏄暟瀛楃被鍨嬶紝涓嶈兘鏀炬í鏉狅紝鎵�浠ュ氨鎵�妯墰鏀惧埌鍗曚綅涓婏級
+            serviceDonatebaseinfo1.setAgeunit("-");
+            serviceDonatebaseinfo1.setAge(null);
+            serviceDonatebaseinfo1.setAge2(null);
+
+            //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+            ServiceDonationwitness sdw = new ServiceDonationwitness();
+            sdw.setInfoid(serviceDonatebaseinfo1.getId());
+            List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw);
+            if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && serviceDonatebaseinfo1.getBirthday() != null) {
+                Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
+                if (ObjectUtils.isNotEmpty(deathtime)) {
+                    Map<String, String> map = CalculateDateUtils.calculateAge(serviceDonatebaseinfo1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                    if (Objects.isNull(map)) {
+                        log.error("ServiceDonationwitness鍑虹敓鏃ユ湡锛歿},ServiceDonationwitness姝讳骸鏃ユ湡锛歿}", serviceDonatebaseinfo1.getBirthday(), deathtime);
+                        continue;
+                    }
+                    serviceDonatebaseinfo1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                    serviceDonatebaseinfo1.setAgeunit(map.get("ageUnit"));
+                    serviceDonatebaseinfo1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                    serviceDonatebaseinfo1.setAgeunit2(map.get("ageUnit2"));
+                }
             }
+
         }
 
         return serviceDonatebaseinfos;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
index a3f6cb1..453f215 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatecompletioninfoServiceImpl.java
@@ -1,6 +1,7 @@
 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.entity.SysRole;
@@ -11,16 +12,20 @@
 import com.ruoyi.project.domain.ServiceDonatebaseinfo;
 import com.ruoyi.project.domain.ServiceDonatecompletioninfo;
 import com.ruoyi.project.domain.ServiceDonatecomporgan;
+import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.domain.vo.DonationCompletionVO;
 import com.ruoyi.project.mapper.ServiceDonatecompletioninfoMapper;
+import com.ruoyi.project.mapper.ServiceDonationwitnessMapper;
 import com.ruoyi.project.service.IServiceDonatecompletioninfoService;
 import com.ruoyi.project.service.IServiceDonatecomporganService;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDate;
 import java.time.ZoneId;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -30,6 +35,7 @@
  * @author ruoyi
  * @date 2021-11-19
  */
+@Slf4j
 @Service
 public class ServiceDonatecompletioninfoServiceImpl extends ServiceImpl<ServiceDonatecompletioninfoMapper, ServiceDonatecompletioninfo> implements IServiceDonatecompletioninfoService {
 
@@ -38,6 +44,9 @@
 
     @Autowired
     IServiceDonatecomporganService serviceDonatecomporganService;
+
+    @Autowired
+    ServiceDonationwitnessMapper serviceDonationwitnessMapper;
 
     /**
      * 鏌ヨ鎹愮尞瀹屾垚鍒楄〃
@@ -124,12 +133,36 @@
         List<DonationCompletionVO> donationCompletionVOS = serviceDonatecompletioninfoMapper.selectVOList(donationCompletionVO);
 
         for (DonationCompletionVO donationCompletionVO1 : donationCompletionVOS) {
-            if (donationCompletionVO1.getBirthday() != null) {
-                Map<String, String> map = CalculateDateUtils.calculateAge(donationCompletionVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
-                donationCompletionVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
-                donationCompletionVO1.setAgeunit(map.get("ageUnit"));
-                donationCompletionVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
-                donationCompletionVO1.setAgeunit2(map.get("ageUnit2"));
+//            if (donationCompletionVO1.getBirthday() != null) {
+//                Map<String, String> map = CalculateDateUtils.calculateAge(donationCompletionVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
+//                donationCompletionVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+//                donationCompletionVO1.setAgeunit(map.get("ageUnit"));
+//                donationCompletionVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+//                donationCompletionVO1.setAgeunit2(map.get("ageUnit2"));
+//            }
+
+            //鍏堢粰涓勾榫勯粯璁ゅ�硷紙鍥犱负age鏄暟瀛楃被鍨嬶紝涓嶈兘鏀炬í鏉狅紝鎵�浠ュ氨鎵�妯墰鏀惧埌鍗曚綅涓婏級
+            donationCompletionVO1.setAgeunit("-");
+            donationCompletionVO1.setAge(null);
+            donationCompletionVO1.setAge2(null);
+            //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+            ServiceDonationwitness sdw = new ServiceDonationwitness();
+            sdw.setInfoid(donationCompletionVO1.getInfoid());
+            List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw);
+            if (!org.springframework.util.CollectionUtils.isEmpty(serviceDonationwitnessList) && donationCompletionVO1.getBirthday() != null) {
+                Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
+                if (ObjectUtils.isNotEmpty(deathtime)) {
+                    Map<String, String> map = CalculateDateUtils.calculateAge(donationCompletionVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                    if (ObjectUtils.isEmpty(map)) {
+                        log.error("DonationCompletionVO鍑虹敓鏃ユ湡锛歿},DonationCompletionVO姝讳骸鏃ユ湡锛歿}", donationCompletionVO1.getBirthday(), deathtime);
+                        continue;
+                    }
+
+                    donationCompletionVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                    donationCompletionVO1.setAgeunit(map.get("ageUnit"));
+                    donationCompletionVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                    donationCompletionVO1.setAgeunit2(map.get("ageUnit2"));
+                }
             }
         }
 
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
index 1d56129..7259405 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonationwitnessServiceImpl.java
@@ -2,9 +2,10 @@
 
 import java.time.LocalDate;
 import java.time.ZoneId;
+import java.util.Date;
 import java.util.List;
 
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
@@ -17,6 +18,7 @@
 import com.ruoyi.project.domain.vo.WitnessStatsVO;
 import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper;
 import com.ruoyi.project.mapper.ServiceDonateorganMapper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -30,6 +32,7 @@
 import com.ruoyi.project.mapper.ServiceDonationwitnessMapper;
 import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.service.IServiceDonationwitnessService;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 鎹愮尞瑙佽瘉Service涓氬姟灞傚鐞�
@@ -37,6 +40,7 @@
  * @author ruoyi
  * @date 2021-11-17
  */
+@Slf4j
 @Service
 public class ServiceDonationwitnessServiceImpl extends ServiceImpl<ServiceDonationwitnessMapper, ServiceDonationwitness> implements IServiceDonationwitnessService {
 
@@ -72,6 +76,11 @@
     }
 
     @Override
+    public List<ServiceDonationwitness> selectServiceDonationwitnessList(ServiceDonationwitness serviceDonationwitness) {
+        return serviceDonationwitnessMapper.selectServiceDonationwitnessList(serviceDonationwitness);
+    }
+
+    @Override
     public List<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO) {
 
         SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -87,12 +96,27 @@
         }
         List<DonationWitnessVO> donationWitnessVOS = serviceDonationwitnessMapper.selectVOList(donationWitnessVO);
         for (DonationWitnessVO donationWitnessVO1 : donationWitnessVOS) {
-            if (donationWitnessVO1.getBirthday() != null) {
-                Map<String, String> map = CalculateDateUtils.calculateAge(donationWitnessVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
-                donationWitnessVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
-                donationWitnessVO1.setAgeunit(map.get("ageUnit"));
-                donationWitnessVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
-                donationWitnessVO1.setAgeunit2(map.get("ageUnit2"));
+            //鍏堢粰涓勾榫勯粯璁ゅ�硷紙鍥犱负age鏄暟瀛楃被鍨嬶紝涓嶈兘鏀炬í鏉狅紝鎵�浠ュ氨鎵�妯墰鏀惧埌鍗曚綅涓婏級
+            donationWitnessVO1.setAgeunit("-");
+
+            //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+            ServiceDonationwitness sdw = new ServiceDonationwitness();
+            sdw.setInfoid(donationWitnessVO1.getInfoid());
+            List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw);
+            if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && donationWitnessVO1.getBirthday() != null) {
+                Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
+                if (ObjectUtils.isNotEmpty(deathtime)) {
+                    Map<String, String> map = CalculateDateUtils.calculateAge(donationWitnessVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                    if (ObjectUtils.isEmpty(map)) {
+                        log.error("DonationWitnessVO鍑虹敓鏃ユ湡锛歿},DonationWitnessVO姝讳骸鏃ユ湡锛歿}", donationWitnessVO1.getBirthday(), deathtime);
+                        continue;
+                    }
+
+                    donationWitnessVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                    donationWitnessVO1.setAgeunit(map.get("ageUnit"));
+                    donationWitnessVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                    donationWitnessVO1.setAgeunit2(map.get("ageUnit2"));
+                }
             }
         }
         return donationWitnessVOS;
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
index b10bec5..1d5aaab 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceEthicalreviewopinionsServiceImpl.java
@@ -2,15 +2,20 @@
 
 import java.time.LocalDate;
 import java.time.ZoneId;
+import java.util.Date;
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.project.common.CalculateDateUtils;
+import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.domain.vo.EthicalReviewVO;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
+import com.ruoyi.project.mapper.ServiceDonationwitnessMapper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -24,6 +29,7 @@
 import com.ruoyi.project.mapper.ServiceEthicalreviewopinionsMapper;
 import com.ruoyi.project.domain.ServiceEthicalreviewopinions;
 import com.ruoyi.project.service.IServiceEthicalreviewopinionsService;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 浼︾悊瀹℃煡涓撳鎰忚Service涓氬姟灞傚鐞�
@@ -31,12 +37,15 @@
  * @author ruoyi
  * @date 2021-11-23
  */
+@Slf4j
 @Service
 public class ServiceEthicalreviewopinionsServiceImpl extends ServiceImpl<ServiceEthicalreviewopinionsMapper, ServiceEthicalreviewopinions> implements IServiceEthicalreviewopinionsService {
 
     @Autowired
     ServiceEthicalreviewopinionsMapper serviceEthicalreviewopinionsMapper;
 
+    @Autowired
+    ServiceDonationwitnessMapper serviceDonationwitnessMapper;
 
     /**
      * 鏌ヨ浼︾悊瀹℃煡涓撳鎰忚鍒楄〃
@@ -91,13 +100,29 @@
         List<EthicalReviewVO> ethicalReviewVOS = serviceEthicalreviewopinionsMapper.selectVOList(ethicalReviewVO);
 
         for (EthicalReviewVO ethicalReviewVO1 : ethicalReviewVOS) {
-            if (ethicalReviewVO1.getBirthday() != null) {
-                Map<String, String> map = CalculateDateUtils.calculateAge(ethicalReviewVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
-                ethicalReviewVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
-                ethicalReviewVO1.setAgeunit(map.get("ageUnit"));
-                ethicalReviewVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
-                ethicalReviewVO1.setAgeunit2(map.get("ageUnit2"));
+            //鍏堢粰涓勾榫勯粯璁ゅ�硷紙鍥犱负age鏄暟瀛楃被鍨嬶紝涓嶈兘鏀炬í鏉狅紝鎵�浠ュ氨鎵�妯墰鏀惧埌鍗曚綅涓婏級
+            ethicalReviewVO1.setAgeunit("-");
+            ethicalReviewVO1.setAge(null);
+            ethicalReviewVO1.setAge2(null);
+            //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+            ServiceDonationwitness sdw = new ServiceDonationwitness();
+            sdw.setInfoid(ethicalReviewVO1.getId());
+            List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw);
+            if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && ethicalReviewVO1.getBirthday() != null) {
+                Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
+                if (ObjectUtils.isNotEmpty(deathtime)) {
+                    Map<String, String> map = CalculateDateUtils.calculateAge(ethicalReviewVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                    if (ObjectUtils.isEmpty(map)) {
+                        log.error("EthicalReviewVO鍑虹敓鏃ユ湡锛歿},EthicalReviewVO姝讳骸鏃ユ湡锛歿}", ethicalReviewVO1.getBirthday(), deathtime);
+                        continue;
+                    }
+                    ethicalReviewVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                    ethicalReviewVO1.setAgeunit(map.get("ageUnit"));
+                    ethicalReviewVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                    ethicalReviewVO1.setAgeunit2(map.get("ageUnit2"));
+                }
             }
+
         }
         return ethicalReviewVOS;
     }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java
index 6bdbcb1..4beca60 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceRelativesconfirmationServiceImpl.java
@@ -2,18 +2,23 @@
 
 import java.time.LocalDate;
 import java.time.ZoneId;
+import java.util.Date;
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.project.common.CalculateDateUtils;
 import com.ruoyi.project.domain.ServiceDonatebaseinfo;
+import com.ruoyi.project.domain.ServiceDonationwitness;
 import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
 import com.ruoyi.project.domain.vo.RelativeConfirmationVO;
 import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper;
+import com.ruoyi.project.mapper.ServiceDonationwitnessMapper;
 import com.ruoyi.project.service.IServiceDonatebaseinfoService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -27,6 +32,7 @@
 import com.ruoyi.project.mapper.ServiceRelativesconfirmationMapper;
 import com.ruoyi.project.domain.ServiceRelativesconfirmation;
 import com.ruoyi.project.service.IServiceRelativesconfirmationService;
+import org.springframework.util.CollectionUtils;
 
 /**
  * 鎹愮尞浜插睘纭Service涓氬姟灞傚鐞�
@@ -34,6 +40,7 @@
  * @author ruoyi
  * @date 2021-11-15
  */
+@Slf4j
 @Service
 public class ServiceRelativesconfirmationServiceImpl extends ServiceImpl<ServiceRelativesconfirmationMapper, ServiceRelativesconfirmation> implements IServiceRelativesconfirmationService {
 
@@ -45,6 +52,9 @@
 
     @Autowired
     ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
+
+    @Autowired
+    ServiceDonationwitnessMapper serviceDonationwitnessMapper;
 
 
     /**
@@ -212,12 +222,28 @@
         }
         List<RelativeConfirmationVO> relativeConfirmationVOS = serviceRelativesconfirmationMapper.selectVOList(relativeConfirmationVO);
         for (RelativeConfirmationVO relativeConfirmationVO1 : relativeConfirmationVOS) {
-            if (relativeConfirmationVO1.getBirthday() != null) {
-                Map<String, String> map = CalculateDateUtils.calculateAge(relativeConfirmationVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
-                relativeConfirmationVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
-                relativeConfirmationVO1.setAgeunit(map.get("ageUnit"));
-                relativeConfirmationVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
-                relativeConfirmationVO1.setAgeunit2(map.get("ageUnit2"));
+            //鍏堢粰涓勾榫勯粯璁ゅ�硷紙鍥犱负age鏄暟瀛楃被鍨嬶紝涓嶈兘鏀炬í鏉狅紝鎵�浠ュ氨鎵�妯墰鏀惧埌鍗曚綅涓婏級
+            relativeConfirmationVO1.setAgeunit("-");
+            relativeConfirmationVO1.setAge(null);
+            relativeConfirmationVO1.setAge2(null);
+
+            //鑾峰彇姝讳骸鏃堕棿锛屽鏋滆幏鍙栬璇侀噷鏈夋浜℃椂闂达紝鍒欒繘琛岃绠椾粬鐨勫勾榫�
+            ServiceDonationwitness sdw = new ServiceDonationwitness();
+            sdw.setInfoid(relativeConfirmationVO1.getInfoid());
+            List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw);
+            if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && relativeConfirmationVO1.getBirthday() != null) {
+                Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
+                if (ObjectUtils.isNotEmpty(deathtime)) {
+                    Map<String, String> map = CalculateDateUtils.calculateAge(relativeConfirmationVO1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
+                    if (ObjectUtils.isEmpty(map)) {
+                        log.error("RelativeConfirmationVO鍑虹敓鏃ユ湡锛歿},RelativeConfirmationVO姝讳骸鏃ユ湡锛歿}", relativeConfirmationVO1.getBirthday(), deathtime);
+                        continue;
+                    }
+                    relativeConfirmationVO1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
+                    relativeConfirmationVO1.setAgeunit(map.get("ageUnit"));
+                    relativeConfirmationVO1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
+                    relativeConfirmationVO1.setAgeunit2(map.get("ageUnit2"));
+                }
             }
         }
         return relativeConfirmationVOS;
diff --git a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
index 1a7ad83..73e8fb3 100644
--- a/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
+++ b/ruoyi-project/src/main/resources/mapper/project/ServiceDonationwitnessMapper.xml
@@ -104,6 +104,7 @@
                 #{gainhospitalname}, '%')
             </if>
             <if test="operationdoctor != null  and operationdoctor != ''">and OperationDoctor = #{operationdoctor}</if>
+            <if test="infoid != null">and InfoID = #{infoid}</if>
         </where>
     </select>
 

--
Gitblit v1.9.3