|
|
|
@ -1,6 +1,5 @@ |
|
|
|
|
package org.jeecg.modules.system.controller; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
@ -17,7 +16,6 @@ import org.jeecg.common.system.query.QueryGenerator; |
|
|
|
|
import org.jeecg.common.system.util.JwtUtil; |
|
|
|
|
import org.jeecg.common.system.vo.LoginUser; |
|
|
|
|
import org.jeecg.common.util.ImportExcelUtil; |
|
|
|
|
import org.jeecg.common.util.YouBianCodeUtil; |
|
|
|
|
import org.jeecg.common.util.oConvertUtils; |
|
|
|
|
import org.jeecg.config.mybatis.MybatisPlusSaasConfig; |
|
|
|
|
import org.jeecg.modules.system.entity.SysDepart; |
|
|
|
@ -67,6 +65,7 @@ public class SysDepartController { |
|
|
|
|
private ISysUserService sysUserService; |
|
|
|
|
@Autowired |
|
|
|
|
private ISysUserDepartService sysUserDepartService; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询数据 查出我的部门,并以树结构数据格式响应给前端 |
|
|
|
|
* |
|
|
|
@ -77,22 +76,22 @@ public class SysDepartController { |
|
|
|
|
Result<List<SysDepartTreeModel>> result = new Result<>(); |
|
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
|
|
|
|
try { |
|
|
|
|
if(oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals( CommonConstant.USER_IDENTITY_2 )){ |
|
|
|
|
if (oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals(CommonConstant.USER_IDENTITY_2)) { |
|
|
|
|
//update-begin--Author:liusq Date:20210624 for:部门查询ids为空后的前端显示问题 issues/I3UD06
|
|
|
|
|
String departIds = user.getDepartIds(); |
|
|
|
|
if(StringUtils.isNotBlank(departIds)){ |
|
|
|
|
if (StringUtils.isNotBlank(departIds)) { |
|
|
|
|
List<SysDepartTreeModel> list = sysDepartService.queryMyDeptTreeList(departIds); |
|
|
|
|
result.setResult(list); |
|
|
|
|
} |
|
|
|
|
//update-end--Author:liusq Date:20210624 for:部门查询ids为空后的前端显示问题 issues/I3UD06
|
|
|
|
|
result.setMessage(CommonConstant.USER_IDENTITY_2.toString()); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
}else{ |
|
|
|
|
} else { |
|
|
|
|
result.setMessage(CommonConstant.USER_IDENTITY_1.toString()); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
@ -111,36 +110,60 @@ public class SysDepartController { |
|
|
|
|
// if (CollectionUtils.isEmpty(list)) {
|
|
|
|
|
// list = sysDepartService.queryTreeList();
|
|
|
|
|
// }
|
|
|
|
|
if(oConvertUtils.isNotEmpty(ids)){ |
|
|
|
|
if (oConvertUtils.isNotEmpty(ids)) { |
|
|
|
|
List<SysDepartTreeModel> departList = sysDepartService.queryTreeList(ids); |
|
|
|
|
result.setResult(departList); |
|
|
|
|
}else{ |
|
|
|
|
} else { |
|
|
|
|
List<SysDepartTreeModel> list = sysDepartService.queryTreeList(); |
|
|
|
|
result.setResult(list); |
|
|
|
|
} |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 异步查询部门list |
|
|
|
|
* @param parentId 父节点 异步加载时传递 |
|
|
|
|
* @param ids 前端回显是传递 |
|
|
|
|
* |
|
|
|
|
* @param parentId 父节点 异步加载时传递 |
|
|
|
|
* @param ids 前端回显是传递 |
|
|
|
|
* @param primaryKey 主键字段(id或者orgCode) |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/queryDepartTreeSync", method = RequestMethod.GET) |
|
|
|
|
public Result<List<SysDepartTreeModel>> queryDepartTreeSync(@RequestParam(name = "pid", required = false) String parentId,@RequestParam(name = "ids", required = false) String ids, @RequestParam(name = "primaryKey", required = false) String primaryKey) { |
|
|
|
|
public Result<List<SysDepartTreeModel>> queryDepartTreeSync(@RequestParam(name = "pid", required = false) String parentId, @RequestParam(name = "ids", required = false) String ids, @RequestParam(name = "primaryKey", required = false) String primaryKey) { |
|
|
|
|
Result<List<SysDepartTreeModel>> result = new Result<>(); |
|
|
|
|
try { |
|
|
|
|
List<SysDepartTreeModel> list = sysDepartService.queryTreeListByPid(parentId, ids, primaryKey); |
|
|
|
|
result.setResult(list); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
result.setSuccess(false); |
|
|
|
|
result.setMessage("查询失败"); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @description: 根据当前登录角色查询 下级部门数据 |
|
|
|
|
* @param: [parentId, ids, primaryKey] |
|
|
|
|
* @return: org.jeecg.common.api.vo.Result<java.util.List<org.jeecg.modules.system.model.SysDepartTreeModel>> |
|
|
|
|
* @author: z.h.c |
|
|
|
|
* @date: 24/11/9 16:07 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/queryDepartTreeSync4ZhuGuanBuMen", method = RequestMethod.GET) |
|
|
|
|
public Result<List<SysDepartTreeModel>> queryDepartTreeSync4ZhuGuanBuMen(@RequestParam(name = "parentOrgCode", required = false) String parentOrgCode, @RequestParam(name = "ids", required = false) String ids, @RequestParam(name = "primaryKey", required = false) String primaryKey) { |
|
|
|
|
Result<List<SysDepartTreeModel>> result = new Result<>(); |
|
|
|
|
SysDepart sysDepart = sysDepartService.getOne(new LambdaQueryWrapper<SysDepart>().eq(SysDepart::getOrgCode, parentOrgCode)); |
|
|
|
|
try { |
|
|
|
|
List<SysDepartTreeModel> list = sysDepartService.queryTreeListByPid(parentId,ids, primaryKey); |
|
|
|
|
List<SysDepartTreeModel> list = sysDepartService.queryTreeListByPid(sysDepart.getId(), ids, primaryKey); |
|
|
|
|
result.setResult(list); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
result.setSuccess(false); |
|
|
|
|
result.setMessage("查询失败"); |
|
|
|
|
} |
|
|
|
@ -175,7 +198,7 @@ public class SysDepartController { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @description: 县区管理员审核其下属单位 |
|
|
|
|
* 根据当前用户部门查询其子部门 |
|
|
|
|
* 根据当前用户部门查询其子部门 |
|
|
|
|
* @param: [] |
|
|
|
|
* @return: org.jeecg.common.api.vo.Result |
|
|
|
|
* @author: z.h.c |
|
|
|
@ -183,13 +206,19 @@ public class SysDepartController { |
|
|
|
|
*/ |
|
|
|
|
@GetMapping("/queryListByParentId") |
|
|
|
|
public Result<IPage<SysDepart>> queryListByParentId(SysDepart depart, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, |
|
|
|
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { |
|
|
|
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { |
|
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
|
|
|
|
//获取下级部门
|
|
|
|
|
// List<SysDepart> departList = sysDepartService.list(new LambdaQueryWrapper<SysDepart>()
|
|
|
|
|
QueryWrapper<SysDepart> queryWrapper = QueryGenerator.initQueryWrapper(depart, req.getParameterMap()); |
|
|
|
|
queryWrapper.eq("del_flag", 0); |
|
|
|
|
queryWrapper.eq("parent_id", user.getOrgId()); |
|
|
|
|
|
|
|
|
|
//单位法人角色时,只查询自己部门
|
|
|
|
|
if ("faren_admin".equals(user.getRoleCode())) { |
|
|
|
|
queryWrapper.eq("id", user.getOrgId()); |
|
|
|
|
} else { // 查询下级部门
|
|
|
|
|
queryWrapper.eq("parent_id", user.getOrgId()); |
|
|
|
|
} |
|
|
|
|
return sysDepartService.queryPageList(req, queryWrapper, pageSize, pageNo); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -211,7 +240,7 @@ public class SysDepartController { |
|
|
|
|
String[] arr = ids.split(","); |
|
|
|
|
for (String id : arr) { |
|
|
|
|
if (oConvertUtils.isNotEmpty(id)) { |
|
|
|
|
sysDepartService.lambdaUpdate().eq(SysDepart::getId,id).set(SysDepart::getStatus,status).update(); |
|
|
|
|
sysDepartService.lambdaUpdate().eq(SysDepart::getId, id).set(SysDepart::getStatus, status).update(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
@ -229,9 +258,9 @@ public class SysDepartController { |
|
|
|
|
* @param sysDepart |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequiresPermissions("system:depart:add") |
|
|
|
|
// @RequiresPermissions("system:depart:add")
|
|
|
|
|
@RequestMapping(value = "/add", method = RequestMethod.POST) |
|
|
|
|
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) |
|
|
|
|
@CacheEvict(value = {CacheConstant.SYS_DEPARTS_CACHE, CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries = true) |
|
|
|
|
public Result<SysDepart> add(@RequestBody SysDepart sysDepart, HttpServletRequest request) { |
|
|
|
|
Result<SysDepart> result = new Result<SysDepart>(); |
|
|
|
|
String username = JwtUtil.getUserNameByToken(request); |
|
|
|
@ -243,7 +272,7 @@ public class SysDepartController { |
|
|
|
|
// FindsDepartsChildrenUtil.clearDepartIdModel();
|
|
|
|
|
result.success("添加成功!"); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
result.error500("操作失败"); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
@ -255,9 +284,9 @@ public class SysDepartController { |
|
|
|
|
* @param sysDepart |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequiresPermissions("system:depart:edit") |
|
|
|
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) |
|
|
|
|
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) |
|
|
|
|
// @RequiresPermissions("system:depart:edit")
|
|
|
|
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
|
|
|
|
@CacheEvict(value = {CacheConstant.SYS_DEPARTS_CACHE, CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries = true) |
|
|
|
|
public Result<SysDepart> edit(@RequestBody SysDepart sysDepart, HttpServletRequest request) { |
|
|
|
|
String username = JwtUtil.getUserNameByToken(request); |
|
|
|
|
sysDepart.setUpdateBy(username); |
|
|
|
@ -278,29 +307,30 @@ public class SysDepartController { |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 通过id删除 |
|
|
|
|
* @param id |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequiresPermissions("system:depart:delete") |
|
|
|
|
@RequestMapping(value = "/delete", method = RequestMethod.DELETE) |
|
|
|
|
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) |
|
|
|
|
public Result<SysDepart> delete(@RequestParam(name="id",required=true) String id) { |
|
|
|
|
|
|
|
|
|
Result<SysDepart> result = new Result<SysDepart>(); |
|
|
|
|
SysDepart sysDepart = sysDepartService.getById(id); |
|
|
|
|
if(sysDepart==null) { |
|
|
|
|
result.error500("未找到对应实体"); |
|
|
|
|
}else { |
|
|
|
|
sysDepartService.deleteDepart(id); |
|
|
|
|
/** |
|
|
|
|
* 通过id删除 |
|
|
|
|
* |
|
|
|
|
* @param id |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequiresPermissions("system:depart:delete") |
|
|
|
|
@RequestMapping(value = "/delete", method = RequestMethod.DELETE) |
|
|
|
|
@CacheEvict(value = {CacheConstant.SYS_DEPARTS_CACHE, CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries = true) |
|
|
|
|
public Result<SysDepart> delete(@RequestParam(name = "id", required = true) String id) { |
|
|
|
|
|
|
|
|
|
Result<SysDepart> result = new Result<SysDepart>(); |
|
|
|
|
SysDepart sysDepart = sysDepartService.getById(id); |
|
|
|
|
if (sysDepart == null) { |
|
|
|
|
result.error500("未找到对应实体"); |
|
|
|
|
} else { |
|
|
|
|
sysDepartService.deleteDepart(id); |
|
|
|
|
//清除部门树内存
|
|
|
|
|
//FindsDepartsChildrenUtil.clearSysDepartTreeList();
|
|
|
|
|
// FindsDepartsChildrenUtil.clearDepartIdModel();
|
|
|
|
|
result.success("删除成功!"); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
//FindsDepartsChildrenUtil.clearSysDepartTreeList();
|
|
|
|
|
// FindsDepartsChildrenUtil.clearDepartIdModel();
|
|
|
|
|
result.success("删除成功!"); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -309,9 +339,9 @@ public class SysDepartController { |
|
|
|
|
* @param ids |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequiresPermissions("system:depart:deleteBatch") |
|
|
|
|
@RequiresPermissions("system:depart:deleteBatch") |
|
|
|
|
@RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE) |
|
|
|
|
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) |
|
|
|
|
@CacheEvict(value = {CacheConstant.SYS_DEPARTS_CACHE, CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries = true) |
|
|
|
|
public Result<SysDepart> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { |
|
|
|
|
|
|
|
|
|
Result<SysDepart> result = new Result<SysDepart>(); |
|
|
|
@ -356,7 +386,7 @@ public class SysDepartController { |
|
|
|
|
result.setResult(list); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
@ -370,15 +400,15 @@ public class SysDepartController { |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/searchBy", method = RequestMethod.GET) |
|
|
|
|
public Result<List<SysDepartTreeModel>> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord,@RequestParam(name = "myDeptSearch", required = false) String myDeptSearch) { |
|
|
|
|
public Result<List<SysDepartTreeModel>> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord, @RequestParam(name = "myDeptSearch", required = false) String myDeptSearch) { |
|
|
|
|
Result<List<SysDepartTreeModel>> result = new Result<List<SysDepartTreeModel>>(); |
|
|
|
|
//部门查询,myDeptSearch为1时为我的部门查询,登录用户为上级时查只查负责部门下数据
|
|
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
|
|
|
|
String departIds = null; |
|
|
|
|
if(oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals( CommonConstant.USER_IDENTITY_2 )){ |
|
|
|
|
if (oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals(CommonConstant.USER_IDENTITY_2)) { |
|
|
|
|
departIds = user.getDepartIds(); |
|
|
|
|
} |
|
|
|
|
List<SysDepartTreeModel> treeList = this.sysDepartService.searchByKeyWord(keyWord,myDeptSearch,departIds); |
|
|
|
|
List<SysDepartTreeModel> treeList = this.sysDepartService.searchByKeyWord(keyWord, myDeptSearch, departIds); |
|
|
|
|
if (treeList == null || treeList.size() == 0) { |
|
|
|
|
result.setSuccess(false); |
|
|
|
|
result.setMessage("未查询匹配数据!"); |
|
|
|
@ -390,15 +420,15 @@ public class SysDepartController { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 导出excel |
|
|
|
|
* |
|
|
|
|
* @param request |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/exportXls") |
|
|
|
|
public ModelAndView exportXls(SysDepart sysDepart,HttpServletRequest request) { |
|
|
|
|
* 导出excel |
|
|
|
|
* |
|
|
|
|
* @param request |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/exportXls") |
|
|
|
|
public ModelAndView exportXls(SysDepart sysDepart, HttpServletRequest request) { |
|
|
|
|
//------------------------------------------------------------------------------------------------
|
|
|
|
|
//是否开启系统管理模块的多租户数据隔离【SAAS多租户模式】
|
|
|
|
|
if(MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL){ |
|
|
|
|
if (MybatisPlusSaasConfig.OPEN_SYSTEM_TENANT_CONTROL) { |
|
|
|
|
sysDepart.setTenantId(oConvertUtils.getInt(TenantContext.getTenant(), 0)); |
|
|
|
|
} |
|
|
|
|
//------------------------------------------------------------------------------------------------
|
|
|
|
@ -408,13 +438,13 @@ public class SysDepartController { |
|
|
|
|
//QueryWrapper<SysDepart> queryWrapper = QueryGenerator.initQueryWrapper(sysDepart, request.getParameterMap());
|
|
|
|
|
//Step.1 AutoPoi 导出Excel
|
|
|
|
|
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); |
|
|
|
|
//List<SysDepart> pageList = sysDepartService.list(queryWrapper);
|
|
|
|
|
//按字典排序
|
|
|
|
|
//Collections.sort(pageList, new Comparator<SysDepart>() {
|
|
|
|
|
//@Override
|
|
|
|
|
//public int compare(SysDepart arg0, SysDepart arg1) {
|
|
|
|
|
//return arg0.getOrgCode().compareTo(arg1.getOrgCode());
|
|
|
|
|
//}
|
|
|
|
|
//List<SysDepart> pageList = sysDepartService.list(queryWrapper);
|
|
|
|
|
//按字典排序
|
|
|
|
|
//Collections.sort(pageList, new Comparator<SysDepart>() {
|
|
|
|
|
//@Override
|
|
|
|
|
//public int compare(SysDepart arg0, SysDepart arg1) {
|
|
|
|
|
//return arg0.getOrgCode().compareTo(arg1.getOrgCode());
|
|
|
|
|
//}
|
|
|
|
|
//});
|
|
|
|
|
// 过滤选中数据
|
|
|
|
|
String selections = request.getParameter("selections"); |
|
|
|
@ -425,49 +455,49 @@ public class SysDepartController { |
|
|
|
|
//step.2 组装导出数据
|
|
|
|
|
Integer tenantId = sysDepart == null ? null : sysDepart.getTenantId(); |
|
|
|
|
//update-begin---author:wangshuai---date:2024-07-05---for:【TV360X-1671】部门管理不支持选中的记录导出---
|
|
|
|
|
List<SysDepartExportVo> sysDepartExportVos = sysDepartService.getExportDepart(tenantId,idList); |
|
|
|
|
List<SysDepartExportVo> sysDepartExportVos = sysDepartService.getExportDepart(tenantId, idList); |
|
|
|
|
//update-end---author:wangshuai---date:2024-07-05---for:【TV360X-1671】部门管理不支持选中的记录导出---
|
|
|
|
|
//导出文件名称
|
|
|
|
|
mv.addObject(NormalExcelConstants.FILE_NAME, "部门列表"); |
|
|
|
|
mv.addObject(NormalExcelConstants.CLASS, SysDepartExportVo.class); |
|
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
|
|
|
|
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("导入规则:\n" + |
|
|
|
|
//导出文件名称
|
|
|
|
|
mv.addObject(NormalExcelConstants.FILE_NAME, "部门列表"); |
|
|
|
|
mv.addObject(NormalExcelConstants.CLASS, SysDepartExportVo.class); |
|
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
|
|
|
|
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("导入规则:\n" + |
|
|
|
|
"1、标题为第三行,部门路径和部门名称的标题不允许修改,否则会匹配失败;第四行为数据填写范围;\n" + |
|
|
|
|
"2、部门路径用英文字符/分割,部门名称为部门路径的最后一位;\n" + |
|
|
|
|
"3、部门从一级名称开始创建,如果有同级就需要多添加一行,如研发部/研发一部;研发部/研发二部;\n" + |
|
|
|
|
"4、自定义的部门编码需要满足规则才能导入。如一级部门编码为A01,那么子部门为A01A01,同级子部门为A01A02,编码固定为三位,首字母为A-Z,后两位为数字0-99,依次递增;", "导出人:"+user.getRealname(), "导出信息")); |
|
|
|
|
mv.addObject(NormalExcelConstants.DATA_LIST, sysDepartExportVos); |
|
|
|
|
"4、自定义的部门编码需要满足规则才能导入。如一级部门编码为A01,那么子部门为A01A01,同级子部门为A01A02,编码固定为三位,首字母为A-Z,后两位为数字0-99,依次递增;", "导出人:" + user.getRealname(), "导出信息")); |
|
|
|
|
mv.addObject(NormalExcelConstants.DATA_LIST, sysDepartExportVos); |
|
|
|
|
//update-end---author:wangshuai---date:2023-10-19---for:【QQYUN-5482】系统的部门导入导出也可以改成敲敲云模式的部门路径---
|
|
|
|
|
|
|
|
|
|
return mv; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 通过excel导入数据 |
|
|
|
|
/** |
|
|
|
|
* 通过excel导入数据 |
|
|
|
|
* 部门导入方案1: 通过机构编码来计算出部门的父级ID,维护上下级关系; |
|
|
|
|
* 部门导入方案2: 你也可以改造下程序,机构编码直接导入,先不设置父ID;全部导入后,写一个sql,补下父ID; |
|
|
|
|
* |
|
|
|
|
* @param request |
|
|
|
|
* @param response |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequiresPermissions("system:depart:importExcel") |
|
|
|
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
|
|
|
|
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) |
|
|
|
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
|
|
|
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
|
|
|
|
* |
|
|
|
|
* @param request |
|
|
|
|
* @param response |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequiresPermissions("system:depart:importExcel") |
|
|
|
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
|
|
|
|
@CacheEvict(value = {CacheConstant.SYS_DEPARTS_CACHE, CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries = true) |
|
|
|
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
|
|
|
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
|
|
|
|
List<String> errorMessageList = new ArrayList<>(); |
|
|
|
|
//List<SysDepart> listSysDeparts = null;
|
|
|
|
|
List<SysDepartExportVo> listSysDeparts = null; |
|
|
|
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
|
|
|
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { |
|
|
|
|
// 获取上传文件对象
|
|
|
|
|
MultipartFile file = entity.getValue(); |
|
|
|
|
ImportParams params = new ImportParams(); |
|
|
|
|
params.setTitleRows(2); |
|
|
|
|
params.setHeadRows(1); |
|
|
|
|
params.setNeedSave(true); |
|
|
|
|
try { |
|
|
|
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
|
|
|
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { |
|
|
|
|
// 获取上传文件对象
|
|
|
|
|
MultipartFile file = entity.getValue(); |
|
|
|
|
ImportParams params = new ImportParams(); |
|
|
|
|
params.setTitleRows(2); |
|
|
|
|
params.setHeadRows(1); |
|
|
|
|
params.setNeedSave(true); |
|
|
|
|
try { |
|
|
|
|
//update-begin---author:wangshuai---date:2023-10-20---for: 注释掉原来的导入部门的逻辑---
|
|
|
|
|
// // orgCode编码长度
|
|
|
|
|
// int codeLength = YouBianCodeUtil.ZHANWEI_LENGTH;
|
|
|
|
@ -518,7 +548,7 @@ public class SysDepartController { |
|
|
|
|
|
|
|
|
|
//update-begin---author:wangshuai---date:2023-10-19---for:【QQYUN-5482】系统的部门导入导出也可以改成敲敲云模式的部门路径---
|
|
|
|
|
listSysDeparts = ExcelImportUtil.importExcel(file.getInputStream(), SysDepartExportVo.class, params); |
|
|
|
|
sysDepartService.importSysDepart(listSysDeparts,errorMessageList); |
|
|
|
|
sysDepartService.importSysDepart(listSysDeparts, errorMessageList); |
|
|
|
|
//update-end---author:wangshuai---date:2023-10-19---for:【QQYUN-5482】系统的部门导入导出也可以改成敲敲云模式的部门路径---
|
|
|
|
|
|
|
|
|
|
//清空部门缓存
|
|
|
|
@ -527,23 +557,24 @@ public class SysDepartController { |
|
|
|
|
redisTemplate.delete(keys3); |
|
|
|
|
redisTemplate.delete(keys4); |
|
|
|
|
return ImportExcelUtil.imporReturnRes(errorMessageList.size(), listSysDeparts.size() - errorMessageList.size(), errorMessageList); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
return Result.error("文件导入失败:"+e.getMessage()); |
|
|
|
|
} finally { |
|
|
|
|
try { |
|
|
|
|
file.getInputStream().close(); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return Result.error("文件导入失败!"); |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
return Result.error("文件导入失败:" + e.getMessage()); |
|
|
|
|
} finally { |
|
|
|
|
try { |
|
|
|
|
file.getInputStream().close(); |
|
|
|
|
} catch (IOException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return Result.error("文件导入失败!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询所有部门信息 |
|
|
|
|
* |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@GetMapping("listAll") |
|
|
|
@ -551,37 +582,38 @@ public class SysDepartController { |
|
|
|
|
Result<List<SysDepart>> result = new Result<>(); |
|
|
|
|
LambdaQueryWrapper<SysDepart> query = new LambdaQueryWrapper<SysDepart>(); |
|
|
|
|
query.orderByAsc(SysDepart::getOrgCode); |
|
|
|
|
if(oConvertUtils.isNotEmpty(id)){ |
|
|
|
|
if (oConvertUtils.isNotEmpty(id)) { |
|
|
|
|
String[] arr = id.split(","); |
|
|
|
|
query.in(SysDepart::getId,arr); |
|
|
|
|
query.in(SysDepart::getId, arr); |
|
|
|
|
} |
|
|
|
|
List<SysDepart> ls = this.sysDepartService.list(query); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
result.setResult(ls); |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询数据 查出所有部门,并以树结构数据格式响应给前端 |
|
|
|
|
* |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/queryTreeByKeyWord", method = RequestMethod.GET) |
|
|
|
|
public Result<Map<String,Object>> queryTreeByKeyWord(@RequestParam(name = "keyWord", required = false) String keyWord) { |
|
|
|
|
Result<Map<String,Object>> result = new Result<>(); |
|
|
|
|
public Result<Map<String, Object>> queryTreeByKeyWord(@RequestParam(name = "keyWord", required = false) String keyWord) { |
|
|
|
|
Result<Map<String, Object>> result = new Result<>(); |
|
|
|
|
try { |
|
|
|
|
Map<String,Object> map=new HashMap(5); |
|
|
|
|
Map<String, Object> map = new HashMap(5); |
|
|
|
|
List<SysDepartTreeModel> list = sysDepartService.queryTreeByKeyWord(keyWord); |
|
|
|
|
//根据keyWord获取用户信息
|
|
|
|
|
LambdaQueryWrapper<SysUser> queryUser = new LambdaQueryWrapper<SysUser>(); |
|
|
|
|
queryUser.eq(SysUser::getDelFlag,CommonConstant.DEL_FLAG_0); |
|
|
|
|
queryUser.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0); |
|
|
|
|
queryUser.and(i -> i.like(SysUser::getUsername, keyWord).or().like(SysUser::getRealname, keyWord)); |
|
|
|
|
List<SysUser> sysUsers = this.sysUserService.list(queryUser); |
|
|
|
|
map.put("userList",sysUsers); |
|
|
|
|
map.put("departList",list); |
|
|
|
|
map.put("userList", sysUsers); |
|
|
|
|
map.put("departList", list); |
|
|
|
|
result.setResult(map); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
@ -619,9 +651,9 @@ public class SysDepartController { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @功能:根据id 批量查询 |
|
|
|
|
* @param deptIds |
|
|
|
|
* @return |
|
|
|
|
* @功能:根据id 批量查询 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/queryByIds", method = RequestMethod.GET) |
|
|
|
|
public Result<Collection<SysDepart>> queryByIds(@RequestParam(name = "deptIds") String deptIds) { |
|
|
|
@ -635,40 +667,42 @@ public class SysDepartController { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@GetMapping("/getMyDepartList") |
|
|
|
|
public Result<List<SysDepart>> getMyDepartList(){ |
|
|
|
|
List<SysDepart> list = sysDepartService.getMyDepartList(); |
|
|
|
|
return Result.ok(list); |
|
|
|
|
} |
|
|
|
|
public Result<List<SysDepart>> getMyDepartList() { |
|
|
|
|
List<SysDepart> list = sysDepartService.getMyDepartList(); |
|
|
|
|
return Result.ok(list); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 异步查询部门list |
|
|
|
|
* |
|
|
|
|
* @param parentId 父节点 异步加载时传递 |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/queryBookDepTreeSync", method = RequestMethod.GET) |
|
|
|
|
public Result<List<SysDepartTreeModel>> queryBookDepTreeSync(@RequestParam(name = "pid", required = false) String parentId, |
|
|
|
|
@RequestParam(name = "tenantId") Integer tenantId, |
|
|
|
|
@RequestParam(name = "departName",required = false) String departName) { |
|
|
|
|
@RequestParam(name = "departName", required = false) String departName) { |
|
|
|
|
Result<List<SysDepartTreeModel>> result = new Result<>(); |
|
|
|
|
try { |
|
|
|
|
List<SysDepartTreeModel> list = sysDepartService.queryBookDepTreeSync(parentId, tenantId, departName); |
|
|
|
|
result.setResult(list); |
|
|
|
|
result.setSuccess(true); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 通过部门id和租户id获取用户 【低代码应用: 用于选择部门负责人】 |
|
|
|
|
* |
|
|
|
|
* @param departId |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@GetMapping("/getUsersByDepartTenantId") |
|
|
|
|
public Result<List<SysUser>> getUsersByDepartTenantId(@RequestParam("departId") String departId){ |
|
|
|
|
public Result<List<SysUser>> getUsersByDepartTenantId(@RequestParam("departId") String departId) { |
|
|
|
|
int tenantId = oConvertUtils.getInt(TenantContext.getTenant(), 0); |
|
|
|
|
List<SysUser> sysUserList = sysUserDepartService.getUsersByDepartTenantId(departId,tenantId); |
|
|
|
|
List<SysUser> sysUserList = sysUserDepartService.getUsersByDepartTenantId(departId, tenantId); |
|
|
|
|
return Result.ok(sysUserList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -678,7 +712,7 @@ public class SysDepartController { |
|
|
|
|
* @param request |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/appExportXls") |
|
|
|
|
public ModelAndView appExportXls(SysDepart sysDepart,HttpServletRequest request) { |
|
|
|
|
public ModelAndView appExportXls(SysDepart sysDepart, HttpServletRequest request) { |
|
|
|
|
// Step.1 组装查询条件
|
|
|
|
|
int tenantId = oConvertUtils.getInt(TenantContext.getTenant(), 0); |
|
|
|
|
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); |
|
|
|
@ -688,7 +722,7 @@ public class SysDepartController { |
|
|
|
|
mv.addObject(NormalExcelConstants.FILE_NAME, "部门列表"); |
|
|
|
|
mv.addObject(NormalExcelConstants.CLASS, ExportDepartVo.class); |
|
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
|
|
|
|
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("部门列表数据", "导出人:"+user.getRealname(), "导出信息")); |
|
|
|
|
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("部门列表数据", "导出人:" + user.getRealname(), "导出信息")); |
|
|
|
|
mv.addObject(NormalExcelConstants.DATA_LIST, pageList); |
|
|
|
|
return mv; |
|
|
|
|
} |
|
|
|
@ -699,7 +733,7 @@ public class SysDepartController { |
|
|
|
|
* @param request |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping(value = "/appImportExcel", method = RequestMethod.POST) |
|
|
|
|
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true) |
|
|
|
|
@CacheEvict(value = {CacheConstant.SYS_DEPARTS_CACHE, CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries = true) |
|
|
|
|
public Result<?> appImportExcel(HttpServletRequest request, HttpServletResponse response) { |
|
|
|
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; |
|
|
|
|
List<String> errorMessageList = new ArrayList<>(); |
|
|
|
@ -714,7 +748,7 @@ public class SysDepartController { |
|
|
|
|
params.setNeedSave(true); |
|
|
|
|
try { |
|
|
|
|
listSysDeparts = ExcelImportUtil.importExcel(file.getInputStream(), ExportDepartVo.class, params); |
|
|
|
|
sysDepartService.importExcel(listSysDeparts,errorMessageList); |
|
|
|
|
sysDepartService.importExcel(listSysDeparts, errorMessageList); |
|
|
|
|
//清空部门缓存
|
|
|
|
|
Set keys3 = redisTemplate.keys(CacheConstant.SYS_DEPARTS_CACHE + "*"); |
|
|
|
|
Set keys4 = redisTemplate.keys(CacheConstant.SYS_DEPART_IDS_CACHE + "*"); |
|
|
|
@ -722,8 +756,8 @@ public class SysDepartController { |
|
|
|
|
redisTemplate.delete(keys4); |
|
|
|
|
return ImportExcelUtil.imporReturnRes(errorMessageList.size(), listSysDeparts.size() - errorMessageList.size(), errorMessageList); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.error(e.getMessage(),e); |
|
|
|
|
return Result.error("文件导入失败:"+e.getMessage()); |
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
return Result.error("文件导入失败:" + e.getMessage()); |
|
|
|
|
} finally { |
|
|
|
|
try { |
|
|
|
|
file.getInputStream().close(); |
|
|
|
|