From 58a096549021aebe7dab150e75b044692d12feaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Fri, 10 Nov 2023 14:54:37 +0800 Subject: [PATCH] fix:78364 --- .../com/jero/common/api/vo/ResultCommon.java | 4 +- .../LawsWorkingGroupController.java | 114 ++++++++++++++---- .../LawsWorkingGroupUserController.java | 13 +- .../impl/LawsWorkingGroupUserServiceImpl.java | 8 +- .../main/resources/i18n/messages.properties | 4 +- .../resources/i18n/messages_en.properties | 6 +- .../resources/i18n/messages_zh.properties | 6 +- 7 files changed, 117 insertions(+), 38 deletions(-) diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java index 7ce475df..91868bcf 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java @@ -50,11 +50,13 @@ public class ResultCommon { public static final String NUMBER_WORK_NO_ALREADY_EXISTS = "number.work.no.already.exists"; // 工号已存在 public static final String NO_FILES_IMPORTED = "no.files.imported"; // 没有导入文件 public static final String PLEASE_SELECT_A_WORKGROUP_TO_IMPORT = "Please.select.a.workgroup.to.import"; // 请选择工作组进行导入 - public static final String PLEASE_USE_A_FILE_WITH_THE_SUFFIX_XLSX = "please.use.a.file.with.the.suffix.xlsx"; // 文件名格式不正确, 请使用后缀名为.xlsx的文件 + public static final String PLEASE_USE_A_FILE_WITH_THE_SUFFIX_XLS = "please.use.a.file.with.the.suffix.xls"; // 文件名格式不正确, 请使用后缀名为.xls的文件 public static final String IMPORT_DATA_CANNOT_BE_EMPTY = "import.data.cannot.be.empty"; // 导入数据不能为空 public static final String HEADER_INCONSISTENT_WITH_TEMPLATE = "header.inconsistent.with.template"; // 表头与模板不一致 public static final String PLEASE_SELECT_A_WORKGROUP_TO_EXPORT = "please.select.a.workgroup.for.export"; // 请选择工作组进行导出 public static final String THE_JOB_NUMBER_CANNOT_BE_EMPTY_EXPORT = "the.job.number.cannot.be.empty.export"; // 第{0}行,工号不能为空 + public static final String THE_REAL_NAME_CANNOT_BE_EMPTY_EXPORT = "the.real.name.cannot.be.empty.export"; // 第{0}行,姓名不能为空 + public static final String THE_REAL_NAME_AND_JOB_NUMBER_MISMATCH_EXPORT = "the.real.name.and.job.number.mismatch.export"; // 第{0}行,姓名与工号不匹配 public static final String JOB_NUMBER_DOES_NOT_EXIST_EXPORT = "job.number.does.not.exist.export"; // 第{0}行,工号不存在 public static final String DUPLICATE_JOB_NUMBER_EXPORT = "duplicate.job.number.export"; // 第{0}行,工号重复 public static final String CANNOT_CLOSE = "cannot.close"; // 不是待整改已过期的数据不能关闭 diff --git a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupController.java b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupController.java index 0073c7cd..ee0424f5 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupController.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupController.java @@ -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 { @Autowired private ILawsWorkingGroupService lawsWorkingGroupService; + @Resource + private ILawsWorkingGroupUserService lawsWorkingGroupUserService; + + /** * 查询 @@ -97,29 +106,66 @@ public class LawsWorkingGroupController extends JeroController 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 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 edit(@Validated @RequestBody LawsWorkingGroup lawsWorkingGroup) { + @PostMapping(value = "/editWorkGroup") + public Result 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 delete(@RequestBody Map map) { + @AutoLog(value = "内部工作组-通过id删除工作组") + @ApiOperation(value="内部工作组-通过id删除工作组", notes="内部工作组-通过id删除工作组") + @PostMapping(value = "/deleteWorkGroup") + public Result deleteWorkGroup(@RequestBody Map 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 delete(@RequestBody Map 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 ids = new ArrayList<>(); + List list = lawsWorkingGroupService.realList(); + ids = lawsWorkingGroupService.allChildIdById(list, map.get("id"), ids); + if (ids.size() > 0){ + LambdaUpdateWrapper 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)); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java index 9b429ee8..0553e8b5 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/controller/LawsWorkingGroupUserController.java @@ -176,15 +176,15 @@ public class LawsWorkingGroupUserController extends JeroController()); return mv; diff --git a/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java index edf11d23..1243af6e 100644 --- a/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/sys/service/impl/LawsWorkingGroupUserServiceImpl.java @@ -176,15 +176,11 @@ public class LawsWorkingGroupUserServiceImpl extends ServiceImpl