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<ServiceDonationwitnessMapper, ServiceDonationwitness> implements IServiceDonationwitnessService
|
{
|
|
|
@Autowired
|
ServiceDonationwitnessMapper serviceDonationwitnessMapper;
|
|
@Autowired
|
ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
|
|
/**
|
* 查询捐献见证列表
|
*
|
* @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());
|
}
|
|
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<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;
|
}
|
|
}
|