| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- package com.uas.eis.utils;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import com.uas.eis.entity.ErrorMsg;
- import net.sf.json.JSONArray;
- import net.sf.json.util.JSONUtils;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.uas.eis.exception.SystemException;
- public class BaseUtil {
-
-
- /**
- * 以抛出异常的方式将信息交给MyExceptionHandler MyExceptionHandler会捕捉信息并传给前台
- * 前台捕捉错误信息,并显示给用户
- *
- * @param error
- * 要在前台显示的信息
- */
- public static void showError(String error) {
- if (error != null && error.length() > 0)
- throw new SystemException(error);
- }
- public static void showError(ErrorMsg errorMsg) {
- if(errorMsg!=null){
- throw new SystemException(errorMsg);
- }
- }
- public static void showError(ErrorMsg errorMsg,String extraMsg) {
- if(errorMsg!=null){
- if (StringUtil.hasText(extraMsg)){
- errorMsg.setErrMsg(extraMsg);
- }
- throw new SystemException(errorMsg);
- }
- }
- /**
- * List集合转化成字符串, null和空字符自动去掉
- *
- * @param list
- * 待转化集合
- * @param ch
- * 分割符
- * @param repeat
- * 是否去重 {true-是、false-否}
- */
- public static String parseList2Str(List<?> list, String ch, boolean repeat) {
- StringBuffer sb = new StringBuffer();
- for (Object s : list) {
- if (s != null && !s.toString().trim().equals("")) {
- if (repeat) {
- if (!sb.toString().contains(s + ch)) {
- sb.append(s);
- sb.append(ch);
- }
- } else {
- sb.append(s);
- sb.append(ch);
- }
- }
- }
- if (sb.length() > 0 && ch.length() > 0) {
- return sb.substring(0, sb.lastIndexOf(ch));
- }
- return sb.toString();
- }
-
- /**
- * 将gridStore解析成maps
- *
- * @param gridStore
- * 字符串形式的grid数据
- * @return map形式的grid数据
- */
- public static List<Map<Object, Object>> parseGridStoreToMaps(String gridStore) {
- List<Map<Object, Object>> list = new ArrayList<Map<Object, Object>>();
- try {
- if (!gridStore.startsWith("[")) {
- gridStore = "[" + gridStore + "]";
- }
- if (gridStore.length() > 409600) {
- list = JacksonUtil.fromJsonArray(gridStore);
- } else {
- list = FlexJsonUtil.fromJsonArray(gridStore, HashMap.class);
- }
- } catch (Exception e) {
- list = JSONUtil.toMapList(gridStore);
- }
- return list;
- }
-
- /**
- * 数组转化成字符串, null和空字符自动去掉
- *
- * @param arr
- * 待转化数组
- * @param ch
- * 分割符
- */
- public static String parseArray2Str(Object[] arr, String ch) {
- StringBuffer sb = new StringBuffer();
- for (Object s : arr) {
- if (s != null && !s.toString().trim().equals("")) {
- sb.append(s);
- sb.append(ch);
- }
- }
- if (sb.length() > 0 && ch.length() > 0) {
- return sb.substring(0, sb.lastIndexOf(ch));
- }
- return sb.toString();
- }
-
-
- /**
- * 数据转换,将传入的数据转成需要调用接口规定的数据格式
- * @param jsonStr 传入的数据
- * @param keyMap UAS与外部系统的键 映射
- * @return
- */
- public static Map<String, Object> jsonToMap(String jsonStr, Map<String, String> keyMap){
- Map<String, Object> map = new HashMap<String, Object>();
- Map<String, Object> jsonMap = JSONObject.parseObject(jsonStr);
- Set<String> set = jsonMap.keySet();
- Iterator<String> it = set.iterator();
- while(it.hasNext()){
- String key = it.next();
- if(keyMap.containsKey(key)){
- map.put(keyMap.get(key), jsonMap.get(key));
- }
- }
- return map;
- }
-
- public static String parseDataToJson(Map<String, Object> formMap,List<Map<String, Object>> gridList){
- JSONObject json = new JSONObject();
- json.put("form", JSON.toJSON(formMap));
- json.put("grid", JSONArray.fromObject(gridList));
- return json.toString();
- }
- /**
- * 将formStore解析成一个map
- *
- * @param formStore
- * 字符串形式的表单数据
- * @return map形式的表单数据
- */
- public static Map<Object, Object> parseFormStoreToMap(String formStore) {
- try {
- return FlexJsonUtil.fromJson(formStore);
- } catch (Exception e) {
- return JSONUtil.toMap(formStore);
- }
- }
- public static String parseMap2Str(Map<?, Object> map) {
- if (map != null) {
- return JacksonUtil.toJson(map);
- }
- return null;
- }
- public static String parseGridStore2Str(List<Map<String, Object>> list) {
- return JacksonUtil.toJsonArray(list);
- }
- /**
- * 把一个list集合的map按指定字段{groupField}分组
- */
- public static Map<Object, List<Map<Object, Object>>> groupMap(List<Map<Object, Object>> maps, String groupField) {
- Map<Object, List<Map<Object, Object>>> set = new HashMap<Object, List<Map<Object, Object>>>();
- List<Map<Object, Object>> list = null;
- for (Map<Object, Object> map : maps) {
- Object key = map.get(groupField);
- if (set.containsKey(key)) {
- list = set.get(key);
- } else {
- list = new ArrayList<Map<Object, Object>>();
- }
- list.add(map);
- set.put(key, list);
- }
- return set;
- }
- public static Map<String, List<Map<String, Object>>> groupsMap(List<Map<String, Object>> maps, Object[] objects) {
- Map<String, List<Map<String, Object>>> set = new HashMap<String, List<Map<String, Object>>>();
- List<Map<String, Object>> list = null;
- String keyValue = null;
- Object value = null;
- for (Map<String, Object> map : maps) {
- keyValue = null;
- for (Object field : objects) {
- if (keyValue != null) {
- keyValue += "#";
- } else {
- keyValue = "";
- }
- value = map.get(field);
- keyValue += value == null ? "" : value;
- }
- // Object key = map.get(groupField);
- if (keyValue != null && !keyValue.equals("") && set.containsKey(keyValue)) {
- list = set.get(keyValue);
- } else {
- list = new ArrayList<Map<String, Object>>();
- }
- list.add(map);
- set.put(keyValue, list);
- }
- return set;
- }
- }
|