package com.ruoyi.project.service.impl;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
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.BaseOrganization;
|
import com.ruoyi.project.domain.ServiceDonationwitness;
|
import com.ruoyi.project.domain.vo.TimeVO;
|
import com.ruoyi.project.domain.vo.countByRecordStateVO;
|
import com.ruoyi.project.mapper.*;
|
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.domain.ServiceDonatebaseinfo;
|
import com.ruoyi.project.mapper.BaseOrganizationMapper;
|
import com.ruoyi.project.service.IServiceDonatebaseinfoService;
|
|
/**
|
* 捐献基础Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2021-11-13
|
*/
|
@Service
|
public class ServiceDonatebaseinfoServiceImpl extends ServiceImpl<ServiceDonatebaseinfoMapper, ServiceDonatebaseinfo> implements IServiceDonatebaseinfoService
|
{
|
|
@Autowired
|
BaseOrganizationMapper baseOrganizationMapper;
|
|
@Autowired
|
ServiceExternalpersonMapper serviceExternalpersonMapper;
|
|
@Autowired
|
ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
|
|
@Autowired
|
ServiceDonationwitnessMapper serviceDonationwitnessMapper;
|
|
|
|
/**
|
* 查询捐献基础列表
|
*
|
* @param serviceDonatebaseinfo 捐献基础
|
* @return 捐献基础
|
*/
|
@Override
|
public List<ServiceDonatebaseinfo> queryList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
|
LambdaQueryWrapper<ServiceDonatebaseinfo> wrappers = Wrappers.lambdaQuery();
|
if (StringUtils.isNotBlank(serviceDonatebaseinfo.getName())){
|
wrappers.like(ServiceDonatebaseinfo::getName ,serviceDonatebaseinfo.getName());
|
}
|
if (StringUtils.isNotBlank(serviceDonatebaseinfo.getIdcardno())){
|
wrappers.like(ServiceDonatebaseinfo::getIdcardno ,serviceDonatebaseinfo.getIdcardno());
|
}
|
if (StringUtils.isNotBlank(serviceDonatebaseinfo.getResidenceprovince())){
|
wrappers.eq(ServiceDonatebaseinfo::getResidenceprovince ,serviceDonatebaseinfo.getResidenceprovince());
|
}
|
if (serviceDonatebaseinfo.getRecordstate() != null){
|
wrappers.eq(ServiceDonatebaseinfo::getRecordstate ,serviceDonatebaseinfo.getRecordstate());
|
}
|
if (StringUtils.isNotBlank(serviceDonatebaseinfo.getTreatmenthospitalname())){
|
wrappers.like(ServiceDonatebaseinfo::getTreatmenthospitalname ,serviceDonatebaseinfo.getTreatmenthospitalname());
|
}
|
if (StringUtils.isNotBlank(serviceDonatebaseinfo.getDonorno())){
|
wrappers.eq(ServiceDonatebaseinfo::getDonorno ,serviceDonatebaseinfo.getDonorno());
|
}
|
if (StringUtils.isNotBlank(serviceDonatebaseinfo.getReportername())){
|
wrappers.like(ServiceDonatebaseinfo::getReportername ,serviceDonatebaseinfo.getReportername());
|
}
|
Map<String, Object> params = serviceDonatebaseinfo.getParams();
|
if (params.get("beginReporttime") != null && params.get("endReporttime") != null) {
|
wrappers.between(ServiceDonatebaseinfo::getReporttime ,params.get("beginReporttime"),params.get("endReporttime"));
|
}
|
return this.list(wrappers);
|
}
|
|
@Override
|
public String getDonateNumber(ServiceDonatebaseinfo serviceDonatebaseinfo) {
|
String donateNumber = "";
|
|
//省编号 P1P2
|
donateNumber += "33";
|
//发现医院 C1C2AF1N1
|
String hospitalNo = serviceDonatebaseinfo.getTreatmenthospitalno();
|
BaseOrganization baseOrganization = baseOrganizationMapper.getOrganizationByNumber(hospitalNo);
|
donateNumber += baseOrganization.getOrganizationid();
|
|
//工作人员 H1H2H3
|
donateNumber += serviceDonatebaseinfo.getReporterno();
|
//红十字会 H4H5
|
donateNumber += "**";
|
|
//捐献者性别 G1+
|
donateNumber += serviceDonatebaseinfo.getSex().toString();
|
//捐献者血型 B1
|
|
String bloodtype = "" + serviceDonatebaseinfo.getBloodtype() + serviceDonatebaseinfo.getRhyin();
|
|
donateNumber += serviceDonatebaseinfoMapper.getBloodCode(bloodtype);
|
//捐献者年龄 A1A2
|
donateNumber += serviceDonatebaseinfo.getAge().toString();
|
//捐献年份 Y1Y2
|
Date dt = serviceDonatebaseinfo.getReporttime();
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String dateString = formatter.format(dt);
|
donateNumber += dateString.substring(2, 4);
|
//捐献者序号 S1S2S3S4
|
//查询当年的序号数据
|
donateNumber += "****";
|
|
|
return donateNumber;
|
}
|
|
@Override
|
public String getDonateNumberById(Long id) {
|
return serviceDonatebaseinfoMapper.getDonateNumberById(id);
|
}
|
|
@Override
|
public String updateS1S2S3S4(Long id) {
|
String oldDonateNumber = serviceDonatebaseinfoMapper.getDonateNumberById(id);
|
|
List <ServiceDonationwitness> list = serviceDonationwitnessMapper.getWitnessList();
|
int completeDonation = list.size();
|
|
String number = "";
|
|
if(completeDonation < 10){
|
number = "000" + completeDonation;
|
}
|
else if(completeDonation >= 10 && completeDonation < 100){
|
number = "00" + completeDonation;
|
}
|
else if(completeDonation >= 100 && completeDonation < 1000){
|
number = "0" + completeDonation;
|
}
|
else {
|
number = "" + completeDonation;
|
}
|
|
int last = oldDonateNumber.lastIndexOf("*");
|
if(last == -1){
|
return oldDonateNumber;
|
}
|
else {
|
StringBuilder newDonateNumber = new StringBuilder(oldDonateNumber);
|
newDonateNumber.replace(last - 3, last + 1, number);
|
|
String updateNumber = newDonateNumber.toString();
|
int result = serviceDonatebaseinfoMapper.updateDonateNumber(id, updateNumber);
|
|
return updateNumber;
|
}
|
}
|
|
@Override
|
public List<ServiceDonatebaseinfo> selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
|
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
List <SysRole> l = user.getRoles();
|
int b = 0;
|
|
for(SysRole r : l){
|
if(r.getRoleId().longValue() == 3){
|
b = 1;
|
}
|
if(r.getRoleId().longValue() == 13){
|
b = 2;
|
}
|
}
|
if(b == 1){
|
serviceDonatebaseinfo.setCreateBy(user.getUserName());
|
}
|
if(b == 2){
|
serviceDonatebaseinfo.setDeptid(user.getDeptId());
|
}
|
return serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
|
}
|
|
@Override
|
public List<ServiceDonatebaseinfo> listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo) {
|
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){
|
serviceDonatebaseinfo.setCreateBy(user.getUserName());
|
}
|
|
return serviceDonatebaseinfoMapper.listForSearch(serviceDonatebaseinfo);
|
}
|
|
@Override
|
public String gethqzz(Long infoid) {
|
return serviceDonatebaseinfoMapper.gethqzz(infoid);
|
}
|
|
@Override
|
public countByRecordStateVO countByRecordState(TimeVO timeVO) {
|
countByRecordStateVO c = new countByRecordStateVO();
|
c.setBaseinfo(serviceDonatebaseinfoMapper.countByRecordState("0", timeVO.getStarttime(), timeVO.getEndtime()));
|
c.setMedicalevaluation(serviceDonatebaseinfoMapper.countByRecordState("4", timeVO.getStarttime(), timeVO.getEndtime()));
|
c.setRelativeconfirmation(serviceDonatebaseinfoMapper.countByRecordState("6", timeVO.getStarttime(), timeVO.getEndtime()));
|
c.setEthicalreview(serviceDonatebaseinfoMapper.countByRecordState("8", timeVO.getStarttime(), timeVO.getEndtime()));
|
c.setOrganallocation(serviceDonatebaseinfoMapper.countByRecordState("10", timeVO.getStarttime(), timeVO.getEndtime()));
|
c.setWitness(serviceDonatebaseinfoMapper.countByRecordState("11", timeVO.getStarttime(), timeVO.getEndtime()));
|
c.setCompletion(serviceDonatebaseinfoMapper.countByRecordState("13", timeVO.getStarttime(), timeVO.getEndtime()));
|
c.setAbandon(serviceDonatebaseinfoMapper.countByRecordState("99", timeVO.getStarttime(), timeVO.getEndtime()));
|
|
return c;
|
}
|
|
@Override
|
public String getDonateNameById(Long infoid) {
|
return serviceDonatebaseinfoMapper.getDonateNameById(infoid);
|
}
|
|
|
}
|