package com.ruoyi.project.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.project.common.CalculateDateUtils; import com.ruoyi.project.domain.ServiceDonatebaseinfoReport; import com.ruoyi.project.domain.ServiceDonatebaseinfoReportFile; import com.ruoyi.project.domain.ServiceTransport; import com.ruoyi.project.mapper.ServiceDonatebaseinfoReportMapper; import com.ruoyi.project.service.IServiceDonatebaseinfoReportFileService; import com.ruoyi.project.service.IServiceDonatebaseinfoReportService; import com.ruoyi.project.service.IServiceTransportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.ZoneId; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 捐献上报基础Service业务层处理 * * @author ruoyi * @date 2025-12-15 */ @Service public class ServiceDonatebaseinfoReportServiceImpl extends ServiceImpl implements IServiceDonatebaseinfoReportService { @Autowired private IServiceDonatebaseinfoReportFileService serviceDonatebaseinfoReportFileService; @Autowired private IServiceTransportService serviceTransportService; @Autowired private ServiceDonatebaseinfoReportMapper serviceDonatebaseinfoReportMapper; /** * 查询捐献上报基础列表 * * @param serviceDonatebaseinfoReport 捐献上报基础 * @return 捐献上报基础 */ @Override public Page queryList(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) { LambdaQueryWrapper wrappers = getWrapper(serviceDonatebaseinfoReport); // 创建分页对象,设置页码和每页大小 int currentPage = (serviceDonatebaseinfoReport.getPageNum() == null || serviceDonatebaseinfoReport.getPageNum() < 1) ? 1 : serviceDonatebaseinfoReport.getPageNum(); int size = (serviceDonatebaseinfoReport.getPageSize() == null || serviceDonatebaseinfoReport.getPageSize() < 1) ? 10 : serviceDonatebaseinfoReport.getPageSize(); Page page = new Page<>(currentPage, size); List serviceDonatebaseinfoReportPage = serviceDonatebaseinfoReportMapper.selectPage(page, wrappers).getRecords(); for (ServiceDonatebaseinfoReport serviceDonatebaseinfoReport1 : serviceDonatebaseinfoReportPage) { ServiceDonatebaseinfoReportFile serviceDonatebaseinfoReportFile = new ServiceDonatebaseinfoReportFile(); serviceDonatebaseinfoReportFile.setDonatebaseinfoReportId(serviceDonatebaseinfoReport1.getId()); serviceDonatebaseinfoReportFile.setCaseNo(serviceDonatebaseinfoReport1.getCaseNo()); serviceDonatebaseinfoReportFile.setDelFlag(0); List serviceDonatebaseinfoReportFiles = serviceDonatebaseinfoReportFileService.queryList(serviceDonatebaseinfoReportFile); serviceDonatebaseinfoReport1.setAnnexfilesList(serviceDonatebaseinfoReportFiles); //查询转运信息 ServiceTransport serviceTransport = new ServiceTransport(); serviceTransport.setCaseNo(serviceDonatebaseinfoReport1.getCaseNo()); serviceTransport.setReportId(serviceDonatebaseinfoReport1.getId()); serviceTransport.setDelFlag(0); List serviceTransports = serviceTransportService.queryListData(serviceTransport); serviceDonatebaseinfoReport1.setServiceTransport(serviceTransports); // //计算年龄 // if (serviceDonatebaseinfoReport1.getBirthday() != null) { // Map map = CalculateDateUtils.calculateAge(serviceDonatebaseinfoReport1.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()); // serviceDonatebaseinfoReport1.setAge(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null); // serviceDonatebaseinfoReport1.setAgeunit(map.get("ageUnit")); // // serviceDonatebaseinfoReport1.setAge2(org.apache.commons.lang3.ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null); // // serviceDonatebaseinfoReport1.setAgeunit2(map.get("ageUnit2")); // } } page.setRecords(serviceDonatebaseinfoReportPage); return page; } @Override public Map getTotal(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport, String type) { Map map = new HashMap<>(); Integer all = 0; if (StringUtils.isNotEmpty(type)) { List list = Arrays.asList(type.split(",")); for (String status : list) { serviceDonatebaseinfoReport.setReportStatus(status); serviceDonatebaseinfoReport.setDelFlag(0); List list1 = this.list(getWrapper(serviceDonatebaseinfoReport)); //单个状态的总数 map.put(status, list1.size()); all += list1.size(); } } //所有状态的总数 map.put("all", all); return map; } private LambdaQueryWrapper getWrapper(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) { LambdaQueryWrapper wrappers = Wrappers.lambdaQuery(); if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getCaseNo())) { wrappers.eq(ServiceDonatebaseinfoReport::getCaseNo, serviceDonatebaseinfoReport.getCaseNo()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getName())) { wrappers.like(ServiceDonatebaseinfoReport::getName, serviceDonatebaseinfoReport.getName()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getSex())) { wrappers.eq(ServiceDonatebaseinfoReport::getSex, serviceDonatebaseinfoReport.getSex()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getReportStatus())) { wrappers.eq(ServiceDonatebaseinfoReport::getReportStatus, serviceDonatebaseinfoReport.getReportStatus()); } if (serviceDonatebaseinfoReport.getIdcardtype() != null) { wrappers.eq(ServiceDonatebaseinfoReport::getIdcardtype, serviceDonatebaseinfoReport.getIdcardtype()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getIdcardno())) { wrappers.eq(ServiceDonatebaseinfoReport::getIdcardno, serviceDonatebaseinfoReport.getIdcardno()); } if (serviceDonatebaseinfoReport.getAge() != null) { wrappers.eq(ServiceDonatebaseinfoReport::getAge, serviceDonatebaseinfoReport.getAge()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getAgeunit())) { wrappers.eq(ServiceDonatebaseinfoReport::getAgeunit, serviceDonatebaseinfoReport.getAgeunit()); } if (serviceDonatebaseinfoReport.getBirthday() != null) { wrappers.eq(ServiceDonatebaseinfoReport::getBirthday, serviceDonatebaseinfoReport.getBirthday()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getPhone())) { wrappers.eq(ServiceDonatebaseinfoReport::getPhone, serviceDonatebaseinfoReport.getPhone()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getNationality())) { wrappers.eq(ServiceDonatebaseinfoReport::getNationality, serviceDonatebaseinfoReport.getNationality()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getNativeplace())) { wrappers.eq(ServiceDonatebaseinfoReport::getNativeplace, serviceDonatebaseinfoReport.getNativeplace()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getNation())) { wrappers.eq(ServiceDonatebaseinfoReport::getNation, serviceDonatebaseinfoReport.getNation()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getOccupation())) { wrappers.eq(ServiceDonatebaseinfoReport::getOccupation, serviceDonatebaseinfoReport.getOccupation()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getEducation())) { wrappers.eq(ServiceDonatebaseinfoReport::getEducation, serviceDonatebaseinfoReport.getEducation()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidenceaddress())) { wrappers.eq(ServiceDonatebaseinfoReport::getResidenceaddress, serviceDonatebaseinfoReport.getResidenceaddress()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidenceprovince())) { wrappers.eq(ServiceDonatebaseinfoReport::getResidenceprovince, serviceDonatebaseinfoReport.getResidenceprovince()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidenceprovincename())) { wrappers.like(ServiceDonatebaseinfoReport::getResidenceprovincename, serviceDonatebaseinfoReport.getResidenceprovincename()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidencetownname())) { wrappers.like(ServiceDonatebaseinfoReport::getResidencetownname, serviceDonatebaseinfoReport.getResidencetownname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidencecommunity())) { wrappers.eq(ServiceDonatebaseinfoReport::getResidencecommunity, serviceDonatebaseinfoReport.getResidencecommunity()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidencecommunityname())) { wrappers.like(ServiceDonatebaseinfoReport::getResidencecommunityname, serviceDonatebaseinfoReport.getResidencecommunityname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidencecountycode())) { wrappers.eq(ServiceDonatebaseinfoReport::getResidencecountycode, serviceDonatebaseinfoReport.getResidencecountycode()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getResidencecountyname())) { wrappers.like(ServiceDonatebaseinfoReport::getResidencecountyname, serviceDonatebaseinfoReport.getResidencecountyname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getRegisteraddress())) { wrappers.eq(ServiceDonatebaseinfoReport::getRegisteraddress, serviceDonatebaseinfoReport.getRegisteraddress()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getRegisterprovince())) { wrappers.eq(ServiceDonatebaseinfoReport::getRegisterprovince, serviceDonatebaseinfoReport.getRegisterprovince()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getRegisterprovincename())) { wrappers.like(ServiceDonatebaseinfoReport::getRegisterprovincename, serviceDonatebaseinfoReport.getRegisterprovincename()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getRegistercityname())) { wrappers.like(ServiceDonatebaseinfoReport::getRegistercityname, serviceDonatebaseinfoReport.getRegistercityname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getRegistertownname())) { wrappers.like(ServiceDonatebaseinfoReport::getRegistertownname, serviceDonatebaseinfoReport.getRegistertownname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getRegistercommunityname())) { wrappers.like(ServiceDonatebaseinfoReport::getRegistercommunityname, serviceDonatebaseinfoReport.getRegistercommunityname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getTreatmenthospitalname())) { wrappers.like(ServiceDonatebaseinfoReport::getTreatmenthospitalname, serviceDonatebaseinfoReport.getTreatmenthospitalname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getTreatmentdeptname())) { wrappers.like(ServiceDonatebaseinfoReport::getTreatmentdeptname, serviceDonatebaseinfoReport.getTreatmentdeptname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getDiagnosisname())) { wrappers.like(ServiceDonatebaseinfoReport::getDiagnosisname, serviceDonatebaseinfoReport.getDiagnosisname()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getInpatientno())) { wrappers.eq(ServiceDonatebaseinfoReport::getInpatientno, serviceDonatebaseinfoReport.getInpatientno()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getIllnessoverview())) { wrappers.eq(ServiceDonatebaseinfoReport::getIllnessoverview, serviceDonatebaseinfoReport.getIllnessoverview()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getInfectious())) { wrappers.eq(ServiceDonatebaseinfoReport::getInfectious, serviceDonatebaseinfoReport.getInfectious()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getInfectiousOther())) { wrappers.eq(ServiceDonatebaseinfoReport::getInfectiousOther, serviceDonatebaseinfoReport.getInfectiousOther()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getPatientstate())) { wrappers.eq(ServiceDonatebaseinfoReport::getPatientstate, serviceDonatebaseinfoReport.getPatientstate()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getReporterno())) { wrappers.eq(ServiceDonatebaseinfoReport::getReporterno, serviceDonatebaseinfoReport.getReporterno()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getReportername())) { wrappers.like(ServiceDonatebaseinfoReport::getReportername, serviceDonatebaseinfoReport.getReportername()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getReporterphone())) { wrappers.eq(ServiceDonatebaseinfoReport::getReporterphone, serviceDonatebaseinfoReport.getReporterphone()); } if (serviceDonatebaseinfoReport.getReporttime() != null) { wrappers.eq(ServiceDonatebaseinfoReport::getReporttime, serviceDonatebaseinfoReport.getReporttime()); } if (serviceDonatebaseinfoReport.getTerminationCase() != null) { wrappers.eq(ServiceDonatebaseinfoReport::getTerminationCase, serviceDonatebaseinfoReport.getTerminationCase()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getUserNo())) { wrappers.eq(ServiceDonatebaseinfoReport::getUserNo, serviceDonatebaseinfoReport.getUserNo()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getUserName())) { wrappers.eq(ServiceDonatebaseinfoReport::getUserName, serviceDonatebaseinfoReport.getUserName()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getDeptNo())) { wrappers.eq(ServiceDonatebaseinfoReport::getDeptNo, serviceDonatebaseinfoReport.getDeptNo()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getDeptName())) { wrappers.eq(ServiceDonatebaseinfoReport::getDeptName, serviceDonatebaseinfoReport.getDeptName()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getIsTransport())) { wrappers.eq(ServiceDonatebaseinfoReport::getIsTransport, serviceDonatebaseinfoReport.getIsTransport()); } if (StringUtils.isNotBlank(serviceDonatebaseinfoReport.getGscScore())) { wrappers.eq(ServiceDonatebaseinfoReport::getGscScore, serviceDonatebaseinfoReport.getGscScore()); } return wrappers; } }