md
This commit is contained in:
parent
6eabd986ba
commit
72835d1df5
@ -43,6 +43,7 @@ package com.xdadan.erp.emis.service;
|
||||
import com.xdadan.erp.emis.service.sms.Sms253Service;
|
||||
import com.xdadan.erp.emis.utils.HTTPHelperV3;
|
||||
import com.xdadan.erp.emis.utils.Kd100Helper;
|
||||
import com.xdadan.erp.emis.utils.Q17trackHelper;
|
||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||
import com.xdadan.erp.emis.utils.sensitive.Convert;
|
||||
import com.xdadan.erp.system.mapper.SysUserMapper;
|
||||
@ -841,7 +842,11 @@ public class EmisBaseService {
|
||||
try {
|
||||
EmisTmsTransferTrace emisTmsTransferTrace = getEmisTmsTransferTraceByBillCode(billCode);
|
||||
if(emisTmsTransferTrace!=null){
|
||||
return Kd100Helper.cvtTraceToScanRecord(billCode,emisTmsTransferTrace.getTraceInfo());
|
||||
if("17track".equals(emisTmsTransferTrace)) {
|
||||
return Q17trackHelper.cvtTraceToScanRecord(billCode, emisTmsTransferTrace.getTraceInfo());
|
||||
}else {
|
||||
return Kd100Helper.cvtTraceToScanRecord(billCode, emisTmsTransferTrace.getTraceInfo());
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -884,14 +889,32 @@ public class EmisBaseService {
|
||||
String to=emisWaybill.getReceiveCountryName()+"-"+emisWaybill.getReceiveProvinceName();
|
||||
|
||||
|
||||
// 订阅单号
|
||||
Kd100Helper.pollTraceByMainNoAndCom(dt.getTransferBillCode(),dt.getTransferExpress(),from,to,phone);
|
||||
String kdgs=dt.getTransferExpress().toLowerCase();
|
||||
|
||||
String kdQueryChannelJsonStr=configService.selectConfigByKey("sys.express.query.channel");
|
||||
JSONObject jobjKdQ = JSONObject.parseObject(kdQueryChannelJsonStr);
|
||||
|
||||
JSONObject kdQObj = jobjKdQ.getJSONObject(kdgs);
|
||||
String kdChId = "kd100";
|
||||
String kdComId = kdgs;
|
||||
if(kdQObj!=null) {
|
||||
kdChId=kdQObj.getString("chId");
|
||||
kdComId=kdQObj.getString("comId");
|
||||
}
|
||||
|
||||
EmisTmsTransferTrace rstUpd=null;
|
||||
// 快递100查询数据
|
||||
if("kd100".equals(kdChId)){
|
||||
// 订阅单号
|
||||
Kd100Helper.pollTraceByMainNoAndCom(dt.getTransferBillCode(),dt.getTransferExpress(),from,to,phone);
|
||||
rstUpd=Kd100Helper.queryTmsTransferTraceByKd100(dt,phone);
|
||||
}
|
||||
else if("17track".equals(kdChId)){
|
||||
Q17trackHelper.register(dt.getTransferBillCode(),kdComId);
|
||||
rstUpd=Q17trackHelper.queryTmsTransferTrace(dt,kdComId,phone);
|
||||
}
|
||||
log.error("===>Start 三方物流跟踪单号:"+dt.getBillCode()+","+dt.getTransferExpress()+" "+dt.getTransferBillCode());
|
||||
|
||||
|
||||
|
||||
EmisTmsTransferTrace rstUpd=Kd100Helper.queryTmsTransferTraceByKd100(dt,phone);
|
||||
// 如果已签收,需要做签收扫描
|
||||
if(WaybillStatus.SIGNED.statusCode.equals(rstUpd.getLastWaybillStatus())){
|
||||
// 查询转件的站点
|
||||
|
||||
@ -2434,6 +2434,8 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm
|
||||
public List<EmisTmsScanRecord> getTraceListByBillCode(String billCode,Boolean isAsc) {
|
||||
|
||||
List<EmisTmsScanRecord> listTraces = emisTmsScanRecordMapper.selectTraceListByBillCode(billCode);
|
||||
|
||||
// 转件记录
|
||||
List<EmisTmsScanRecord> transferList=cvtTransferTraceToScanRecord(billCode);
|
||||
if(!CollectionUtil.isEmpty(transferList)){
|
||||
listTraces.addAll(transferList);
|
||||
|
||||
@ -30,6 +30,7 @@ public class Q17trackHelper {
|
||||
|
||||
private static final String QUERY_URL = "https://api.17track.net/track/v2.2/gettrackinfo";
|
||||
private static final String REGISTER_URL = "https://api.17track.net/track/v2/register";
|
||||
private static final String CHANGE_REGISTER_URL = "https://api.17track.net/track/v2/changecarrier";
|
||||
|
||||
// 17track Key
|
||||
private static final String KEY = "F461E71E91CC9CEBD016E2A078E5496D";
|
||||
@ -40,7 +41,7 @@ public class Q17trackHelper {
|
||||
* @param num 快递单号
|
||||
* @return data
|
||||
*/
|
||||
public static String queryTraceInfo(String mainNo, String com,String phone) throws Exception {
|
||||
public static String queryTraceInfo(String mainNo, String comId,String phone) throws Exception {
|
||||
|
||||
|
||||
Map<String, String> postHeader = new HashMap<>();
|
||||
@ -50,7 +51,7 @@ public class Q17trackHelper {
|
||||
JSONArray ydJsonArr = new JSONArray();
|
||||
JSONObject ydJsonItem = new JSONObject();
|
||||
ydJsonItem.put("number",mainNo);
|
||||
ydJsonItem.put("carrier",com);
|
||||
ydJsonItem.put("carrier",comId);
|
||||
|
||||
ydJsonArr.add(ydJsonItem);
|
||||
String postJsonStr=ydJsonArr.toJSONString();
|
||||
@ -82,6 +83,7 @@ public class Q17trackHelper {
|
||||
JSONArray ydJsonArr = new JSONArray();
|
||||
JSONObject ydJsonItem = new JSONObject();
|
||||
ydJsonItem.put("number",mainNo);
|
||||
ydJsonItem.put("carrier",com);
|
||||
|
||||
ydJsonArr.add(ydJsonItem);
|
||||
String postJsonStr=ydJsonArr.toJSONString();
|
||||
@ -97,20 +99,47 @@ public class Q17trackHelper {
|
||||
}
|
||||
}
|
||||
|
||||
public static String changeRegister(String mainNo, String com) {
|
||||
|
||||
Map<String, String> postHeader = new HashMap<>();
|
||||
postHeader.put("17token",KEY);
|
||||
|
||||
JSONArray ydJsonArr = new JSONArray();
|
||||
JSONObject ydJsonItem = new JSONObject();
|
||||
ydJsonItem.put("number",mainNo);
|
||||
|
||||
ydJsonArr.add(ydJsonItem);
|
||||
String postJsonStr=ydJsonArr.toJSONString();
|
||||
|
||||
try {
|
||||
log.debug("===17track==POST==>{}",postJsonStr);
|
||||
String restStr=HTTPHelperV3.postJson(CHANGE_REGISTER_URL,postHeader,postJsonStr);
|
||||
log.debug("===17track==REST==>{}",restStr);
|
||||
return restStr;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static List<EmisTmsScanRecord> cvtTraceToScanRecord(String billCode,String traceInfo) {
|
||||
List<EmisTmsScanRecord> recordList= null;
|
||||
try {
|
||||
if(!StringUtils.isEmpty(traceInfo)){
|
||||
JSONObject jsonObject = JSONObject.parseObject(traceInfo);
|
||||
JSONArray steps=jsonObject.getJSONArray("data");
|
||||
JSONObject jObjAccepted0=jsonObject.getJSONObject("data").getJSONArray("accepted").getJSONObject(0);
|
||||
|
||||
JSONArray steps=jObjAccepted0.getJSONObject("track_info").getJSONObject("tracking").getJSONArray("providers").getJSONObject(0).getJSONArray("events");
|
||||
if(steps!=null && steps.size()>0){
|
||||
recordList = new ArrayList<>();
|
||||
for (Object obj:steps) {
|
||||
JSONObject stepItem = (JSONObject)obj;
|
||||
EmisTmsScanRecord recordItem = new EmisTmsScanRecord();
|
||||
recordItem.setBillCode(billCode);
|
||||
recordItem.setScanDate(DateUtils.parseDate(stepItem.getString("time")));
|
||||
recordItem.setRemark(stepItem.getString("context"));
|
||||
String timeUtc=stepItem.getString("time_utc");
|
||||
timeUtc=timeUtc.replace("T"," ").replace("Z","");
|
||||
recordItem.setScanDate(DateUtils.parseDate(timeUtc));
|
||||
recordItem.setRemark(stepItem.getString("description"));
|
||||
recordItem.setScanType("81");
|
||||
recordList.add(recordItem);
|
||||
}
|
||||
@ -124,28 +153,34 @@ public class Q17trackHelper {
|
||||
return recordList;
|
||||
}
|
||||
|
||||
public static EmisTmsTransferTrace queryTmsTransferTraceByKd100(EmisTmsTransferTrace emisTmsTransferTrace,String phone) {
|
||||
public static EmisTmsTransferTrace queryTmsTransferTrace(EmisTmsTransferTrace emisTmsTransferTrace,String comId,String phone) {
|
||||
|
||||
String rstStr= null;
|
||||
try {
|
||||
emisTmsTransferTrace.setChId("17track");
|
||||
rstStr = queryTraceInfo(emisTmsTransferTrace.getTransferBillCode(),emisTmsTransferTrace.getTransferExpress(),phone);
|
||||
rstStr = queryTraceInfo(emisTmsTransferTrace.getTransferBillCode(),comId,phone);
|
||||
JSONObject jsonObject=JSONObject.parseObject(rstStr);
|
||||
emisTmsTransferTrace.setTraceInfo(rstStr);
|
||||
/*
|
||||
快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
|
||||
快递值 Delivered-签收
|
||||
*/
|
||||
// String state=jsonObject.getString("state");
|
||||
// if("3".equals(state)){
|
||||
// emisTmsTransferTrace.setLastWaybillStatus(WaybillStatus.SIGNED.statusCode);
|
||||
// }
|
||||
//
|
||||
// JSONArray steps=jsonObject.getJSONArray("data");
|
||||
// if(steps!=null && steps.size()>0){
|
||||
// JSONObject lastObj = steps.getJSONObject(0);
|
||||
// emisTmsTransferTrace.setLastTraceDate(DateUtils.parseDate(lastObj.getString("time")));
|
||||
// emisTmsTransferTrace.setRemark(lastObj.getString("context"));
|
||||
// }
|
||||
String code=jsonObject.getString("code");
|
||||
if("0".equals(code)) {
|
||||
|
||||
JSONObject jObjAccepted0=jsonObject.getJSONObject("data").getJSONArray("accepted").getJSONObject(0);
|
||||
String state = jObjAccepted0.getJSONObject("track_info").getJSONObject("latest_status").getString("status");
|
||||
if ("Delivered".equals(state)) {
|
||||
emisTmsTransferTrace.setLastWaybillStatus(WaybillStatus.SIGNED.statusCode);
|
||||
}
|
||||
|
||||
JSONObject latestEvent = jObjAccepted0.getJSONObject("track_info").getJSONObject("latest_event");
|
||||
if (latestEvent!=null) {
|
||||
String timeUtc=latestEvent.getString("time_utc");
|
||||
timeUtc=timeUtc.replace("T"," ").replace("Z","");
|
||||
emisTmsTransferTrace.setLastTraceDate(DateUtils.parseDate(timeUtc));
|
||||
emisTmsTransferTrace.setRemark(latestEvent.getString("description"));
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -162,10 +197,12 @@ public class Q17trackHelper {
|
||||
System.out.println(str);
|
||||
String str1=queryTraceInfo("DRK50179785","100702","137");
|
||||
System.out.println(str1);
|
||||
List tmpList=cvtTraceToScanRecord("DRK50179785",str1);
|
||||
System.out.println(JSON.toJSONString(tmpList));
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user