package com.ruoyi.project.service.impl; import java.util.List; 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.vo.DonationWitnessVO; import com.ruoyi.project.domain.vo.TimeVO; import com.ruoyi.project.domain.vo.WitnessStatsVO; import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper; 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; /** * 查询捐献见证列表 * * @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()); } return serviceDonationwitnessMapper.selectVOList(donationWitnessVO); } @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; } }