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