From 608231e3801f25845e2fa51bce8446dbb07eeb41 Mon Sep 17 00:00:00 2001 From: liao Date: Thu, 9 Nov 2023 17:59:00 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=AF=BC=E5=85=A5=E5=B7=A5=E5=85=B7-?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LawsUtilController.java | 153 +++++++++++++----- .../localTool/entity/UserPermissionVO.java | 34 ++++ 2 files changed, 149 insertions(+), 38 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/localTool/entity/UserPermissionVO.java diff --git a/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java b/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java index cde7934a..2fa4f1dd 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/localTool/controller/LawsUtilController.java @@ -1,71 +1,148 @@ package com.jero.modules.laws.localTool.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.exception.JeroBootException; import com.jero.modules.laws.localTool.entity.Part; -import com.jero.modules.laws.localTool.entity.StandardEarlyWarning; +import com.jero.modules.laws.localTool.entity.UserPermissionVO; import com.jero.modules.system.entity.SysDictItem; +import com.jero.modules.system.entity.SysRole; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.entity.SysUserRole; import com.jero.modules.system.service.ISysDictItemService; +import com.jero.modules.system.service.ISysRoleService; +import com.jero.modules.system.service.ISysUserRoleService; +import com.jero.modules.system.service.ISysUserService; import com.spire.ms.System.Collections.ArrayList; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; -import java.io.File; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @Author: liao * @Date: 2023/10/31 16:49 * @Description: 工具 */ -@Api(tags="工具") +@Api(tags="导入工具") @RestController -@RequestMapping("/laws/localTool/util") +@RequestMapping("/laws/localTool/importUtil") public class LawsUtilController { - @Autowired + @Resource private ISysDictItemService sysDictItemService; + @Resource + private ISysUserService sysUserService; + @Resource + private ISysRoleService sysRoleService; + @Resource + private ISysUserRoleService sysUserRoleService; - @GetMapping(value = "/import") - public void newModelImplementation() { + @AutoLog(value = "导入工具-零部件") + @ApiOperation(value = "导入工具-零部件", notes = "导入工具-零部件") + @PostMapping(value = "/importPart") + public Result importPart(HttpServletRequest request) { long start = System.currentTimeMillis(); - ImportParams params = new ImportParams(); - params.setHeadRows(1); - String filePath = "D:\\Download\\browser\\Chrome\\中国重汽法规智库\\零部件导入.xlsx"; - List parts = ExcelImportUtil.importExcel(new File(filePath), Part.class, params); - List sysDictItems = new ArrayList(); - for (int i = 0; i < parts.size(); i++) { - SysDictItem dictItem = new SysDictItem(); - // 字典id - dictItem.setDictId("1696007957666533377"); - // 父节点 - dictItem.setParentId("0"); - // 是否标签管理显示(显示) - dictItem.setIsTagDict(1); - // 状态(启用) - dictItem.setStatus(1); - dictItem.setDelFlag(0); - // 排序 - dictItem.setSortOrder(i + 1); - // 字典项值 - dictItem.setItemValue(parts.get(i).getCode()); - // 字典项名称 - dictItem.setItemText(parts.get(i).getName()); - sysDictItems.add(dictItem); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + int count = 0; + for (Map.Entry entry : fileMap.entrySet()) { + MultipartFile file = entry.getValue(); + ImportParams params = new ImportParams(); + params.setHeadRows(1); + try { + List importExcel = ExcelImportUtil.importExcel(file.getInputStream(), Part.class, params); + List sysDictItems = new ArrayList(); + for (int i = 0; i < importExcel.size(); i++) { + SysDictItem dictItem = new SysDictItem(); + // 字典id + dictItem.setDictId("1696007957666533377"); + // 父节点 + dictItem.setParentId("0"); + // 是否标签管理显示(显示) + dictItem.setIsTagDict(1); + // 状态(启用) + dictItem.setStatus(1); + dictItem.setDelFlag(0); + // 排序 + dictItem.setSortOrder(i + 1); + // 字典项值 + dictItem.setItemValue(importExcel.get(i).getCode()); + // 字典项名称 + dictItem.setItemText(importExcel.get(i).getName()); + dictItem.setIsReadOnly(2); + sysDictItems.add(dictItem); + } + sysDictItemService.saveBatch(sysDictItems, sysDictItems.size()); + count += importExcel.size(); + } catch (Exception e) { + throw new JeroBootException("导入错误"); + } } - sysDictItemService.saveBatch(sysDictItems, sysDictItems.size()); long end = System.currentTimeMillis(); System.out.println("================导入零部件==============="); - System.out.println("耗时:" + (end - start) + ",同步:" + parts.size() + "条数据"); + System.out.println("耗时:" + (end - start) + ",同步:" + count + "条数据"); System.out.println("======================================="); + return Result.OK(); + } + + @AutoLog(value = "导入工具-用户权限") + @ApiOperation(value = "导入工具-用户权限", notes = "导入工具-用户权限") + @PostMapping(value = "/importUserPermission") + public Result userPermissionImport(HttpServletRequest request) { + long start = System.currentTimeMillis(); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + int count = 0; + for (Map.Entry entry : fileMap.entrySet()) { + MultipartFile file = entry.getValue(); + ImportParams params = new ImportParams(); + params.setHeadRows(1); + try { + List importExcel = ExcelImportUtil.importExcel(file.getInputStream(), UserPermissionVO.class, params); + List insertList = new ArrayList(); + List userList = sysUserService.list(); + List roleList = sysRoleService.list(); + Map userMap = new HashMap<>(); + Map roleMap = new HashMap<>(); + userList.forEach(user -> userMap.put(user.getUsername(), user.getId())); + roleList.forEach(role -> roleMap.put(role.getRoleName(), role.getId())); + importExcel.forEach(userPermissionVO -> { + SysUserRole userRole = new SysUserRole(); + String userId = userMap.get(userPermissionVO.getUsername()); + if (StringUtils.isBlank(userId)) { + throw new JeroBootException("工号:" + userPermissionVO.getUsername() + ",用户名:" + + userPermissionVO.getRealName() + ",在用户表中不存在"); + } + userRole.setUserId(userId); + String roleId = roleMap.get(userPermissionVO.getRoleName()); + if (StringUtils.isBlank(roleId)) { + throw new JeroBootException("角色:" + userPermissionVO.getRoleName() + ",在角色表中不存在"); + } + userRole.setRoleId(roleId); + insertList.add(userRole); + }); + sysUserRoleService.saveBatch(insertList, insertList.size()); + count += insertList.size(); + } catch (Exception e) { + throw new JeroBootException(e); + } + } + long end = System.currentTimeMillis(); + System.out.println("================导入用户权限==============="); + System.out.println("耗时:" + (end - start) + ",同步:" + count + "条数据"); + System.out.println("======================================="); + return Result.OK(); } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/localTool/entity/UserPermissionVO.java b/laws-modules/src/main/java/com/jero/modules/laws/localTool/entity/UserPermissionVO.java new file mode 100644 index 00000000..97a3f34d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/localTool/entity/UserPermissionVO.java @@ -0,0 +1,34 @@ +package com.jero.modules.laws.localTool.entity; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @Author: liao + * @Date: 2023/11/9 17:10 + * @Description: 用户权限 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="用户权限", description="用户权限") +public class UserPermissionVO { + /**分类代码*/ + @Excel(name = "USERID", width = 15) + @ApiModelProperty(value = "工号") + private java.lang.String username; + + /**显示名称*/ + @Excel(name = "USERNAME", width = 15) + @ApiModelProperty(value = "用户名") + private java.lang.String realName; + + /**设计规范*/ + @Excel(name = "ROLENAME", width = 15) + @ApiModelProperty(value = "角色名称") + private java.lang.String roleName; +}