chenshudong 4 mēneši atpakaļ
vecāks
revīzija
602e83b6ba

+ 72 - 71
airport-admin/src/main/java/com/sundot/airport/web/controller/check/CheckTaskController.java

@@ -2,17 +2,16 @@ package com.sundot.airport.web.controller.check;
2 2
 
3 3
 import java.util.Collections;
4 4
 import java.util.List;
5
-import java.util.stream.Collectors;
6 5
 import javax.servlet.http.HttpServletResponse;
7 6
 
8 7
 import cn.hutool.core.collection.CollUtil;
9 8
 import cn.hutool.core.util.StrUtil;
10
-import com.sundot.airport.common.core.domain.entity.SysRole;
9
+import com.sundot.airport.common.core.domain.DataPermissionResult;
11 10
 import com.sundot.airport.common.enums.CheckLevelEnum;
12 11
 import com.sundot.airport.common.enums.CheckTaskStatusEnum;
13
-import com.sundot.airport.common.enums.RoleTypeEnum;
14 12
 import com.sundot.airport.common.enums.SourceTypeEnum;
15 13
 import com.sundot.airport.common.utils.SecurityUtils;
14
+import com.sundot.airport.web.core.utils.DataPermissionUtils;
16 15
 import org.springframework.security.access.prepost.PreAuthorize;
17 16
 import org.springframework.beans.factory.annotation.Autowired;
18 17
 import org.springframework.web.bind.annotation.GetMapping;
@@ -51,45 +50,47 @@ public class CheckTaskController extends BaseController {
51 50
     @PreAuthorize("@ss.hasPermi('check:checkTask:list')")
52 51
     @GetMapping("/list")
53 52
     public TableDataInfo list(CheckTask checkTask, @RequestHeader(value = "X-Request-Source", defaultValue = "mobile") String source) {
53
+        DataPermissionResult dataPermission = DataPermissionUtils.getDataPermission(getUserId(), getDeptId(), getLoginUser());
54 54
         startPage();
55 55
         List<CheckTask> list;
56
-        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
57
-        if (CollUtil.isEmpty(roles)) {
58
-            return getDataTable(Collections.emptyList());
59
-        }
60
-        List<String> roleKeyList = roles.stream().map(SysRole::getRoleKey).collect(Collectors.toList());
61 56
         if (StrUtil.equals(SourceTypeEnum.mobile.getCode(), source)) {
62
-            if (roleKeyList.contains(RoleTypeEnum.admin.getCode())) {
63
-                checkTask.setCheckLevel(null);
64
-            } else if (roleKeyList.contains(RoleTypeEnum.test.getCode()) || roleKeyList.contains(RoleTypeEnum.zhijianke.getCode())) {
65
-                checkTask.setCheckLevel(CheckLevelEnum.STATION_LEVEL.getCode());
66
-            } else if (roleKeyList.contains(RoleTypeEnum.jingli.getCode()) || roleKeyList.contains(RoleTypeEnum.xingzheng.getCode())) {
67
-                checkTask.setCheckLevel(CheckLevelEnum.BRIGADE_LEVEL.getCode());
68
-            } else if (roleKeyList.contains(RoleTypeEnum.kezhang.getCode())) {
69
-                checkTask.setCheckLevel(CheckLevelEnum.DEPARTMENT_LEVEL.getCode());
70
-                checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getDeptId());
71
-            } else if (roleKeyList.contains(RoleTypeEnum.banzuzhang.getCode())) {
72
-                checkTask.setCheckLevel(CheckLevelEnum.TEAM_LEVEL.getCode());
73
-                checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getParentId());
74
-            } else {
75
-                return getDataTable(Collections.emptyList());
57
+            switch (dataPermission.getPermissionType()) {
58
+                case ALL:
59
+                    checkTask.setCheckLevel(null);
60
+                    break;
61
+                case STATION:
62
+                    checkTask.setCheckLevel(CheckLevelEnum.STATION_LEVEL.getCode());
63
+                    break;
64
+                case BRIGADE:
65
+                    checkTask.setCheckLevel(CheckLevelEnum.BRIGADE_LEVEL.getCode());
66
+                    break;
67
+                case DEPARTMENT:
68
+                    checkTask.setCheckLevel(CheckLevelEnum.DEPARTMENT_LEVEL.getCode());
69
+                    checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getDeptId());
70
+                    break;
71
+                case TEAM:
72
+                    checkTask.setCheckLevel(CheckLevelEnum.TEAM_LEVEL.getCode());
73
+                    checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getParentId());
74
+                    break;
75
+                default:
76
+                    return getDataTable(Collections.emptyList());
76 77
             }
77 78
             list = checkTaskService.selectCheckTaskList(checkTask);
78 79
         } else if (StrUtil.equals(SourceTypeEnum.web.getCode(), source)) {
79
-            if (roleKeyList.contains(RoleTypeEnum.admin.getCode())) {
80
-                list = checkTaskService.selectCheckTaskList(checkTask);
81
-            } else if (roleKeyList.contains(RoleTypeEnum.test.getCode()) || roleKeyList.contains(RoleTypeEnum.zhijianke.getCode())) {
82
-                list = checkTaskService.selectCheckTaskList(checkTask);
83
-            } else if (roleKeyList.contains(RoleTypeEnum.jingli.getCode()) || roleKeyList.contains(RoleTypeEnum.xingzheng.getCode())) {
84
-                checkTask.setCheckLevel(CheckLevelEnum.BRIGADE_LEVEL.getCode());
85
-                list = checkTaskService.selectCheckTaskList(checkTask);
86
-            } else if (roleKeyList.contains(RoleTypeEnum.kezhang.getCode())) {
87
-                checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getDeptId());
88
-                list = checkTaskService.selectCheckTaskListWeb(checkTask);
89
-            } else if (roleKeyList.contains(RoleTypeEnum.banzuzhang.getCode())) {
90
-                return getDataTable(Collections.emptyList());
91
-            } else {
92
-                return getDataTable(Collections.emptyList());
80
+            switch (dataPermission.getPermissionType()) {
81
+                case ALL:
82
+                case STATION:
83
+                    list = checkTaskService.selectCheckTaskList(checkTask);
84
+                    break;
85
+                case BRIGADE:
86
+                    list = checkTaskService.selectCheckTaskListBrigadeWeb(checkTask);
87
+                    break;
88
+                case DEPARTMENT:
89
+                    checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getDeptId());
90
+                    list = checkTaskService.selectCheckTaskListWeb(checkTask);
91
+                    break;
92
+                default:
93
+                    return getDataTable(Collections.emptyList());
93 94
             }
94 95
         } else {
95 96
             return getDataTable(Collections.emptyList());
@@ -104,25 +105,23 @@ public class CheckTaskController extends BaseController {
104 105
     @Log(title = "检查任务", businessType = BusinessType.EXPORT)
105 106
     @PostMapping("/export")
106 107
     public void export(HttpServletResponse response, CheckTask checkTask) {
107
-        List<CheckTask> list = Collections.emptyList();
108
-        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
109
-        if (CollUtil.isNotEmpty(roles)) {
110
-            List<String> roleKeyList = roles.stream().map(SysRole::getRoleKey).collect(Collectors.toList());
111
-            if (roleKeyList.contains(RoleTypeEnum.admin.getCode())) {
112
-                list = checkTaskService.selectCheckTaskList(checkTask);
113
-            } else if (roleKeyList.contains(RoleTypeEnum.test.getCode()) || roleKeyList.contains(RoleTypeEnum.zhijianke.getCode())) {
114
-                list = checkTaskService.selectCheckTaskList(checkTask);
115
-            } else if (roleKeyList.contains(RoleTypeEnum.jingli.getCode()) || roleKeyList.contains(RoleTypeEnum.xingzheng.getCode())) {
116
-                checkTask.setCheckLevel(CheckLevelEnum.BRIGADE_LEVEL.getCode());
108
+        DataPermissionResult dataPermission = DataPermissionUtils.getDataPermission(getUserId(), getDeptId(), getLoginUser());
109
+        List<CheckTask> list;
110
+        switch (dataPermission.getPermissionType()) {
111
+            case ALL:
112
+            case STATION:
117 113
                 list = checkTaskService.selectCheckTaskList(checkTask);
118
-            } else if (roleKeyList.contains(RoleTypeEnum.kezhang.getCode())) {
119
-                checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getDeptId());
114
+                break;
115
+            case BRIGADE:
116
+                list = checkTaskService.selectCheckTaskListBrigadeWeb(checkTask);
117
+                break;
118
+            case DEPARTMENT:
119
+                checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getDeptId());
120 120
                 list = checkTaskService.selectCheckTaskListWeb(checkTask);
121
-            } else if (roleKeyList.contains(RoleTypeEnum.banzuzhang.getCode())) {
122
-                list = Collections.emptyList();
123
-            } else {
121
+                break;
122
+            default:
124 123
                 list = Collections.emptyList();
125
-            }
124
+                break;
126 125
         }
127 126
         ExcelUtil<CheckTask> util = new ExcelUtil<CheckTask>(CheckTask.class);
128 127
         util.exportExcel(response, list, "检查任务数据");
@@ -177,27 +176,29 @@ public class CheckTaskController extends BaseController {
177 176
     @PreAuthorize("@ss.hasPermi('check:checkTask:list')")
178 177
     @GetMapping("/unReadNum")
179 178
     public AjaxResult unReadNum() {
180
-        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
181
-        if (CollUtil.isEmpty(roles)) {
182
-            return success(0);
183
-        }
179
+        DataPermissionResult dataPermission = DataPermissionUtils.getDataPermission(getUserId(), getDeptId(), getLoginUser());
184 180
         CheckTask checkTask = new CheckTask();
185 181
         checkTask.setStatus(CheckTaskStatusEnum.IN_PROGRESS.getCode());
186
-        List<String> roleKeyList = roles.stream().map(SysRole::getRoleKey).collect(Collectors.toList());
187
-        if (roleKeyList.contains(RoleTypeEnum.admin.getCode())) {
188
-            checkTask.setCheckLevel(null);
189
-        } else if (roleKeyList.contains(RoleTypeEnum.test.getCode()) || roleKeyList.contains(RoleTypeEnum.zhijianke.getCode())) {
190
-            checkTask.setCheckLevel(CheckLevelEnum.STATION_LEVEL.getCode());
191
-        } else if (roleKeyList.contains(RoleTypeEnum.jingli.getCode()) || roleKeyList.contains(RoleTypeEnum.xingzheng.getCode())) {
192
-            checkTask.setCheckLevel(CheckLevelEnum.BRIGADE_LEVEL.getCode());
193
-        } else if (roleKeyList.contains(RoleTypeEnum.kezhang.getCode())) {
194
-            checkTask.setCheckLevel(CheckLevelEnum.DEPARTMENT_LEVEL.getCode());
195
-            checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getDeptId());
196
-        } else if (roleKeyList.contains(RoleTypeEnum.banzuzhang.getCode())) {
197
-            checkTask.setCheckLevel(CheckLevelEnum.TEAM_LEVEL.getCode());
198
-            checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getParentId());
199
-        } else {
200
-            return success(0);
182
+        switch (dataPermission.getPermissionType()) {
183
+            case ALL:
184
+                checkTask.setCheckLevel(null);
185
+                break;
186
+            case STATION:
187
+                checkTask.setCheckLevel(CheckLevelEnum.STATION_LEVEL.getCode());
188
+                break;
189
+            case BRIGADE:
190
+                checkTask.setCheckLevel(CheckLevelEnum.BRIGADE_LEVEL.getCode());
191
+                break;
192
+            case DEPARTMENT:
193
+                checkTask.setCheckLevel(CheckLevelEnum.DEPARTMENT_LEVEL.getCode());
194
+                checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getDeptId());
195
+                break;
196
+            case TEAM:
197
+                checkTask.setCheckLevel(CheckLevelEnum.TEAM_LEVEL.getCode());
198
+                checkTask.setSelfCheckDeptId(SecurityUtils.getLoginUser().getUser().getDept().getParentId());
199
+                break;
200
+            default:
201
+                return success(0);
201 202
         }
202 203
         List<CheckTask> list = checkTaskService.selectCheckTaskList(checkTask);
203 204
         if (CollUtil.isEmpty(list)) {

+ 8 - 0
airport-check/src/main/java/com/sundot/airport/check/mapper/CheckTaskMapper.java

@@ -67,4 +67,12 @@ public interface CheckTaskMapper extends BaseMapper<CheckTask> {
67 67
      * @return 检查任务集合
68 68
      */
69 69
     public List<CheckTask> selectCheckTaskListWeb(CheckTask checkTask);
70
+
71
+    /**
72
+     * 查询检查任务列表web端
73
+     *
74
+     * @param checkTask 检查任务
75
+     * @return 检查任务集合
76
+     */
77
+    public List<CheckTask> selectCheckTaskListBrigadeWeb(CheckTask checkTask);
70 78
 }

+ 8 - 0
airport-check/src/main/java/com/sundot/airport/check/service/ICheckTaskService.java

@@ -75,4 +75,12 @@ public interface ICheckTaskService extends IService<CheckTask> {
75 75
      * @return 检查任务集合
76 76
      */
77 77
     public List<CheckTask> selectCheckTaskListWeb(CheckTask checkTask);
78
+
79
+    /**
80
+     * 查询检查任务列表web端
81
+     *
82
+     * @param checkTask 检查任务
83
+     * @return 检查任务集合
84
+     */
85
+    public List<CheckTask> selectCheckTaskListBrigadeWeb(CheckTask checkTask);
78 86
 }

+ 29 - 0
airport-check/src/main/java/com/sundot/airport/check/service/impl/CheckTaskServiceImpl.java

@@ -294,6 +294,35 @@ public class CheckTaskServiceImpl extends ServiceImpl<CheckTaskMapper, CheckTask
294 294
     }
295 295
 
296 296
     /**
297
+     * 查询检查任务列表web端
298
+     *
299
+     * @param checkTask 检查任务
300
+     * @return 检查任务
301
+     */
302
+    @Override
303
+    public List<CheckTask> selectCheckTaskListBrigadeWeb(CheckTask checkTask) {
304
+        List<CheckTask> result = checkTaskMapper.selectCheckTaskListBrigadeWeb(checkTask);
305
+        if (CollUtil.isNotEmpty(result)) {
306
+            Date currentDate = getDateWithoutTime(DateUtils.getNowDate());
307
+            result.forEach(item -> {
308
+                if (currentDate.before(item.getCheckStartTime())) {
309
+                    item.setStatus(CheckTaskStatusEnum.PENDING_EXECUTION.getCode());
310
+                    item.setStatusDesc(CheckTaskStatusEnum.PENDING_EXECUTION.getDesc());
311
+                } else if (currentDate.after(item.getCheckEndTime())) {
312
+                    item.setStatus(CheckTaskStatusEnum.COMPLETED.getCode());
313
+                    item.setStatusDesc(CheckTaskStatusEnum.COMPLETED.getDesc());
314
+                } else {
315
+                    item.setStatus(CheckTaskStatusEnum.IN_PROGRESS.getCode());
316
+                    item.setStatusDesc(CheckTaskStatusEnum.IN_PROGRESS.getDesc());
317
+                }
318
+            });
319
+            //是否已读处理
320
+            checkIsRead(result);
321
+        }
322
+        return result;
323
+    }
324
+
325
+    /**
297 326
      * 转换为树形结构
298 327
      */
299 328
     public List<CheckProjectItemTreeVo> convertToTree(List<CheckProjectItemVo> itemList) {

+ 26 - 0
airport-check/src/main/resources/mapper/check/CheckTaskMapper.xml

@@ -283,4 +283,30 @@
283 283
         order by create_time desc
284 284
     </select>
285 285
 
286
+    <select id="selectCheckTaskListBrigadeWeb" parameterType="CheckTask" resultMap="CheckTaskResult">
287
+        <include refid="selectCheckTaskVo"/>
288
+        <where>
289
+            <if test="taskCode != null  and taskCode != ''">and task_code = #{taskCode}</if>
290
+            <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if>
291
+            <choose>
292
+                <when test="status == 'PENDING_EXECUTION'">
293
+                    and current_date() <![CDATA[<]]> check_start_time
294
+                </when>
295
+                <when test="status == 'COMPLETED'">
296
+                    and current_date() <![CDATA[>]]> check_end_time
297
+                </when>
298
+                <when test="status == 'IN_PROGRESS'">
299
+                    and current_date() <![CDATA[>=]]> check_start_time
300
+                    and current_date() <![CDATA[<=]]> check_end_time
301
+                </when>
302
+                <otherwise>
303
+
304
+                </otherwise>
305
+            </choose>
306
+            <if test="checkedLevel != null  and checkedLevel != ''">and checked_level = #{checkedLevel}</if>
307
+            and check_level in ('BRIGADE_LEVEL','DEPARTMENT_LEVEL', 'TEAM_LEVEL')
308
+        </where>
309
+        order by create_time desc
310
+    </select>
311
+
286 312
 </mapper>