From c59ca4c858387a73c626cc7cb995ed57fdea69f8 Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期六, 18 三月 2023 13:56:45 +0800
Subject: [PATCH] 用户导入

---
 ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java |    4 +-
 ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java       |   50 ++++++++++++++++++++++++
 ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java            |   13 +++++-
 ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java                     |    1 
 4 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java b/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
index 8485e5f..d2c0283 100644
--- a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
+++ b/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());
+                        }
+                        //  璁剧疆鐖秈d
+                        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, "瀵煎叆鎴愬姛");
     }
 
diff --git a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
index 837d69e..71a2f27 100644
--- a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java
+++ b/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 {
diff --git a/ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java b/ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java
index d479f54..50156d9 100644
--- a/ycl-common/src/main/java/com/ycl/utils/EasyExcelUtils.java
+++ b/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]
diff --git a/ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java b/ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java
index 3313a43..7be3c66 100644
--- a/ycl-common/src/main/java/com/ycl/utils/listener/DepartListener.java
+++ b/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) {

--
Gitblit v1.8.0