package com.chinaztt.mes.production.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chinaztt.mes.production.dto.ProductOutTemplateDTO; import com.chinaztt.mes.production.entity.ProductOutItems; import com.chinaztt.mes.production.entity.ProductOutTemplate; import com.chinaztt.mes.production.entity.ProductOutWorkstation; import com.chinaztt.mes.production.mapper.ProductOutItemsMapper; import com.chinaztt.mes.production.mapper.ProductOutTemplateMapper; import com.chinaztt.mes.production.mapper.ProductOutWorkstationMapper; import com.chinaztt.mes.production.service.ProductOutTemplateService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * 报工产出模板表 * * @author cxf * @date 2020-11-03 13:22:25 */ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) public class ProductOutTemplateServiceImpl extends ServiceImpl implements ProductOutTemplateService { private ProductOutItemsMapper productOutItemsMapper; private ProductOutWorkstationMapper productOutWorkstationMapper; @Override public boolean saveAll(ProductOutTemplateDTO productOutTemplateDTO) { try { //1.保存主表 baseMapper.insert(productOutTemplateDTO); //2.保存报工项 if (CollectionUtil.isNotEmpty(productOutTemplateDTO.getProductOutItemsList())) { productOutTemplateDTO.getProductOutItemsList().forEach(productOutItems -> { productOutItems.setProductOutTemplateId(productOutTemplateDTO.getId()); productOutItemsMapper.insert(productOutItems); }); } //3.保存适配工作站 if (CollectionUtil.isNotEmpty(productOutTemplateDTO.getProductOutWorkstationList())) { productOutTemplateDTO.getProductOutWorkstationList().forEach(productOutWorkstation -> { productOutWorkstation.setProductOutTemplateId(productOutTemplateDTO.getId()); productOutWorkstationMapper.insert(productOutWorkstation); }); } } catch (Exception e) { throw new RuntimeException("产出汇报模板保存失败"); } return true; } @Override public boolean updateAllById(ProductOutTemplateDTO productOutTemplateDTO) { try { //1.保存主表 baseMapper.updateById(productOutTemplateDTO); //2.删除子表 productOutItemsMapper.delete(Wrappers.query().lambda().eq(ProductOutItems::getProductOutTemplateId, productOutTemplateDTO.getId())); productOutWorkstationMapper.delete(Wrappers.query().lambda().eq(ProductOutWorkstation::getProductOutTemplateId, productOutTemplateDTO.getId())); //3.保存子表 if (CollectionUtil.isNotEmpty(productOutTemplateDTO.getProductOutItemsList())) { productOutTemplateDTO.getProductOutItemsList().forEach(productOutItems -> { productOutItems.setProductOutTemplateId(productOutTemplateDTO.getId()); productOutItemsMapper.insert(productOutItems); }); } if (CollectionUtil.isNotEmpty(productOutTemplateDTO.getProductOutWorkstationList())) { productOutTemplateDTO.getProductOutWorkstationList().forEach(productOutWorkstation -> { productOutWorkstation.setProductOutTemplateId(productOutTemplateDTO.getId()); productOutWorkstationMapper.insert(productOutWorkstation); }); } } catch (Exception e) { throw new RuntimeException("产出汇报模板更新失败"); } return true; } @Override public boolean deleteById(Long id) { try { baseMapper.deleteById(id); productOutItemsMapper.delete(Wrappers.query().lambda().eq(ProductOutItems::getProductOutTemplateId, id)); productOutWorkstationMapper.delete(Wrappers.query().lambda().eq(ProductOutWorkstation::getProductOutTemplateId, id)); } catch (Exception e) { throw new RuntimeException("产出汇报模板删除失败"); } return true; } @Override public ProductOutTemplateDTO getDtoById(Long id) { // 1.查主表 ProductOutTemplateDTO productOutTemplateDTO = baseMapper.getDtoById(id); // 2.查报工项 productOutTemplateDTO.setProductOutItemsList(productOutItemsMapper.getByTemplateId(id)); // 3.查适配工作站 productOutTemplateDTO.setProductOutWorkstationList(productOutWorkstationMapper.getByTemplateId(id)); return productOutTemplateDTO; } }