jinlin
2024-06-24 3ca8ce266bf5b06556d80c78b31405e7a54aa4e5
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
package com.zt.common.utils;
 
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ReflectUtil;
import com.alibaba.fastjson.JSONObject;
import com.zt.common.entity.MapData;
import org.apache.commons.lang3.StringUtils;
 
import java.lang.reflect.Field;
import java.text.NumberFormat;
import java.util.*;
import java.util.stream.Collectors;
 
 
public class CommonUtils {
 
    public static String getPercent(Integer diliverNum, Integer queryMailNum) {
        String percent;
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(2);
        percent = numberFormat.format((float) diliverNum / (float) queryMailNum * 100);
        return percent;
    }
 
    public static String replaceStringSign(String value, String sign) {
        value = value.replace(",", sign);
        value = value.replace(";", sign);
        value = value.replace("、", sign);
        value = value.replace(";", sign);
        return value;
    }
 
    public static String getValueBykey(Map<String, String> map, String keys) {
        String result = "";
        if (StringUtils.isNotBlank(keys)) {
            keys = replaceStringSign(keys, ",");
            String[] keyArr = keys.split(",");
            for (String s : keyArr) {
                if (StringUtils.isNotBlank(s)) {
                    String name = map.get(s);
                    if (StringUtils.isNotBlank(name)) {
                        result += name + ",";
                    }
                }
            }
        }
        if (result != "") {
            result = result.substring(0, result.length() - 1);
        }
        return result;
    }
 
    public static String getNamesByIds(List<MapData> list, String keys, Boolean multi) {
        String result = "";
        if (StringUtils.isNotBlank(keys)) {
            keys = replaceStringSign(keys, ",");
            String[] keyArr = keys.split(",");
            for (String s : keyArr) {
                if (StringUtils.isNotBlank(s)) {
                    List<MapData> mapData = list.stream().filter(bean -> Objects.nonNull(bean)).filter(bean -> s.equals(bean.getId())).collect(Collectors.toList());
                    if (mapData.size() > 0) {
                        if (multi)
                            result += mapData.get(0).getName() + ",";
                        else
                            return mapData.get(0).getName();
                    }
                }
            }
        }
        if (result != "") {
            result = result.substring(0, result.length() - 1);
        }
        return result;
    }
 
    public static String getIdsByNames(List<MapData> list, String keys, Boolean multi) {
        String result = "";
        if (StringUtils.isNotBlank(keys)) {
            keys = replaceStringSign(keys, ",");
            String[] keyArr = keys.split(",");
            for (String s : keyArr) {
                if (StringUtils.isNotBlank(s)) {
                    List<MapData> mapData = list.stream().filter(bean -> Objects.nonNull(bean)).filter(bean -> s.equals(bean.getName())).collect(Collectors.toList());
                    if (mapData.size() > 0) {
                        if (multi)
                            result += mapData.get(0).getId() + ",";
                        else
                            return mapData.get(0).getId();
                    }
                }
            }
        }
        if (result != "") {
            result = result.substring(0, result.length() - 1);
        }
        return result;
    }
 
    public static String padRight(String src, int len, char ch) {
        int diff = len - src.length();
        if (diff <= 0) {
            return src;
        }
 
        char[] charr = new char[len];
        System.arraycopy(src.toCharArray(), 0, charr, 0, src.length());
        for (int i = src.length(); i < len; i++) {
            charr[i] = ch;
        }
        return new String(charr);
    }
 
    /**
     * 左补齐
     */
    public static String padLeft(String src, int len, char ch) {
        int diff = len - src.length();
        if (diff <= 0) {
            return src;
        }
 
        char[] charr = new char[len];
        System.arraycopy(src.toCharArray(), 0, charr, diff, src.length());
        for (int i = 0; i < diff; i++) {
            charr[i] = ch;
        }
        return new String(charr);
    }
 
    public static boolean isJson(String content) {
        if (StringUtils.isEmpty(content)) {
            return false;
        }
        boolean isJsonObject = true;
        boolean isJsonArray = true;
        try {
            JSONObject.parseObject(content);
        } catch (Exception e) {
            isJsonObject = false;
        }
        try {
            JSONObject.parseArray(content);
        } catch (Exception e) {
            isJsonArray = false;
        }
        if (!isJsonObject && !isJsonArray) { //不是json格式
            return false;
        }
        return true;
    }
 
 
    public static String getDatePoor(Date endDate, Date beginDate) {
 
        long nd = 1000 * 24 * 60 * 60;
        long nh = 1000 * 60 * 60;
        long nm = 1000 * 60;
        long ns = 1000;
        // long ns = 1000;
        // 获得两个时间的毫秒时间差异
        long diff = endDate.getTime() - beginDate.getTime();
        // 计算差多少天
        long day = diff / nd;
        // 计算差多少小时
        long hour = diff % nd / nh;
        // 计算差多少分钟
        long min = diff % nd % nh / nm;
        // 计算差多少秒//输出结果
        long sec = diff % nd % nh % nm / ns;
        long msec = diff % 1000;
        return hour + "小时" + min + "分钟" + sec + "秒" + msec + "毫秒";
    }
 
    public static boolean isActureChangeData(Object pageData, Object dbData) {
        if (dbData == null)
            return true;
        Field[] fields = ReflectUtil.getFields(pageData.getClass());
        for (Field field : fields) {
            field.setAccessible(true);
            String fieldName = field.getName();
            String typeName = field.getType().getName().toLowerCase();
            String fieldsList = "serialversionuid,updater,updatedate,creator,createdate,tenantid,companyid,files,isdelete";
            if (!typeName.contains("com.zt.life.modules") && !typeName.equals("java.util.List") && !fieldsList.contains(fieldName.toLowerCase())) {
                Object staticFieldValue = ReflectUtil.getFieldValue(pageData, field.getName());
                try {
                    Object staticFieldValue2 = ReflectUtil.getFieldValue(dbData, field.getName());
                    if ("java.lang.string,java.lang.long".contains(typeName)) {
                        if ((staticFieldValue == null && staticFieldValue2 != null) || (staticFieldValue != null && staticFieldValue2 == null)) {
                            System.out.println(fieldName);
                            System.out.println(staticFieldValue);
                            System.out.println(staticFieldValue2);
                            return true;
                        }
                        if (staticFieldValue != null && staticFieldValue2 != null) {
                            if (!staticFieldValue.equals(staticFieldValue2)) {
                                System.out.println(fieldName);
                                System.out.println(staticFieldValue);
                                System.out.println(staticFieldValue2);
                                return true;
                            }
                        }
                    } else {
                        if (staticFieldValue != staticFieldValue2) {
                            System.out.println(fieldName);
                            System.out.println(staticFieldValue);
                            System.out.println(staticFieldValue2);
                            return true;
                        }
                    }
                } catch (Exception ex) {
 
                }
            }
        }
        return false;
    }
}