| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | |
| | | 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()); |
| | | } |