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;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.utils.SecurityUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.project.common.CalculateDateUtils;
|
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;
|
|
/**
|
* 捐献完成Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2021-11-19
|
*/
|
@Slf4j
|
@Service
|
public class ServiceDonatecompletioninfoServiceImpl extends ServiceImpl<ServiceDonatecompletioninfoMapper, ServiceDonatecompletioninfo> implements IServiceDonatecompletioninfoService {
|
|
@Autowired
|
ServiceDonatecompletioninfoMapper serviceDonatecompletioninfoMapper;
|
|
@Autowired
|
IServiceDonatecomporganService serviceDonatecomporganService;
|
|
@Autowired
|
ServiceDonationwitnessMapper serviceDonationwitnessMapper;
|
|
/**
|
* 查询捐献完成列表
|
*
|
* @param serviceDonatecompletioninfo 捐献完成
|
* @return 捐献完成
|
*/
|
@Override
|
public List<ServiceDonatecompletioninfo> queryList(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
|
LambdaQueryWrapper<ServiceDonatecompletioninfo> wrappers = Wrappers.lambdaQuery();
|
if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getDonorno())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getDonorno, serviceDonatecompletioninfo.getDonorno());
|
}
|
if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getIsbodydonation())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getIsbodydonation, serviceDonatecompletioninfo.getIsbodydonation());
|
}
|
if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getReceivingunit())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getReceivingunit, serviceDonatecompletioninfo.getReceivingunit());
|
}
|
if (StringUtils.isNotNull(serviceDonatecompletioninfo.getId())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getId, serviceDonatecompletioninfo.getId());
|
}
|
if (StringUtils.isNotNull(serviceDonatecompletioninfo.getInfoid())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getInfoid, serviceDonatecompletioninfo.getInfoid());
|
}
|
return this.list(wrappers);
|
}
|
|
/**
|
* 暂时先不用了
|
*
|
* @param serviceDonatecompletioninfo
|
* @return
|
*/
|
@Override
|
public List<ServiceDonatecompletioninfo> queryListDetail(ServiceDonatecompletioninfo serviceDonatecompletioninfo) {
|
LambdaQueryWrapper<ServiceDonatecompletioninfo> wrappers = Wrappers.lambdaQuery();
|
if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getDonorno())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getDonorno, serviceDonatecompletioninfo.getDonorno());
|
}
|
if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getIsbodydonation())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getIsbodydonation, serviceDonatecompletioninfo.getIsbodydonation());
|
}
|
if (StringUtils.isNotBlank(serviceDonatecompletioninfo.getReceivingunit())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getReceivingunit, serviceDonatecompletioninfo.getReceivingunit());
|
}
|
if (StringUtils.isNotNull(serviceDonatecompletioninfo.getId())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getId, serviceDonatecompletioninfo.getId());
|
}
|
if (StringUtils.isNotNull(serviceDonatecompletioninfo.getInfoid())) {
|
wrappers.eq(ServiceDonatecompletioninfo::getInfoid, serviceDonatecompletioninfo.getInfoid());
|
}
|
List<ServiceDonatecompletioninfo> serviceDonatecompletioninfoList = this.list(wrappers);
|
if (CollectionUtils.isNotEmpty(serviceDonatecompletioninfoList)) {
|
for (ServiceDonatecompletioninfo serviceDonatecompletioninfo1 : serviceDonatecompletioninfoList) {
|
if (serviceDonatecompletioninfo1.getInfoid() != null) {
|
ServiceDonatecomporgan serviceDonatecomporgan = new ServiceDonatecomporgan();
|
serviceDonatecomporgan.setInfoid(serviceDonatecompletioninfo1.getInfoid());
|
List<ServiceDonatecomporgan> serviceDonatecomporgans = serviceDonatecomporganService.queryList(serviceDonatecomporgan);
|
serviceDonatecompletioninfo1.setServiceDonatecomporganList(serviceDonatecomporgans);
|
}
|
|
}
|
}
|
|
return this.list(wrappers);
|
}
|
|
|
@Override
|
public List<DonationCompletionVO> selectVOList(DonationCompletionVO donationCompletionVO) {
|
|
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) {
|
donationCompletionVO.setReporterno(user.getUserName());
|
}
|
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"));
|
// }
|
|
//先给个年龄默认值(因为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"));
|
}
|
}
|
}
|
|
return donationCompletionVOS;
|
}
|
|
@Override
|
public void delDuplicateDonateCompletioninfo(long infoid, String createby) {
|
serviceDonatecompletioninfoMapper.delDuplicateDonateCompletioninfo(infoid, createby);
|
}
|
|
}
|