车间能级提升-智能设备管理系统
zhuguifei
2025-02-28 74448f9a9f1f8cb779023db3ea9eda762fc6ad0a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package org.dromara.eims.utils;
 
import org.dromara.common.core.constant.DictConstants;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.eims.domain.bo.EimsRepairReqBo;
import org.dromara.eims.domain.bo.EimsRepairResBo;
 
import java.util.*;
 
/**
 * 自定义数据隔离
 */
public class DataFilterUtil {
 
    //TODO 保持与数据库一直 定义角色类型 operator-操作工 repair-维修工
    private  enum Role {
        operator, repair
    }
 
    private static final DataFilterUtil INSTANCE = new DataFilterUtil();
 
    private DataFilterUtil() {
    }
    public static DataFilterUtil getInstance() {
        return INSTANCE;
    }
    //报修单
    public void filterRepairReq(EimsRepairReqBo bo){
        LoginUser loginUser = LoginHelper.getLoginUser();
        Set<String> rolePermission = loginUser.getRolePermission();
        Map<String, Object> params = bo.getParams();
        List<Long> userList = new ArrayList<>();
        if (rolePermission == null) {
            //没有权限不允许查询数据
            userList.add(-1L);
 
        }else if (rolePermission.contains(Role.operator.name())) {
            //操作工只能查询自己的数据
            userList.add(loginUser.getUserId());
        }else if (rolePermission.contains(Role.repair.name())) {
            //TODO 维修工只能查询未接单状态的报修单(具体状态参考字典repair_req_status)
            bo.setStatus(DictConstants.REPAIR_REQ_STATUS_DETAIL.YIJIEDAN);
        }
        if(userList.size()>0){
            params.put("createBy", userList);
        }
 
    }
 
    //维修工单
    public void filterRepairRes(EimsRepairResBo bo){
        LoginUser loginUser = LoginHelper.getLoginUser();
        Set<String> rolePermission = loginUser.getRolePermission();
        Map<String, Object> params = bo.getParams();
        if (rolePermission == null) {
            //没有权限不允许查询数据
            bo.setReqUser(-1L);
            bo.setResUser(-1L);
 
        }else if (rolePermission.contains(Role.operator.name())) {
            //操作工只能查询自己的数据
            bo.setReqUser(loginUser.getUserId());
        }else if (rolePermission.contains(Role.repair.name())) {
            //TODO 维修工只能查询未接单状态的报修单(具体状态参考字典repair_req_status)
            bo.setResUser(loginUser.getUserId());
        }
    }
 
}