package com.ruoyi.project.service.impl; 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; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.ArrayList; import java.util.Map; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.project.mapper.ServiceEthicalreviewopinionsMapper; import com.ruoyi.project.domain.ServiceEthicalreviewopinions; import com.ruoyi.project.service.IServiceEthicalreviewopinionsService; import org.springframework.util.CollectionUtils; /** * 伦理审查专家意见Service业务层处理 * * @author ruoyi * @date 2021-11-23 */ @Slf4j @Service public class ServiceEthicalreviewopinionsServiceImpl extends ServiceImpl implements IServiceEthicalreviewopinionsService { @Autowired ServiceEthicalreviewopinionsMapper serviceEthicalreviewopinionsMapper; @Autowired ServiceDonationwitnessMapper serviceDonationwitnessMapper; /** * 查询伦理审查专家意见列表 * * @param serviceEthicalreviewopinions 伦理审查专家意见 * @return 伦理审查专家意见 */ @Override public List queryList(ServiceEthicalreviewopinions serviceEthicalreviewopinions) { LambdaQueryWrapper wrappers = Wrappers.lambdaQuery(); if (serviceEthicalreviewopinions.getInfoid() != null) { wrappers.eq(ServiceEthicalreviewopinions::getInfoid, serviceEthicalreviewopinions.getInfoid()); } if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getDonorno())) { wrappers.eq(ServiceEthicalreviewopinions::getDonorno, serviceEthicalreviewopinions.getDonorno()); } if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertopinion())) { wrappers.eq(ServiceEthicalreviewopinions::getExpertopinion, serviceEthicalreviewopinions.getExpertopinion()); } if (serviceEthicalreviewopinions.getExpertconclusion() != null) { wrappers.eq(ServiceEthicalreviewopinions::getExpertconclusion, serviceEthicalreviewopinions.getExpertconclusion()); } if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getExpertname())) { wrappers.like(ServiceEthicalreviewopinions::getExpertname, serviceEthicalreviewopinions.getExpertname()); } if (serviceEthicalreviewopinions.getConclusiontime() != null) { wrappers.eq(ServiceEthicalreviewopinions::getConclusiontime, serviceEthicalreviewopinions.getConclusiontime()); } if (StringUtils.isNotBlank(serviceEthicalreviewopinions.getConclusionannex())) { wrappers.eq(ServiceEthicalreviewopinions::getConclusionannex, serviceEthicalreviewopinions.getConclusionannex()); } if (serviceEthicalreviewopinions.getConclusionorder() != null) { wrappers.eq(ServiceEthicalreviewopinions::getConclusionorder, serviceEthicalreviewopinions.getConclusionorder()); } return this.list(wrappers); } @Override public List selectVOList(EthicalReviewVO ethicalReviewVO) { SysUser user = SecurityUtils.getLoginUser().getUser(); List l = user.getRoles(); Boolean b = false; for (SysRole r : l) { if (r.getRoleId().longValue() == 3) { b = true; } } if (b) { ethicalReviewVO.setReporterno(user.getUserName()); } List ethicalReviewVOS = serviceEthicalreviewopinionsMapper.selectVOList(ethicalReviewVO); for (EthicalReviewVO ethicalReviewVO1 : ethicalReviewVOS) { //先给个年龄默认值(因为age是数字类型,不能放横杠,所以就所横扛放到单位上) ethicalReviewVO1.setAgeunit("-"); ethicalReviewVO1.setAge(null); ethicalReviewVO1.setAge2(null); //获取死亡时间,如果获取见证里有死亡时间,则进行计算他的年龄 ServiceDonationwitness sdw = new ServiceDonationwitness(); sdw.setInfoid(ethicalReviewVO1.getId()); List serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw); if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && ethicalReviewVO1.getBirthday() != null) { Date deathtime = serviceDonationwitnessList.get(0).getDeathtime(); if (ObjectUtils.isNotEmpty(deathtime)) { Map 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; } }