From 978f74777e10a0531c4413ab36320d2be36f42ea Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期一, 18 九月 2023 21:06:18 +0800 Subject: [PATCH] PDMjar包代码提交 --- Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 235 insertions(+), 3 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java index 4cc6e8d..4e65f82 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/VciBaseUtil.java @@ -5,18 +5,27 @@ // (powered by FernFlower decompiler) // +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.starter.web.enumpck.BooleanEnum; +import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; import com.vci.ubcs.starter.web.pagemodel.SessionInfo; import com.vci.ubcs.starter.web.toolmodel.DateConverter; +import com.vci.ubcs.starter.web.wrapper.VciQueryWrapperForDO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springblade.core.tool.utils.Func; import org.springframework.util.CollectionUtils; import org.springframework.util.ResourceUtils; +import java.beans.BeanInfo; import java.beans.IntrospectionException; +import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.io.File; import java.io.IOException; @@ -44,7 +53,12 @@ } public static String getPk() { - return UUID.randomUUID().toString(); + return String.valueOf(getPKLong(1,1)); + } + + public static Long getPKLong(long workerId,long dataCenterId){ + Snowflake snowflake = IdUtil.getSnowflake(workerId,dataCenterId); + return snowflake.nextId(); } public static int getIntForBoolean(boolean b) { @@ -76,7 +90,21 @@ return 0; } } - + public static SessionInfo getCurrentUserSessionInfo() throws VciBaseException { + SessionInfo si = getCurrentUserSessionInfoNotException(); + if (si == null) { + throw new VciBaseException("noLogin", new String[]{"娌℃湁褰撳墠鐢ㄦ埛淇℃伅"}); + } else { + return si; + } + } + /** + * 璁剧疆褰撳墠绾跨▼涓殑鐢ㄦ埛瀵硅薄 + * @param sessionInfo 鐢ㄦ埛瀵硅薄 + */ + public static void setCurrentUserSessionInfo(SessionInfo sessionInfo){ + WebThreadLocalUtil.getCurrentUserSessionInfoInThread().set(sessionInfo); + } public static long getLong(String s) { long l = 0L; if (s == null) { @@ -89,6 +117,11 @@ return 0L; } } + } + + public static Integer getCurrentUserSecret() { + SessionInfo currentUserSession = getCurrentUserSessionInfoNotException(); + return currentUserSession != null ? getInt(currentUserSession.getUserSecret()) : UserSecretEnum.NONE.getValue(); } public static float getFloat(String s) { @@ -135,6 +168,11 @@ return 0.0D; } } + } + + + public static boolean getBoolean(String s) { + return BooleanEnum.TRUE.getValue().equals(s); } public static String removeComma(String s) { @@ -829,6 +867,10 @@ return allField; } + public static String getTableName(String btmname) { + return (VciQueryWrapperForDO.USER_TABLE_COMPATIBILITY ? "vcibt_" : "pl_code_") + btmname.trim().toLowerCase(); + } + public static Field getTsField(Class c) { List<Field> allField = getAllFieldForObj(c); if (allField != null && allField.size() > 0) { @@ -1100,7 +1142,38 @@ public static <T> Collection<Collection<T>> switchCollectionForOracleIn(Collection<T> list) { return switchCollectionForOracleIn(list, 500); } - + /** + * oracle in 鏌ヨ涓嶈兘瓒呰繃1000锛岃浆鎹竴涓嬮泦鍚� + * 鐢变簬SQL璇彞1000涓彲鑳藉緢闀匡紝瓒呰繃oracle10g锛屾墍浠ョ壓鐗叉�ц兘鍒嗛厤涓�500涓暟缁� + * @param list 闇�瑕佽浆鎹㈢殑鍒楄〃鍐呭 + * @return 鍒嗙粍鍚庣殑list + */ + public static <T> List<List<T>> switchListForOracleIn(List<T> list) { + List<List<T>> listHasList = new ArrayList<List<T>>(); + if(list == null){ + return listHasList; + } + List<T> newList = new ArrayList<T>(); + for(Object obj : list){ + //涓轰簡璁﹍ist杩樺彲浠ユ坊鍔犲唴瀹癸紝鍥犱负浣跨敤sublist鍚庯紝list涓嶈兘鍐岮dd浜� + newList.add((T)obj); + } + int muti = 1; + if(newList.size() >500){ + int balance = newList.size()%500; + muti = (newList.size() - balance)/500 + (balance == 0?0:1); + } + for(int i = 0 ; i < muti; i ++){ + int start = i*500; + int end = start + 500; + if(i == muti-1 || end >newList.size() ){ + end = newList.size(); + } + List subList = newList.subList(start,end); + listHasList.add(subList); + } + return listHasList; + } public static <T> Collection<Collection<T>> switchCollectionForOracleIn(Collection<T> collection, int preSize) { Collection<Collection<T>> listHasList = new ArrayList(); if (collection == null) { @@ -1199,5 +1272,164 @@ } + public static void setValueForField(String fieldName, Object obj, String value) { + try { + Field field = getFieldForObject(fieldName, obj); + if (field != null) { + setValueForField(field, obj, value); + } + } catch (Exception var4) { + if (log.isErrorEnabled()) { + log.error("璁剧疆灞炴�х殑鍊煎嚭閿欎簡閿欒", var4); + } + } + + } + + /** + * 灏� JavaBean瀵硅薄杞寲涓� Map + * @author wyply115 + * @param bean 瑕佽浆鍖栫殑绫诲瀷 + * @return Map瀵硅薄 + * @version 2016骞�3鏈�20鏃� 11:03:01 + */ + public static Map convertBean2Map(Object bean,Set<String> existFild) throws Exception { + Class type = bean.getClass(); + Map returnMap = new HashMap(); + BeanInfo beanInfo = Introspector.getBeanInfo(type); + PropertyDescriptor[] propertyDescriptors = beanInfo + .getPropertyDescriptors(); + Field[] declaredFields = type.getDeclaredFields(); + Map<String, String> fieldMap = new HashMap(); + String existField = ""; + if(existFild == null){ + existFild = new HashSet<>(); + } + for (Field declaredField : declaredFields) { + declaredField.setAccessible(true); + + // 鑾峰彇瀛楁鐨勫�� + boolean isTableField = declaredField.isAnnotationPresent(TableField.class); + if (isTableField) { + TableField tableField = declaredField.getAnnotation(TableField.class); + Boolean fieldValue = tableField.exist(); + if(fieldValue == false){ + existField += declaredField.getName().toLowerCase()+","; + } + String value = tableField.value(); + if(net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils.isNotBlank(value)){ + fieldMap.put(declaredField.getName(), value); + } + } + } + Map mapData = new HashMap<>(); + for (int i = 0, n = propertyDescriptors.length; i <n ; i++) { + PropertyDescriptor descriptor = propertyDescriptors[i]; + String propertyName = descriptor.getName(); + + if (!propertyName.equals("class") && + ((!"".equals(existField) && !existField.contains(propertyName.toLowerCase()+","))||"data".equals(propertyName))) { + Method readMethod = descriptor.getReadMethod(); + Object result = readMethod.invoke(bean, new Object[0]); + + if (result != null) { + if ("data".equals(propertyName)){ + mapData = (Map) result; + }else if(existFild.contains((fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName).toLowerCase())){ + returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName).toLowerCase():propertyName.toLowerCase(), result); + } + } else if(existFild.contains((fieldMap.containsKey(propertyName)?fieldMap.get(propertyName):propertyName).toLowerCase())){ + returnMap.put(fieldMap.containsKey(propertyName)?fieldMap.get(propertyName).toLowerCase():propertyName.toLowerCase(), ""); + } + } + } + //浣滅敤涓昏鐢ㄤ簬宸睲AP涓殑鏁版嵁涓哄噯锛宐ean閲岄潰閬囧埌瀛楁鐩稿悓涓攎ap閲岄潰鏁版嵁涓虹┖锛屽垯浣跨敤bean閲岄潰鐨勫��, +// Map resulMapChild = (Map) mapData; + for (Object o : mapData.keySet()) { + if(existFild == null || existFild.contains(String.valueOf(o).toLowerCase())){ + if((Func.isNotBlank(String.valueOf(returnMap.get(String.valueOf(o).toLowerCase()))) + && returnMap.get(String.valueOf(o).toLowerCase()) !=null) + && Func.isBlank(String.valueOf(mapData.get(o)))){ + continue; + } + returnMap.put(String.valueOf(o).toLowerCase(),mapData.get(o)); + } + } + return returnMap; + } + + public static <T> List<T> mapToBean(List<Map> maps, Class<T> tClass) { + List<T> beanList = new ArrayList<>(); + try { + for (Map map : maps) { + T t = tClass.newInstance(); + BeanInfo beanInfo = Introspector.getBeanInfo(tClass); + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + + for (PropertyDescriptor property : propertyDescriptors) { + + String key = property.getName(); + if ("class".equals(key)) { + continue; + } + +// String sqlField = camelToUnderscore(key); + + + if (map.containsKey(key.toUpperCase(Locale.ROOT))||map.containsKey(key.toLowerCase(Locale.ROOT))) { + try { + Object value=""; + if (map.containsKey(key.toUpperCase(Locale.ROOT))) { + value = map.get(key.toUpperCase()); + }else if(map.containsKey(key.toLowerCase(Locale.ROOT))){ + value = map.get(key.toLowerCase()); + } + // 寰楀埌property瀵瑰簲鐨剆etter鏂规硶 + Method setter = property.getWriteMethod(); + Class<?> type = property.getPropertyType(); + // 寮鸿浆涓哄瓧娈电殑绫诲瀷锛屼笉闇�瑕佹椂鍙互鍘婚櫎锛屼緷璧朿ommons-beanutilss-beanutils + //Object convert = ConvertUtils.convert(String.valueOf(value), type); + //setter.invoke(t, convert); + setter.invoke(t, value); + } catch (Exception e) { + throw new RuntimeException("銆愯祴鍊煎紓甯搞��", e); + } + } + + } + beanList.add(t); + } + } catch (Exception e) { + throw new RuntimeException("銆怣ap杞崲瀹炰綋寮傚父銆�", e); + } + return beanList; +} + + + public static String camelToUnderscore(String name) { + if (name == null && name.length() <= 0) { + return name; + } + StringBuilder sb = new StringBuilder(); + String lowerName = name.toLowerCase(); + for (int i = 0; i < lowerName.length(); i++) { + String nameChar = name.substring(i, i + 1); + String lowerChar = lowerName.substring(i, i + 1); + if (!nameChar.equals(lowerChar)) { + sb.append("_").append(lowerChar); + } else { + sb.append(nameChar); + } + } + + return sb.toString(); + } + public static String intToRomans(int num) { + String M[] = {"", "M", "MM", "MMM"}; + String C[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}; + String X[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}; + String I[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}; + return M[num/1000]+C[(num%1000)/100]+X[(num%100)/10]+I[num%10]; + } } -- Gitblit v1.9.3