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>