From 4b5624af301dfbdcf54b65dc55aadde1b6a8efd5 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 24 七月 2024 19:55:24 +0800
Subject: [PATCH] bug修改,查询季度写死“2024年一季度”

---
 finance-admin/src/main/java/com/finance/web/controller/lisenter/DeptImportListener.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/finance-admin/src/main/java/com/finance/web/controller/lisenter/DeptImportListener.java b/finance-admin/src/main/java/com/finance/web/controller/lisenter/DeptImportListener.java
index af08703..96e9dae 100644
--- a/finance-admin/src/main/java/com/finance/web/controller/lisenter/DeptImportListener.java
+++ b/finance-admin/src/main/java/com/finance/web/controller/lisenter/DeptImportListener.java
@@ -6,14 +6,17 @@
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.finance.common.core.domain.entity.SysUser;
+import com.finance.common.enums.AreaLevelEnum;
 import com.finance.common.enums.UserTypeEnum;
 import com.finance.common.exception.ServiceException;
-import com.finance.common.utils.BeanUtils;
+import com.finance.common.utils.CollUtils;
 import com.finance.common.utils.SecurityUtils;
 import com.finance.common.utils.StringUtils;
 import com.finance.system.service.ISysUserService;
 import com.finance.web.controller.excel.DeptExcel;
+import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -94,14 +97,53 @@
 
     private void saveData() {
         log.info("{}条数据,开始存储数据库!", cachedDataList.size());
-        List<SysUser> sysUsers = BeanUtils.copyList(cachedDataList, SysUser.class);
-        sysUsers.forEach(item -> {
-            item.setPassword(SecurityUtils.encryptPassword(item.getPassword()));
-            item.setNickName(item.getAreaName());
-            item.setUserType(UserTypeEnum.DEPARTMENT);
-        });
-        sysUserService.remove(Wrappers.<SysUser>lambdaQuery()
-                .eq(SysUser::getUserType, UserTypeEnum.DEPARTMENT.getCode()));
+        List<SysUser> sysUsers = cachedDataList.stream().map(data -> {
+            SysUser sysUser = new SysUser();
+            sysUser.setAreaName(data.getAreaName());
+            sysUser.setAreaAlias(data.getAreaAlias());
+            sysUser.setAreaCode(data.getAreaCode());
+            sysUser.setAreaLevel(AreaLevelEnum.getEnumByDesc(data.getAreaLevel()));
+            sysUser.setCountyFlag(data.getCountyFlag());
+            sysUser.setUserName(data.getUserName());
+            sysUser.setNickName(data.getUserName());
+            sysUser.setPersonInCharge(data.getPersonInCharge());
+            sysUser.setPhoneNumber(data.getPhoneNumber());
+            sysUser.setPassword(SecurityUtils.encryptPassword(data.getPassword()));
+            sysUser.setUserType(UserTypeEnum.DEPARTMENT);
+            return sysUser;
+        }).collect(Collectors.toList());
+        List<String> areaCodeSet = sysUsers.stream().map(SysUser::getAreaCode)
+                .collect(Collectors.toList());
+        List<SysUser> userListOrg = sysUserService.list(
+                Wrappers.lambdaQuery(SysUser.class).in(SysUser::getAreaCode, areaCodeSet)
+                        .eq(SysUser::getUserType, UserTypeEnum.DEPARTMENT.getCode()));
+        List<String> collect = userListOrg.stream().map(SysUser::getAreaCode)
+                .collect(Collectors.toList());
+        List<SysUser> updateUserList = null;
+        if (CollUtils.isNotEmpty(collect)) {
+            updateUserList = sysUsers.stream()
+                    .filter(item -> collect.contains(item.getAreaCode())).collect(
+                            Collectors.toList());
+            List<SysUser> updateUsers = updateUserList.stream()
+                    .flatMap(updUser -> userListOrg.stream()
+                            .filter(userOrg -> userOrg.getAreaCode().equals(updUser.getAreaCode()))
+                            .peek(userOrg -> {
+                                userOrg.setAreaName(updUser.getAreaName());
+                                userOrg.setAreaAlias(updUser.getAreaAlias());
+                                userOrg.setUserName(updUser.getUserName());
+                                userOrg.setPersonInCharge(updUser.getPersonInCharge());
+                                userOrg.setPhoneNumber(updUser.getPhoneNumber());
+                                userOrg.setAreaLevel(updUser.getAreaLevel());
+                                userOrg.setCountyFlag(updUser.getCountyFlag());
+                                userOrg.setPassword(updUser.getPassword());
+                                userOrg.setUpdateTime(new Date());
+                            }))
+                    .collect(Collectors.toList());
+            sysUserService.updateBatchById(updateUsers);
+        }
+        if (CollUtils.isNotEmpty(updateUserList)) {
+            sysUsers.removeAll(updateUserList);
+        }
         sysUserService.saveBatch(sysUsers);
         log.info("{}条数据,导入成功!", cachedDataList.size());
     }

--
Gitblit v1.7.1