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.service.BasicExperimentSiteService; import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndSite; import com.gkhy.labRiskManage.domain.experiment.repository.jpa.ExperimentAndSiteRepository; import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAndSiteService; 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 ExperimentAndSiteServiceImpl implements ExperimentAndSiteService { @Autowired private BasicExperimentSiteService basicExperimentSiteService; @Autowired private ExperimentAndSiteRepository repository; @Override public boolean saveBatch(Long currentUserId, List siteIds, Long experimentId) { boolean flag = false; if(CollectionUtils.isEmpty(siteIds)){ 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 basicExperimentSiteByIdList = basicExperimentSiteService.getBasicExperimentSiteByIdList(siteIds); for(Long siteId : siteIds){ List collect = basicExperimentSiteByIdList.stream().filter(site -> site.getId().equals(siteId)).collect(Collectors.toList()); if(collect.size() == 0){ throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_DATA_NOT_EXISIST.getCode(),"实验场所信息不存在!"); } } List siteList = new ArrayList<>(); for(Long siteId : siteIds){ ExperimentAndSite experimentAndSite = new ExperimentAndSite(); experimentAndSite.setExperimentId(experimentId); experimentAndSite.setSiteId(siteId); experimentAndSite.setDeleteStatus(StatusEnum.DELETE_NOT.getCode().byteValue()); siteList.add(experimentAndSite); } List experimentAndSiteList = repository.saveAll(siteList); if(!CollectionUtils.isEmpty(experimentAndSiteList)){ 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 experimentAndSiteList = repository.getByExperimentId(id); return experimentAndSiteList; } }