fix:78364

This commit is contained in:
梁琦涛
2023-11-10 14:54:37 +08:00
parent a92730c939
commit 58a0965490
7 changed files with 117 additions and 38 deletions
@@ -1,31 +1,36 @@
package com.jero.modules.sys.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MessageUtils;
import com.jero.common.api.vo.ResultCommon;
import com.jero.modules.sys.entity.LawsWorkingGroup;
import com.jero.modules.sys.service.ILawsWorkingGroupService;
import com.jero.modules.sys.service.ILawsWorkingGroupUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
/**
* @Description: 内部工作组
* @Author: jero-boot
* @Date: 2023-09-06
@@ -38,6 +43,10 @@ import org.apache.poi.ss.formula.functions.T;
public class LawsWorkingGroupController extends JeroController<LawsWorkingGroup, ILawsWorkingGroupService> {
@Autowired
private ILawsWorkingGroupService lawsWorkingGroupService;
@Resource
private ILawsWorkingGroupUserService lawsWorkingGroupUserService;
/**
* 查询
@@ -97,29 +106,66 @@ public class LawsWorkingGroupController extends JeroController<LawsWorkingGroup,
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 添加工作组
*/
@AutoLog(value = "内部工作组-添加工作组")
@ApiOperation(value="内部工作组-添加工作组", notes="内部工作组-添加工作组")
@PostMapping(value = "/addWorkGroup")
public Result<T> addWorkGroup(@Validated @RequestBody LawsWorkingGroup lawsWorkingGroup) {
// 校验是否有权限
lawsWorkingGroupUserService.checkAuth(lawsWorkingGroup.getPid());
String pid = lawsWorkingGroup.getPid();
if (StringUtils.isNotBlank(pid)){
LawsWorkingGroup workingGroup = lawsWorkingGroupService.queryById(pid);
if(workingGroup.getLevel() == 1 && StringUtils.isBlank(lawsWorkingGroup.getUserId())){
throw new JeroBootException("管理权限不能为空");
}
lawsWorkingGroup.setLevel(workingGroup.getLevel() + 1);
}else {
lawsWorkingGroup.setLevel(1);
}
lawsWorkingGroup.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
lawsWorkingGroupService.add(lawsWorkingGroup);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 编辑工作组
*/
@AutoLog(value = "内部工作组-编辑工作组")
@ApiOperation(value="内部工作组-编辑工作组", notes="内部工作组-编辑工作组")
@PostMapping(value = "/edit")
public Result<T> edit(@Validated @RequestBody LawsWorkingGroup lawsWorkingGroup) {
// 校验是否有权限
lawsWorkingGroupUserService.checkAuth(lawsWorkingGroup.getId());
lawsWorkingGroupService.editById(lawsWorkingGroup);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 编辑
*/
@RequiresPermissions("sys:innerWorkingGroup:tree:edit")
@AutoLog(value = "内部工作组-编辑")
@ApiOperation(value="内部工作组-编辑", notes="内部工作组-编辑")
@PostMapping(value = "/edit")
public Result<T> edit(@Validated @RequestBody LawsWorkingGroup lawsWorkingGroup) {
@PostMapping(value = "/editWorkGroup")
public Result<T> editWorkGroup(@Validated @RequestBody LawsWorkingGroup lawsWorkingGroup) {
lawsWorkingGroupService.editById(lawsWorkingGroup);
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 通过id删除
* 通过id删除工作组
*/
@RequiresPermissions("sys:innerWorkingGroup:tree:delete")
@AutoLog(value = "内部工作组-通过id删除")
@ApiOperation(value="内部工作组-通过id删除", notes="内部工作组-通过id删除")
@PostMapping(value = "/delete")
public Result<T> delete(@RequestBody Map<String, String> map) {
@AutoLog(value = "内部工作组-通过id删除工作组")
@ApiOperation(value="内部工作组-通过id删除工作组", notes="内部工作组-通过id删除工作组")
@PostMapping(value = "/deleteWorkGroup")
public Result<T> deleteWorkGroup(@RequestBody Map<String, String> map) {
if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
lawsWorkingGroupUserService.checkAuth(map.get("id"));
//不能删除根节点
LawsWorkingGroup group = lawsWorkingGroupService.getById(map.get("id"));
if (StringUtils.isBlank(group.getPid())){
@@ -137,5 +183,31 @@ public class LawsWorkingGroupController extends JeroController<LawsWorkingGroup,
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
/**
* 通过id删除
*/
@RequiresPermissions("sys:innerWorkingGroup:tree:delete")
@AutoLog(value = "内部工作组-通过id删除")
@ApiOperation(value="内部工作组-通过id删除", notes="内部工作组-通过id删除")
@PostMapping(value = "/delete")
public Result<T> delete(@RequestBody Map<String, String> map) {
if(!map.containsKey("id") || StringUtils.isEmpty(map.get("id"))){
throw new JeroBootException(ResultCommon.PLEASE_SELECT_DATA);
}
//不能删除根节点
LawsWorkingGroup group = lawsWorkingGroupService.getById(map.get("id"));
if (StringUtils.isBlank(group.getPid())){
throw new JeroBootException(ResultCommon.THE_TOPLEVEL_GROUP_CANNOT_BE_DELETED);
}
List<String> ids = new ArrayList<>();
List<LawsWorkingGroup> list = lawsWorkingGroupService.realList();
ids = lawsWorkingGroupService.allChildIdById(list, map.get("id"), ids);
if (ids.size() > 0){
LambdaUpdateWrapper<LawsWorkingGroup> wrapper = new LambdaUpdateWrapper<>();
wrapper.in(LawsWorkingGroup::getId, ids);
wrapper.set(LawsWorkingGroup::getDelFlag, CommonConstant.DEL_FLAG_1.toString());
lawsWorkingGroupService.update(wrapper);
}
return Result.OK(MessageUtils.getMessage(ResultCommon.OK));
}
}
@@ -176,15 +176,15 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
lawsWorkingGroupUserService.checkAuth(workingGroupId);
// 上传文件名格式不正确
if (fileName.lastIndexOf(".") != -1 && !".xlsx".equals(fileName.substring(fileName.lastIndexOf(".")))) {
throw new JeroBootException(ResultCommon.PLEASE_USE_A_FILE_WITH_THE_SUFFIX_XLSX);
if (fileName.lastIndexOf(".") != -1 && !".xls".equals(fileName.substring(fileName.lastIndexOf(".")))) {
throw new JeroBootException(ResultCommon.PLEASE_USE_A_FILE_WITH_THE_SUFFIX_XLS);
}
boolean b;
try {
b = ImportExcelUtil.checkTemplateTitle(file, LawsWorkingGroupUserImport.class, 0, 0);
} catch (Exception e) {
e.printStackTrace();
throw new JeroBootException(ResultCommon.PLEASE_USE_A_FILE_WITH_THE_SUFFIX_XLSX);
throw new JeroBootException(ResultCommon.PLEASE_USE_A_FILE_WITH_THE_SUFFIX_XLS);
}
// 校验excel 字段是否正确
if (!b) {
@@ -259,7 +259,7 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
return MessageUtils.getMessage(ResultCommon.THE_JOB_NUMBER_CANNOT_BE_EMPTY_EXPORT, (i + 2));
}
if (StringUtils.isBlank(realname)) {
return "第(" + (i + 2) + ")行,姓名不能为空";
return MessageUtils.getMessage(ResultCommon.THE_REAL_NAME_CANNOT_BE_EMPTY_EXPORT, (i + 2));
}
if(!CollectionUtils.isEmpty(listSysUser)){
String finalUsername = username;
@@ -269,7 +269,7 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
}
username = op.get().getId();
if(!Objects.equals(op.get().getRealname(),realname)){
return "第(" + (i + 2) + ")行,姓名与工号不匹配";
return MessageUtils.getMessage(ResultCommon.THE_REAL_NAME_AND_JOB_NUMBER_MISMATCH_EXPORT, (i + 2));
}
}
if (!existingWorkNos.add(username)) {
@@ -293,8 +293,7 @@ public class LawsWorkingGroupUserController extends JeroController<LawsWorkingGr
mv.addObject(FILE_NAME, title);
mv.addObject(CLASS, LawsWorkingGroupUserImport.class);
ExportParams exportParams = new ExportParams(null, title);
// 导出xlsx
exportParams.setType(ExcelType.XSSF);
// 导出xls
mv.addObject(PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, new ArrayList<T>());
return mv;
@@ -176,15 +176,11 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl<LawsWorkingGrou
if(Objects.isNull(lawsWorkingGroup)){
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
LawsWorkingGroup lawsWorkingGroupPid = lawsWorkingGroupService.queryById(lawsWorkingGroup.getPid());
if(Objects.isNull(lawsWorkingGroupPid)){
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_DATA_FOUND);
}
if(!Objects.equals(lawsWorkingGroupPid.getLevel(),2)){
if(!Objects.equals(lawsWorkingGroup.getLevel(),2) && !Objects.equals(lawsWorkingGroup.getLevel(),3)){
throw new JeroBootException(ResultCommon.HORIZONTAL_TRANSGRESSION);
}
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!Objects.equals(lawsWorkingGroupPid.getUserId(),loginUser.getId())){
if(!Objects.equals(lawsWorkingGroup.getUserId(),loginUser.getId())){
throw new JeroBootException(ResultCommon.HORIZONTAL_TRANSGRESSION);
}
}