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.entity.dict.DataDictionary; 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 { @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().eq(UmsDepart::getDepartName, departTypeName)); if (Objects.nonNull(one)){ throw new RuntimeException("该部门已经存在"); } UmsDepart umsDepart = new UmsDepart(); // 设置部门名字 umsDepart.setDepartName(umsDepart.getDepartName()); // 设置部门描述 umsDepart.setDepartDes(umsDepartDto.getDepartDes()); // 设置部门类型 // LambdaQueryWrapper dataDictionaryLambdaQueryWrapper = new LambdaQueryWrapper(DataDictionary::getName, umsDepartDto.getDepartTypeName()); //// DataDictionary dataDictionary = dataDictionaryMapper.selectOne(new LambdaQueryWrapper(DataDictionary)); //// sccgDepartMapper.selectOne(new LambdaQueryWrapper(UmsDepart::getDepartType)) //// umsDepart.setDepartType(umsDepartDto.getDepartType()); // 设置父id UmsDepart two = sccgDepartMapper.selectOne(new LambdaQueryWrapper().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) { } }