package com.ruoyi.project.service.impl; import java.util.List; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 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.domain.ServiceDonatebaseinfo; import com.ruoyi.project.domain.ServiceDonateorgan; import com.ruoyi.project.domain.vo.DonationWitnessVO; import com.ruoyi.project.domain.vo.TimeVO; import com.ruoyi.project.domain.vo.WitnessStatsVO; import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper; import com.ruoyi.project.mapper.ServiceDonateorganMapper; 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.ServiceDonationwitnessMapper; import com.ruoyi.project.domain.ServiceDonationwitness; import com.ruoyi.project.service.IServiceDonationwitnessService; /** * 捐献见证Service业务层处理 * * @author ruoyi * @date 2021-11-17 */ @Service public class ServiceDonationwitnessServiceImpl extends ServiceImpl implements IServiceDonationwitnessService { @Autowired ServiceDonationwitnessMapper serviceDonationwitnessMapper; @Autowired ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper; @Autowired ServiceDonateorganServiceImpl serviceDonateorganService; /** * 查询捐献见证列表 * * @param serviceDonationwitness 捐献见证 * @return 捐献见证 */ @Override public List queryList(ServiceDonationwitness serviceDonationwitness) { LambdaQueryWrapper wrappers = Wrappers.lambdaQuery(); if (StringUtils.isNotBlank(serviceDonationwitness.getDonorno())) { wrappers.eq(ServiceDonationwitness::getDonorno, serviceDonationwitness.getDonorno()); } if (StringUtils.isNotBlank(serviceDonationwitness.getGainhospitalname())) { wrappers.like(ServiceDonationwitness::getGainhospitalname, serviceDonationwitness.getGainhospitalname()); } if (StringUtils.isNotBlank(serviceDonationwitness.getOperationdoctor())) { wrappers.eq(ServiceDonationwitness::getOperationdoctor, serviceDonationwitness.getOperationdoctor()); } return this.list(wrappers); } @Override public List selectVOList(DonationWitnessVO donationWitnessVO) { 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) { donationWitnessVO.setBasecreateby(user.getUserName()); } List donationWitnessVOS = serviceDonationwitnessMapper.selectVOList(donationWitnessVO); return donationWitnessVOS; } @Override public ServiceDonationwitness getByInfoId(Long infoid) { return serviceDonationwitnessMapper.selectByInfoId(infoid); } @Override public WitnessStatsVO getStats(TimeVO timeVO) { WitnessStatsVO w = new WitnessStatsVO(); ServiceDonationwitness serviceDonationwitness = new ServiceDonationwitness(); //List list = serviceDonationwitnessMapper.selectServiceDonationwitnessList(serviceDonationwitness); List list = serviceDonationwitnessMapper.selectByTime(timeVO); int total = list.size(); int manNumber = 0; int womanNumber = 0; int D0Number = 0; int D1Number = 0; int D2Number = 0; int D3Number = 0; int D4Number = 0; int DBDNumber = 0; int DCDNumber = 0; int DBCDNumber = 0; int A1Number = 0; int A2Number = 0; int A3Number = 0; int XANumber = 0; int XBNumber = 0; int XONumber = 0; int XABNumber = 0; int DothersNumber = 0; for (ServiceDonationwitness l : list) { ServiceDonatebaseinfo serviceDonatebaseinfo = serviceDonatebaseinfoMapper.getById(l.getInfoid()); if (serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("1")) { manNumber++; } if (serviceDonatebaseinfo.getSex() != null && serviceDonatebaseinfo.getSex().equals("2")) { womanNumber++; } if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("0")) { D0Number++; } if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("1")) { D1Number++; } if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("2")) { D2Number++; } if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("3")) { D3Number++; } if (serviceDonatebaseinfo.getDiseasetype() != null && serviceDonatebaseinfo.getDiseasetype().equals("4")) { D4Number++; } if (l.getDonationcategory() != null && l.getDonationcategory().equals("DBD")) { DBDNumber++; } if (l.getDonationcategory() != null && l.getDonationcategory().equals("DCD")) { DCDNumber++; } if (l.getDonationcategory() != null && l.getDonationcategory().equals("DBCD")) { DBCDNumber++; } if (serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 0 && serviceDonatebaseinfo.getAge() <= 17) { A1Number++; } if (serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 18 && serviceDonatebaseinfo.getAge() <= 48) { A2Number++; } if (serviceDonatebaseinfo.getAge() != null && serviceDonatebaseinfo.getAge() >= 49 && serviceDonatebaseinfo.getAge() <= 69) { A3Number++; } if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("1")) { XANumber++; } if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("2")) { XBNumber++; } if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("3")) { XONumber++; } if (serviceDonatebaseinfo.getBloodtype() != null && serviceDonatebaseinfo.getBloodtype().equals("4")) { XABNumber++; } } DothersNumber = total - D0Number - D1Number - D2Number - D3Number - D4Number; if (total == 0) { w.setManRate(0); w.setWomanRate(0); w.setD0Rate(0); w.setD1Rate(0); w.setD2Rate(0); w.setD3Rate(0); w.setD4Rate(0); w.setDOthersRate(0); w.setDBDRate(0); w.setDCDRate(0); w.setDBCDRate(0); w.setA1Rate(0); w.setA2Rate(0); w.setA3Rate(0); w.setXARate(0); w.setXBRate(0); w.setXORate(0); w.setXABRate(0); } else { w.setManRate((double) manNumber / (double) total); w.setWomanRate((double) womanNumber / (double) total); w.setD0Rate((double) D0Number / (double) total); w.setD1Rate((double) D1Number / (double) total); w.setD2Rate((double) D2Number / (double) total); w.setD3Rate((double) D3Number / (double) total); w.setD4Rate((double) D4Number / (double) total); w.setDOthersRate((double) DothersNumber / (double) total); w.setDBDRate((double) DBDNumber / (double) total); w.setDCDRate((double) DCDNumber / (double) total); w.setDBCDRate((double) DBCDNumber / (double) total); w.setA1Rate((double) A1Number / (double) total); w.setA2Rate((double) A2Number / (double) total); w.setA3Rate((double) A3Number / (double) total); w.setXARate((double) XANumber / (double) total); w.setXBRate((double) XBNumber / (double) total); w.setXORate((double) XONumber / (double) total); w.setXABRate((double) XABNumber / (double) total); } return w; } }