liusheng
2023-11-20 0305121daab27b4bff4d906a01b9ca3ce08a5f04
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -1,39 +1,37 @@
package com.ruoyi.project.service.impl;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
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.*;
import com.ruoyi.project.domain.vo.TimeVO;
import com.ruoyi.project.domain.vo.countByRecordStateVO;
import com.ruoyi.project.mapper.*;
import com.ruoyi.project.service.*;
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;
import org.springframework.util.CollectionUtils;
/**
 * 捐献基础Service业务层处理
 *
 *
 * @author ruoyi
 * @date 2021-11-13
 */
@Service
public class ServiceDonatebaseinfoServiceImpl extends ServiceImpl<ServiceDonatebaseinfoMapper, ServiceDonatebaseinfo> implements IServiceDonatebaseinfoService
{
public class ServiceDonatebaseinfoServiceImpl extends ServiceImpl<ServiceDonatebaseinfoMapper, ServiceDonatebaseinfo> implements IServiceDonatebaseinfoService {
    @Autowired
    BaseOrganizationMapper baseOrganizationMapper;
@@ -47,41 +45,64 @@
    @Autowired
    ServiceDonationwitnessMapper serviceDonationwitnessMapper;
    @Autowired
    private IBaseOnlyvalueService baseOnlyvalueService;
    @Autowired
    private IServiceMedicalevaluationService serviceMedicalevaluationService;
    @Autowired
    private IServiceRelativesconfirmationService serviceRelativesconfirmationService;
    @Autowired
    private IServiceDonateflowchartService iServiceDonateflowchartService;
    @Autowired
    private IServiceOrganallocationService serviceOrganallocationService;
    @Autowired
    private IServiceDonateorganService serviceDonateorganService;
    @Autowired
    private IServiceDonationwitnessService serviceDonationwitnessService;
    @Autowired
    private IServiceDonatecompletioninfoService serviceDonatecompletioninfoService;
    /**
     * 查询捐献基础列表
     *
     *
     * @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.getName())) {
            wrappers.like(ServiceDonatebaseinfo::getName, serviceDonatebaseinfo.getName());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getIdcardno())){
            wrappers.like(ServiceDonatebaseinfo::getIdcardno ,serviceDonatebaseinfo.getIdcardno());
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getIdcardno())) {
            wrappers.like(ServiceDonatebaseinfo::getIdcardno, serviceDonatebaseinfo.getIdcardno());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getResidenceprovince())){
            wrappers.eq(ServiceDonatebaseinfo::getResidenceprovince ,serviceDonatebaseinfo.getResidenceprovince());
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getResidenceprovince())) {
            wrappers.eq(ServiceDonatebaseinfo::getResidenceprovince, serviceDonatebaseinfo.getResidenceprovince());
        }
        if (serviceDonatebaseinfo.getRecordstate() != null){
            wrappers.eq(ServiceDonatebaseinfo::getRecordstate ,serviceDonatebaseinfo.getRecordstate());
        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.getTreatmenthospitalname())) {
            wrappers.like(ServiceDonatebaseinfo::getTreatmenthospitalname, serviceDonatebaseinfo.getTreatmenthospitalname());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getDonorno())){
            wrappers.eq(ServiceDonatebaseinfo::getDonorno ,serviceDonatebaseinfo.getDonorno());
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getDonorno())) {
            wrappers.eq(ServiceDonatebaseinfo::getDonorno, serviceDonatebaseinfo.getDonorno());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getReportername())){
            wrappers.like(ServiceDonatebaseinfo::getReportername ,serviceDonatebaseinfo.getReportername());
        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"));
            wrappers.between(ServiceDonatebaseinfo::getReporttime, params.get("beginReporttime"), params.get("endReporttime"));
        }
        return this.list(wrappers);
    }
@@ -95,7 +116,9 @@
        //发现医院 C1C2AF1N1
        String hospitalNo = serviceDonatebaseinfo.getTreatmenthospitalno();
        BaseOrganization baseOrganization = baseOrganizationMapper.getOrganizationByNumber(hospitalNo);
        donateNumber += baseOrganization.getOrganizationid();
        if (ObjectUtils.isNotEmpty(baseOrganization)) {
            donateNumber += baseOrganization.getOrganizationid();
        }
        //工作人员 H1H2H3
        donateNumber += serviceDonatebaseinfo.getReporterno();
@@ -133,31 +156,41 @@
    public String updateS1S2S3S4(Long id) {
        String oldDonateNumber = serviceDonatebaseinfoMapper.getDonateNumberById(id);
        List <ServiceDonationwitness> list = serviceDonationwitnessMapper.getWitnessList();
        List<ServiceDonationwitness> list = serviceDonationwitnessMapper.getWitnessList();
        int completeDonation = list.size();
        String number = "";
        if(completeDonation < 10){
            number = "000" + completeDonation;
//        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;
//        }
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        BaseOnlyvalue baseOnlyvalue = new BaseOnlyvalue();
        baseOnlyvalue.setAppentvalue(String.valueOf(year));
        baseOnlyvalue.setBusinesstype("donationwitness");
        List<BaseOnlyvalue> baseOnlyvalues = baseOnlyvalueService.queryList(baseOnlyvalue);
        Long currentvalue = baseOnlyvalues.get(0).getCurrentvalue();
        if (currentvalue == null) {
            log.error("唯一值为空了!");
            return null;
        }
        else if(completeDonation >= 10 && completeDonation < 100){
            number = "00" + completeDonation;
        }
        else if(completeDonation >= 100 && completeDonation < 1000){
            number = "0" + completeDonation;
        }
        else {
            number = "" + completeDonation;
        }
        //如果currentvalue不满足4位,则在前面补0
        String formattedNumber = String.format("%04d", currentvalue);
        int last = oldDonateNumber.lastIndexOf("*");
        if(last == -1){
        if (last == -1) {
            return oldDonateNumber;
        }
        else {
        } else {
            StringBuilder newDonateNumber = new StringBuilder(oldDonateNumber);
            newDonateNumber.replace(last - 3, last + 1, number);
//            newDonateNumber.replace(last - 3, last + 1, number);
            newDonateNumber.replace(last - 3, last + 1, formattedNumber);
            String updateNumber = newDonateNumber.toString();
            int result = serviceDonatebaseinfoMapper.updateDonateNumber(id, updateNumber);
@@ -170,21 +203,21 @@
    public List<ServiceDonatebaseinfo> selectServiceDonatebaseinfoList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        List <SysRole> l = user.getRoles();
        List<SysRole> l = user.getRoles();
        int b = 0;
        for(SysRole r : l){
            if(r.getRoleId().longValue() == 3){
        for (SysRole r : l) {
            if (r.getRoleId().longValue() == 3) {
                b = 1;
            }
            if(r.getRoleId().longValue() == 13){
            if (r.getRoleId().longValue() == 13) {
                b = 2;
            }
        }
        if(b == 1){
        if (b == 1) {
            serviceDonatebaseinfo.setCreateBy(user.getUserName());
        }
        if(b == 2){
        if (b == 2) {
            serviceDonatebaseinfo.setDeptid(user.getDeptId());
        }
        return serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
@@ -193,14 +226,14 @@
    @Override
    public List<ServiceDonatebaseinfo> listForSearch(ServiceDonatebaseinfo serviceDonatebaseinfo) {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        List <SysRole> l = user.getRoles();
        List<SysRole> l = user.getRoles();
        Boolean b = false;
        for(SysRole r : l){
            if(r.getRoleId().longValue() == 3){
        for (SysRole r : l) {
            if (r.getRoleId().longValue() == 3) {
                b = true;
            }
        }
        if(b){
        if (b) {
            serviceDonatebaseinfo.setCreateBy(user.getUserName());
        }
@@ -232,7 +265,115 @@
        return serviceDonatebaseinfoMapper.getDonateNameById(infoid);
    }
    @Override
    public Map<String, Object> getWorkFlow(Long id) {
        //用于返回
        Map<String, Object> map = new ConcurrentHashMap<>();
        ServiceDonatebaseinfo serviceDonatebaseinfo = getById(id);
        if (ObjectUtils.isEmpty(serviceDonatebaseinfo)) {
            return null;
        }
        //封装serviceDonateorgan潜在捐献数据
        Map<String, String> donatebaseinfo = new HashMap<>();
        donatebaseinfo.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatebaseinfo.getCreateTime()));
        donatebaseinfo.put("updatetime", serviceDonatebaseinfo.getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatebaseinfo.getUpdateTime()) : "");
        donatebaseinfo.put("process", "");
        //封装serviceDonateorgan潜在捐献返回数据
        map.put("donatebaseinfo", donatebaseinfo);
        //封装医学评估
        Map<String, String> medicalevaluation = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 1) {
            ServiceMedicalevaluation serviceMedicalevaluation = new ServiceMedicalevaluation();
            serviceMedicalevaluation.setInfoid(id);
            List<ServiceMedicalevaluation> serviceMedicalevaluations = serviceMedicalevaluationService.queryList(serviceMedicalevaluation);
            if (!CollectionUtils.isEmpty(serviceMedicalevaluations)) {
                medicalevaluation.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceMedicalevaluations.get(0).getCreateTime()));
                medicalevaluation.put("updatetime", serviceMedicalevaluations.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceMedicalevaluations.get(0).getUpdateTime()) : null);
                medicalevaluation.put("process", "");
            }
        }
        //封装医学评估返回数据
        map.put("medicalevaluation", medicalevaluation);
        //封装捐献确认
        Map<String, String> relativesconfirmation = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 2) {
            ServiceRelativesconfirmation serviceRelativesconfirmation = new ServiceRelativesconfirmation();
            serviceRelativesconfirmation.setInfoid(id);
            List<ServiceRelativesconfirmation> serviceRelativesconfirmations = serviceRelativesconfirmationService.queryList(serviceRelativesconfirmation);
            if (!CollectionUtils.isEmpty(serviceRelativesconfirmations)) {
                relativesconfirmation.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceRelativesconfirmations.get(0).getCreateTime()));
                relativesconfirmation.put("updatetime", serviceRelativesconfirmations.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceRelativesconfirmations.get(0).getUpdateTime()) : "");
                relativesconfirmation.put("process", "");
            }
        }
        //封装捐献确认返回数据
        map.put("relativesconfirmation", relativesconfirmation);
        //封装伦理审查
        Map<String, String> donateflowcharts = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 3) {
            ServiceDonateflowchart serviceDonateflowchart = new ServiceDonateflowchart();
            serviceDonateflowchart.setInfoid(id);
            List<ServiceDonateflowchart> serviceDonateflowcharts = iServiceDonateflowchartService.queryList(serviceDonateflowchart);
            if (!CollectionUtils.isEmpty(serviceDonateflowcharts)) {
                donateflowcharts.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateflowcharts.get(0).getCreateTime()));
                donateflowcharts.put("updatetime", serviceDonateflowcharts.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateflowcharts.get(0).getUpdateTime()) : "");
                donateflowcharts.put("process", "");
            }
        }
        //封装伦理审查返回数据
        map.put("donateflowcharts", donateflowcharts);
        //封装器官分配
        Map<String, String> donateorgansService = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 4) {
            ServiceDonateorgan serviceDonateorgan = new ServiceDonateorgan();
            serviceDonateorgan.setInfoid(id);
            List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganService.queryList(serviceDonateorgan);
            if (!CollectionUtils.isEmpty(serviceDonateorgans)) {
                donateorgansService.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateorgans.get(0).getCreateTime()));
                donateorgansService.put("updatetime", serviceDonateorgans.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonateorgans.get(0).getUpdateTime()) : "");
                donateorgansService.put("process", "");
            }
        }
        //封装器官分配返回数据
        map.put("donateorgansService", donateorgansService);
        //封装获取见证
        Map<String, String> donationwitness = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 5) {
            ServiceDonationwitness serviceDonationwitness = serviceDonationwitnessService.getByInfoId(id);
            if (!ObjectUtils.isEmpty(serviceDonationwitness)) {
                donationwitness.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonationwitness.getCreateTime()));
                donationwitness.put("updatetime", serviceDonationwitness.getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonationwitness.getUpdateTime()) : "");
                donationwitness.put("process", "");
            }
        }
        //封装获取见证返回数据
        map.put("donationwitness", donationwitness);
        //封装完成登记
        Map<String, String> donatecompletioninfo = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 6) {
            ServiceDonatecompletioninfo serviceDonatecompletioninfo = new ServiceDonatecompletioninfo();
            serviceDonatecompletioninfo.setInfoid(id);
            List<ServiceDonatecompletioninfo> serviceDonatecompletioninfos = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo);
            if (!CollectionUtils.isEmpty(serviceDonatecompletioninfos)) {
                donatecompletioninfo.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatecompletioninfos.get(0).getCreateTime()));
                donatecompletioninfo.put("updatetime", serviceDonatecompletioninfos.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDonatecompletioninfos.get(0).getUpdateTime()) : "");
                donatecompletioninfo.put("process", "");
            }
        }
        //封装完成登记返回数据
        map.put("donatecompletioninfo", donatecompletioninfo);
        //将数据封闭,并返回
        return map;
    }
}