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<ServiceDonatebaseinfoReportMapper, ServiceDonatebaseinfoReport> implements IServiceDonatebaseinfoReportService {
|
@Autowired
|
private IServiceDonatebaseinfoReportFileService serviceDonatebaseinfoReportFileService;
|
@Autowired
|
private IServiceTransportService serviceTransportService;
|
|
@Autowired
|
private ServiceDonatebaseinfoReportMapper serviceDonatebaseinfoReportMapper;
|
|
/**
|
* 查询捐献上报基础列表
|
*
|
* @param serviceDonatebaseinfoReport 捐献上报基础
|
* @return 捐献上报基础
|
*/
|
@Override
|
public Page<ServiceDonatebaseinfoReport> queryList(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) {
|
LambdaQueryWrapper<ServiceDonatebaseinfoReport> 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<ServiceDonatebaseinfoReport> page = new Page<>(currentPage, size);
|
|
List<ServiceDonatebaseinfoReport> 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<ServiceDonatebaseinfoReportFile> serviceDonatebaseinfoReportFiles = serviceDonatebaseinfoReportFileService.queryList(serviceDonatebaseinfoReportFile);
|
serviceDonatebaseinfoReport1.setAnnexfilesList(serviceDonatebaseinfoReportFiles);
|
|
//查询转运信息
|
ServiceTransport serviceTransport = new ServiceTransport();
|
serviceTransport.setCaseNo(serviceDonatebaseinfoReport1.getCaseNo());
|
serviceTransport.setReportId(serviceDonatebaseinfoReport1.getId());
|
serviceTransport.setDelFlag(0);
|
List<ServiceTransport> serviceTransports = serviceTransportService.queryListData(serviceTransport);
|
serviceDonatebaseinfoReport1.setServiceTransport(serviceTransports);
|
|
// //计算年龄
|
// if (serviceDonatebaseinfoReport1.getBirthday() != null) {
|
// Map<String, String> 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<String, Object> getTotal(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport, String type) {
|
Map<String, Object> map = new HashMap<>();
|
Integer all = 0;
|
if (StringUtils.isNotEmpty(type)) {
|
List<String> list = Arrays.asList(type.split(","));
|
for (String status : list) {
|
serviceDonatebaseinfoReport.setReportStatus(status);
|
serviceDonatebaseinfoReport.setDelFlag(0);
|
List<ServiceDonatebaseinfoReport> list1 = this.list(getWrapper(serviceDonatebaseinfoReport));
|
//单个状态的总数
|
map.put(status, list1.size());
|
all += list1.size();
|
}
|
}
|
//所有状态的总数
|
map.put("all", all);
|
return map;
|
}
|
|
private LambdaQueryWrapper<ServiceDonatebaseinfoReport> getWrapper(ServiceDonatebaseinfoReport serviceDonatebaseinfoReport) {
|
LambdaQueryWrapper<ServiceDonatebaseinfoReport> 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;
|
}
|
|
}
|