package com.gkhy.labRiskManage.domain.experiment.service.impl; import com.gkhy.labRiskManage.commons.enums.ResultCode; import com.gkhy.labRiskManage.commons.enums.StatusEnum; import com.gkhy.labRiskManage.commons.exception.BusinessException; import com.gkhy.labRiskManage.domain.basic.model.dto.SiteQueryDTO; import com.gkhy.labRiskManage.domain.basic.model.dto.TypeListDTO; import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentDeviceTypeService; import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentSiteService; import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentTypeService; import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndSite; import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndType; import com.gkhy.labRiskManage.domain.experiment.repository.jpa.ExperimentAndSiteRepository; import com.gkhy.labRiskManage.domain.experiment.repository.jpa.ExperimentAndTypeRepository; import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAndTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * @email 1603559716@qq.com * @author: zf * @date: 2023/3/20 * @time: 16:01 */ @Service public class ExperimentAndTypeServiceImpl implements ExperimentAndTypeService { @Autowired private BasicExperimentTypeService basicExperimentTypeService; @Autowired private ExperimentAndTypeRepository repository; @Override public boolean saveBatch(Long currentUserId, List typeIds, Long experimentId) { boolean flag = false; if(CollectionUtils.isEmpty(typeIds)){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"请选择实验类型!"); } if(ObjectUtils.isEmpty(experimentId)){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"实验信息主键不可为空!"); } List basicExperimentTypeByIdList = basicExperimentTypeService.getBasicExperimentTypeByIdList(typeIds); for(Long typeId : typeIds){ List collect = basicExperimentTypeByIdList.stream().filter(site -> site.getId().equals(typeId)).collect(Collectors.toList()); if(collect.size() == 0){ throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_DATA_NOT_EXISIST.getCode(),"实验类型信息不存在!"); } } List typeList = new ArrayList<>(); typeIds.forEach(e ->{ ExperimentAndType experimentAndType = new ExperimentAndType(); experimentAndType.setExperimentId(experimentId); experimentAndType.setTypeId(e); experimentAndType.setDeleteStatus(StatusEnum.DELETE_NOT.getCode().byteValue()); typeList.add(experimentAndType); }); List experimentAndTypeList = repository.saveAll(typeList); if(!CollectionUtils.isEmpty(experimentAndTypeList)){ flag = true; } return flag; } @Override public void deleteByExperimentId(Long id) { if(ObjectUtils.isEmpty(id)){ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"实验主键不可为空!"); } repository.deleteByExperimentId(id); } @Override public List getByExperimentId(Long id) { List experimentAndTypeList = repository.getByExperimentId(id); return experimentAndTypeList; } }