Browse Source

采购入库

master
han\hanst 6 months ago
parent
commit
4021b60ead
  1. 44
      src/main/java/com/gaotao/modules/pda/config/ModuleFunction.java
  2. 47
      src/main/java/com/gaotao/modules/pda/config/SecurityConfig.java
  3. 47
      src/main/java/com/gaotao/modules/pda/config/XuJieConfig.java
  4. 57
      src/main/java/com/gaotao/modules/pda/dao/TransNoDao.java
  5. 87
      src/main/java/com/gaotao/modules/pda/dao/impl/TransNoDaoImpl.java
  6. 102
      src/main/java/com/gaotao/modules/pda/utils/DBUtil.java
  7. 135
      src/main/java/com/gaotao/modules/pda/utils/DateUtils.java
  8. 156
      src/main/java/com/gaotao/modules/pda/utils/DecimalUtils.java
  9. 250
      src/main/java/com/gaotao/modules/pda/utils/HttpClientUtil.java
  10. 57
      src/main/java/com/gaotao/modules/pda/utils/MD5.java
  11. 69
      src/main/java/com/gaotao/modules/pda/utils/ResponseData.java

44
src/main/java/com/gaotao/modules/pda/config/ModuleFunction.java

@ -0,0 +1,44 @@
package com.gaotao.modules.pda.config;
/**
*
* @ClassName: ModuleFunction
* @Description: 关联配置文件数据
* @author lirui
* @date 2018年3月29日
*
*/
public class ModuleFunction {
private String name;//名称
private String mark;//标记
private String url;//路径
public ModuleFunction() {
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}

47
src/main/java/com/gaotao/modules/pda/config/SecurityConfig.java

@ -0,0 +1,47 @@
package com.gaotao.modules.pda.config;//package com.gaotao.modules.pda.config;
//
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Configuration;
//
//
//@Configuration
//@EnableWebSecurity
//@EnableGlobalMethodSecurity(prePostEnabled = true)
//public class SecurityConfig extends WebSecurityConfigurerAdapter {
//
// @Autowired
// CustomUserDetailsService userDetailsService;
//
// @Autowired
// CustomAuthSuccessHandler authSuccessHandler;
//
// @Autowired
// CustomPasswordEncoder passwordEncoder;
// @Autowired
// private CustomAuthFailureHandler authFailureHandler;
//
// @Override
// protected void configure(HttpSecurity http) throws Exception {
// http.headers().frameOptions().disable();//解决Spring Boot不允许加载iframe问题解决
// http.csrf().disable()
// .authorizeRequests()
// .antMatchers("/js/**", "/img/**", "/css/**","/bootstrap/**", "/order/json", "/jeasyui/**").permitAll()
// .anyRequest().authenticated()
// .and()
// .formLogin()
// .successHandler(authSuccessHandler)
// //.failureUrl("/login?error=true")
// .failureHandler(authFailureHandler)
// .loginPage("/login")
// .permitAll()
// .and()
// .logout()
// .permitAll();
// }
//
// //private PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
// public void configure(AuthenticationManagerBuilder auth) throws Exception {
// auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);
// }
//}

47
src/main/java/com/gaotao/modules/pda/config/XuJieConfig.java

@ -0,0 +1,47 @@
package com.gaotao.modules.pda.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@ConfigurationProperties(prefix = "xujie")
@Configuration
public class XuJieConfig {
private String webservice;// webservice的路径
private String excelpath;// excel服务器地址路径
private List<ModuleFunction> modulefunction;
public XuJieConfig() {
super();
// TODO Auto-generated constructor stub
}
public String getWebservice() {
return webservice;
}
public void setWebservice(String webservice) {
this.webservice = webservice;
}
public String getExcelpath() {
return excelpath;
}
public void setExcelpath(String excelpath) {
this.excelpath = excelpath;
}
public List<ModuleFunction> getModulefunction() {
return modulefunction;
}
public void setModulefunction(List<ModuleFunction> modulefunction) {
this.modulefunction = modulefunction;
}
}

57
src/main/java/com/gaotao/modules/pda/dao/TransNoDao.java

@ -0,0 +1,57 @@
package com.gaotao.modules.pda.dao;
import java.util.List;
import java.util.Map;
/**
*
* @ClassName: TransNoDao
* @Description: 获取通用的交易号码
* @author lirui
* @date 2018年4月8日
*
*/
public interface TransNoDao {
/**
*
* @Title: getTransNo
* @Description: 获取当前的交易号
* @author lirui
* @date 2018年4月8日
* @param @param site
* @param @param type
* @param @return 参数
* @return String 返回类型
* @throws
*/
String getTransNo(String site,String type);
/**
*
* @Title: updateTransNo
* @Description: 更新当前的交易号
* @author lirui
* @date 2018年4月8日
* @param @param site
* @param @param type 参数
* @return void 返回类型
* @throws
*/
void updateTransNo(String site,String type);
/**
*
* @Title: getRollTrees
* @Description: 测试存储过程
* @author lirui
* @date 2018年11月27日
* @param @param site
* @param @param rollNo
* @param @return 参数
* @return List<Map<String,Object>> 返回类型
* @throws
*/
List<Map<String, Object>> getRollTrees(String site, String rollNo);
}

87
src/main/java/com/gaotao/modules/pda/dao/impl/TransNoDaoImpl.java

@ -0,0 +1,87 @@
package com.gaotao.modules.pda.dao.impl;
import com.gaotao.modules.pda.dao.TransNoDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.CallableStatementCallback;
import org.springframework.jdbc.core.CallableStatementCreator;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @ClassName: TransNoDaoImpl
* @Description: 通用交易号方法实现
* @author lirui
* @date 2018年4月8日
*
*/
@Repository
public class TransNoDaoImpl implements TransNoDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public String getTransNo(String site, String type) {
String sql = "SELECT dbo.Get_TransNo(?,?)";
List<Object> params = new ArrayList<>();
params.add(site);
params.add(type);
return jdbcTemplate.queryForObject(sql, String.class, params.toArray());
}
@Override
public void updateTransNo(String site, String type) {
String sql = "exec dbo.UpdateTransNo ?,?";
List<Object> params = new ArrayList<>();
params.add(site);
params.add(type);
jdbcTemplate.update(sql,params.toArray());
}
@Override
public List<Map<String, Object>> getRollTrees(String site, String rollNo) {
return jdbcTemplate.execute(new CallableStatementCreator() {
@Override
public CallableStatement createCallableStatement(Connection con) throws SQLException {
String sql = "EXEC getRollTrees ?,?";
CallableStatement cs = con.prepareCall(sql);
cs.setString(1, site);
cs.setString(2, rollNo);
return cs;
}
}, new CallableStatementCallback<List<Map<String, Object>>>() {
@Override
public List<Map<String, Object>> doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
List<Map<String, Object>> list = new ArrayList<>();
ResultSet rs = cs.executeQuery();
ResultSetMetaData rmd = rs.getMetaData();
int columnCount = rmd.getColumnCount();
System.out.println("columnCount: " + columnCount);
while (rs.next()) {
Map<String, Object> rowMap = new HashMap<>();
rowMap.put("site", rs.getString("site"));
rowMap.put("rollNo", rs.getString("rollNo"));
rowMap.put("oriRollNo", rs.getString("oriRollNo"));
rowMap.put("rollLevel", rs.getString("rollLevel"));
list.add(rowMap);
}
rs.close();
return list;
}
});
}
}

102
src/main/java/com/gaotao/modules/pda/utils/DBUtil.java

@ -0,0 +1,102 @@
package com.gaotao.modules.pda.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Component;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
public class DBUtil {
@Autowired
public JdbcTemplate jdbcTemplate;
@Autowired
public NamedParameterJdbcTemplate parameterJdbcTemplate;
private Logger logger = LoggerFactory.getLogger(getClass());
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public boolean exist(String sql, Object... args) {
long start = System.currentTimeMillis();
try {
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, args);
return rows.size() > 0;
} finally {
log("SQL(" + (System.currentTimeMillis() - start) + "ms):" + sql, args);
}
}
public int execute(String sql, Object... args) {
long start = System.currentTimeMillis();
try {
return jdbcTemplate.update(sql, args);
} finally {
log("SQL(" + (System.currentTimeMillis() - start) + "ms):" + sql, args);
}
}
public Map<String, Object> findOne(String sql, Object... args) {
long start = System.currentTimeMillis();
try {
List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, args);
if (rows.size() > 0) {
return rows.get(0);
}
return null;
} catch (Exception ex) {
throw ex;
} finally {
log("SQL(" + (System.currentTimeMillis() - start) + "ms):" + sql, args);
}
}
public List<Map<String, Object>> findList(String sql, Object... args) {
long start = System.currentTimeMillis();
try {
return jdbcTemplate.queryForList(sql, args);
} finally {
log("SQL(" + (System.currentTimeMillis() - start) + "ms):" + sql, args);
}
}
public void log(String sql, Object... args) {
StringBuilder parameters = new StringBuilder();
for (Object obj : args) {
parameters.append(obj.toString()).append(",");
}
logger.info(sql + " -- parameters=" + parameters.toString());
}
public Date formatDate(Object date) {
if (date == null) return null;
try {
return dateFormat.parse(date.toString());
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
public Double getDouble(Object obj) {
if (obj == null) return null;
return Double.parseDouble(obj.toString());
}
public Boolean getBoolean(Object obj) {
if (obj == null) return null;
return obj.toString().equalsIgnoreCase("Y");
}
public String getString(Object obj) {
if (obj == null) return "";
return obj.toString().toString();
}
}

135
src/main/java/com/gaotao/modules/pda/utils/DateUtils.java

@ -0,0 +1,135 @@
package com.gaotao.modules.pda.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
*
* @ClassName: DateUtils
* @Description: 日期的工具类
* @author LR
* @date 2017年6月12日 下午5:08:39
*
*/
public class DateUtils {
/**
*
*
* @author LR
* @Description: 获取当前时间的年月日时分秒
* @UpdateUser LR
* @UpdateRemark [说明本次修改内容]
*
*/
public static String getStringNow() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(new Date());
}
/**
*
* @Title: getStringDate
* @author LR
* @Description: 返回String类型的yyyy-MM-dd的日期
* @param @param date
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
public static String getStringDate(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
/**
*
* @Title: getStringDate
* @author LR
* @Description: 根据模版获取相应时间的格式
* @param @param date
* @param @param parten
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
public static String getStringDate(Date date, String parten) {
SimpleDateFormat sdf = new SimpleDateFormat(parten);
return sdf.format(date);
}
/**
*
* @Title: getYesterday
* @author LR
* @Description: 获取昨日的String类型的yyyy-MM-dd的日期
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
public static String getStringYesterday() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1);
return sdf.format(cal.getTime());
}
/**
*
* @Title: getYesterday
* @author LR
* @Description: 获取明天的String类型的yyyy-MM-dd的日期
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
public static String getStringTomorrow() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, +1);
return sdf.format(cal.getTime());
}
/**
*
*
* @author LR
* @throws ParseException
* @Description: String转换date
* @UpdateUser LR
* @UpdateRemark [说明本次修改内容]
*
*/
public static Date getDate(String time) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.parse(time);
}
/**
*
* @Title: getLastMonth
* @author LR
* @Description: 获取上一个月的YYYY-MM
* @param @param date
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
public static String getLastMonth(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, -1);
Date lastDate = cal.getTime();
return sdf.format(lastDate);
}
public static Date getDateByParten(String date, String parten)
throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(parten);
return sdf.parse(date);
}
}

156
src/main/java/com/gaotao/modules/pda/utils/DecimalUtils.java

@ -0,0 +1,156 @@
package com.gaotao.modules.pda.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName: DecimalUtils
* @Description: 进制专用工具类
* @author LR
* @date 2019年7月5日
*
*/
public class DecimalUtils {
/**
* @Title: getDecimalNums
* @Description: 获取当前数据进制转换成的返回十进制对应的位数从右往左方向
* @author LR
* @date 2019年7月5日
* @param @param nums
* @param @param i
* @param @return 参数
* @return char [] 返回类型
* @throws
*/
public static List<Integer> convertDecimalToArbitrary(List<Integer> resultInt, int nums, int decimal) {
//循环算出商 余数
int quotient = nums / decimal;
int remainder = nums % decimal;
resultInt.add(remainder);
//判断是否递归调用
if(quotient >= decimal){
resultInt = convertDecimalToArbitrary(resultInt, quotient, decimal);
}else{
resultInt.add(quotient);
}
return resultInt;
}
/**
*
* @Title: getNextArr
* @Description: 获取下一个字符数组
* @author LR
* @date 2019年7月5日
* @param @param tempArr
* @param @param num
* @param @param index
* @param @return 参数
* @return char[] 返回类型
* @throws
*/
public static char[] getNextArr(char[] tempArr, int index, char[] strArr, Map<Character, Integer> charMap) {
//获取当前的字符
char temp = tempArr[index];
//获取字符对应的下表
int tempNums = charMap.get(temp) + 1;
//判断是否需要向前进1
if(tempNums == 34){
//重置当前的位数
tempArr[index] = '0';
index -= 1;
//但是index必须大于零
if(index == -1){
System.err.println("超过上限!");
return null;
}
//递归算法
tempArr = getNextArr(tempArr, index, strArr, charMap);
}else{
tempArr[index] = strArr[tempNums];
}
return tempArr;
}
/**
*
* @Title: convertArbitraryToDeciamal
* @Description: 任意进制转换成十进制数子
* @author LR
* @date 2019年7月8日
* @param @param tempArr
* @param @param strArr
* @param @param decimal
* @param @return 参数
* @return List<Integer> 返回类型
* @throws
*/
public static int convertArbitraryToDeciamal(char[] tempArr, Map<Character, Integer> charMap, int decimal){
List<Integer> intNums = new ArrayList<>();
//获取序列对应的字符串
for(int i = 0; i <tempArr.length; i++){
//当前字符串序列
char temp = tempArr[i];
//获取当前字符对应的数据
intNums.add(charMap.get(temp));
}
//获取当前的集合对应的数字大小
double resultNums = 0;
int len = intNums.size();
for(int i = 1; i <= len; i++){
resultNums += intNums.get(i-1) * Math.pow(decimal, len-i);
}
return (int)resultNums;
}
public static void main(String[] args) {
/*
* List<Integer> resultInt = new ArrayList<>(); resultInt =
* convertDecimalToArbitrary(resultInt, 100000, 34);
* Collections.reverse(resultInt); System.out.println(resultInt.toString());
*/
char[] strArr = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
Map<Integer, Character> intMap = new HashMap<>();
Map<Character, Integer> charMap = new HashMap<>();
//把字符存入map中形成对应的关系
for(int i = 0; i < strArr.length; i++){
intMap.put(i, strArr[i]);
charMap.put(strArr[i], i);
}
//设置起始值
char[] startArr = new char[]{'0', '0', '0', '0', '0'};
char[] tempArr = new char[5];
Map<Integer, String> resultMap = new HashMap<>();
//把第一个数值直接缓存进去
resultMap.put(0, String.copyValueOf(startArr));
//赋初始值
tempArr = startArr;
int byteToMb = 1024 * 1024;
Runtime rt = Runtime.getRuntime();
long vmTotal = rt.totalMemory() / byteToMb;
long vmFree = rt.freeMemory() / byteToMb;
long vmUse = vmTotal - vmFree;
System.out.println("JVM内存已用的空间为:" + vmUse + " MB");
long start_mis = System.currentTimeMillis();
for(int i = 1; i < 10000000; i++){
tempArr = getNextArr(tempArr, 4, strArr, charMap);
resultMap.put(i, String.copyValueOf(tempArr));
}
long end_mis = System.currentTimeMillis();
long vmTotal1 = rt.totalMemory() / byteToMb;
long vmFree1 = rt.freeMemory() / byteToMb;
long vmUse1 = vmTotal1 - vmFree1;
System.out.println("JVM内存已用的空间为:" + vmUse1 + " MB");
System.out.println(end_mis - start_mis);
System.out.println(resultMap.size());
System.out.println(String.valueOf(tempArr));
int resultNums = convertArbitraryToDeciamal(resultMap.get(98).toCharArray(), charMap, 34);
System.out.println(resultNums);
}
}

250
src/main/java/com/gaotao/modules/pda/utils/HttpClientUtil.java

@ -0,0 +1,250 @@
package com.gaotao.modules.pda.utils;//package com.gaotao.modules.pda.utils;
import com.alibaba.fastjson.JSON;
import com.gaotao.common.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.http.*;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
*
* @ClassName: HttpClientUtil
* @Description: 处理http请求
* @author lirui
* @date 2018年4月7日
*
*/
@Slf4j
public class HttpClientUtil {
/**
*
* @Title: doGet
* @Description: get请求
* @author lirui
* @date 2018年4月28日
* @param @param url
* @param @param paramsMap
* @param @return 参数
* @return ResponseData 返回类型
* @throws
*/
public static ResponseData doGet(String url,Map<String, String> paramsMap){
ResponseData responseData = new ResponseData();
List<NameValuePair> params = new ArrayList<NameValuePair>();
//设置参数
for(Map.Entry<String, String> entry : paramsMap.entrySet()){
params.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
try {
//转字符串参数
String str = EntityUtils.toString(new UrlEncodedFormEntity(params,Consts.UTF_8));
HttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url+"?"+str);
//设置请求的配置数据
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(180000)
.setConnectionRequestTimeout(120000).build();
httpGet.setConfig(config);
HttpResponse response = httpClient.execute(httpGet);
log.info("发送sap请求 ----------------");
//获取请求的状态码
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode==HttpStatus.SC_OK){
responseData.setSuccess(true);
responseData.setCode(statusCode+"");
HttpEntity entity = response.getEntity();
log.info("发送sap成功 ----------------");
String result = StringEscapeUtils.unescapeHtml4(EntityUtils.toString(entity,Consts.UTF_8));
responseData.setMsg(result);
}else{
log.info("发送sap失败 ----------------");
responseData.setCode(statusCode+"");
responseData.setMsg("错误码:"+statusCode);
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return responseData;
}
/**
*
* @Title: doPost
* @Description: TODO(这里用一句话描述这个方法的作用)
* @author lirui
* @date 2018年4月28日
* @param @param url
* @param @param paramsMap
* @param @return 参数
* @return ResponseData 返回类型
* @throws
*/
public static R doPost(String url,Map<String, String> paramsMap){
List<NameValuePair> params = new ArrayList<NameValuePair>();
//设置参数
for(Map.Entry<String, String> entry : paramsMap.entrySet()){
params.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
}
try {
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
//设置请求的配置数据
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(180000)
.setConnectionRequestTimeout(120000).build();
httpPost.setConfig(config);
HttpResponse response = httpClient.execute(httpPost);
//获取请求的状态码
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode==HttpStatus.SC_OK){
HttpEntity entity = response.getEntity();
String result = StringEscapeUtils.unescapeHtml4(EntityUtils.toString(entity,Consts.UTF_8));
return R.ok(result);
}else{
return R.error(statusCode,"错误码:"+statusCode);
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return R.ok();
}
/**
*
* @Title: doPost
* @Description: post请求数据不封装
* @author lirui
* @date 2018年4月28日
* @param @param url
* @param @param paramsMap
* @param @return 参数
* @return ResponseData 返回类型
* @throws
*/
public static ResponseData doPostSendEntity(String url, Map<String, Object> paramsMap){
ResponseData responseData = new ResponseData();
List<NameValuePair> params = new ArrayList<NameValuePair>();
//设置参数
for(Map.Entry<String, Object> entry : paramsMap.entrySet()){
params.add(new BasicNameValuePair(entry.getKey(), entry.getValue().toString()));
}
try {
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(params, "UTF-8");
httpPost.setEntity(formEntity);
formEntity.setContentType("application/x-www-form-urlencoded");
//设置请求的配置数据
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(180000)
.setConnectionRequestTimeout(120000).build();
httpPost.setConfig(config);
HttpResponse response = httpClient.execute(httpPost);
//获取请求的状态码
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode == HttpStatus.SC_OK){
HttpEntity entity = response.getEntity();
String result = StringEscapeUtils.unescapeHtml4(EntityUtils.toString(entity,Consts.UTF_8));
Map<String, Object> resultMap = JSON.parseObject(result);
statusCode = (int) resultMap.get("StatusCode");
responseData.setCode(statusCode+"");
String msg = (String) resultMap.get("ResultMsg");
//成功失败区分开来
if(HttpStatus.SC_OK == statusCode) {
responseData.setSuccess(true);
}else {
responseData.setSuccess(false);
}
responseData.setMsg(msg);
}else{
responseData.setCode(statusCode+"");
responseData.setMsg("错误码:"+statusCode);
}
} catch (Exception e) {
responseData.setMsg("异常"+e.getMessage());
e.printStackTrace();
}
return responseData;
}
/**
*
* @Title: doPostSendForm
* @Description: 请求form请求数据
* @author LR
* @date 2019年11月22日
* @param @param url
* @param @param paramsMap
* @param @return 参数
* @return ResponseData 返回类型
* @throws
*/
public static ResponseData doPostByRaw(String url, Object inData){
ResponseData responseData = new ResponseData();
try {
HttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
String jsonStr = JSON.toJSONString(inData);
StringEntity requestEntity = new StringEntity(jsonStr, "UTF-8");
requestEntity.setContentEncoding("UTF-8");
httpPost.setHeader("Content-type", "application/json");
httpPost.setEntity(requestEntity);
//设置请求的配置数据
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(180000)
.setConnectionRequestTimeout(120000).build();
httpPost.setConfig(config);
HttpResponse response = httpClient.execute(httpPost);
//获取请求的状态码
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode== HttpStatus.SC_OK){
responseData.setSuccess(true);
responseData.setCode(statusCode+"");
HttpEntity entity = response.getEntity();
String result = StringEscapeUtils.unescapeHtml4(EntityUtils.toString(entity, Consts.UTF_8));
Map<String, Object> resultMap = JSON.parseObject(result);
statusCode = (int) resultMap.get("StatusCode");
responseData.setCode(statusCode+"");
String msg = (String) resultMap.get("ResultMsg");
//成功失败区分开来
if(HttpStatus.SC_OK == statusCode) {
responseData.setSuccess(true);
}else {
responseData.setSuccess(false);
}
responseData.setMsg(msg);
}else{
responseData.setCode(statusCode+"");
responseData.setMsg("错误码:"+statusCode);
}
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return responseData;
}
}

57
src/main/java/com/gaotao/modules/pda/utils/MD5.java

@ -0,0 +1,57 @@
package com.gaotao.modules.pda.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/*
* MD5 算法
*/
public class MD5 {
// 全局数组
private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
public MD5() {
}
// 返回形式为数字跟字符串
private static String byteToArrayString(byte bByte) {
int iRet = bByte;
// System.out.println("iRet="+iRet);
if (iRet < 0) {
iRet += 256;
}
int iD1 = iRet / 16;
int iD2 = iRet % 16;
return strDigits[iD1] + strDigits[iD2];
}
// 转换字节数组为16进制字串
private static String byteToString(byte[] bByte) {
StringBuffer sBuffer = new StringBuffer();
for (int i = 0; i < bByte.length; i++) {
sBuffer.append(byteToArrayString(bByte[i]));
}
return sBuffer.toString();
}
public static String GetMD5Code(String strObj) {
String resultString = null;
try {
resultString = new String(strObj);
MessageDigest md = MessageDigest.getInstance("MD5");
// md.digest() 该函数返回值为存放哈希值结果的byte数组
resultString = byteToString(md.digest(strObj.getBytes()));
} catch (NoSuchAlgorithmException ex) {
ex.printStackTrace();
}
return resultString;
}
public static void main(String[] args) {
String str = GetMD5Code("123456");
System.out.println(str);
}
}

69
src/main/java/com/gaotao/modules/pda/utils/ResponseData.java

@ -0,0 +1,69 @@
package com.gaotao.modules.pda.utils;
import java.io.Serializable;
/**
*
* @ClassName: ResponseData
* @Description: 信息返回类
* @author lirui
* @date 2018年3月29日
*
*/
public class ResponseData implements Serializable {
private static final long serialVersionUID = 8108588679509838467L;
private boolean success = false;
private String msg = "";
private Object obj = null;// 存数据
private String code = "400";// 200正常401失效500弹窗
public ResponseData() {
// TODO Auto-generated constructor stub
}
public ResponseData(String msg) {
super();
this.msg = msg;
}
public ResponseData(Object obj) {
super();
this.obj = obj;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
Loading…
Cancel
Save