baizonghao
2023-03-18 c59ca4c858387a73c626cc7cb995ed57fdea69f8
用户导入
4个文件已修改
68 ■■■■■ 已修改文件
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
@@ -1,6 +1,9 @@
package com.ycl.controller.depart;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,6 +14,9 @@
import com.ycl.controller.BaseController;
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 com.ycl.service.depart.UmsDepartService;
import com.ycl.service.user.UmsDepartManageService;
import com.ycl.utils.EasyExcelUtils;
@@ -28,6 +34,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Objects;
/**
 * <p>
@@ -137,10 +144,51 @@
        EasyExcelUtils.export(response, sheetName, UmsDepartDto.class, umsDepartDtos);
    }
    @Resource
    private UmsDepartMapper sccgDepartMapper;
    @Resource
    private DataDictionaryMapper dataDictionaryMapper;
    @ApiOperation("部门导入")
    @PostMapping("/import")
    public CommonResult importDpt(MultipartFile file) throws IOException {
        EasyExcelUtils.importDepartFile(file);
        EasyExcel.read(file.getInputStream())
                .head(UmsDepartDto.class)
                .registerReadListener(new ReadListener<UmsDepartDto>() {
                    @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(umsDepartDto.getDepartTypeName());
                        //  设置部门描述
                        umsDepart.setDepartDes(umsDepartDto.getDepartDes());
                        //  设置部门类型
                        DataDictionary dataDictionary = dataDictionaryMapper.selectOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, umsDepartDto.getDepartType()));
                        if (Objects.isNull(dataDictionary)){
                            throw new RuntimeException("部门类型不存在");
                        }else {
                            umsDepart.setDepartType(new Long(dataDictionary.getId()).intValue());
                        }
                        //  设置父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) {
                    }
                }).sheet().doRead();
        return CommonResult.success(true, "导入成功");
    }
ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
@@ -148,10 +148,10 @@
                .map(item -> {
                    UmsDepartDto umsDepartDto = new UmsDepartDto();
                    umsDepartDto.setId(item.getId());
                    umsDepartDto.setParentDepartName(item.getDepartName());
                    umsDepartDto.setDepartTypeName(item.getDepartName());
                    String departType = sccgDepartMapper.getDepartType(item.getDepartType());
                    umsDepartDto.setDepartType(departType);
                    UmsDepart umsDepartFather = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, item.getId()));
                    UmsDepart umsDepartFather = sccgDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getId, item.getParentId()));
                    if (Objects.isNull(umsDepartFather)){
                        umsDepartDto.setParentDepartName("");
                    }else {
ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java
@@ -14,7 +14,6 @@
public class EasyExcelUtils {
    /**
     * @Description 导出
     * @Param [response , sheetName sheet名字, className 类名, collection data]
ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java
@@ -8,8 +8,10 @@
import com.ycl.entity.dict.DataDictionary;
import com.ycl.mapper.depart.UmsDepartMapper;
import com.ycl.mapper.dict.DataDictionaryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Objects;
@@ -18,10 +20,17 @@
    @Resource
    private UmsDepartMapper sccgDepartMapper;
    @Resource
    DataDictionaryMapper dataDictionaryMapper;
    private DataDictionaryMapper dataDictionaryMapper;
//    private static DepartListener departListener;
//
//    @PostConstruct
//    public void init(){
//        departListener = this;
//        departListener.sccgDepartMapper = this.sccgDepartMapper;
//        departListener.dataDictionaryMapper = this.dataDictionaryMapper;
//    }
    @Override
    public void invoke(UmsDepartDto umsDepartDto, AnalysisContext analysisContext) {