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.service.sms.Sms253Service;
|
||||||
import com.xdadan.erp.emis.utils.HTTPHelperV3;
|
import com.xdadan.erp.emis.utils.HTTPHelperV3;
|
||||||
import com.xdadan.erp.emis.utils.Kd100Helper;
|
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.WaybillHelper;
|
||||||
import com.xdadan.erp.emis.utils.sensitive.Convert;
|
import com.xdadan.erp.emis.utils.sensitive.Convert;
|
||||||
import com.xdadan.erp.system.mapper.SysUserMapper;
|
import com.xdadan.erp.system.mapper.SysUserMapper;
|
||||||
@ -841,7 +842,11 @@ public class EmisBaseService {
|
|||||||
try {
|
try {
|
||||||
EmisTmsTransferTrace emisTmsTransferTrace = getEmisTmsTransferTraceByBillCode(billCode);
|
EmisTmsTransferTrace emisTmsTransferTrace = getEmisTmsTransferTraceByBillCode(billCode);
|
||||||
if(emisTmsTransferTrace!=null){
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -884,14 +889,32 @@ public class EmisBaseService {
|
|||||||
String to=emisWaybill.getReceiveCountryName()+"-"+emisWaybill.getReceiveProvinceName();
|
String to=emisWaybill.getReceiveCountryName()+"-"+emisWaybill.getReceiveProvinceName();
|
||||||
|
|
||||||
|
|
||||||
// 订阅单号
|
String kdgs=dt.getTransferExpress().toLowerCase();
|
||||||
Kd100Helper.pollTraceByMainNoAndCom(dt.getTransferBillCode(),dt.getTransferExpress(),from,to,phone);
|
|
||||||
|
|
||||||
|
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());
|
log.error("===>Start 三方物流跟踪单号:"+dt.getBillCode()+","+dt.getTransferExpress()+" "+dt.getTransferBillCode());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
EmisTmsTransferTrace rstUpd=Kd100Helper.queryTmsTransferTraceByKd100(dt,phone);
|
|
||||||
// 如果已签收,需要做签收扫描
|
// 如果已签收,需要做签收扫描
|
||||||
if(WaybillStatus.SIGNED.statusCode.equals(rstUpd.getLastWaybillStatus())){
|
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) {
|
public List<EmisTmsScanRecord> getTraceListByBillCode(String billCode,Boolean isAsc) {
|
||||||
|
|
||||||
List<EmisTmsScanRecord> listTraces = emisTmsScanRecordMapper.selectTraceListByBillCode(billCode);
|
List<EmisTmsScanRecord> listTraces = emisTmsScanRecordMapper.selectTraceListByBillCode(billCode);
|
||||||
|
|
||||||
|
// 转件记录
|
||||||
List<EmisTmsScanRecord> transferList=cvtTransferTraceToScanRecord(billCode);
|
List<EmisTmsScanRecord> transferList=cvtTransferTraceToScanRecord(billCode);
|
||||||
if(!CollectionUtil.isEmpty(transferList)){
|
if(!CollectionUtil.isEmpty(transferList)){
|
||||||
listTraces.addAll(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 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 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
|
// 17track Key
|
||||||
private static final String KEY = "F461E71E91CC9CEBD016E2A078E5496D";
|
private static final String KEY = "F461E71E91CC9CEBD016E2A078E5496D";
|
||||||
@ -40,7 +41,7 @@ public class Q17trackHelper {
|
|||||||
* @param num 快递单号
|
* @param num 快递单号
|
||||||
* @return data
|
* @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<>();
|
Map<String, String> postHeader = new HashMap<>();
|
||||||
@ -50,7 +51,7 @@ public class Q17trackHelper {
|
|||||||
JSONArray ydJsonArr = new JSONArray();
|
JSONArray ydJsonArr = new JSONArray();
|
||||||
JSONObject ydJsonItem = new JSONObject();
|
JSONObject ydJsonItem = new JSONObject();
|
||||||
ydJsonItem.put("number",mainNo);
|
ydJsonItem.put("number",mainNo);
|
||||||
ydJsonItem.put("carrier",com);
|
ydJsonItem.put("carrier",comId);
|
||||||
|
|
||||||
ydJsonArr.add(ydJsonItem);
|
ydJsonArr.add(ydJsonItem);
|
||||||
String postJsonStr=ydJsonArr.toJSONString();
|
String postJsonStr=ydJsonArr.toJSONString();
|
||||||
@ -82,6 +83,7 @@ public class Q17trackHelper {
|
|||||||
JSONArray ydJsonArr = new JSONArray();
|
JSONArray ydJsonArr = new JSONArray();
|
||||||
JSONObject ydJsonItem = new JSONObject();
|
JSONObject ydJsonItem = new JSONObject();
|
||||||
ydJsonItem.put("number",mainNo);
|
ydJsonItem.put("number",mainNo);
|
||||||
|
ydJsonItem.put("carrier",com);
|
||||||
|
|
||||||
ydJsonArr.add(ydJsonItem);
|
ydJsonArr.add(ydJsonItem);
|
||||||
String postJsonStr=ydJsonArr.toJSONString();
|
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) {
|
public static List<EmisTmsScanRecord> cvtTraceToScanRecord(String billCode,String traceInfo) {
|
||||||
List<EmisTmsScanRecord> recordList= null;
|
List<EmisTmsScanRecord> recordList= null;
|
||||||
try {
|
try {
|
||||||
if(!StringUtils.isEmpty(traceInfo)){
|
if(!StringUtils.isEmpty(traceInfo)){
|
||||||
JSONObject jsonObject = JSONObject.parseObject(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){
|
if(steps!=null && steps.size()>0){
|
||||||
recordList = new ArrayList<>();
|
recordList = new ArrayList<>();
|
||||||
for (Object obj:steps) {
|
for (Object obj:steps) {
|
||||||
JSONObject stepItem = (JSONObject)obj;
|
JSONObject stepItem = (JSONObject)obj;
|
||||||
EmisTmsScanRecord recordItem = new EmisTmsScanRecord();
|
EmisTmsScanRecord recordItem = new EmisTmsScanRecord();
|
||||||
recordItem.setBillCode(billCode);
|
recordItem.setBillCode(billCode);
|
||||||
recordItem.setScanDate(DateUtils.parseDate(stepItem.getString("time")));
|
String timeUtc=stepItem.getString("time_utc");
|
||||||
recordItem.setRemark(stepItem.getString("context"));
|
timeUtc=timeUtc.replace("T"," ").replace("Z","");
|
||||||
|
recordItem.setScanDate(DateUtils.parseDate(timeUtc));
|
||||||
|
recordItem.setRemark(stepItem.getString("description"));
|
||||||
recordItem.setScanType("81");
|
recordItem.setScanType("81");
|
||||||
recordList.add(recordItem);
|
recordList.add(recordItem);
|
||||||
}
|
}
|
||||||
@ -124,28 +153,34 @@ public class Q17trackHelper {
|
|||||||
return recordList;
|
return recordList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EmisTmsTransferTrace queryTmsTransferTraceByKd100(EmisTmsTransferTrace emisTmsTransferTrace,String phone) {
|
public static EmisTmsTransferTrace queryTmsTransferTrace(EmisTmsTransferTrace emisTmsTransferTrace,String comId,String phone) {
|
||||||
|
|
||||||
String rstStr= null;
|
String rstStr= null;
|
||||||
try {
|
try {
|
||||||
emisTmsTransferTrace.setChId("17track");
|
emisTmsTransferTrace.setChId("17track");
|
||||||
rstStr = queryTraceInfo(emisTmsTransferTrace.getTransferBillCode(),emisTmsTransferTrace.getTransferExpress(),phone);
|
rstStr = queryTraceInfo(emisTmsTransferTrace.getTransferBillCode(),comId,phone);
|
||||||
JSONObject jsonObject=JSONObject.parseObject(rstStr);
|
JSONObject jsonObject=JSONObject.parseObject(rstStr);
|
||||||
emisTmsTransferTrace.setTraceInfo(rstStr);
|
emisTmsTransferTrace.setTraceInfo(rstStr);
|
||||||
/*
|
/*
|
||||||
快递单当前状态,默认为0在途,1揽收,2疑难,3签收,4退签,5派件,8清关,14拒签等10个基础物流状态,如需要返回高级物流状态,请参考 resultv2 传值
|
快递值 Delivered-签收
|
||||||
*/
|
*/
|
||||||
// String state=jsonObject.getString("state");
|
String code=jsonObject.getString("code");
|
||||||
// if("3".equals(state)){
|
if("0".equals(code)) {
|
||||||
// emisTmsTransferTrace.setLastWaybillStatus(WaybillStatus.SIGNED.statusCode);
|
|
||||||
// }
|
JSONObject jObjAccepted0=jsonObject.getJSONObject("data").getJSONArray("accepted").getJSONObject(0);
|
||||||
//
|
String state = jObjAccepted0.getJSONObject("track_info").getJSONObject("latest_status").getString("status");
|
||||||
// JSONArray steps=jsonObject.getJSONArray("data");
|
if ("Delivered".equals(state)) {
|
||||||
// if(steps!=null && steps.size()>0){
|
emisTmsTransferTrace.setLastWaybillStatus(WaybillStatus.SIGNED.statusCode);
|
||||||
// JSONObject lastObj = steps.getJSONObject(0);
|
}
|
||||||
// emisTmsTransferTrace.setLastTraceDate(DateUtils.parseDate(lastObj.getString("time")));
|
|
||||||
// emisTmsTransferTrace.setRemark(lastObj.getString("context"));
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -162,10 +197,12 @@ public class Q17trackHelper {
|
|||||||
System.out.println(str);
|
System.out.println(str);
|
||||||
String str1=queryTraceInfo("DRK50179785","100702","137");
|
String str1=queryTraceInfo("DRK50179785","100702","137");
|
||||||
System.out.println(str1);
|
System.out.println(str1);
|
||||||
|
List tmpList=cvtTraceToScanRecord("DRK50179785",str1);
|
||||||
|
System.out.println(JSON.toJSONString(tmpList));
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user