From a84c4c31c3b3d7dc33a5ad21d6381d5424d96201 Mon Sep 17 00:00:00 2001 From: Harry Yang <i.take.today@gmail.com> Date: Thu, 5 Jan 2023 21:11:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=85=E6=88=91=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ProcessController.java | 68 +++++++++---------- .../admin/business/process-review.ftl | 6 +- 2 files changed, 33 insertions(+), 41 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java index f6d945d..1104a00 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java @@ -177,10 +177,6 @@ public class ProcessController { */ @GetMapping("/review") public String review(Model model) { - Admin admin = getLoginUser(); - // 超级管理员,只有查看权限,不能编辑和删除除非是自己的 - model.addAttribute("adminId", admin.getId()); - model.addAttribute("isAdmin", isAdministrator(admin)); model.addAttribute("processTypes", ProcessType.values()); return "/admin/business/process-review"; } @@ -662,42 +658,42 @@ public class ProcessController { .withMatcher("projectNo", ExampleMatcher.GenericPropertyMatcher::contains) .withMatcher("projectTitle", ExampleMatcher.GenericPropertyMatcher::contains) .withMatcher("applyPersonName", ExampleMatcher.GenericPropertyMatcher::contains); - - // 只展示自己创建的草稿 Admin admin = getLoginUser(); - if (!isAdministrator(admin)) { - Integer loginUserId = admin.getId(); - if (forAudit) { - return repository.findAll((root, query, cb) -> { - Predicate predicate = QueryByExamplePredicateBuilder.getPredicate(root, cb, Example.of(projectProcess, exampleMatcher)); - // 添加新的条件 -// Predicate equal = cb.equal(root.get("applyPersonId"), loginUserId); - Expression<Integer> findInSet = cb.function("find_in_set", Integer.class, cb.literal(loginUserId), root.get("currentAuditId")); - return cb.and(predicate, cb.greaterThan(findInSet, 0)); - }, pageRequest); - } - else { - // 已办流程 - return repository.findAll((root, query, cb) -> { - Predicate predicate = QueryByExamplePredicateBuilder.getPredicate(root, cb, Example.of(projectProcess, exampleMatcher)); - // 添加新的条件 - Predicate applyPersonId = cb.equal(root.get("applyPersonId"), loginUserId); + Integer loginUserId = admin.getId(); - // 待自己审的 - Expression<Integer> findInSet = cb.function("find_in_set", Integer.class, cb.literal(loginUserId), root.get("currentAuditId")); - Expression<Integer> reviewedIdFindInSet = cb.function("find_in_set", Integer.class, cb.literal(loginUserId), root.get("reviewedId")); - - Predicate or = cb.or(applyPersonId, - cb.greaterThan(reviewedIdFindInSet, 0), - cb.greaterThan(findInSet, 0)); - - return cb.and(predicate, or); - }, pageRequest); - } + // 待我审核 + if (forAudit) { + // 超级管理员也看不到,除非该他审核 + return repository.findAll((root, query, cb) -> { + Predicate predicate = QueryByExamplePredicateBuilder.getPredicate(root, cb, Example.of(projectProcess, exampleMatcher)); + // 添加新的条件 + Expression<Integer> findInSet = cb.function("find_in_set", Integer.class, cb.literal(loginUserId), root.get("currentAuditId")); + return cb.and(predicate, cb.greaterThan(findInSet, 0)); + }, pageRequest); } - // 超级好管理员不需要 - return repository.findAll(Example.of(projectProcess, exampleMatcher), pageRequest); + // 已办流程 + + if (isAdministrator(admin)) { + // 超级好管理员不需要 + return repository.findAll(Example.of(projectProcess, exampleMatcher), pageRequest); + } + + return repository.findAll((root, query, cb) -> { + Predicate predicate = QueryByExamplePredicateBuilder.getPredicate(root, cb, Example.of(projectProcess, exampleMatcher)); + // 添加新的条件 + Predicate applyPersonId = cb.equal(root.get("applyPersonId"), loginUserId); + + // 待自己审的 + Expression<Integer> findInSet = cb.function("find_in_set", Integer.class, cb.literal(loginUserId), root.get("currentAuditId")); + Expression<Integer> reviewedIdFindInSet = cb.function("find_in_set", Integer.class, cb.literal(loginUserId), root.get("reviewedId")); + + Predicate or = cb.or(applyPersonId, + cb.greaterThan(reviewedIdFindInSet, 0), + cb.greaterThan(findInSet, 0)); + + return cb.and(predicate, or); + }, pageRequest); } private boolean isAdministrator(Admin admin) { diff --git a/src/main/resources/templates/admin/business/process-review.ftl b/src/main/resources/templates/admin/business/process-review.ftl index 856631f..d786812 100644 --- a/src/main/resources/templates/admin/business/process-review.ftl +++ b/src/main/resources/templates/admin/business/process-review.ftl @@ -114,11 +114,7 @@ <el-table-column label="操作" fixed="right" width="140"> <template slot-scope="scope"> <el-button type="text" @click="showDetail(scope.row, scope)">查看详情</el-button> - <#if isAdmin> - <el-button type="text" @click="auditProcess(scope.row, scope)">审核</el-button> - <#else> - <el-button type="text" @click="auditProcess(scope.row, scope)">审核</el-button> - </#if> + <el-button type="text" @click="auditProcess(scope.row, scope)">审核</el-button> </template> </el-table-column>