package com.ruoyi.service.impl; import java.util.ArrayList; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.domain.Sample; import com.ruoyi.domain.vo.SampleTaskVo; import com.ruoyi.mapper.SampleManagementMapper; import com.ruoyi.mapper.TaskSampleRelationMapper; import com.ruoyi.service.SampleManagementService; import com.ruoyi.web.request.SampleManagementRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * 样品管理Service业务层处理 * * @author ruoyi * @date 2024-01-29 */ @Service @Transactional public class SampleManagementServiceImpl extends ServiceImpl<SampleManagementMapper, Sample> implements SampleManagementService { @Autowired private SampleManagementMapper sampleManagementMapper; @Autowired private TaskSampleRelationMapper taskSampleRelationMapper; /** * 查询样品管理 * * @param id 样品管理主键 * @return 样品管理 */ @Override public Sample selectSampleManagementById(Long id) { return sampleManagementMapper.selectSampleManagementById(id); } /** * 查询样品管理列表 * * @param sampleManagementRequest 样品管理 * @return 样品管理 */ @Override public List<Sample> selectSampleManagementList(SampleManagementRequest sampleManagementRequest) { List<Sample> list = sampleManagementMapper.selectSampleManagementList(sampleManagementRequest); if(list.size()>0){ setSampleTask(list); } return list; } /** * 新增样品管理 * * @param sampleManagement 样品管理 * @return 结果 */ @Override public int insertSampleManagement(Sample sampleManagement) { // 判断车辆识别码是否重复 int dentificationCode = sampleManagementMapper.selectIdentificationCodeCount(sampleManagement); if(dentificationCode>0){ throw new ServiceException("车辆识别码已存在"); } // 判断样品编号是否存在 int sampleNumber = sampleManagementMapper.selectSampleNumberCount(sampleManagement); if(sampleNumber>0){ throw new ServiceException("样品编号已存在"); } sampleManagement.setCreateBy(String.valueOf(SecurityUtils.getUserId())); sampleManagement.setCreateTime(DateUtils.getNowDate()); return sampleManagementMapper.insertSampleManagement(sampleManagement); } /** * 修改样品管理 * * @param sampleManagement 样品管理 * @return 结果 */ @Override public int updateSampleManagement(Sample sampleManagement) { // 判断车辆识别码是否重复 int dentificationCode = sampleManagementMapper.selectIdentificationCodeCount(sampleManagement); if(dentificationCode>0){ throw new ServiceException("车辆识别码已存在"); } // 判断样品编号是否存在 int sampleNumber = sampleManagementMapper.selectSampleNumberCount(sampleManagement); if(sampleNumber>0){ throw new ServiceException("样品编号已存在"); } sampleManagement.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); sampleManagement.setUpdateTime(DateUtils.getNowDate()); return sampleManagementMapper.updateSampleManagement(sampleManagement); } /** * 根据车辆识别码和样品编号查询样品信息 * */ @Override public List<Sample> selectSampleList(SampleManagementRequest sampleManagementRequest){ return sampleManagementMapper.selectSampleList(sampleManagementRequest); } /** * 给样品的数据赋值任务集合*/ public void setSampleTask(List<Sample> sampleList){ List<Long> listId = new ArrayList<>(); for(Sample sample : sampleList){ listId.add(sample.getId()); } List<SampleTaskVo> sampleTaskVoList = taskSampleRelationMapper.selectTaskBysampleId(listId); for(Sample sample : sampleList){ List<SampleTaskVo> sampleTaskVos = new ArrayList<>(); for (SampleTaskVo sampleTaskVo : sampleTaskVoList){ if(sampleTaskVo.getSampleId().equals(sample.getId())){ sampleTaskVos.add(sampleTaskVo); } } sample.setTaskSampleRelation(sampleTaskVos); } } }