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<ProductOutTemplateMapper, ProductOutTemplate> 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.<ProductOutItems>query().lambda().eq(ProductOutItems::getProductOutTemplateId, productOutTemplateDTO.getId()));
|
productOutWorkstationMapper.delete(Wrappers.<ProductOutWorkstation>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.<ProductOutItems>query().lambda().eq(ProductOutItems::getProductOutTemplateId, id));
|
productOutWorkstationMapper.delete(Wrappers.<ProductOutWorkstation>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;
|
}
|
|
}
|