Jiaqi.xu

Merge remote-tracking branch 'origin/master'

Showing 29 changed files with 322 additions and 88 deletions
create table T_ICLEAR_API_CHECK_LOG
(
ID bigint primary key identity (1,1),
request_appid varchar(200),
request_appkey varchar(200),
request_token varchar(200),
consignment_code varchar(200),
request_text text,
response_text text,
request_ip varchar(200),
create_time datetime,
success int,
code varchar(200),
)
......@@ -42,7 +42,7 @@ public class CustomsDataInterface {
private ChmConsignmentDetailService chmConsignmentDetailService;
@ApiOperation(value = "推送主单数据", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/customs/sendMawb")
@ApiOperation(value = "D类推送主单数据", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/customs/sendMawb")
@PostMapping("/sendMawb")
@ResponseBody
public ResultRS sendMawb(HttpServletRequest request
......@@ -109,12 +109,12 @@ public class CustomsDataInterface {
sw.stop();
// //3、TODO 校验子单
// sw.start("checkMawbDetail");
// result=mawbDetailServicel.checkMawbDetail(mawb);
// if(!result.getSuccess()){
// return result;
// }
// sw.stop();
sw.start("checkMawbDetail");
result=mawbDetailServicel.checkMawbDetail(mawb);
if(!result.getSuccess()){
return result;
}
sw.stop();
//4、保存运单到iclear中
......
......@@ -12,7 +12,9 @@ import com.erry.iclear.dateInterface.api.response.ResultRS;
import com.erry.iclear.dateInterface.entity.ChmConsignment;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import com.erry.iclear.dateInterface.entity.IClearApiLog;
import com.erry.iclear.dateInterface.entity.TIClearApiCheckLog;
import com.erry.iclear.dateInterface.repository.ChmConsignmentRepository;
import com.erry.iclear.dateInterface.repository.IClearApiCheckLogRepository;
import com.erry.iclear.dateInterface.service.*;
import com.erry.iclear.dateInterface.util.JsonToJava;
import com.erry.iclear.dateInterface.util.StringUtil;
......@@ -58,11 +60,74 @@ public class FedexDataInterface {
@Autowired
private ChmConsignmentRepository chmConsignmentRepository;
@Autowired
private IClearApiCheckLogRepository iClearApiCheckLogRepository;
@Value("${api.address.iclear-submit-url}")
String iclearCSubmitUrl;
@ApiOperation(value = "Fedex推送运单数据", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/fedex/sendMawbFedex")
@ApiOperation(value = "BASF运单数据校验接口", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/fedex/checkBASFMawbFedex")
@PostMapping("/checkBASFMawbFedex")
@ResponseBody
public ResultRS checkBASFMawbFedex(HttpServletRequest request
,@RequestBody Fedexc fedexc) throws HttpProcessException {
String appId=(String) request.getHeader("Appid");
String appKey=(String) request.getHeader("Appkey");
String timeStamp=(String) request.getHeader("TimeStamp");
String token=(String) request.getHeader("Token");
String addr = request.getRemoteAddr();
TIClearApiCheckLog tIclearApiCheckLog = new TIClearApiCheckLog();
tIclearApiCheckLog.setRequestAppid(appId);
tIclearApiCheckLog.setRequestAppkey(appKey);
tIclearApiCheckLog.setRequestIp(addr);
tIclearApiCheckLog.setRequestToken(token);
tIclearApiCheckLog.setConsignmentCode(fedexc.getConsignmentCode());
tIclearApiCheckLog.setCreateTime(new Date());
tIclearApiCheckLog.setRequestText(
new String("requestHeader[appId:"+appId+"," +
"appKey:"+appKey+"," +
"timeStamp:"+timeStamp+"," +
"token:"+token) + "],"
+ fedexc.toString()
);
TIClearApiCheckLog tiClearApiCheckLogSave = iClearApiCheckLogRepository.save(tIclearApiCheckLog);
log.info("checkBASFMawbFedex:"+fedexc.toString());
log.info("appId:{},appKey:{},timeStamp:{},token:{}",appId,appKey,timeStamp,token);
ResultRS result = fedexService.checkBasfInterfaceData(fedexc);
StopWatch sw = new StopWatch("checkBASFMawbFedex");
sw.start("generate FedexMawb");
fedexc.setAppId(appId);
FedexMawb saveMawbFedexResult = fedexService.generateFedexMawb(fedexc);
sw.stop();
sw.start("checkFedexMawb");
String msg = result.getMsg();
String iclearCheckMsg = fedexService.checkFedexMawb(saveMawbFedexResult).getMsg();
result.setMsg(msg+";"+iclearCheckMsg);
sw.stop();
log.info(sw.prettyPrint());
if(result.getSuccess()){
result.setSuccess(Boolean.TRUE);
result.setCode("0");
}
tiClearApiCheckLogSave.setResponseText(result.getMsg());
tiClearApiCheckLogSave.setCode(result.getCode());
tiClearApiCheckLogSave.setSuccess(result.getSuccess());
iClearApiCheckLogRepository.save(tiClearApiCheckLogSave);
log.info(result.toString());
return result;
}
@ApiOperation(value = "C类Fedex推送运单数据", httpMethod = "POST", notes = "ex: http://192.168.1.75:8080/fedex/sendMawbFedex")
@PostMapping("/sendMawbFedex")
@ResponseBody
public ResultRS sendMawbFedex(HttpServletRequest request
......@@ -283,4 +348,5 @@ public class FedexDataInterface {
result.setCode("0");
return result;
}
}
......
......@@ -57,8 +57,7 @@ public class HsCodeInterface {
return resultHsCode;
}
}catch(Exception ex){
log.error(ex.getMessage());
ex.printStackTrace();
log.error(ex.getMessage(),ex);
resultHsCode = new ResultHsCode(Boolean.FALSE,"30101","数据查询异常",null);
return resultHsCode;
}finally {
......
......@@ -30,7 +30,7 @@ public class FedexDetail {
private Long basfId;
@Column(name="CONSIGNMENTDETAILID")
@NotNull(message="参数consignmentDetailId不能为空")
// @NotNull(message="参数consignmentDetailId不能为空")
private Long consignmentDetailId;
@ApiModelProperty(value = "商品编号")
......
......@@ -50,7 +50,7 @@ public class Fedexc implements Serializable {
@ApiModelProperty(value = "运单ID", name = "consignmentId", example = "运单记录的唯一ID")
@Column(name = "CONSIGNMENTID")
@NotNull(message="参数consignmentId不能为空!")
// @NotNull(message="参数consignmentId不能为空!")
// @NotBlank(message="参数consignmentId不能为空!")
private Long consignmentId;
......
......@@ -114,7 +114,6 @@ public class MawbDetail implements Serializable{
private String secondUnit;
@ApiModelProperty(value = "第二法定数量")
@NotNull(message="参数secondQty不能为空")
@Column(name = "SECONDQTY")
private Integer secondQty;
......
package com.erry.iclear.dateInterface.entity;
import com.erry.iclear.dateInterface.common.BaseModel;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* BASF校验接口日志表
*
* sql/BASF校验接口.sql
*/
@Entity
@Table(name = "T_ICLEAR_API_CHECK_LOG")
@Data
public class TIClearApiCheckLog extends BaseModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID" )
private Long id;
@Column(name = "request_appid" )
private String requestAppid;
@Column(name = "request_appkey" )
private String requestAppkey;
@Column(name = "request_token" )
private String requestToken;
@Column(name = "consignment_code" )
private String consignmentCode;
@Column(name = "request_text" )
private String requestText;
@Column(name = "response_text" )
private String responseText;
@Column(name = "request_ip" )
private String requestIp;
@Column(name = "create_time" )
private Date createTime;
@Column(name = "success" )
private Boolean success;
@Column(name = "code" )
private String code;
}
......@@ -36,22 +36,22 @@ public class HsCodeInterceptor extends HandlerInterceptorAdapter {
//String uri = request.getRequestURI();
if(StringUtils.isBlank(appId)){
this.returnJson(response,false,"10016","Appid 不能为空");
this.returnJson(response,false,"10016","Appid不能为空");
return false;
}
if(StringUtils.isBlank(appkey)){
this.returnJson(response,false,"10017","Appkey 不能为空");
this.returnJson(response,false,"10017","Appkey不能为空");
return false;
}
if(StringUtils.isBlank(timeStamp)){
this.returnJson(response,false,"10018","TimeStamp 不能为空");
this.returnJson(response,false,"10018","TimeStamp不能为空");
return false;
}
if(StringUtils.isBlank(token)){
this.returnJson(response,false,"10013","token 不能为空");
this.returnJson(response,false,"10013","token不能为空");
return false;
}
......
......@@ -35,22 +35,22 @@ public class SignInterceptor extends HandlerInterceptorAdapter {
if(StringUtils.isBlank(appId)){
this.returnJson(response,false,"10016","Appid 不能为空");
this.returnJson(response,false,"10016","Appid不能为空");
return false;
}
if(StringUtils.isBlank(appkey)){
this.returnJson(response,false,"10017","Appkey 不能为空");
this.returnJson(response,false,"10017","Appkey不能为空");
return false;
}
if(StringUtils.isBlank(timeStamp)){
this.returnJson(response,false,"10018","TimeStamp 不能为空");
this.returnJson(response,false,"10018","TimeStamp不能为空");
return false;
}
if(StringUtils.isBlank(token)){
this.returnJson(response,false,"10013","token 不能为空");
this.returnJson(response,false,"10013","token不能为空");
return false;
}
......
package com.erry.iclear.dateInterface.repository;
import com.erry.iclear.dateInterface.entity.IClearApiLog;
import com.erry.iclear.dateInterface.entity.TIClearApiCheckLog;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
/**
* @author Administrator
*/
@DynamicUpdate
@DynamicInsert
@Repository
@Transactional(rollbackFor = Exception.class)
public interface IClearApiCheckLogRepository extends JpaRepository<TIClearApiCheckLog, Integer>, JpaSpecificationExecutor<TIClearApiCheckLog> {
}
......@@ -139,6 +139,7 @@ public class ApiService {
//推送时间
declearTask.setPushTime(new Date());
String objJson = JsonToJava.toJson(d);
log.info("推送海关回执json: " + objJson);
//推送海关回执数据
String json = HttpUtils.doPost(this.customsUrl,objJson,headerMap);
//接口响应时间
......@@ -160,12 +161,12 @@ public class ApiService {
log.info("海关回执推送失败,推送相应码为:"+tokenResult.getErrorcode() + ",推送ID为:" + d.getId());
}
}catch(Exception ex){
log.error("推送海关回执异常:" + ex.getMessage(), ex);
//接口响应时间
declearTask.setResponseTime(new Date());
declearTask.setResponseResults("99999");
declearTask.setResponseContent(ex.getMessage());
declearTaskList.add(declearTask);
ex.printStackTrace();
}
});
declearTaskList.forEach(declearTask -> {
......@@ -203,7 +204,7 @@ public class ApiService {
});
this.sendMawb(token,mawbList);
}catch(Exception ex){
ex.printStackTrace();
log.error("pushMawbAcc",ex);
}
}
/**
......@@ -261,7 +262,7 @@ public class ApiService {
declearTask.setResponseResults("99999");
declearTask.setResponseContent(ex.getMessage());
declearTaskList.add(declearTask);
ex.printStackTrace();
log.error("sendMawb",ex);
}
});
declearTaskList.forEach(declearTask -> {
......
......@@ -234,8 +234,7 @@ public class ChmConsignmentService {
}catch (Exception e){
result=null;
e.printStackTrace();
log.error("convertToChmConsignment() error:"+e.getMessage());
log.error("sendMawb",e);
}
return result;
}
......@@ -292,8 +291,7 @@ public class ChmConsignmentService {
}
}catch (Exception e){
result=null;
e.printStackTrace();
log.error("convertToChmConsignmentFedex() error:"+e.getMessage());
log.error("convertToChmConsignmentFedex() error:"+e.getMessage(),e);
}
return result;
}
......@@ -430,8 +428,7 @@ public class ChmConsignmentService {
result.setOverseasConsigneeEname(consignment.getOverseasConsignorFnCname());
}catch (Exception e){
result=null;
e.printStackTrace();
log.error("convertToChmConsignment() error:"+e.getMessage());
log.error("convertToChmConsignment() error:"+e.getMessage(),e);
}
return result;
}
......
......@@ -45,7 +45,7 @@ public class DeclearTaskService{
declareTaskRepository.saveAll(declareTaskList);
}
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(),e);
}
}
......@@ -70,7 +70,7 @@ public class DeclearTaskService{
declareTaskRepository.saveAll(declareTaskList);
}
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(),e);
}
}
......
......@@ -27,8 +27,7 @@ public class DictionaryEntriesService {
try {
result=dictionaryEntriesRepository.findAllDictionaryEntries();
}catch (Exception e){
e.printStackTrace();
log.error("getAllDictionaryEntries() error:"+e.getMessage());
log.error(e.getMessage(),e);
}
return result;
}
......
......@@ -3,12 +3,14 @@ package com.erry.iclear.dateInterface.service;
import com.erry.iclear.dateInterface.api.request.FedexConsignment;
import com.erry.iclear.dateInterface.api.request.ConsignmentDetail;
import com.erry.iclear.dateInterface.entity.DeclaredInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class FedexConsignmentService {
public List<FedexConsignment> fedexConsignmentList(List<DeclaredInfo> consignment){
......@@ -62,7 +64,7 @@ public class FedexConsignmentService {
fedexConsignmentList.add(fedexConsignment);
}
}catch (Exception e){
e.printStackTrace();
log.error(e.getMessage(),e);
}
return fedexConsignmentList;
}
......
......@@ -11,15 +11,22 @@ import com.erry.iclear.dateInterface.entity.ChmConsignmentDetail;
import com.erry.iclear.dateInterface.repository.FedexMawbRepository;
import com.erry.iclear.dateInterface.util.JsonToJava;
import com.google.gson.Gson;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.Header;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.persistence.*;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author Administrator
......@@ -50,6 +57,16 @@ public class FedexService {
FedexMawb result=null;
try{
log.info("saveMawb start>>>>>>>>>>>");
FedexMawb fedexMawb = this.generateFedexMawb(fedexc);
result = fedexMawbRepository.save(fedexMawb);
log.info("saveMawb end>>>>>>>>>>>");
}catch (Exception e){
log.error("saveMawb() error:"+e.getMessage());
}
return result;
}
public FedexMawb generateFedexMawb(Fedexc fedexc){
//运单头部信息
FedexMawb fedexMawb = new FedexMawb();
fedexMawb.setAppId(fedexc.getAppId());
......@@ -75,7 +92,8 @@ public class FedexService {
fedexMawb.setEanNo(fedexc.getEanNo());
//明细
List<FedexMawbDetail> mawbDetailList = new ArrayList<>();
if (fedexc.getConsignmentList().size()>0){
List<FedexDetail> consignmentList = fedexc.getConsignmentList();
if (Objects.nonNull(consignmentList) &&consignmentList.size()>0){
for (FedexDetail fedexcDetail : fedexc.getConsignmentList()){
FedexMawbDetail mawbDetail = new FedexMawbDetail();
mawbDetail.setDetailId(String.valueOf(fedexcDetail.getConsignmentDetailId()));
......@@ -95,12 +113,8 @@ public class FedexService {
}
}
fedexMawb.setMawbDetailList(mawbDetailList);
result = fedexMawbRepository.save(fedexMawb);
log.info("saveMawb end>>>>>>>>>>>");
}catch (Exception e){
log.error("saveMawb() error:"+e.getMessage());
}
return result;
return fedexMawb;
}
/**
......@@ -145,7 +159,56 @@ public class FedexService {
result.setMsg(iclearCheckResponseResult.getMessage());
log.info("<<<<<<<< checkMawb start >>>>>>>>>> mawb:"+gson.toJson(fedexMawb) +" result :" +result.getSuccess() +" iclear check response : " + json + " status : " + result.getSuccess());
}catch (Exception e){
log.error("checkMawb() error:" + e.getMessage());
log.error("checkMawb() error:",e);
}
return result;
}
/**
* 校验BASF接口信息
* @param fedexc
* @return
*/
public ResultRS checkBasfInterfaceData(Fedexc fedexc){
ResultRS result = new ResultRS(Boolean.FALSE,"","");
if(Objects.equals(fedexc,null)){
result.setCode("-7");
result.setMsg("请求信息不能为空");
}else{
List<String> msgList = new ArrayList<>();
// 参数consignmentCode不能为空
String consignmentCode = fedexc.getConsignmentCode();
if(StringUtils.isEmpty(consignmentCode)){
msgList.add("参数consignmentCode不能为空");
}
// 参数consignmentId不能为空
// Long consignmentId = fedexc.getConsignmentId();
// if(Objects.isNull(consignmentId)){
// msgList.add("参数consignmentId不能为空");
// }
// 参数consType不能为空
String consType = fedexc.getConsType();
if(StringUtils.isEmpty(consType)){
msgList.add("参数consType不能为空");
}
// 参数sender不能为空
String sender = fedexc.getSender();
if(StringUtils.isEmpty(sender)){
msgList.add("参数sender不能为空");
}
// 参数shipperSCC不能为空
String shipperSCC = fedexc.getShipperSCC();
if(StringUtils.isEmpty(shipperSCC)){
msgList.add("参数shipperSCC不能为空");
}
if(msgList.size() > 0){
String join = msgList.stream().collect(Collectors.joining(";"));
result.setCode("-7");
result.setMsg(join);
}
}
return result;
}
......
......@@ -61,8 +61,7 @@ public class HsCodeService {
resultHsCode.setMsg("操作成功");
resultHsCode.setHsCodeResultList(hsCodeList);
}catch(Exception ex){
log.error(ex.getMessage());
ex.printStackTrace();
log.error(ex.getMessage(),ex);
resultHsCode.setSuccess(Boolean.FALSE);
resultHsCode.setCode("30101");
resultHsCode.setMsg("数据查询异常");
......@@ -83,8 +82,8 @@ public class HsCodeService {
resultHsCode.setMsg("操作成功");
resultHsCode.setHsCodeResultList(hsCodeList);
}catch(Exception ex){
log.error(ex.getMessage());
ex.printStackTrace();
log.error(ex.getMessage(),ex);
resultHsCode.setSuccess(Boolean.FALSE);
resultHsCode.setCode("30101");
resultHsCode.setMsg("数据查询异常");
......
......@@ -44,7 +44,7 @@ public class IClearApiHsCodeLogService {
rs = true;
}
}catch(Exception ex){
ex.printStackTrace();
log.error(ex.getMessage(),ex);
}
return rs;
}
......
......@@ -5,10 +5,12 @@ import com.erry.iclear.dateInterface.api.request.MawbDetail;
import com.erry.iclear.dateInterface.api.response.ResultRS;
import com.erry.iclear.dateInterface.repository.MawbDetailRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/**
* @author Administrator
......@@ -29,11 +31,19 @@ public class MawbDetailService {
public ResultRS checkMawbDetail(Mawb mawb){
ResultRS result = new ResultRS(Boolean.FALSE,null,null);
ResultRS result = new ResultRS(Boolean.FALSE,"30002",null);
try{
for (MawbDetail detail : mawb.getMawbDetailList()) {
String secondUnit = detail.getSecondUnit();
if (StringUtils.isNotEmpty(secondUnit)) {
Integer secondQty = detail.getSecondQty();
if (Objects.isNull(secondQty)) {
result.setMsg("参数secondQty不能为空");
return result;
}
}
}
result.setSuccess(Boolean.TRUE);
}catch (Exception e){
log.error("checkMawbDetail() error:"+e.getMessage());
......
......@@ -103,7 +103,8 @@ public class IClearApiTask {
this.token = tokenResult.getData().getToken();
}
}catch(Exception ex){
ex.printStackTrace();
log.error(ex.getMessage(),ex);
}
}
if(this.token == null){
......
......@@ -834,7 +834,7 @@ public class DateUtils {
Date date = df.parse(datetext);
return date;
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage(),e);
return null;
}
}
......@@ -895,7 +895,6 @@ public class DateUtils {
cal.add(GregorianCalendar.YEAR, year);
return formatDate(cal.getTime(), "yyyy-MM-dd");
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
......
spring:
datasource:
url: jdbc:sqlserver://40.73.78.157:1433;DatabaseName=IClearUat
url: jdbc:sqlserver://40.73.78.157:1433;DatabaseName=IClearDev
username: sa
password: Fedex_123
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
......
spring:
datasource:
url: jdbc:sqlserver://40.73.78.157:1433;DatabaseName=IClearDev
url: jdbc:sqlserver://40.73.78.157:1433;DatabaseName=IClearUat
username: sa
password: Fedex_123
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
......
......@@ -39,6 +39,10 @@
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
<root level="error">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</springProfile>
<springProfile name="prod">
......@@ -46,6 +50,10 @@
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
<root level="error">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</springProfile>
......
......@@ -24,17 +24,17 @@ public class ApiTest {
//获取HSCODE接口地址
public static String hscodeRequest = "hscode/hscodeRequest";
public static String timeStamp = "1649839249891";
public static String timeStamp = "1645153943";
public static String appId = "IDE";
public static String appKey = "iClearExport";
//需要申请
public static String security = "b92131f03f19a348";
public static String security = "bb348f1ba6ab7cc1";
public static void main(String[] args) throws Exception{
//D类申报的数据落地接口
// ApiTest.sendMawb();
ApiTest.sendMawb();
//C类申报的数据落地接口
ApiTest.sendMawbBasf();
// ApiTest.sendMawbBasf();
//C类EDI数据接口
// ApiTest.selectDecListBasf();
//C类回执数据接口
......@@ -51,34 +51,34 @@ public class ApiTest {
String masbJson ="{\"ieFlag\":\"E\",\"type\":\"EX\",\"agentCode\":\"1111980005\",\"agentName\":\"联邦快递(中国)有限公司\",\"billNo\":\"202204141\",\"contrNo\":\"3006622200\",\"customMaster\":\"0208\",\"cutMode\":\"601\",\"declTrnRel\":\"0\",\"distinatePort\":\"DEU000\",\"ediId\":\"001\",\"feeCurr\":\"EUR\",\"feeMark\":\"3\",\"feeRate\":110.9,\"grossWet\":4.6,\"iePort\":\"0101\",\"insurCurr\":\"EUR\",\"insurMark\":\"3\",\"insurRate\":0.74,\"netWt\":32,\"ownerCode\":\"3118962277\",\"ownerName\":\"测试核销单位\",\"packNo\":1,\"tradeCountry\":\"USA\",\"tradeMode\":\"110\",\"tradeCode\":\"32099616DM\",\"trafMode\":\"5\",\"tradeName\":\"测试发件人\",\"transMode\":\"1\",\"wrapType\":\"23\",\"tradeCodeScc\":\"A74125896321456987\",\"ownerCodeScc\":\"913100007421296207\",\"tradeAreaCode\":\"DEU\",\"entyPortCode\":\"310302\",\"goodsPlace\":\"\",\"declareName\":\"Jimmy shen\",\"overseasConsigneeEname\":\"PRYSMIAN KABEL UND SYSTEME GMBH\",\"mawbDetailList\":[{\"detailId\":\"204\",\"classMark\":\"\",\"codeTS\":\"8504409999\",\"declPrice\":3365,\"declTotal\":3365,\"dutyMode\":\"1\",\"exgNo\":\"\",\"exgVersion\":\"\",\"firstUnit\":\"007\",\"firstQty\":1,\"originCountry\":\"CHN\",\"secondUnit\":\"035\",\"secondQty\":1,\"tradeCurr\":\"EUR\",\"useTo\":\"03\",\"destinationCountry\":\"DEU\",\"ciqCode\":\"\",\"destCode\":\"110102\",\"districtCode\":\"44079\",\"gno\":1,\"gname\":\"变频调速装置\",\"gmodel\":\"4|0|控制电机用|240KW|西门子/SIEMENS|6RA8081-6GV62-0AA0|||\",\"gqty\":1,\"gunit\":\"007\"}]}";
System.out.println(new Date(Long.valueOf(timeStamp)));
String token = SHA256Util.getSHA256String("IDE" + "iClearExport" + ApiTest.security + ApiTest.timeStamp);
String token = SHA256Util.getSHA256String("DEMO1" + "iClearExportDemo1" + ApiTest.security + ApiTest.timeStamp);
System.out.println(token);
Header[] headers = HttpHeader.custom()
.other("Content-Type", "application/json")
.other("Appid", ApiTest.appId)
.other("appKey", ApiTest.appKey)
.other("TimeStamp", ApiTest.timeStamp)
.other("token", token)
.build();
HCB hcb = HCB.custom()
.timeout(20000)
.pool(100, 10)
.sslpv(SSLs.SSLProtocolVersion.TLSv1_2)
.ssl()
.retry(3);
//String url = "https://40.73.78.157:8780/customs/sendMawb";
String url = ApiTest.url + ApiTest.sendMawb;
HttpConfig config = HttpConfig.custom()
.headers(headers)
.url(url)
.encoding("utf-8")
.client(hcb.build())
// .json(new Gson().toJson(createMawb()));
.json(masbJson);
System.out.println(HttpClientUtil.post(config));
// Header[] headers = HttpHeader.custom()
// .other("Content-Type", "application/json")
// .other("Appid", ApiTest.appId)
// .other("appKey", ApiTest.appKey)
// .other("TimeStamp", ApiTest.timeStamp)
// .other("token", token)
// .build();
//
// HCB hcb = HCB.custom()
// .timeout(20000)
// .pool(100, 10)
// .sslpv(SSLs.SSLProtocolVersion.TLSv1_2)
// .ssl()
// .retry(3);
//
// //String url = "https://40.73.78.157:8780/customs/sendMawb";
// String url = ApiTest.url + ApiTest.sendMawb;
// HttpConfig config = HttpConfig.custom()
// .headers(headers)
// .url(url)
// .encoding("utf-8")
// .client(hcb.build())
//// .json(new Gson().toJson(createMawb()));
// .json(masbJson);
// System.out.println(HttpClientUtil.post(config));
}
/**
......
......@@ -35,8 +35,8 @@ public class SendMawbFedex {
*/
public static void sendMawbBasf() throws Exception{
//申报数据:consignmentCode 运单号需要修改
String json ="{\"consignmentCode\":\"271002102051\",\"consignmentId\":164535620,\"consType\":\"C\",\"sender\":\"巴斯夫护理化学品(上海)有限公司\",\"shipperCustomsCode\":\"3119920047\",\"shipperSCC\":\"91310000607239894U\",\"operateUnitName\":\"巴斯夫护理化学品(上海)有限公司\",\"operateUnitCode\":\"3119920047\",\"operateSCC\":\"91310000607239894U\",\"consignmentList\":[{\"consignmentDetailId\":83010676,\"skuCode\":\"2917341090\",\"skuName\":\"邻苯二甲酸二丁酯\",\"model\":\"品名:邻苯二甲酸二丁酯 |品牌类型:0|出口享惠情况:0|成分含量:100% 邻苯二甲酸二丁酯|用途:化学分析用试剂,实验用途|GTIN:|CAS:|其他[非必报要素,请根据实际情况填报]:|\",\"knockdownNumber\":1,\"knockdownUnit\":\"035\",\"qtyLegalFirst\":1,\"unitLegalFirst\":\"035\",\"qtyLegalSecond\":\"1.0000\",\"unitLegalSecond\":\"\",\"declaredAmount\":10,\"currency\":\"USD\",\"declaredWeight\":1}]}";
String json ="{\"consignmentCode\":\"281833508306\",\"consignmentId\":14054615,\"consType\":\"C\",\"sender\":\"鲁泰纺织股份有限公司\",\"operateUnitName\":\"鲁泰纺织股份有限公司\",\"operateUnitCode\":\"3703930116\",\"operateSCC\":\"91370302613281175K\",\"shipperCustomsCode\":\"3703930116\",\"shipperSCC\":\"91370302613281175K\",\"EANNo\":\"0000000001\",\"consignmentList\":[{\"consignmentDetailId\":15815679,\"skuCode\":\"4205001090\",\"skuName\":\"其他动物皮革制的坐具套\",\"model\":\"品名:其他动物皮革制的坐具套|品牌类型:0|出口享惠情况:0|材质[皮革或再生皮革]:皮革|GTIN:|CAS:|其他[非必报要素,请根据实际情况填报]:|\",\"knockdownNumber\":1,\"knockdownUnit\":\"035\",\"qtyLegalFirst\":1,\"unitLegalFirst\":\"035\",\"declaredAmount\":1,\"currency\":\"USD\",\"declaredWeight\":1}]}";
System.out.println(json);
String token = SHA256Util.getSHA256String(SendMawbFedex.appId + SendMawbFedex.appKey + SendMawbFedex.security + SendMawbFedex.timeStamp);
System.out.println(token);
//消息头
......