liusheng
2026-03-13 2359f47c2f89a9867e72aa9b171cb118b874afec
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceMedicalevaluationServiceImpl.java
@@ -8,11 +8,13 @@
import com.ruoyi.common.core.domain.entity.SysUser;
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;
@@ -58,10 +60,11 @@
        if (StringUtils.isNotNull(serviceMedicalevaluation.getInfoid())) {
            wrappers.eq(ServiceMedicalevaluation::getInfoid, serviceMedicalevaluation.getInfoid());
        }
        if (StringUtils.isNotNull(serviceMedicalevaluation.getFirstAssessState())) {
            wrappers.eq(ServiceMedicalevaluation::getFirstAssessState, serviceMedicalevaluation.getFirstAssessState());
        }  if (StringUtils.isNotNull(serviceMedicalevaluation.getSecondAssessState())) {
            wrappers.eq(ServiceMedicalevaluation::getSecondAssessState, serviceMedicalevaluation.getSecondAssessState());
        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());
@@ -70,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
@@ -93,7 +141,7 @@
    }
    @Override
    public List<MedicalevaluationBaseInfoDTO> evaluateBaseInfolist(MedicalEvaluationWithBaseInfoVO medicalEvaluationWithBaseInfoVO) {
    public List<MedicalevaluationBaseInfoDTO> medevaluateBaseInfolist(MedicalEvaluationWithBaseInfoVO medicalEvaluationWithBaseInfoVO) {
        List<MedicalevaluationBaseInfoDTO> medicalevaluationBaseInfoDTOS = serviceMedicalevaluationMapper.selectEvaluateBaseInfoList(medicalEvaluationWithBaseInfoVO);
        //判断pgaeNun是为了让查询total不再查询serviceMedicalevaluationorgan
@@ -102,8 +150,11 @@
                ServiceMedicalevaluationorgan serviceMedicalevaluationorgan = new ServiceMedicalevaluationorgan();
                serviceMedicalevaluationorgan.setInfoid(medicalevaluationBaseInfoDTO.getInfoid());
                List<ServiceMedicalevaluationorgan> serviceMedicalevaluationorgans = serviceMedicalevaluationorganMapper.selectServiceMedicalevaluationorganList(serviceMedicalevaluationorgan);
                if (CollectionUtils.isNotEmpty(serviceMedicalevaluationorgans))
                    medicalevaluationBaseInfoDTO.setServiceMedicalevaluationorgan(serviceMedicalevaluationorgans.get(0));
                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;