zss
2023-08-28 13c8b105a7ddf7ac43fbbdea93946f389cd032e9
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package com.yuanchu.mom.service.impl;
 
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.ElementTechnology;
import com.yuanchu.mom.pojo.TechnologyTemplate;
import com.yuanchu.mom.pojo.dto.TechnologyTemplateDto;
import com.yuanchu.mom.service.ElementTechnologyService;
import com.yuanchu.mom.service.TechnologyTemplateService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 
/**
 * 工艺路线维护表(TechnologyTemplate)表服务实现类
 *
 * @author zss
 * @since 2023-08-18 16:59:14
 */
@Service
public class TechnologyTemplateServiceImpl extends ServiceImpl<TechnologyTemplateMapper, TechnologyTemplate> implements TechnologyTemplateService {
 
    @Resource
    TechnologyTemplateMapper technologyTemplateMapper;
 
    @Resource
    DeviceMapper deviceMapper;
 
    @Resource
    ElementMapper elementMapper;
 
    @Resource
    ElementTechnologyService elementTechnologyService;
 
    @Resource
    TechnicalModelMapper technicalModelMapper;
 
 
    //新增工艺路线-->选择设备组
    @Override
    public List<Map<String, Object>> chooseDevGroup() {
        return deviceMapper.chooseDevGroup();
    }
 
    //新增工艺路线-->选择工序
    @Override
    public List<String> chooseTech() {
        return technologyTemplateMapper.chooseTech();
    }
 
    //新增工艺路线-->选择元件
    @Override
    public List<Map<String, Object>> chooseElement() {
        return elementMapper.chooseElement();
    }
 
    //新增工艺路线
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addTechTemp(TechnologyTemplateDto technologyTemplateDto) {
        /*新增工艺*/
        TechnologyTemplate technologyTemplate = new TechnologyTemplate();
        BeanUtils.copyProperties(technologyTemplateDto, technologyTemplate);
        technologyTemplateMapper.insert(technologyTemplate);
        /*新增工艺元件中间表*/
        String[] split = technologyTemplateDto.getElementId().split(",");
        List<ElementTechnology> elementTechnologies = Arrays.stream(split).map(s -> {
            ElementTechnology elementTechnology = new ElementTechnology();
            elementTechnology.setTechTemId(technologyTemplate.getId());
            elementTechnology.setElementId(Integer.parseInt(s));
            return elementTechnology;
        }).collect(Collectors.toList());
        elementTechnologyService.saveBatch(elementTechnologies);
    }
 
    //查询工艺路线列表-->左边二级展示
    @Override
    public List<Map<String, Object>> selectAllTechTem(Integer type, String message) {
        return technologyTemplateMapper.selectAllTechTem(type, message);
    }
 
    //查询工艺路线列表-->右边展示工艺和设备
    @Override
    public List<Map<String, Object>> selectAllTechNam(String father) {
        return technologyTemplateMapper.selectAllTechNam(father);
    }
 
    //根据id查看详情
    @Override
    public List<Map<String, Object>> selecTechById(Integer id) {
        return technologyTemplateMapper.selecTechById(id);
    }
 
    //编辑 (工艺id)
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void writeTechById(Integer id, TechnologyTemplateDto technologyTemplateDto) {
        /*工艺表更新*/
        TechnologyTemplate technologyTemplate = new TechnologyTemplate();
        BeanUtils.copyProperties(technologyTemplateDto, technologyTemplate);
        technologyTemplate.setId(id);
        technologyTemplateMapper.updateById(technologyTemplate);
        /*更改中间表*/
        //批量删除原有的中间表(根据工序id)
        elementTechnologyService.delElemaByTechsId(id);
        //批量添加中间表
        String[] split = technologyTemplateDto.getElementId().split(",");
        List<ElementTechnology> elementTechnologies = Arrays.stream(split).map(s -> {
            ElementTechnology elementTechnology = new ElementTechnology();
            elementTechnology.setTechTemId(technologyTemplate.getId());
            elementTechnology.setElementId(Integer.parseInt(s));
            return elementTechnology;
        }).collect(Collectors.toList());
        elementTechnologyService.saveBatch(elementTechnologies);
    }
 
    //删除(工艺路线id)
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delTechById(Integer id) {
        //删除工艺表
        TechnologyTemplate technologyTemplate = new TechnologyTemplate();
        technologyTemplate.setId(id).setState(0);
        technologyTemplateMapper.updateById(technologyTemplate);
        //删除中间表
        elementTechnologyService.delElemaByTechsId(id);
        //删除技术指标维护表
        technicalModelMapper.delTeMoByTechId(id);
        //todo:删除未完待续
    }
 
    //批量删除
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delAllTech(String ids) {
        //批量删除工艺表
        technologyTemplateMapper.delAllTech(ids);
        //批量删除中间表
        elementTechnologyService.delAllByTechId(ids);
        //批量删除指标维护表
        technicalModelMapper.delAllByTechId(ids);
    }
}