瀏覽代碼

用户导入导出维护

fenghaifu 2 年之前
父節點
當前提交
bd4637e317

+ 26 - 5
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java

@@ -1,11 +1,7 @@
 package org.jeecg.modules.system.controller;
 
 import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -20,9 +16,11 @@ import org.jeecg.common.system.util.JwtUtil;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.system.entity.SysDepart;
+import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.model.DepartIdModel;
 import org.jeecg.modules.system.model.SysDepartTreeModel;
 import org.jeecg.modules.system.service.ISysDepartService;
+import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecg.modules.system.util.FindsDepartsChildrenUtil;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -60,6 +58,9 @@ public class SysDepartController {
 	@Autowired
 	private ISysDepartService sysDepartService;
 
+	@Autowired
+	private ISysUserService sysUserService;
+
 	/**
 	 * 查询数据 查出我的部门,并以树结构数据格式响应给前端
 	 *
@@ -67,6 +68,7 @@ public class SysDepartController {
 	 */
 	@RequestMapping(value = "/queryMyDeptTreeList", method = RequestMethod.GET)
 	public Result<List<SysDepartTreeModel>> queryMyDeptTreeList() {
+		/*
 		Result<List<SysDepartTreeModel>> result = new Result<>();
 		LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 		try {
@@ -82,6 +84,25 @@ public class SysDepartController {
 		} catch (Exception e) {
 			log.error(e.getMessage(),e);
 		}
+		return result;*/
+
+		Result<List<SysDepartTreeModel>> result = new Result<>();
+		LoginUser loginUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
+		try {
+			List<SysDepartTreeModel> list = sysDepartService.queryTreeListNotOrg();
+			SysUser sysUser = sysUserService.getById(loginUser.getId());
+			List<SysDepartTreeModel> ret = new ArrayList<>();
+			for (SysDepartTreeModel sysDepartTreeModel : list){
+				if (sysDepartTreeModel.getId().equals(sysUser.getOrgCode())){
+					ret.add(sysDepartTreeModel);
+					break;
+				}
+			}
+			result.setResult(ret);
+			result.setSuccess(true);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
 		return result;
 	}
 

+ 45 - 3
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -390,12 +390,14 @@ public class SysUserController {
      * 导出excel
      *
      * @param request
-     * @param response
+     * @param sysUser
      */
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(SysUser sysUser,HttpServletRequest request) {
         // Step.1 组装查询条件
         QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(sysUser, request.getParameterMap());
+	    LoginUser loginUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
+	    queryWrapper.lambda().like(SysUser::getPkOrg,loginUser.getOrgCode());
         //Step.2 AutoPoi 导出Excel
         ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
         //update-begin--Author:kangxiaolin  Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据--------------------
@@ -422,11 +424,13 @@ public class SysUserController {
      * @param response
      * @return
      */
-    @RequiresPermissions("user:import")
+    //@RequiresPermissions("user:import")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
         Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        List<SysDepart> sysDepartList = sysDepartService.list();
+
         for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
             MultipartFile file = entity.getValue();// 获取上传文件对象
             ImportParams params = new ImportParams();
@@ -434,13 +438,51 @@ public class SysUserController {
             params.setHeadRows(1);
             params.setNeedSave(true);
             try {
+	            LoginUser loginUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
                 List<SysUser> listSysUsers = ExcelImportUtil.importExcel(file.getInputStream(), SysUser.class, params);
+	            Optional<SysDepart> defaultOrg = sysDepartList.stream().filter(e->e.getId().equals(loginUser.getOrgCode())).findFirst();
+
+	            int index = 1;
+                StringBuilder sbErr = new StringBuilder();
                 for (SysUser sysUserExcel : listSysUsers) {
                     if (sysUserExcel.getPassword() == null) {
                         // 密码默认为“123456”
                         sysUserExcel.setPassword("123456");
                     }
-                    sysUserService.save(sysUserExcel);
+	                String salt = oConvertUtils.randomGen(8);
+	                sysUserExcel.setSalt(salt);
+	                String passwordEncode = PasswordUtil.encrypt(sysUserExcel.getUsername(), sysUserExcel.getPassword(), salt);
+	                sysUserExcel.setPassword(passwordEncode);
+	                if (sysUserExcel.getStatus() == null){
+		                sysUserExcel.setStatus(1);
+	                }
+	                sysUserExcel.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
+	                sysUserExcel.setActivitiSync("1");
+	                sysUserExcel.setPkOrg(loginUser.getOrgCode());
+	                sysUserExcel.setOrgCode(loginUser.getOrgCode());
+	                sysUserExcel.setPkOrgName(defaultOrg.get().getDepartName());
+
+	                Optional<SysDepart> findDep = sysDepartList.stream().filter(e->e.getId().equals(sysUserExcel.getDepartIds())).findFirst();
+	                if (!findDep.isPresent()){
+	                	sbErr.append("第"+index+"行负责部门填写错误。");
+	                }else{
+		                sysUserExcel.setDepartIds(findDep.get().getId());
+	                }
+
+	                index++;
+                }
+                if (sbErr.length()>0){
+	                return Result.ok("文件导入失败:" + sbErr.toString());
+                }else{
+	                for (SysUser sysUserExcel : listSysUsers) {
+	                	String depId = sysUserExcel.getDepartIds();
+	                	if (sysUserExcel.getIdentity() == 1){
+			                sysUserExcel.setDepartIds("");
+		                }
+		                sysUserService.save(sysUserExcel);
+	                	sysUserService.addUserWithDepart(sysUserExcel, depId);
+
+	                }
                 }
                 return Result.ok("文件导入成功!数据行数:" + listSysUsers.size());
             } catch (Exception e) {

+ 4 - 4
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/entity/SysUser.java

@@ -67,7 +67,7 @@ public class SysUser implements Serializable {
     /**
      * 头像
      */
-    @Excel(name = "头像", width = 15)
+    //@Excel(name = "头像", width = 15)
     private String avatar;
 
     /**
@@ -112,7 +112,7 @@ public class SysUser implements Serializable {
     /**
      * 删除状态(0,正常,1已删除)
      */
-    @Excel(name = "删除状态", width = 15,dicCode="del_flag")
+    //@Excel(name = "删除状态", width = 15,dicCode="del_flag")
     @TableLogic
     private String delFlag;
 
@@ -161,7 +161,7 @@ public class SysUser implements Serializable {
     /**
      * 身份(0 普通成员 1 上级)
      */
-    @Excel(name="(1普通成员 2上级)",width = 15)
+    @Excel(name="身份(1普通成员 2上级)",width = 15)
     private Integer identity;
 
     /**
@@ -174,7 +174,7 @@ public class SysUser implements Serializable {
     /**
      * 所属公司id
      */
-    @Excel(name="所属公司id",width = 15)
+    //@Excel(name="所属公司id",width = 15)
     private String pkOrg;
 
     /**