278 lines
8.8 KiB
Java
278 lines
8.8 KiB
Java
|
|
package com.ag.util;
|
|||
|
|
|
|||
|
|
import com.alibaba.fastjson.JSON;
|
|||
|
|
import com.alibaba.fastjson.JSONArray;
|
|||
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|||
|
|
import org.json.JSONObject;
|
|||
|
|
|
|||
|
|
import java.io.BufferedReader;
|
|||
|
|
import java.io.IOException;
|
|||
|
|
import java.io.InputStreamReader;
|
|||
|
|
import java.net.URL;
|
|||
|
|
import java.net.URLConnection;
|
|||
|
|
import java.text.DateFormat;
|
|||
|
|
import java.text.ParseException;
|
|||
|
|
import java.text.SimpleDateFormat;
|
|||
|
|
import java.util.*;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Created by shaoqiang on 8/28/16.
|
|||
|
|
*/
|
|||
|
|
public class CommonUtil {
|
|||
|
|
/**
|
|||
|
|
* 返回表格的beanlist
|
|||
|
|
* @param object
|
|||
|
|
* @param controlName
|
|||
|
|
* @param cudType
|
|||
|
|
* @param objeclass
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static List getBeanlist(JSONObject object, String controlName, String cudType, Class objeclass){
|
|||
|
|
if (StrUtil.isEmpty(controlName)){
|
|||
|
|
controlName = "datatable";
|
|||
|
|
}
|
|||
|
|
String datarec1=((com.alibaba.fastjson.JSONObject) JSON.parseArray(object.getString(controlName)).get(0)).get(cudType).toString();
|
|||
|
|
return JSON.parseArray(datarec1, objeclass);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取grid中需强制更新的列名
|
|||
|
|
* @param controlName
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String[] getNeedColsByJson(JSONObject object, String controlName){
|
|||
|
|
if (StrUtil.isEmpty(controlName)){
|
|||
|
|
controlName = "datatable";
|
|||
|
|
}
|
|||
|
|
String[] keys = null;
|
|||
|
|
JSONArray jsonArray = JSON.parseArray(object.getString(controlName)).getJSONObject(0).getJSONArray("update");
|
|||
|
|
if (!jsonArray.isEmpty()){
|
|||
|
|
com.alibaba.fastjson.JSONObject jsonObject = jsonArray.getJSONObject(0);
|
|||
|
|
Set<String> keySet = jsonObject.keySet();
|
|||
|
|
keySet.removeIf(key -> key.contains("#"));
|
|||
|
|
keys = new String[keySet.size()];
|
|||
|
|
keySet.toArray(keys);
|
|||
|
|
}
|
|||
|
|
return keys;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static String[] getNeedColsByJsonStr(String jsonStr){
|
|||
|
|
com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(jsonStr);
|
|||
|
|
Set<String> keySet = jsonObject.keySet();
|
|||
|
|
keySet.removeIf(key -> key.contains("#"));
|
|||
|
|
String[] keys = new String[keySet.size()];
|
|||
|
|
keySet.toArray(keys);
|
|||
|
|
return keys;
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 返回编辑表格的json数据
|
|||
|
|
* @param object
|
|||
|
|
* @param dataparam 获取数据参数
|
|||
|
|
* @param type 参数类型 包括create ,destory,update
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String parseJson(JSONObject object,String dataparam,String type){
|
|||
|
|
|
|||
|
|
return ((com.alibaba.fastjson.JSONObject) JSON.parseArray(object.getString(dataparam)).get(0)).get(type).toString();
|
|||
|
|
}
|
|||
|
|
public static String SendGET(String url,String param){
|
|||
|
|
String result="";//访问返回结果
|
|||
|
|
BufferedReader read=null;//读取访问结果
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
//创建url
|
|||
|
|
URL realurl=new URL(url+"?"+param);
|
|||
|
|
//打开连接
|
|||
|
|
URLConnection connection=realurl.openConnection();
|
|||
|
|
// 设置通用的请求属性
|
|||
|
|
connection.setRequestProperty("accept", "*/*");
|
|||
|
|
connection.setRequestProperty("connection", "Keep-Alive");
|
|||
|
|
connection.setRequestProperty("user-agent",
|
|||
|
|
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
|||
|
|
//建立连接
|
|||
|
|
connection.connect();
|
|||
|
|
// 获取所有响应头字段
|
|||
|
|
Map<String, List<String>> map = connection.getHeaderFields();
|
|||
|
|
// 遍历所有的响应头字段,获取到cookies等
|
|||
|
|
for (String key : map.keySet()) {
|
|||
|
|
System.out.println(key + "--->" + map.get(key));
|
|||
|
|
}
|
|||
|
|
// 定义 BufferedReader输入流来读取URL的响应
|
|||
|
|
read = new BufferedReader(new InputStreamReader(
|
|||
|
|
connection.getInputStream(),"UTF-8"));
|
|||
|
|
String line;//循环读取
|
|||
|
|
while ((line = read.readLine()) != null) {
|
|||
|
|
result += line;
|
|||
|
|
}
|
|||
|
|
} catch (IOException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}finally{
|
|||
|
|
if(read!=null){//关闭流
|
|||
|
|
try {
|
|||
|
|
read.close();
|
|||
|
|
} catch (IOException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
public static String time()
|
|||
|
|
{
|
|||
|
|
Date date=new Date();
|
|||
|
|
DateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|||
|
|
String time=format.format(date);
|
|||
|
|
|
|||
|
|
return time;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 字符串转化为日期格式
|
|||
|
|
* @param date
|
|||
|
|
* @param format
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static Date getDate(String date,String format){
|
|||
|
|
DateFormat ds=new SimpleDateFormat(format);
|
|||
|
|
Date date1=new Date();
|
|||
|
|
try {
|
|||
|
|
date1= ds.parse(date);
|
|||
|
|
} catch (ParseException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
return date1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取时间函数
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static Date getNowDate(){
|
|||
|
|
Date nowDate=new Date();
|
|||
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|||
|
|
try {
|
|||
|
|
nowDate=sdf.parse(sdf.format(new Date()));
|
|||
|
|
} catch (ParseException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
return nowDate;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 驼峰写法转表字段
|
|||
|
|
* @param JsonString
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String upJson(String JsonString) {
|
|||
|
|
if (JsonString == null) {
|
|||
|
|
return "";
|
|||
|
|
}
|
|||
|
|
JSONArray jsonArray = JSONArray.parseArray(JsonString);
|
|||
|
|
List jsonList = new ArrayList();
|
|||
|
|
for (int i = 0; jsonArray != null && i < jsonArray.size(); i++) {
|
|||
|
|
Map jsonMap = new HashMap();
|
|||
|
|
com.alibaba.fastjson.JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|||
|
|
if (jsonObject != null) {
|
|||
|
|
Set<String> set = jsonObject.keySet();
|
|||
|
|
for (String key : set) {
|
|||
|
|
jsonMap.put(underscoreName(key), jsonObject.get(key));
|
|||
|
|
}
|
|||
|
|
jsonList.add(jsonMap);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//关闭引用检测后,重复引用对象时就不会被$ref代替,但是在循环引用时也会导致StackOverflowError异常。
|
|||
|
|
return JSON.toJSONString(jsonList, SerializerFeature.DisableCircularReferenceDetect);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 处理字符
|
|||
|
|
* @param name
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String underscoreName(String name) {
|
|||
|
|
StringBuilder result = new StringBuilder();
|
|||
|
|
if (name != null && name.length() > 0) {
|
|||
|
|
// 将第一个字符处理成大写
|
|||
|
|
result.append(name.substring(0, 1).toUpperCase());
|
|||
|
|
// 循环处理其余字符
|
|||
|
|
for (int i = 1; i < name.length(); i++) {
|
|||
|
|
String s = name.substring(i, i + 1);
|
|||
|
|
// 在大写字母前添加下划线
|
|||
|
|
if (s.equals(s.toUpperCase())
|
|||
|
|
&& !Character.isDigit(s.charAt(0))) {
|
|||
|
|
result.append("_");
|
|||
|
|
}
|
|||
|
|
// 其他字符直接转成大写
|
|||
|
|
result.append(s.toUpperCase());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return result.toString();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
public static boolean existsField(Class clz,String fieldName){
|
|||
|
|
try{
|
|||
|
|
return clz.getDeclaredField(fieldName)!=null;
|
|||
|
|
}
|
|||
|
|
catch(Exception e){
|
|||
|
|
//throw new RuntimeException(e.getCause());
|
|||
|
|
}
|
|||
|
|
if(clz!=Object.class){
|
|||
|
|
return existsField(clz.getSuperclass(),fieldName);
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 不够位数的在前面补0,保留code的长度位数字
|
|||
|
|
* @param code
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String autoGenericCode(String code) {
|
|||
|
|
String result = "";
|
|||
|
|
// 保留code的位数
|
|||
|
|
result = String.format("%0" + code.length() + "d", Integer.parseInt(code));
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 不够位数的在前面补0,保留num的长度位数字
|
|||
|
|
* @param code
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String autoGenericCode(String code, int num) {
|
|||
|
|
String result = "";
|
|||
|
|
// 保留num的位数
|
|||
|
|
// 0 代表前面补充0
|
|||
|
|
// num 代表长度为4
|
|||
|
|
// d 代表参数为正数型
|
|||
|
|
result = String.format("%0" + num + "d", Integer.parseInt(code));
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取文件路径
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static String getPath() {
|
|||
|
|
String str = CommonUtil.class.getResource("/").getPath();
|
|||
|
|
String basicPath = str.substring(0, str.indexOf("target"));
|
|||
|
|
String path = basicPath + "target/QhdImtos/wb/document/";
|
|||
|
|
return path;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static void main(String args[]){
|
|||
|
|
/* String port="9090";
|
|||
|
|
String ports[]=port.split(",");
|
|||
|
|
System.out.println(ports[0]);*/
|
|||
|
|
int a=2;
|
|||
|
|
int b=4;
|
|||
|
|
a=a^b^a;
|
|||
|
|
b=b^a^b;
|
|||
|
|
System.out.println(a+"==="+b);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|