李林
2023-10-07 658d4927d468c47208fd012d9128b09249c07eff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
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;
    }
 
}