zhanghua
2023-03-18 87a395a6024278594a0a80d25a24ba4ca5993513
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
package com.ycl.utils.listener;
 
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ycl.dto.UmsDepartDto;
import com.ycl.entity.depart.UmsDepart;
import com.ycl.mapper.depart.UmsDepartMapper;
import com.ycl.mapper.dict.DataDictionaryMapper;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.Objects;
 
@Component
public class DepartListener implements ReadListener<UmsDepartDto> {
 
    @Resource
    private UmsDepartMapper sccgDepartMapper;
 
    @Resource
    DataDictionaryMapper dataDictionaryMapper;
 
 
    @Override
    public void invoke(UmsDepartDto umsDepartDto, AnalysisContext analysisContext) {
        //  不能重复插入
        String departTypeName = umsDepartDto.getDepartTypeName();
        UmsDepart one = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, departTypeName));
        if (Objects.nonNull(one)){
            throw new RuntimeException("该部门已经存在");
        }
 
        UmsDepart umsDepart = new UmsDepart();
 
        //  设置部门名字
        umsDepart.setDepartName(umsDepart.getDepartName());
 
        //  设置部门描述
        umsDepart.setDepartDes(umsDepartDto.getDepartDes());
 
        //  设置部门类型
//        LambdaQueryWrapper<DataDictionary> dataDictionaryLambdaQueryWrapper = new LambdaQueryWrapper<DataDictionary>(DataDictionary::getName, umsDepartDto.getDepartTypeName());
////        DataDictionary dataDictionary = dataDictionaryMapper.selectOne(new LambdaQueryWrapper(DataDictionary));
////        sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>(UmsDepart::getDepartType))
////        umsDepart.setDepartType(umsDepartDto.getDepartType());
 
        //  设置父id
        UmsDepart two = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, umsDepartDto.getParentDepartName()));
        if (Objects.nonNull(two)){
            umsDepart.setParentId(two.getParentId());
        }
 
        int insert = sccgDepartMapper.insert(umsDepart);
        if (insert < 1){
            throw new RuntimeException("插入失败");
        }
 
    }
 
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
 
    }
}