zhitong.yu
7 天以前 7fc9c42987a13c1d8d2159591a5803e70518827f
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.hxzk.gps.controller.Company.Results;
 
import lombok.Data;
import java.util.List;
 
/**
 * 公司删除检查结果
 * @author YuZhiTong
 * @since 2025-01-XX
 */
@Data
public class CompanyDeleteCheckResult {
    
    /**
     * 是否可以删除
     */
    private Boolean canDelete;
    
    /**
     * 检查结果消息
     */
    private String message;
    
    /**
     * 绑定数据统计
     */
    private BindingDataSummary bindingData;
    
    /**
     * 构造函数
     */
    public CompanyDeleteCheckResult() {}
    
    public CompanyDeleteCheckResult(Boolean canDelete, String message, BindingDataSummary bindingData) {
        this.canDelete = canDelete;
        this.message = message;
        this.bindingData = bindingData;
    }
    
    /**
     * 绑定数据汇总
     */
    @Data
    public static class BindingDataSummary {
        /**
         * 部门数量
         */
        private Long departmentCount;
        
        /**
         * 人员数量
         */
        private Long personCount;
        
        /**
         * 用户数量
         */
        private Long userCount;
        
        /**
         * 角色数量
         */
        private Long roleCount;
        
        /**
         * 部门图标数量
         */
        private Long iconCount;
        
        /**
         * 车辆数量
         */
        private Long carCount;
        
        /**
         * 物资数量
         */
        private Long materialCount;
        
        /**
         * 地图数量
         */
        private Long mapCount;
        
        /**
         * 警告统计数量
         */
        private Long warningCount;
        
        /**
         * 是否有任何绑定数据
         */
        public Boolean hasAnyBindingData() {
            return (departmentCount != null && departmentCount > 0) ||
                   (personCount != null && personCount > 0) ||
                   (userCount != null && userCount > 0) ||
                   (roleCount != null && roleCount > 0) ||
                   (iconCount != null && iconCount > 0) ||
                   (carCount != null && carCount > 0) ||
                   (materialCount != null && materialCount > 0) ||
                   (mapCount != null && mapCount > 0) ||
                   (warningCount != null && warningCount > 0);
        }
        
        /**
         * 获取绑定数据总数
         */
        public Long getTotalCount() {
            long total = 0;
            if (departmentCount != null) total += departmentCount;
            if (personCount != null) total += personCount;
            if (userCount != null) total += userCount;
            if (roleCount != null) total += roleCount;
            if (iconCount != null) total += iconCount;
            if (carCount != null) total += carCount;
            if (materialCount != null) total += materialCount;
            if (mapCount != null) total += mapCount;
            if (warningCount != null) total += warningCount;
            return total;
        }
    }
}