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 implements IServiceDonatebaseinfoService { @Autowired BaseOrganizationMapper baseOrganizationMapper; @Autowired ServiceExternalpersonMapper serviceExternalpersonMapper; @Autowired ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper; @Autowired ServiceDonationwitnessMapper serviceDonationwitnessMapper; /** * 查询捐献基础列表 * * @param serviceDonatebaseinfo 捐献基础 * @return 捐献基础 */ @Override public List queryList(ServiceDonatebaseinfo serviceDonatebaseinfo) { LambdaQueryWrapper 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 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 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 selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo) { SysUser user = SecurityUtils.getLoginUser().getUser(); List 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 listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo) { 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){ 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); } }