liusheng
2026-03-13 2359f47c2f89a9867e72aa9b171cb118b874afec
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
@@ -1,26 +1,29 @@
package com.ruoyi.project.service.impl;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.project.domain.ServiceMedicalevaluationorgan;
import com.ruoyi.project.domain.dto.MedicalevaluationBaseInfoDTO;
import com.ruoyi.project.domain.ServiceMedicalevaluation;
import com.ruoyi.project.domain.vo.MedicalEvaluationVO;
import com.ruoyi.project.domain.vo.MedicalEvaluationWithBaseInfoVO;
import com.ruoyi.project.domain.vo.ServiceMedicalevaluationVO;
import com.ruoyi.project.mapper.ServiceDonatebaseinfoMapper;
import com.ruoyi.project.mapper.ServiceMedicalevaluationMapper;
import com.ruoyi.project.mapper.ServiceMedicalevaluationorganMapper;
import com.ruoyi.project.service.IServiceMedicalevaluationService;
import lombok.extern.slf4j.Slf4j;
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.mapper.ServiceMedicalevaluationMapper;
import com.ruoyi.project.domain.ServiceMedicalevaluation;
import com.ruoyi.project.service.IServiceMedicalevaluationService;
import java.util.List;
/**
 * 医学评估Service业务层处理
@@ -34,6 +37,12 @@
    @Autowired
    ServiceMedicalevaluationMapper serviceMedicalevaluationMapper;
    @Autowired
    ServiceMedicalevaluationorganMapper serviceMedicalevaluationorganMapper;
    @Autowired
    ServiceDonatebaseinfoMapper serviceDonatebaseinfoMapper;
    /**
@@ -54,6 +63,9 @@
        if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessState())) {
            wrappers.eq(ServiceMedicalevaluation::getAssessState, serviceMedicalevaluation.getAssessState());
        }
        if (StringUtils.isNotNull(serviceMedicalevaluation.getAssessTime())) {
            wrappers.eq(ServiceMedicalevaluation::getAssessTime, serviceMedicalevaluation.getAssessTime());
        }
        if (StringUtils.isNotBlank(serviceMedicalevaluation.getDonorno())) {
            wrappers.eq(ServiceMedicalevaluation::getDonorno, serviceMedicalevaluation.getDonorno());
        }
@@ -61,6 +73,51 @@
            wrappers.eq(ServiceMedicalevaluation::getCaseNo, serviceMedicalevaluation.getCaseNo());
        }
        return this.list(wrappers);
    }
    @Override
    public Boolean add(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
        ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
        boolean save = save(serviceMedicalevaluation);
        if (save && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
                serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
                serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
                serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
            }
        }
        return save;
    }
    @Override
    public Boolean edit(ServiceMedicalevaluationVO serviceMedicalevaluationVO) {
        ServiceMedicalevaluation serviceMedicalevaluation = DtoConversionUtils.sourceToTarget(serviceMedicalevaluationVO, ServiceMedicalevaluation.class);
        boolean update = false;
        if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
            update = removeById(serviceMedicalevaluation);
        } else {
            update = updateById(serviceMedicalevaluation);
        }
        if (update && CollectionUtils.isNotEmpty(serviceMedicalevaluationVO.getServiceMedicalevaluationorganList())) {
            for (ServiceMedicalevaluationorgan serviceMedicalevaluationorgan : serviceMedicalevaluationVO.getServiceMedicalevaluationorganList()) {
                // 如果父节点被删除,子节点也要全删除
                if (serviceMedicalevaluation.getDelFlag() != null && serviceMedicalevaluation.getDelFlag() == 1) {
                    serviceMedicalevaluationorgan.setDelFlag(1);
                }
                if (serviceMedicalevaluationorgan.getDelFlag() != null && serviceMedicalevaluationorgan.getDelFlag() == 1) {
                    serviceMedicalevaluationorganMapper.deleteById(serviceMedicalevaluationorgan.getId());
                } else {
                    serviceMedicalevaluationorganMapper.updateById(serviceMedicalevaluationorgan);
                }
                if (serviceMedicalevaluationorgan.getId() == null) {
                    serviceMedicalevaluationorgan.setInfoid(serviceMedicalevaluation.getInfoid());
                    serviceMedicalevaluationorgan.setMedicalId(serviceMedicalevaluation.getId());
                    serviceMedicalevaluationorganMapper.insert(serviceMedicalevaluationorgan);
                }
            }
        }
        return update;
    }
    @Override
@@ -84,9 +141,23 @@
    }
    @Override
    public List<ServiceMedicalevaluation> selectServiceMedicalevaluationList(ServiceMedicalevaluation serviceMedicalevaluation) {
    public List<MedicalevaluationBaseInfoDTO> medevaluateBaseInfolist(MedicalEvaluationWithBaseInfoVO medicalEvaluationWithBaseInfoVO) {
        List<MedicalevaluationBaseInfoDTO> medicalevaluationBaseInfoDTOS = serviceMedicalevaluationMapper.selectEvaluateBaseInfoList(medicalEvaluationWithBaseInfoVO);
        return serviceMedicalevaluationMapper.selectServiceMedicalevaluationList(serviceMedicalevaluation);
        //判断pgaeNun是为了让查询total不再查询serviceMedicalevaluationorgan
        if (medicalEvaluationWithBaseInfoVO.getPageNum() != null) {
            for (MedicalevaluationBaseInfoDTO medicalevaluationBaseInfoDTO : medicalevaluationBaseInfoDTOS) {
                ServiceMedicalevaluationorgan serviceMedicalevaluationorgan = new ServiceMedicalevaluationorgan();
                serviceMedicalevaluationorgan.setInfoid(medicalevaluationBaseInfoDTO.getInfoid());
                List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorgans = serviceMedicalevaluationorganMapper.selectServiceMedicalevaluationorganList(serviceMedicalevaluationorgan);
                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans)) {
                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorganList(serviceMedicalevaluationorgans);
                    String organdecision = serviceMedicalevaluationorgans.stream().map(ServiceMedicalevaluationorgan::getOrganno).filter(org.springframework.util.StringUtils::hasText).collect(java.util.stream.Collectors.joining(","));
                    medicalevaluationBaseInfoDTO.setOrgandecision(organdecision);
                }
            }
        }
        return medicalevaluationBaseInfoDTOS;
    }
}