package com.ruoyi.inspect.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.dto.UnqualifiedHandlerDto; import com.ruoyi.inspect.mapper.InsOrderMapper; import com.ruoyi.inspect.mapper.InsUnqualifiedHandlerMapper; import com.ruoyi.inspect.pojo.InsOrder; import com.ruoyi.inspect.pojo.InsUnqualifiedHandler; import com.ruoyi.inspect.pojo.InsUnqualifiedHandlerFile; import com.ruoyi.inspect.service.InsUnqualifiedHandlerFileService; import com.ruoyi.inspect.service.InsUnqualifiedHandlerService; import com.ruoyi.inspect.vo.UnqualifiedHandlerVO; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.List; /** * @author 27233 * @description 针对表【ins_unqualified_handler(不合格处理表)】的数据库操作Service实现 * @createDate 2024-07-31 13:38:14 */ @Service public class InsUnqualifiedHandlerServiceImpl extends ServiceImpl implements InsUnqualifiedHandlerService { @Resource private InsUnqualifiedHandlerFileService insUnqualifiedHandlerFileService; @Resource private InsOrderMapper insOrderMapper; @Override public IPage pageList(Page page, UnqualifiedHandlerDto unqualifiedHandlerDto) { return baseMapper.selectPageList(page, QueryWrappers.queryWrappers(unqualifiedHandlerDto)); } @Override @Transactional(rollbackFor = Exception.class) public boolean addUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) { if (unqualifiedHandlerDto.getInventoryQuantityId() == null) { throw new ErrorException("缺少原材料id"); } long count = this.count(Wrappers.lambdaQuery() .eq(InsUnqualifiedHandler::getInsOrderId, unqualifiedHandlerDto.getInsOrderId())); if (count > 0) { throw new ErrorException("当前检验单已提交过不合格"); } // 原材料编号切割 InsOrder order = insOrderMapper.selectOne(Wrappers.lambdaQuery() .eq(InsOrder::getId, unqualifiedHandlerDto.getInsOrderId()) .select(InsOrder::getEntrustCode)); unqualifiedHandlerDto.setNo(order.getEntrustCode()); this.save(unqualifiedHandlerDto); if (CollectionUtils.isNotEmpty(unqualifiedHandlerDto.getUnqualifiedHandlerFiles())) { for (InsUnqualifiedHandlerFile unqualifiedHandlerFile : unqualifiedHandlerDto.getUnqualifiedHandlerFiles()) { unqualifiedHandlerFile.setUnqualifiedId(unqualifiedHandlerDto.getId()); } insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles()); } return true; } /** * 编辑不合格处理 * @param unqualifiedHandlerDto * @return */ @Override public boolean updateUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) { // 删除附件, 重新添加 insUnqualifiedHandlerFileService.remove(Wrappers.lambdaQuery() .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, unqualifiedHandlerDto.getId())); if (CollectionUtils.isNotEmpty(unqualifiedHandlerDto.getUnqualifiedHandlerFiles())) { for (InsUnqualifiedHandlerFile unqualifiedHandlerFile : unqualifiedHandlerDto.getUnqualifiedHandlerFiles()) { unqualifiedHandlerFile.setUnqualifiedId(unqualifiedHandlerDto.getId()); } insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles()); } return this.updateById(unqualifiedHandlerDto); } /** * 查看不合格处理界面 * @param id * @return */ @Override public UnqualifiedHandlerDto getUnqualifiedHandler(Integer id) { InsUnqualifiedHandler insUnqualifiedHandler = this.getById(id); UnqualifiedHandlerDto unqualifiedHandlerDto = new UnqualifiedHandlerDto(); BeanUtil.copyProperties(insUnqualifiedHandler, unqualifiedHandlerDto); // 查看附件 List list = insUnqualifiedHandlerFileService.list(Wrappers.lambdaQuery() .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, unqualifiedHandlerDto.getId())); unqualifiedHandlerDto.setUnqualifiedHandlerFiles(list); return unqualifiedHandlerDto; } /** * 删除不合格 * @param id * @return */ @Override public boolean deleteUnqualifiedHandler(Integer id) { insUnqualifiedHandlerFileService.remove(Wrappers.lambdaQuery() .eq(InsUnqualifiedHandlerFile::getUnqualifiedId, id)); this.removeById(id); return true; } }