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 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 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 = 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 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 = 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; } }