提交 c1abce5f authored 作者: 000516's avatar 000516

撤销 "订单 - 发货单物流查询(跨越、JDTC)"

这将还原合并请求 !46
上级 cf172746
......@@ -120,10 +120,7 @@
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<dependency>
<groupId>com.kyexpress</groupId>
<artifactId>kye-openapi-sdk</artifactId>
</dependency>
</dependencies>
<build>
......
package com.sfa.job.controller.order;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.redis.service.RedisService;
import com.sfa.job.constants.RedisKeyJob;
import com.sfa.job.pojo.response.OrderSentInfoResponse;
import com.sfa.job.pojo.response.OrdersSentDto;
import com.sfa.job.service.order.IOrdersSentQueryService;
import com.sfa.job.util.JdtcUtil;
import com.sfa.job.util.KyeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author : liqiulin
......@@ -33,8 +26,6 @@ public class SentQueryController {
@Autowired
private JdtcUtil jdtcUtil;
@Autowired
private KyeUtil kyeUtil;
@Autowired
private IOrdersSentQueryService orderSentQueryService;
@Autowired
private RedisService redisService;
......@@ -54,14 +45,11 @@ public class SentQueryController {
private Object queryBySentNode(String sentNo){
OrdersSentDto sent = orderSentQueryService.getSent(sentNo);
List<OrderSentInfoResponse> sentInfo = null;
Object sentInfo = null;
switch (sent.getTransport()) {
case "134":
sentInfo = jdTC134(sent);
break;
case "109":
sentInfo = kye109(sent);
break;
default:
throw new ServiceException(ECode.SENT_ISNULL_ERROR);
}
......@@ -69,42 +57,8 @@ public class SentQueryController {
return sent;
}
private List<OrderSentInfoResponse> kye109(OrdersSentDto sent) {
JSONArray traces = kyeUtil.getOrderTrace(sent.getExpressNo());
if (CollectionUtils.isEmpty(traces)){
return null;
}
JSONArray exteriorRouteList = traces.getJSONObject(0).getJSONArray("exteriorRouteList");
return pKye109(exteriorRouteList);
}
private List<OrderSentInfoResponse> jdTC134(OrdersSentDto sent){
private Object jdTC134(OrdersSentDto sent){
JSONArray traces = jdtcUtil.getOrderTrace(sent.getBjSentNo() + "-" + sent.getBjSentVersion());
JSONObject jb = traces.getJSONObject(0);
return pJdTC134(jb.getJSONArray("traceDetails"));
}
private List<OrderSentInfoResponse> pJdTC134(JSONArray exteriorRouteList){
List<OrderSentInfoResponse> sentInfoList = new ArrayList<>();
exteriorRouteList.forEach(exteriorRoute -> {
JSONObject exteriorRouteJson = (JSONObject) exteriorRoute;
OrderSentInfoResponse sentInfo = new OrderSentInfoResponse();
sentInfo.setOperateTime(exteriorRouteJson.getString("operateTime"));
sentInfo.setOperateRemark(exteriorRouteJson.getString("operateRemark"));
sentInfoList.add(sentInfo);
});
return sentInfoList;
}
private List<OrderSentInfoResponse> pKye109(JSONArray exteriorRouteList){
List<OrderSentInfoResponse> sentInfoList = new ArrayList<>();
exteriorRouteList.forEach(exteriorRoute -> {
JSONObject exteriorRouteJson = (JSONObject) exteriorRoute;
OrderSentInfoResponse sentInfo = new OrderSentInfoResponse();
sentInfo.setOperateTime(exteriorRouteJson.getString("uploadDate"));
sentInfo.setOperateRemark(exteriorRouteJson.getString("routeDescription"));
sentInfoList.add(sentInfo);
});
return sentInfoList;
return CollectionUtils.isEmpty(traces) ? null : traces.get(0);
}
}
......@@ -34,7 +34,7 @@ public class OrdersSentDaoImpl implements IOrdersSentDao {
public OrdersSentDto getSent(String sentNo) {
OrdersSent sentDo = ordersSentMapper.selectBySentNo(sentNo);
if (Objects.isNull(sentDo)){
throw new CheckedException(ECode.SENT_ISNULL_ERROR);
throw new CheckedException(ECode.PARAM_CODE_ISNULL_ERROR);
}
return BeanUtils.transitionDto(sentDo, OrdersSentDto.class);
}
......
package com.sfa.job.pojo.response;
import lombok.Data;
/**
* @author : liqiulin
* @date : 2025-07-30 15
* @describe :
*/
@Data
public class OrderSentInfoResponse {
/**
* 路由节点描述
*/
private String operateRemark;
/**
* 路由节点时间
*/
private String operateTime;
}
......@@ -5,7 +5,6 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* T100出货单中的物流单据
......@@ -67,7 +66,7 @@ public class OrdersSentDto implements Serializable {
*/
private String ddNo;
private List<OrderSentInfoResponse> sentInfo;
private Object sentInfo;
@TableField(exist = false)
......
......@@ -126,6 +126,8 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
deptT100.put("top_organization_no","ALL");
deptT100.put("department_heads_employee_no","");
deptT100.put("ooeg005","Y");
// todo ooeg004
// deptT100.put("ooeg004",);
createOrUpdateDept(deptT100);
// 部门停用时,删除链路中心部门
if (!active) {
......
......@@ -51,7 +51,6 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService {
String transport = sent.getTransport();
switch (transport) {
case "134":
case "109":
htmlPath = qinCeUtils.wlHtmlPath + sent.getAhSentNo();
break;
case "132":
......
package com.sfa.job.util;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.kyexpress.openapi.sdk.KyeDefaultOpenApi;
import com.kyexpress.openapi.sdk.exception.KyeOpenApiException;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @author : liqiulin
* @date : 2025-07-29 17
* @describe : 跨越物流
*/
@Slf4j
@Component
public class KyeUtil {
/**
* =================== Kye API - config ===================
*/
@Value("${kye.wl_app_key}")
private String APP_KEY;
@Value("${kye.wl_app_secret}")
private String APP_SECRET;
@Value("${kye.customer_code}")
private String CUSTOMER_CODE;
@Value("${kye.platform_flag}")
private String PLATFORM_FLAG;
@Value("${kye.is_sandbox}")
private Boolean IS_SANDBOX;
/**
* =================== JDTC API - month ===================
*/
private final String QUERY_ROUTE_M = "open.api.openCommon.queryRoute";
private final String QUERY_PUBLIC_ROUTE_M = "open.api.openCommon.queryPublicRoute";
public JSONArray getOrderTrace(String orderNo){
try {
Boolean isSandbox = IS_SANDBOX;
String appKey = APP_KEY;
String appSecret = APP_SECRET;
String customerCode = CUSTOMER_CODE;
String platformFlag = PLATFORM_FLAG;
String bizBody = "{\"customerCode\":\""+customerCode+"\",\"waybillNumbers\":[\""+orderNo+"\"],\"platformFlag\":\""+platformFlag+"\"}";
// 沙盒环境(env=prod && isSandbox=true)
String response = KyeDefaultOpenApi.builder(appKey, appSecret).env("prod").api(QUERY_PUBLIC_ROUTE_M).sandbox(isSandbox).body(bizBody).connectTimeout(3000).readTimeout(15000).request().response();
JSONObject rJson = JSONObject.parseObject(response);
if (!rJson.getBoolean("success")){
log.error("请求跨越物流轨迹接口返回异常:{}",response);
throw new ServiceException(ECode.KYE_ORDER_TRACE_API_ERROR);
}
return rJson.getJSONObject("data").getJSONArray("esWaybill");
} catch (KyeOpenApiException e) {
throw new ServiceException(ECode.KYE_ORDER_TRACE_QUERY_ERROR);
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论