【fix sonar】 SysDepartController.java 文件

This commit is contained in:
tianwenbo
2023-03-06 10:53:29 +08:00
parent 251a921408
commit 465155a698
@@ -8,8 +8,10 @@ import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.SysDepartTreeModel;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CacheConstant;
@@ -48,7 +50,7 @@ import lombok.extern.slf4j.Slf4j;
* <p>
* 部门表 前端控制器
* <p>
*
*
* @Author: Steve @Since 2019-01-22
*/
@RestController
@@ -69,7 +71,8 @@ public class SysDepartController {
*
* @return
*/
@RequestMapping(value = "/queryMyDeptTreeList", method = RequestMethod.GET)
// @RequestMapping(value = "/queryMyDeptTreeList", method = RequestMethod.GET)
@GetMapping("/queryMyDeptTreeList")
public Result<List<SysDepartTreeModel>> queryMyDeptTreeList() {
Result<List<SysDepartTreeModel>> result = new Result<>();
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -96,10 +99,11 @@ public class SysDepartController {
/**
* 查询数据 查出所有部门,并以树结构数据格式响应给前端
*
*
* @return
*/
@RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
// @RequestMapping(value = "/queryTreeList", method = RequestMethod.GET)
@GetMapping("/queryTreeList")
public Result<List<SysDepartTreeModel>> queryTreeList() {
Result<List<SysDepartTreeModel>> result = new Result<>();
try {
@@ -122,7 +126,8 @@ public class SysDepartController {
*
* @return
*/
@RequestMapping(value = "/queryDepartTreeSync", method = RequestMethod.GET)
// @RequestMapping(value = "/queryDepartTreeSync", method = RequestMethod.GET)
@GetMapping("/queryDepartTreeSync")
public Result<List<SysDepartTreeModel>> queryDepartTreeSync(@RequestParam(name = "pid", required = false) String parentId) {
Result<List<SysDepartTreeModel>> result = new Result<>();
try {
@@ -142,7 +147,7 @@ public class SysDepartController {
* @param orgCode 根据orgCode查,departId和orgCode必须有一个不为空
*/
@GetMapping("/queryAllParentId")
public Result queryParentIds(
public Result<JSONObject> queryParentIds(
@RequestParam(name = "departId", required = false) String departId,
@RequestParam(name = "orgCode", required = false) String orgCode
) {
@@ -164,13 +169,14 @@ public class SysDepartController {
/**
* 添加新数据 添加用户新建的部门对象数据,并保存到数据库
*
*
* @param sysDepart
* @return
*/
//@RequiresRoles({"admin"})
@RequiresPermissions("sys:depart:add")
@RequestMapping(value = "/add", method = RequestMethod.POST)
// @RequestMapping(value = "/add", method = RequestMethod.POST)
@PostMapping("/add")
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true)
public Result<Object> add(@RequestBody SysDepart sysDepart, HttpServletRequest request) {
String username = JwtUtil.getUserNameByToken(request);
@@ -186,13 +192,14 @@ public class SysDepartController {
/**
* 编辑数据 编辑部门的部分数据,并保存到数据库
*
*
* @param sysDepart
* @return
*/
//@RequiresRoles({"admin"})
@RequiresPermissions("sys:depart:edit")
@RequestMapping(value = "/edit", method = RequestMethod.PUT)
// @RequestMapping(value = "/edit", method = RequestMethod.PUT)
@PutMapping("/edit")
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true)
public Result<Object> edit(@RequestBody SysDepart sysDepart, HttpServletRequest request) {
String username = JwtUtil.getUserNameByToken(request);
@@ -208,7 +215,7 @@ public class SysDepartController {
}
return Result.OK();
}
/**
* 通过id删除
* @param id
@@ -216,7 +223,8 @@ public class SysDepartController {
*/
//@RequiresRoles({"admin"})
@RequiresPermissions("sys:depart:del")
@RequestMapping(value = "/delete", method = RequestMethod.DELETE)
// @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
@DeleteMapping("/delete")
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true)
public Result<Object> delete(@RequestParam(name="id",required=true) String id) {
SysDepart sysDepart = sysDepartService.getById(id);
@@ -234,13 +242,14 @@ public class SysDepartController {
/**
* 批量删除 根据前端请求的多个ID,对数据库执行删除相关部门数据的操作
*
*
* @param ids
* @return
*/
//@RequiresRoles({"admin"})
@RequiresPermissions("sys:depart:del")
@RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
// @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
@DeleteMapping("/deleteBatch")
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true)
public Result<Object> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
if (ids == null || "".equals(ids.trim())) {
@@ -253,10 +262,11 @@ public class SysDepartController {
/**
* 查询数据 添加或编辑页面对该方法发起请求,以树结构形式加载所有部门的名称,方便用户的操作
*
*
* @return
*/
@RequestMapping(value = "/queryIdTree", method = RequestMethod.GET)
// @RequestMapping(value = "/queryIdTree", method = RequestMethod.GET)
@GetMapping("/queryIdTree")
public Result<List<DepartIdModel>> queryIdTree() {
try {
List<DepartIdModel> list = sysDepartService.queryDepartIdTreeList();
@@ -266,16 +276,17 @@ public class SysDepartController {
return Result.error("查询失败");
}
}
/**
* <p>
* 部门搜索功能方法,根据关键字模糊搜索相关部门
* </p>
*
*
* @param keyWord
* @return
*/
@RequestMapping(value = "/searchBy", method = RequestMethod.GET)
// @RequestMapping(value = "/searchBy", method = RequestMethod.GET)
@GetMapping("/searchBy")
public Result<List<SysDepartTreeModel>> searchBy(@RequestParam(name = "keyWord", required = true) String keyWord,@RequestParam(name = "myDeptSearch", required = false) String myDeptSearch) {
//部门查询,myDeptSearch为1时为我的部门查询,登录用户为上级时查只查负责部门下数据
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -284,7 +295,7 @@ public class SysDepartController {
departIds = user.getDepartIds();
}
List<SysDepartTreeModel> treeList = this.sysDepartService.searhBy(keyWord,myDeptSearch,departIds);
if (treeList == null || treeList.size() == 0) {
if (treeList == null || treeList.isEmpty()) {
return Result.error("未查询匹配数据!");
}
return Result.OK(treeList);
@@ -305,17 +316,12 @@ public class SysDepartController {
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());
}
});
Collections.sort(pageList,(SysDepart arg0, SysDepart arg1)-> arg0.getOrgCode().compareTo(arg1.getOrgCode()));
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "部门列表");
mv.addObject(NormalExcelConstants.CLASS, SysDepart.class);
mv.addObject(JeroController.FILE_NAME, "部门列表");
mv.addObject(JeroController.CLASS, SysDepart.class);
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("部门列表数据", "导出人:"+user.getRealname(), "导出信息"));
mv.addObject(JeroController.PARAMS, new ExportParams("部门列表数据", "导出人:"+user.getRealname(), "导出信息"));
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
@@ -329,9 +335,10 @@ public class SysDepartController {
*/
//@RequiresRoles({"admin"})
@RequiresPermissions("sys:depart:import")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
// @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@PostMapping("/importExcel")
@CacheEvict(value= {CacheConstant.SYS_DEPARTS_CACHE,CacheConstant.SYS_DEPART_IDS_CACHE}, allEntries=true)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
public Result<T> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
List<String> errorMessageList = new ArrayList<>();
List<SysDepart> listSysDeparts = null;
@@ -346,24 +353,25 @@ public class SysDepartController {
// orgCode编码长度
int codeLength = YouBianCodeUtil.zhanweiLength;
listSysDeparts = ExcelImportUtil.importExcel(file.getInputStream(), SysDepart.class, params);
//按长度排序
Collections.sort(listSysDeparts, new Comparator<SysDepart>() {
//按长度排序 todo 当比较到最后一个元素时会出现空指针 导入需要做orgCode必填效验
/*Collections.sort(listSysDeparts, new Comparator<SysDepart>() {
@Override
public int compare(SysDepart arg0, SysDepart arg1) {
return arg0.getOrgCode().length() - arg1.getOrgCode().length();
}
});
});*/
Collections.sort(listSysDeparts, (SysDepart arg0, SysDepart arg1) -> arg0.getOrgCode().length() - arg1.getOrgCode().length());
int num = 0;
for (SysDepart sysDepart : listSysDeparts) {
String orgCode = sysDepart.getOrgCode();
if(orgCode.length() > codeLength) {
String parentCode = orgCode.substring(0, orgCode.length()-codeLength);
QueryWrapper<SysDepart> queryWrapper = new QueryWrapper<SysDepart>();
QueryWrapper<SysDepart> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("org_code", parentCode);
try {
SysDepart parentDept = sysDepartService.getOne(queryWrapper);
if(!parentDept.equals(null)) {
if(parentDept != null) {
sysDepart.setParentId(parentDept.getId());
} else {
sysDepart.setParentId("");
@@ -408,10 +416,10 @@ public class SysDepartController {
*/
@GetMapping("listAll")
public Result<List<SysDepart>> listAll(@RequestParam(name = "id", required = false) String id) {
LambdaQueryWrapper<SysDepart> query = new LambdaQueryWrapper<SysDepart>();
LambdaQueryWrapper<SysDepart> query = new LambdaQueryWrapper<>();
query.orderByAsc(SysDepart::getOrgCode);
if(oConvertUtils.isNotEmpty(id)){
String arr[] = id.split(",");
String[] arr = id.split(",");
query.in(SysDepart::getId,arr);
}
List<SysDepart> ls = this.sysDepartService.list(query);
@@ -422,14 +430,15 @@ public class SysDepartController {
*
* @return
*/
@RequestMapping(value = "/queryTreeByKeyWord", method = RequestMethod.GET)
// @RequestMapping(value = "/queryTreeByKeyWord", method = RequestMethod.GET)
@GetMapping("/queryTreeByKeyWord")
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<String,Object>();
Map<String,Object> map=new HashMap<>();
List<SysDepartTreeModel> list = sysDepartService.queryTreeByKeyWord(keyWord);
//根据keyWord获取用户信息
LambdaQueryWrapper<SysUser> queryUser = new LambdaQueryWrapper<SysUser>();
LambdaQueryWrapper<SysUser> queryUser = new LambdaQueryWrapper<>();
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);