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<ServiceDonationwitnessMapper, ServiceDonationwitness> implements IServiceDonationwitnessService {
|
|
|
@Autowired
|
ServiceDonationwitnessMapper serviceDonationwitnessMapper;
|
|
@Autowired
|
ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
|
|
@Autowired
|
ServiceDonateorganServiceImpl serviceDonateorganService;
|
|
/**
|
* 查询捐献见证列表
|
*
|
* @param serviceDonationwitness 捐献见证
|
* @return 捐献见证
|
*/
|
@Override
|
public List<ServiceDonationwitness> queryList(ServiceDonationwitness serviceDonationwitness) {
|
LambdaQueryWrapper<ServiceDonationwitness> 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<DonationWitnessVO> selectVOList(DonationWitnessVO donationWitnessVO) {
|
|
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) {
|
donationWitnessVO.setBasecreateby(user.getUserName());
|
}
|
List<DonationWitnessVO> 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<ServiceDonationwitness> list = serviceDonationwitnessMapper.selectServiceDonationwitnessList(serviceDonationwitness);
|
List<ServiceDonationwitness> 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;
|
}
|
|
}
|