ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceDonatebaseinfoServiceImpl.java
@@ -17,8 +17,10 @@
import com.ruoyi.project.common.CalculateDateUtils;
import com.ruoyi.project.domain.*;
import com.ruoyi.project.domain.dto.DonatebaseinfoProgressDTO;
import com.ruoyi.project.domain.entity.ServiceDonatemaintenanceEntity;
import com.ruoyi.project.domain.vo.DonatebaseinfoProgressVO;
import com.ruoyi.project.domain.vo.TimeVO;
import com.ruoyi.project.domain.vo.WorkFlowVO;
import com.ruoyi.project.domain.vo.countByRecordStateVO;
import com.ruoyi.project.mapper.*;
import com.ruoyi.project.service.*;
@@ -84,6 +86,10 @@
    private IServiceDonatecompletioninfoService serviceDonatecompletioninfoService;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    IServiceDonatemaintenanceService serviceDonatemaintenanceService;
    @Autowired
    IServiceDeathinfoService serviceDeathinfoService;
    /**
@@ -95,14 +101,14 @@
    @Override
    public List<ServiceDonatebaseinfo> queryList(ServiceDonatebaseinfo serviceDonatebaseinfo) {
        LambdaQueryWrapper<ServiceDonatebaseinfo> wrappers = Wrappers.lambdaQuery();
        setWrappers( wrappers,serviceDonatebaseinfo);
        setWrappers(wrappers, serviceDonatebaseinfo);
        return this.list(wrappers);
    }
    @Override
    public Page<ServiceDonatebaseinfo> queryListPage(ServiceDonatebaseinfo serviceDonatebaseinfo) {
        LambdaQueryWrapper<ServiceDonatebaseinfo> wrappers = Wrappers.lambdaQuery();
        setWrappers( wrappers,serviceDonatebaseinfo);
        setWrappers(wrappers, serviceDonatebaseinfo);
        // 创建分页对象,设置页码和每页大小
        int currentPage = (serviceDonatebaseinfo.getPageNum() == null || serviceDonatebaseinfo.getPageNum() < 1) ? 1 : serviceDonatebaseinfo.getPageNum();
@@ -110,7 +116,7 @@
        Page<ServiceDonatebaseinfo> page = new Page<>(currentPage, size);
        List<ServiceDonatebaseinfo> serviceDonatemaintenanceList = serviceDonatebaseinfoMapper.selectPage(page, wrappers).getRecords();
        return    page.setRecords(serviceDonatemaintenanceList);
        return page.setRecords(serviceDonatemaintenanceList);
    }
    @Override
@@ -220,32 +226,6 @@
            serviceDonatebaseinfo.setDeptid(user.getDeptId());
        }
        List<ServiceDonatebaseinfo> serviceDonatebaseinfos = serviceDonatebaseinfoMapper.selectServiceDonatebaseinfoList(serviceDonatebaseinfo);
        for (ServiceDonatebaseinfo serviceDonatebaseinfo1 : serviceDonatebaseinfos) {
            //先给个年龄默认值(因为age是数字类型,不能放横杠,所以就所横扛放到单位上)
            serviceDonatebaseinfo1.setAgeunit("-");
            serviceDonatebaseinfo1.setAge(null);
            serviceDonatebaseinfo1.setAge2(null);
            //获取死亡时间,如果获取见证里有死亡时间,则进行计算他的年龄
            ServiceDonationwitness sdw = new ServiceDonationwitness();
            sdw.setInfoid(serviceDonatebaseinfo1.getId());
            List<ServiceDonationwitness> serviceDonationwitnessList = serviceDonationwitnessMapper.selectServiceDonationwitnessList(sdw);
            if (!CollectionUtils.isEmpty(serviceDonationwitnessList) && serviceDonatebaseinfo1.getBirthday() != null) {
                Date deathtime = serviceDonationwitnessList.get(0).getDeathtime();
                if (ObjectUtils.isNotEmpty(deathtime)) {
                    Map<String, String> map = CalculateDateUtils.calculateAge(serviceDonatebaseinfo1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), deathtime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
                    if (Objects.isNull(map)) {
                        log.error("ServiceDonationwitness出生日期:{},ServiceDonationwitness死亡日期:{}", serviceDonatebaseinfo1.getBirthday(), deathtime);
                        continue;
                    }
                    serviceDonatebaseinfo1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
                    serviceDonatebaseinfo1.setAgeunit(map.get("ageUnit"));
                    serviceDonatebaseinfo1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
                    serviceDonatebaseinfo1.setAgeunit2(map.get("ageUnit2"));
                }
            }
        }
        return serviceDonatebaseinfos;
    }
@@ -269,6 +249,7 @@
    /**
     * 捐献进度基本信息
     *
     * @param donatebaseinfoProgressVO
     * @return
     */
@@ -276,6 +257,11 @@
    public List<DonatebaseinfoProgressDTO> donateBaseInfoProgressList(DonatebaseinfoProgressVO donatebaseinfoProgressVO) {
        List<DonatebaseinfoProgressDTO> donatebaseinfoProgressDTOS = serviceDonatebaseinfoMapper.donateBaseInfoProgressList(donatebaseinfoProgressVO);
        return donatebaseinfoProgressDTOS;
    }
    @Override
    public List<Map<String,Object>> totalConfirmationBaseInfo(DonatebaseinfoProgressVO donatebaseinfoProgressVO) {
        return serviceDonatebaseinfoMapper.totalConfirmationBaseInfo(donatebaseinfoProgressVO);
    }
    @Override
@@ -304,11 +290,9 @@
    }
    @Override
    public Map<String, Object> getWorkFlow(Long id) {
    public WorkFlowVO getWorkFlow(Long id) {
        log.info("getWorkFlow的入参ID为:{}", id);
        //用于返回
        Map<String, Object> map = new ConcurrentHashMap<>();
        WorkFlowVO map1=new WorkFlowVO();
        ServiceDonatebaseinfo serviceDonatebaseinfo = getById(id);
        if (ObjectUtils.isEmpty(serviceDonatebaseinfo)) {
@@ -336,12 +320,11 @@
        donatebaseinfo.put("process", "");
        //封装serviceDonateorgan潜在捐献返回数据
        log.info("检查封装潜在捐献返回数据donatebaseinfo的值为:{}", donatebaseinfo);
        map.put("donatebaseinfo", donatebaseinfo);
        map1.setDonatebaseinfo(donatebaseinfo);
        //封装医学评估
        log.info("检查serviceDonatebaseinfo.getWorkflow()的值为:{}", serviceDonatebaseinfo.getWorkflow());
        Map<String, String> medicalevaluation = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 1) {
        //if (serviceDonatebaseinfo.getWorkflow() >= 1) {
            ServiceMedicalevaluation serviceMedicalevaluation = new ServiceMedicalevaluation();
            serviceMedicalevaluation.setInfoid(id);
            List<ServiceMedicalevaluation> serviceMedicalevaluations = serviceMedicalevaluationService.queryList(serviceMedicalevaluation);
@@ -366,14 +349,14 @@
                }
                medicalevaluation.put("process", "");
            }
        }
        //}
        //封装医学评估返回数据
        log.info("检查封装医学评估返回数据medicalevaluation的值为:{}", medicalevaluation);
        map.put("medicalevaluation", medicalevaluation);
        map1.setMedicalevaluation(medicalevaluation);
        //封装捐献确认
        Map<String, String> relativesconfirmation = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 2) {
        //if (serviceDonatebaseinfo.getWorkflow() >= 2) {
            ServiceRelativesconfirmation serviceRelativesconfirmation = new ServiceRelativesconfirmation();
            serviceRelativesconfirmation.setInfoid(id);
            List<ServiceRelativesconfirmation> serviceRelativesconfirmations = serviceRelativesconfirmationService.queryList(serviceRelativesconfirmation);
@@ -398,15 +381,14 @@
                }
                relativesconfirmation.put("process", "");
            }
        }
        //}
        //封装捐献确认返回数据
        log.info("检查封装捐献确认返回数据relativesconfirmation的值为:{}", relativesconfirmation);
        map.put("relativesconfirmation", relativesconfirmation);
        map1.setRelativesconfirmation(relativesconfirmation);
        //封装伦理审查
        Map<String, String> donateflowcharts = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 3) {
        //if (serviceDonatebaseinfo.getWorkflow() >= 3) {
            ServiceEthicalreviewopinions serviceDonateflowchart = new ServiceEthicalreviewopinions();
            serviceDonateflowchart.setInfoid(id);
            List<ServiceEthicalreviewopinions> serviceEthicalreviewopinionsList = iServiceEthicalreviewopinionsService.queryList(serviceDonateflowchart);
@@ -432,14 +414,14 @@
                }
                donateflowcharts.put("process", "");
            }
        }
        //}
        //封装伦理审查返回数据
        log.info("检查封装伦理审查返回数据donateflowcharts的值为:{}", donateflowcharts);
        map.put("donateflowcharts", donateflowcharts);
        map1.setDonateflowcharts(donateflowcharts);
        //封装器官分配
        Map<String, String> donateorgansService = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 4) {
       // if (serviceDonatebaseinfo.getWorkflow() >= 4) {
            ServiceDonateorgan serviceDonateorgan = new ServiceDonateorgan();
            serviceDonateorgan.setInfoid(id);
            List<ServiceDonateorgan> serviceDonateorgans = serviceDonateorganService.queryList(serviceDonateorgan);
@@ -465,14 +447,14 @@
                }
                donateorgansService.put("process", "");
            }
        }
        //}
        log.info("检查封装器官分配返回数据donateorgansService的值为:{}", donateorgansService);
        //封装器官分配返回数据
        map.put("donateorgansService", donateorgansService);
        map1.setDonateorgansService(donateorgansService);
        //封装获取见证
        Map<String, String> donationwitness = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 5) {
        //if (serviceDonatebaseinfo.getWorkflow() >= 5) {
            ServiceDonationwitness serviceDonationwitness = serviceDonationwitnessService.getByInfoId(id);
            log.info("检查serviceDonationwitness的值为:{}", serviceDonationwitness);
            if (!ObjectUtils.isEmpty(serviceDonationwitness)) {
@@ -496,14 +478,14 @@
                donationwitness.put("process", "");
            }
        }
        //}
        log.info("检查封装获取见证返回数据donationwitness的值为:{}", donationwitness);
        //封装获取见证返回数据
        map.put("donationwitness", donationwitness);
        map1.setDonationwitness(donationwitness);
        //封装完成登记
        Map<String, String> donatecompletioninfo = new HashMap<>();
        if (serviceDonatebaseinfo.getWorkflow() >= 6) {
       // if (serviceDonatebaseinfo.getWorkflow() >= 6) {
            ServiceDonatecompletioninfo serviceDonatecompletioninfo = new ServiceDonatecompletioninfo();
            serviceDonatecompletioninfo.setInfoid(id);
            List<ServiceDonatecompletioninfo> serviceDonatecompletioninfos = serviceDonatecompletioninfoService.queryList(serviceDonatecompletioninfo);
@@ -529,17 +511,73 @@
                donatecompletioninfo.put("process", "");
            }
        }
        //}
        log.info("检查封装完成登记返回数据donatecompletioninfo的值为:{}", donatecompletioninfo);
        //封装完成登记返回数据
        map.put("donatecompletioninfo", donatecompletioninfo);
        map1.setDonatecompletioninfo(donatecompletioninfo);
        //供体维护记录
        Map<String, String> donatemaintenance = new HashMap<>();
        ServiceDonatemaintenanceEntity serviceDonatemaintenanceEntity=new ServiceDonatemaintenanceEntity();
        serviceDonatemaintenanceEntity.setInfoid(id);
        List<ServiceDonatemaintenanceEntity> donatemaintenanceEntityList= serviceDonatemaintenanceService.queryList(serviceDonatemaintenanceEntity).getRecords();
        if(donatemaintenanceEntityList.size()>0){
            donatemaintenance.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", donatemaintenanceEntityList.get(0).getCreateTime()));
            donatemaintenance.put("updatetime", donatemaintenanceEntityList.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", donatemaintenanceEntityList.get(0).getUpdateTime()) : "");
            donatemaintenance.put("createperson", null);
            if (StringUtils.isNotBlank(donatemaintenanceEntityList.get(0).getCreateBy())) {
                SysUser sysUser = sysUserMapper.selectUserByUserName(donatemaintenanceEntityList.get(0).getCreateBy());
                if (!ObjectUtils.isEmpty(sysUser)) {
                    donatemaintenance.put("createperson", sysUser.getNickName());
                }
            }
            donatemaintenance.put("updateperson", null);
            if (StringUtils.isNotBlank(donatemaintenanceEntityList.get(0).getUpdateBy())) {
                SysUser sysUser = sysUserMapper.selectUserByUserName(donatemaintenanceEntityList.get(0).getUpdateBy());
                if (!ObjectUtils.isEmpty(sysUser)) {
                    donatemaintenance.put("updateperson", sysUser.getNickName());
                }
            }
            donatemaintenance.put("process", "");
        }
        map1.setDonatemaintenance(donatemaintenance);
        //患者死亡信息
        Map<String, String> deathinfo = new HashMap<>();
        ServiceDeathinfo serviceDeathinfo =new ServiceDeathinfo();
        serviceDeathinfo.setInfoid(id);
        List<ServiceDeathinfo> serviceDeathinfoList= serviceDeathinfoService.queryList(serviceDeathinfo).getRecords();
        if(serviceDeathinfoList.size()>0){
            deathinfo.put("createtime", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", serviceDeathinfoList.get(0).getCreateTime()));
            deathinfo.put("updatetime", serviceDeathinfoList.get(0).getUpdateTime() != null ? DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", donatemaintenanceEntityList.get(0).getUpdateTime()) : "");
            deathinfo.put("createperson", null);
            if (StringUtils.isNotBlank(serviceDeathinfoList.get(0).getCreateBy())) {
                SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDeathinfoList.get(0).getCreateBy());
                if (!ObjectUtils.isEmpty(sysUser)) {
                    deathinfo.put("createperson", sysUser.getNickName());
                }
            }
            deathinfo.put("updateperson", null);
            if (StringUtils.isNotBlank(serviceDeathinfoList.get(0).getUpdateBy())) {
                SysUser sysUser = sysUserMapper.selectUserByUserName(serviceDeathinfoList.get(0).getUpdateBy());
                if (!ObjectUtils.isEmpty(sysUser)) {
                    deathinfo.put("updateperson", sysUser.getNickName());
                }
            }
            deathinfo.put("process", "");
        }
        map1.setDeathinfo(deathinfo);
        //将数据封闭,并返回
        return map;
        return map1;
    }
    private void setWrappers(LambdaQueryWrapper<ServiceDonatebaseinfo> wrappers, ServiceDonatebaseinfo serviceDonatebaseinfo){
    private void setWrappers(LambdaQueryWrapper<ServiceDonatebaseinfo> wrappers, ServiceDonatebaseinfo serviceDonatebaseinfo) {
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getName())) {
            wrappers.like(ServiceDonatebaseinfo::getName, serviceDonatebaseinfo.getName());
        }
@@ -579,6 +617,12 @@
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getGcsScore())) {
            wrappers.eq(ServiceDonatebaseinfo::getGcsScore, serviceDonatebaseinfo.getGcsScore());
        }
        if (StringUtils.isNotBlank(serviceDonatebaseinfo.getExtracontent())) {
            wrappers.eq(ServiceDonatebaseinfo::getExtracontent, serviceDonatebaseinfo.getExtracontent());
        }
        if (serviceDonatebaseinfo.getTerminationType()!=null) {
            wrappers.eq(ServiceDonatebaseinfo::getTerminationType, serviceDonatebaseinfo.getTerminationType());
        }
        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"));