From ec76c5defdd8018ce4efcc8795508498a84de4b7 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 09 四月 2024 19:09:33 +0800
Subject: [PATCH] 平台历史数据 导入导出接口

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/lisenter/DeptImportListener.java |   45 ++++++++++++++++++++++++++++++---------------
 1 files changed, 30 insertions(+), 15 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/lisenter/DeptImportListener.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/lisenter/DeptImportListener.java
index 61e7071..4e40fb3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/lisenter/DeptImportListener.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/lisenter/DeptImportListener.java
@@ -13,9 +13,8 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.web.controller.excel.DeptExcel;
-import lombok.extern.slf4j.Slf4j;
-
 import java.util.List;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @author mitao
@@ -23,6 +22,7 @@
  */
 @Slf4j
 public class DeptImportListener implements ReadListener<DeptExcel> {
+
     /**
      * 每隔5条存储数据库,实际使用中可以100条,然后清理list ,方便内存回收
      */
@@ -46,22 +46,35 @@
     public void invoke(DeptExcel data, AnalysisContext context) {
         log.info("解析到一条数据:{}", JSON.toJSONString(data));
         if (StringUtils.isEmpty(data.getAreaName()) || StringUtils.isEmpty(data.getAreaCode()) ||
-                StringUtils.isEmpty(data.getAreaLevel()) || StringUtils.isNull(data.getCountyFlag()) ||
-                StringUtils.isEmpty(data.getPersonInCharge()) || StringUtils.isEmpty(data.getUserName()) ||
-                StringUtils.isEmpty(data.getPhoneNumber()) || StringUtils.isEmpty(data.getPassword())) {
-            throw new ServiceException(String.format("数据校验失败,请检查第%d行内容填写是否完整", cachedDataList.size()+1));
+                StringUtils.isEmpty(data.getAreaLevel()) || StringUtils.isNull(data.getCountyFlag())
+                ||
+                StringUtils.isEmpty(data.getPersonInCharge()) || StringUtils.isEmpty(
+                data.getUserName()) ||
+                StringUtils.isEmpty(data.getPhoneNumber()) || StringUtils.isEmpty(
+                data.getPassword())) {
+            throw new ServiceException(String.format("数据校验失败,请检查第%d行内容填写是否完整",
+                    cachedDataList.size() + 1));
         }
-        boolean flag = sysUserService.lambdaQuery().eq(SysUser::getUserType,UserTypeEnum.PLATFORM.getCode()).eq(SysUser::getUserName, data.getUserName()).oneOpt().isPresent();
+        boolean flag = sysUserService.lambdaQuery()
+                .eq(SysUser::getUserType, UserTypeEnum.PLATFORM.getCode())
+                .eq(SysUser::getUserName, data.getUserName()).oneOpt().isPresent();
         if (flag) {
-            throw new ServiceException(String.format("数据校验失败,第%d行的登录账号:%s已存在", cachedDataList.size()+1,data.getUserName()));
+            throw new ServiceException(String.format("数据校验失败,第%d行的登录账号:%s已存在",
+                    cachedDataList.size() + 1, data.getUserName()));
         }
-        flag = cachedDataList.stream().anyMatch(item -> item.getAreaCode().equals(data.getAreaCode()));
+        flag = cachedDataList.stream()
+                .anyMatch(item -> item.getAreaCode().equals(data.getAreaCode()));
         if (flag) {
-            throw new ServiceException(String.format("数据校验失败,第%d行区划代码%s重复", cachedDataList.size()+1,data.getAreaCode()));
+            throw new ServiceException(
+                    String.format("数据校验失败,第%d行区划代码%s重复", cachedDataList.size() + 1,
+                            data.getAreaCode()));
         }
-        flag = cachedDataList.stream().anyMatch(item -> item.getUserName().equals(data.getUserName()));
+        flag = cachedDataList.stream()
+                .anyMatch(item -> item.getUserName().equals(data.getUserName()));
         if (flag) {
-            throw new ServiceException(String.format("数据校验失败,第%d行登录账号%s重复", cachedDataList.size()+1,data.getAreaCode()));
+            throw new ServiceException(
+                    String.format("数据校验失败,第%d行登录账号%s重复", cachedDataList.size() + 1,
+                            data.getAreaCode()));
         }
         cachedDataList.add(data);
         // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
@@ -78,15 +91,17 @@
         log.info("所有数据解析完成!");
         saveData();
     }
+
     private void saveData() {
         log.info("{}条数据,开始存储数据库!", cachedDataList.size());
         List<SysUser> sysUsers = BeanUtils.copyList(cachedDataList, SysUser.class);
-        sysUsers.forEach(item->{
+        sysUsers.forEach(item -> {
             item.setPassword(SecurityUtils.encryptPassword(item.getPassword()));
             item.setNickName(item.getAreaName());
-            item.setUserType("2");
+            item.setUserType(UserTypeEnum.DEPARTMENT);
         });
-        sysUserService.remove(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUserType, UserTypeEnum.DEPARTMENT.getCode()));
+        sysUserService.remove(Wrappers.<SysUser>lambdaQuery()
+                .eq(SysUser::getUserType, UserTypeEnum.DEPARTMENT.getCode()));
         sysUserService.saveBatch(sysUsers);
         log.info("{}条数据,导入成功!", cachedDataList.size());
     }

--
Gitblit v1.7.1