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

---
 ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java |   97 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 91 insertions(+), 6 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java b/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
index fa325a3..fc838c5 100644
--- a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
+++ b/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
@@ -1,14 +1,26 @@
 package com.ycl.controller.user;
 
 import cn.hutool.core.collection.CollUtil;
+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.ycl.annotation.LogSave;
 import com.ycl.api.CommonResult;
 import com.ycl.bo.AdminUserDetails;
 import com.ycl.controller.BaseController;
 import com.ycl.dto.*;
+import com.ycl.dto.user.UmsAdminParamDto;
+import com.ycl.dto.user.UmsUserDto1;
+import com.ycl.entity.depart.UmsDepart;
+import com.ycl.entity.dict.DataDictionary;
 import com.ycl.entity.user.UmsAdmin;
 import com.ycl.entity.user.UmsRole;
+import com.ycl.mapper.depart.UmsDepartMapper;
+import com.ycl.mapper.dict.DataDictionaryMapper;
+import com.ycl.mapper.user.UmsAdminMapper;
+import com.ycl.mapper.user.UmsRoleMapper;
 import com.ycl.service.redis.RedisService;
 import com.ycl.service.user.UmsAdminService;
 import com.ycl.service.user.UmsMenuService;
@@ -32,9 +44,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.security.Principal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -138,15 +148,90 @@
     @ApiOperation("鐢ㄦ埛瀵煎嚭")
     @PostMapping("/export")
     public void exportUser(HttpServletResponse response) {
-        List<UmsUserDto> umsUserDtos = adminService.userExp();
+        List<UmsUserDto1> umsUserDtos = adminService.userExp();
         String sheetName = "鐢ㄦ埛瀵煎嚭";
-        EasyExcelUtils.export(response, sheetName, UmsUserDto.class, umsUserDtos);
+        EasyExcelUtils.export(response, sheetName, UmsUserDto1.class, umsUserDtos);
     }
 
+    @Resource
+    private UmsRoleMapper umsRoleMapper;
+    @Resource
+    private UmsAdminMapper umsAdminMapper;
+    @Resource
+    private DataDictionaryMapper dataDictionaryMapper;
+    @Resource
+    private UmsDepartMapper umsDepartMapper;
     @ApiOperation("鐢ㄦ埛瀵煎叆")
     @PostMapping("/import")
     public CommonResult importUser(MultipartFile file) throws IOException {
-        EasyExcelUtils.importDepartFile(file);
+        EasyExcel.read(file.getInputStream())
+                .head(UmsAdminParamDto.class)
+                .registerReadListener(new ReadListener<UmsAdminParamDto>() {
+                    @Override
+                    public void invoke(UmsAdminParamDto item, AnalysisContext analysisContext) {
+                        UmsAdminParam param = new UmsAdminParam();
+                        param.setUsername(item.getUsername());
+                        param.setPassword(item.getPassword());
+                        param.setNickName(item.getNickName());
+
+                        String sex = item.getSex();
+                        if (sex.equals("鐢�")){
+                            param.setSex((byte) 1);
+                        } else if (sex.equals("濂�")) {
+                            param.setSex((byte) 0);
+                        }else {
+                            throw new RuntimeException("鎬у埆杈撳叆鏈夎");
+                        }
+
+                        String isDy = item.getIsDy();
+                        if (isDy.equals("鏄�")){
+                            param.setSex((byte) 1);
+                        } else if (isDy.equals("鍚�")) {
+                            param.setSex((byte) 0);
+                        }else {
+                            throw new RuntimeException("鍏氬憳杈撳叆鏈夎");
+                        }
+
+                        param.setMobile(item.getMobile());
+                        param.setEmail(item.getEmail());
+
+                        String role = item.getRole();
+                        UmsRole umsRole = umsRoleMapper.selectOne(new LambdaQueryWrapper<UmsRole>().eq(UmsRole::getName, role));
+                        if (Objects.isNull(umsRole)){
+                            param.setRoleIds(null);
+                        }else {
+                            List list = new ArrayList<>();
+                            list.add(umsRole.getId());
+                            param.setRoleIds(list);
+                        }
+
+                        String userType = item.getUserType();
+                        DataDictionary dataDictionary = dataDictionaryMapper.selectOne(new LambdaQueryWrapper<DataDictionary>().eq(DataDictionary::getName, userType));
+                        if (Objects.isNull(dataDictionary)){
+                            throw new RuntimeException("鐢ㄦ埛绫诲瀷涓嶅瓨鍦�");
+                        }else {
+                            param.setUserType(dataDictionary.getId().intValue());
+                        }
+
+                        String department = item.getDepartment();
+                        UmsDepart umsDepart = umsDepartMapper.selectOne(new LambdaQueryWrapper<UmsDepart>().eq(UmsDepart::getDepartName, department));
+                        if (Objects.isNull(umsDepart)){
+                            throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
+                        }else {
+                            param.setDepartmentId(umsDepart.getId());
+                        }
+
+                        param.setJobTitle(item.getJobTitle());
+
+                        adminService.importExcl(param);
+
+                    }
+
+                    @Override
+                    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+                    }
+                }).sheet().doRead();
         return CommonResult.success(true, "瀵煎叆鎴愬姛");
     }
 

--
Gitblit v1.8.0