wei.zhou

提交代码

......@@ -28,18 +28,17 @@ INSERT INTO T_ICLEAR_API_APPINFO VALUES(1,'IDE','iClearExport','b92131f03f19a348
CREATE TABLE T_ICLEAR_API_LOG(
MSGID int identity(1,1) primary key --PK
MSGID int identity(1,1) primary key --PK
,MSG_TYPE VARCHAR(20) --类型: C D
,APPID VARCHAR(20) --用户ID
,APPKEY VARCHAR(20) --用户key
,CREATE_TIME datetime --创建时间
,UPDATE_TIME datetime --更新时间
,PUSH_TIME datetime --消息推送时间
--,REQUEST_MSG VARCHAR(500)
,RECEIVE_RESULT VARCHAR(100) --记录接收后是否验证通过的结果
,ERROR_CODE VARCHAR(10) --错误代码
,RESPONSE_TIME datetime -- 响应时间
,SPEND_TIME numeric(5, 0) --消耗时间(ms)
,SENDTIMES datetime --更新次数
,SENDTIMES int --更新次数
,BILLNO VARCHAR(20) --运单号
,CONTRNO VARCHAR(20) --合同号
)
......
......@@ -64,7 +64,7 @@ public class CustomsDataInterface {
String appId=(String) request.getHeader("Appid");
String appKey=(String) request.getHeader("Appkey");
String timeStamp=(String) request.getHeader("TimeStamp");
IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLog(mawb,appId,appKey,DateUtils.convertToDate(timeStamp)));
IClearApiLog saveIClearApiLogResult = iClearApiLogService.saveIClearApiLog(iClearApiLogService.convertToIClearApiLog(mawb,appId,appKey,new Date(Long.valueOf(timeStamp))));
if(!Objects.equals(saveIClearApiLogResult,null)){
......@@ -124,6 +124,7 @@ public class CustomsDataInterface {
sw.start("updateIClearApiLog");
if(!Objects.equals(saveIClearApiLogResult,null)){
saveIClearApiLogResult.setReceiveResult(result.getSuccess().toString());
saveIClearApiLogResult.setErrorCode(result.getCode());
saveIClearApiLogResult.setResponseTime(new Date());
saveIClearApiLogResult.setSpendTime(sw.getTotalTimeMillis());
......
......@@ -40,4 +40,19 @@ public class IClearExportInterface {
return "Faile";
}
//TODO 根据已记录的MAWB生成 运单数据,用户处理解析失败时的策略
@ApiOperation(value = "重新生成运单", httpMethod = "GET", notes = "ex: http://192.168.1.75:8080/system/refreshSendMawbe")
@GetMapping("/refreshSendMawbe")
public String refreshSendMawbe() {
try{
return "Success";
}catch (Exception e){
log.error("refreshCache() error:"+e.getMessage());
}
return "Faile";
}
}
......
......@@ -32,18 +32,15 @@ public class IClearApiLog implements Serializable {
@Column(name= "CREATE_TIME")
private Date createTime;
@Column(name= "UPDATE_TIME")
private Date updateTime;
//收到的json,用 T_ICLEAR_API_MAWB表保存
//@Column(name= "REQUEST_MSG")
//private String request_msg;
@Column(name= "PUSH_TIME")
private Date pushTime;
@Column(name= "RECEIVE_RESULT")
private String receiveResult;
@Column(name= "ERROR_CODE")
private String errorCode;
@Column(name= "RESPONSE_TIME")
private Date responseTime;
......
......@@ -277,6 +277,9 @@ public class ChmConsignmentService {
log.info("主单"+ mawb.getBillNo()+" 保存成功,chmConsignmentId:"+chmConsignmentSaveResult.getId());
}else{
log.info("主单"+ mawb.getBillNo()+" 保存失败");
result.setCode("30002");
result.setMsg("主单"+ mawb.getBillNo()+" 保存失败");
return result;
}
//更新:
//如果有数据并且满足条件后才能更新数据
......@@ -317,13 +320,16 @@ public class ChmConsignmentService {
log.info("主单"+ mawb.getBillNo()+" 更新成功,chmConsignmentId:"+updateResult.getId());
}else{
log.info("主单"+ mawb.getBillNo()+" 更新失败");
result.setCode("30003");
result.setMsg("主单"+ mawb.getBillNo()+" 更新失败");
return result;
}
}
}catch (Exception e){
log.error(""+e.getMessage());
}
result.setSuccess(Boolean.TRUE);
return result;
}
......
......@@ -45,7 +45,6 @@ public class IClearApiLogService {
result.setAppId(appId);
result.setAppKey(appKey);
result.setCreateTime(new Date());
result.setUpdateTime(new Date());
result.setPushTime(pushTime);
result.setReceiveResult(null);
result.setResponseTime(null);
......
......@@ -13,6 +13,7 @@ import com.erry.iclear.dateInterface.util.SHA256Util;
import com.google.gson.Gson;
import org.apache.http.client.HttpClient;
import org.apache.http.Header;
import java.io.FileNotFoundException;
import java.math.BigDecimal;
import java.util.*;
......@@ -22,14 +23,13 @@ public class HttpClientTest {
// System.out.println(HttpClientUtil.get(HttpConfig.custom().url("https://40.73.78.157:8780/system/healthCheck")));
// System.out.println(HttpClientUtil.post(HttpConfig.custom().url("https://40.73.78.157:8780/customs/sendMawb")));
String timeStamp = "1623920478192";
//String timeStamp = "1624263798669";
//String timeStamp = "1623920478192";
String timeStamp = "1624263798669";
System.out.println(new Date(Long.valueOf(timeStamp)));
String token=SHA256Util.getSHA256String("IDE"+"iClearExport"+"b92131f03f19a348"+timeStamp);
String token = SHA256Util.getSHA256String("IDE" + "iClearExport" + "b92131f03f19a348" + timeStamp);
System.out.println(token);
Header[] headers = HttpHeader.custom()
.other("Content-Type", "application/json")
.other("Appid", "IDE")
......@@ -38,68 +38,26 @@ public class HttpClientTest {
.other("token", token)
.build();
//插件式配置生成HttpClient时所需参数(超时、连接池、ssl、重试)
HCB hcb = HCB.custom()
.timeout(3000) //超时
.pool(100, 10) //启用连接池,每个路由最大创建10个链接,总连接数限制为100个
.sslpv(SSLs.SSLProtocolVersion.TLSv1_2) //设置ssl版本号,默认SSLv3,也可以调用sslpv("TLSv1.2")
.ssl() //https,支持自定义ssl证书路径和密码,ssl(String keyStorePath, String keyStorepass)
.retry(5) //重试5次
;
HttpClient client = hcb.build();
Map<String, Object> map = new HashMap<String, Object>();
map.put("mawb", createMawb());
//map.put("key2", "value2");
Mawb mawb = createMawb();
Gson gson = new Gson();
String request =gson.toJson(mawb);
//插件式配置请求参数(网址、请求参数、编码、client)
String url="https://40.73.78.157:8780/customs/sendMawb";
.timeout(3000)
.pool(100, 10)
.sslpv(SSLs.SSLProtocolVersion.TLSv1_2)
.ssl()
.retry(5);
// String url = "https://40.73.78.157:8780/customs/sendMawb";
String url = "https://192.168.1.75:8780/customs/sendMawb";
HttpConfig config = HttpConfig.custom()
.headers(headers) //设置headers,不需要时则无需设置
.url(url) //设置请求的url
//.map(map) //设置请求参数,没有则无需设置
.encoding("utf-8") //设置请求和返回编码,默认就是Charset.defaultCharset()
.client(client) //如果只是简单使用,无需设置,会自动获取默认的一个client对象
//.inenc("utf-8") //设置请求编码,如果请求返回一直,不需要再单独设置
//.inenc("utf-8") //设置返回编码,如果请求返回一直,不需要再单独设置
.json(request) //json方式请求的话,就不用设置map方法,当然二者可以共用。
//.context(HttpCookies.custom().getContext()) //设置cookie,用于完成携带cookie的操作
//.out(new FileOutputStream("保存地址")) //下载的话,设置这个方法,否则不要设置
//.files(new String[]{"d:/1.txt","d:/2.txt"}) //上传的话,传递文件路径,一般还需map配置,设置服务器保存路径
;
//使用方式:
//System.out.println(HttpClientUtil.get(config));
.headers(headers)
.url(url)
.encoding("utf-8")
.client(hcb.build())
.json(new Gson().toJson(createMawb()));
System.out.println(HttpClientUtil.post(config));
//HttpClientUtil.down(config); //下载,需要调用config.out(fileOutputStream对象)
//HttpClientUtil.upload(config); //上传,需要调用config.files(文件路径数组)
//如果指向看是否访问正常
//String result3 = HttpClientUtil.head(config); // 返回Http协议号+状态码
//int statusCode = HttpClientUtil.status(config);//返回状态码
//[新增方法]sendAndGetResp,可以返回原生的HttpResponse对象,
//同时返回常用的几类对象:result、header、StatusLine、StatusCode
// HttpResult respResult = HttpClientUtil.sendAndGetResp(config);
// System.out.println("返回结果:\n"+respResult.getResult());
// System.out.println("返回resp-header:"+respResult.getRespHeaders());//可以遍历
// System.out.println("返回具体resp-header:"+respResult.getHeaders("Date"));
// System.out.println("返回StatusLine对象:"+respResult.getStatusLine());
// System.out.println("返回StatusCode:"+respResult.getStatusCode());
// System.out.println("返回HttpResponse对象)(可自行处理):"+respResult.getResp());
}
public static Mawb createMawb(){
public static Mawb createMawb() {
MawbDetail d1 = new MawbDetail();
d1.setClassMark("");
......@@ -113,9 +71,9 @@ public class HttpClientTest {
d1.setFirstQty(11);
d1.setGunit("007");
d1.setGmodel("商品规格、型号");
d1.setGname("餐桌");
d1.setGname("餐桌2");
d1.setGno("1");
d1.setGqty(BigDecimal.valueOf(1.88));
d1.setGqty(BigDecimal.valueOf(15.88));
d1.setOriginCountry("US");
d1.setSecondUnit("007");
d1.setSecondQty(2);
......@@ -141,9 +99,9 @@ public class HttpClientTest {
d2.setFirstQty(11);
d2.setGunit("007");
d2.setGmodel("商品规格、型号");
d2.setGname("餐桌");
d2.setGname("餐桌3");
d2.setGno("2");
d2.setGqty(BigDecimal.valueOf(22.88));
d2.setGqty(BigDecimal.valueOf(42.88));
d2.setOriginCountry("US");
d2.setSecondUnit("007");
d2.setSecondQty(3);
......@@ -157,14 +115,11 @@ public class HttpClientTest {
d2.setDistrictCode("4408W");
List<MawbDetail> mawbDetailList = new ArrayList<MawbDetail>();
mawbDetailList.add(d1);
mawbDetailList.add(d2);
Mawb mawb = new Mawb();
mawb.setIEFlag("E");
mawb.setType("EX");
......@@ -219,12 +174,4 @@ public class HttpClientTest {
}
}
......