liusheng
2025-11-04 b1ffaa0bfbe610b16b64966965fe13b7e2a57d93
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -1,6 +1,10 @@
package com.ruoyi.project.service.impl;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.Period;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -9,12 +13,14 @@
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.*;
import com.ruoyi.project.domain.vo.TimeVO;
import com.ruoyi.project.domain.vo.countByRecordStateVO;
import com.ruoyi.project.mapper.*;
import com.ruoyi.project.service.*;
import com.ruoyi.system.mapper.SysUserMapper;
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;
@@ -31,6 +37,7 @@
 * @author ruoyi
 * @date 2021-11-13
 */
@Slf4j
@Service
public class ServiceDonatebaseinfoServiceImpl extends ServiceImpl<ServiceDonatebaseinfoMapper, ServiceDonatebaseinfo> implements IServiceDonatebaseinfoService {
@@ -221,12 +228,50 @@
            }
        }
        if (b == 1) {
            serviceDonatebaseinfo.setCreateBy(user.getUserName());
//            serviceDonatebaseinfo.setCreateBy(user.getUserName());
            log.info("user.getUserName()的值为 ---- :{}", user.getUserName());
            serviceDonatebaseinfo.setReporterno(user.getUserName());
        }
        if (b == 2) {
            serviceDonatebaseinfo.setDeptid(user.getDeptId());
        }
        return serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
        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"));
//            }
            //先给个年龄默认值(因为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;
    }
    @Override
@@ -273,6 +318,7 @@
    @Override
    public Map<String, Object> getWorkFlow(Long id) {
        log.info("getWorkFlow的入参ID为:{}", id);
        //用于返回
        Map<String, Object> map = new ConcurrentHashMap<>();
@@ -302,14 +348,17 @@
        }
        donatebaseinfo.put("process", "");
        //封装serviceDonateorgan潜在捐献返回数据
        log.info("检查封装潜在捐献返回数据donatebaseinfo的值为:{}", donatebaseinfo);
        map.put("donatebaseinfo", donatebaseinfo);
        //封装医学评估
        log.info("检查serviceDonatebaseinfo.getWorkflow()的值为:{}", serviceDonatebaseinfo.getWorkflow());
        Map<String, String> medicalevaluation = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 1) {
            ServiceMedicalevaluation serviceMedicalevaluation = new ServiceMedicalevaluation();
            serviceMedicalevaluation.setInfoid(id);
            List<ServiceMedicalevaluation> serviceMedicalevaluations = serviceMedicalevaluationService.queryList(serviceMedicalevaluation);
            log.info("检查serviceMedicalevaluationService的值为:{}", serviceMedicalevaluations.size());
            if (!CollectionUtils.isEmpty(serviceMedicalevaluations)) {
                medicalevaluation.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceMedicalevaluations.get(0).getCreateTime()));
                medicalevaluation.put("updatetime", serviceMedicalevaluations.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceMedicalevaluations.get(0).getUpdateTime()) : null);
@@ -332,6 +381,7 @@
            }
        }
        //封装医学评估返回数据
        log.info("检查封装医学评估返回数据medicalevaluation的值为:{}", medicalevaluation);
        map.put("medicalevaluation", medicalevaluation);
        //封装捐献确认
@@ -340,6 +390,7 @@
            ServiceRelativesconfirmation serviceRelativesconfirmation = new ServiceRelativesconfirmation();
            serviceRelativesconfirmation.setInfoid(id);
            List<ServiceRelativesconfirmation> serviceRelativesconfirmations = serviceRelativesconfirmationService.queryList(serviceRelativesconfirmation);
            log.info("检查serviceRelativesconfirmations的值为:{}", serviceRelativesconfirmations.size());
            if (!CollectionUtils.isEmpty(serviceRelativesconfirmations)) {
                relativesconfirmation.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceRelativesconfirmations.get(0).getCreateTime()));
                relativesconfirmation.put("updatetime", serviceRelativesconfirmations.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceRelativesconfirmations.get(0).getUpdateTime()) : "");
@@ -362,6 +413,7 @@
            }
        }
        //封装捐献确认返回数据
        log.info("检查封装捐献确认返回数据relativesconfirmation的值为:{}", relativesconfirmation);
        map.put("relativesconfirmation", relativesconfirmation);
@@ -371,6 +423,7 @@
            ServiceEthicalreviewopinions serviceDonateflowchart = new ServiceEthicalreviewopinions();
            serviceDonateflowchart.setInfoid(id);
            List<ServiceEthicalreviewopinions> serviceEthicalreviewopinionsList = iServiceEthicalreviewopinionsService.queryList(serviceDonateflowchart);
            log.info("检查serviceEthicalreviewopinionsList的值为:{}", serviceEthicalreviewopinionsList.size());
            if (!CollectionUtils.isEmpty(serviceEthicalreviewopinionsList)) {
                donateflowcharts.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceEthicalreviewopinionsList.get(0).getCreateTime()));
                donateflowcharts.put("updatetime", serviceEthicalreviewopinionsList.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceEthicalreviewopinionsList.get(0).getUpdateTime()) : "");
@@ -394,6 +447,7 @@
            }
        }
        //封装伦理审查返回数据
        log.info("检查封装伦理审查返回数据donateflowcharts的值为:{}", donateflowcharts);
        map.put("donateflowcharts", donateflowcharts);
        //封装器官分配
@@ -402,6 +456,7 @@
            ServiceDonateorgan serviceDonateorgan = new ServiceDonateorgan();
            serviceDonateorgan.setInfoid(id);
            List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganService.queryList(serviceDonateorgan);
            log.info("检查serviceDonateorgans的值为:{}", serviceDonateorgans.size());
            if (!CollectionUtils.isEmpty(serviceDonateorgans)) {
                donateorgansService.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateorgans.get(0).getCreateTime()));
                donateorgansService.put("updatetime", serviceDonateorgans.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateorgans.get(0).getUpdateTime()) : "");
@@ -424,6 +479,7 @@
                donateorgansService.put("process", "");
            }
        }
        log.info("检查封装器官分配返回数据donateorgansService的值为:{}", donateorgansService);
        //封装器官分配返回数据
        map.put("donateorgansService", donateorgansService);
@@ -431,6 +487,7 @@
        Map<String, String> donationwitness = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 5) {
            ServiceDonationwitness serviceDonationwitness = serviceDonationwitnessService.getByInfoId(id);
            log.info("检查serviceDonationwitness的值为:{}", serviceDonationwitness);
            if (!ObjectUtils.isEmpty(serviceDonationwitness)) {
                donationwitness.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonationwitness.getCreateTime()));
                donationwitness.put("updatetime", serviceDonationwitness.getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonationwitness.getUpdateTime()) : "");
@@ -453,6 +510,7 @@
                donationwitness.put("process", "");
            }
        }
        log.info("检查封装获取见证返回数据donationwitness的值为:{}", donationwitness);
        //封装获取见证返回数据
        map.put("donationwitness", donationwitness);
@@ -462,6 +520,7 @@
            ServiceDonatecompletioninfo serviceDonatecompletioninfo = new ServiceDonatecompletioninfo();
            serviceDonatecompletioninfo.setInfoid(id);
            List<ServiceDonatecompletioninfo> serviceDonatecompletioninfos = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo);
            log.info("检查serviceDonatecompletioninfos的值为:{}", serviceDonatecompletioninfos);
            if (!CollectionUtils.isEmpty(serviceDonatecompletioninfos)) {
                donatecompletioninfo.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatecompletioninfos.get(0).getCreateTime()));
                donatecompletioninfo.put("updatetime", serviceDonatecompletioninfos.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatecompletioninfos.get(0).getUpdateTime()) : "");
@@ -484,6 +543,7 @@
                donatecompletioninfo.put("process", "");
            }
        }
        log.info("检查封装完成登记返回数据donatecompletioninfo的值为:{}", donatecompletioninfo);
        //封装完成登记返回数据
        map.put("donatecompletioninfo", donatecompletioninfo);