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

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

这将还原合并请求 !46
上级 cf172746
...@@ -120,10 +120,7 @@ ...@@ -120,10 +120,7 @@
<groupId>com.squareup.okhttp3</groupId> <groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId> <artifactId>okhttp</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.kyexpress</groupId>
<artifactId>kye-openapi-sdk</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.sfa.job.controller.order; package com.sfa.job.controller.order;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.sfa.common.core.enums.ECode; import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.ServiceException; import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.redis.service.RedisService; import com.sfa.common.redis.service.RedisService;
import com.sfa.job.constants.RedisKeyJob; import com.sfa.job.constants.RedisKeyJob;
import com.sfa.job.pojo.response.OrderSentInfoResponse;
import com.sfa.job.pojo.response.OrdersSentDto; import com.sfa.job.pojo.response.OrdersSentDto;
import com.sfa.job.service.order.IOrdersSentQueryService; import com.sfa.job.service.order.IOrdersSentQueryService;
import com.sfa.job.util.JdtcUtil; import com.sfa.job.util.JdtcUtil;
import com.sfa.job.util.KyeUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -33,8 +26,6 @@ public class SentQueryController { ...@@ -33,8 +26,6 @@ public class SentQueryController {
@Autowired @Autowired
private JdtcUtil jdtcUtil; private JdtcUtil jdtcUtil;
@Autowired @Autowired
private KyeUtil kyeUtil;
@Autowired
private IOrdersSentQueryService orderSentQueryService; private IOrdersSentQueryService orderSentQueryService;
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
...@@ -54,14 +45,11 @@ public class SentQueryController { ...@@ -54,14 +45,11 @@ public class SentQueryController {
private Object queryBySentNode(String sentNo){ private Object queryBySentNode(String sentNo){
OrdersSentDto sent = orderSentQueryService.getSent(sentNo); OrdersSentDto sent = orderSentQueryService.getSent(sentNo);
List<OrderSentInfoResponse> sentInfo = null; Object sentInfo = null;
switch (sent.getTransport()) { switch (sent.getTransport()) {
case "134": case "134":
sentInfo = jdTC134(sent); sentInfo = jdTC134(sent);
break; break;
case "109":
sentInfo = kye109(sent);
break;
default: default:
throw new ServiceException(ECode.SENT_ISNULL_ERROR); throw new ServiceException(ECode.SENT_ISNULL_ERROR);
} }
...@@ -69,42 +57,8 @@ public class SentQueryController { ...@@ -69,42 +57,8 @@ public class SentQueryController {
return sent; return sent;
} }
private List<OrderSentInfoResponse> kye109(OrdersSentDto sent) { private Object jdTC134(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){
JSONArray traces = jdtcUtil.getOrderTrace(sent.getBjSentNo() + "-" + sent.getBjSentVersion()); JSONArray traces = jdtcUtil.getOrderTrace(sent.getBjSentNo() + "-" + sent.getBjSentVersion());
JSONObject jb = traces.getJSONObject(0); return CollectionUtils.isEmpty(traces) ? null : traces.get(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;
} }
} }
...@@ -34,7 +34,7 @@ public class OrdersSentDaoImpl implements IOrdersSentDao { ...@@ -34,7 +34,7 @@ public class OrdersSentDaoImpl implements IOrdersSentDao {
public OrdersSentDto getSent(String sentNo) { public OrdersSentDto getSent(String sentNo) {
OrdersSent sentDo = ordersSentMapper.selectBySentNo(sentNo); OrdersSent sentDo = ordersSentMapper.selectBySentNo(sentNo);
if (Objects.isNull(sentDo)){ 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); 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; ...@@ -5,7 +5,6 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* T100出货单中的物流单据 * T100出货单中的物流单据
...@@ -67,7 +66,7 @@ public class OrdersSentDto implements Serializable { ...@@ -67,7 +66,7 @@ public class OrdersSentDto implements Serializable {
*/ */
private String ddNo; private String ddNo;
private List<OrderSentInfoResponse> sentInfo; private Object sentInfo;
@TableField(exist = false) @TableField(exist = false)
......
...@@ -126,6 +126,8 @@ public class EventCallbackServiceImpl implements IEventCallbackService{ ...@@ -126,6 +126,8 @@ public class EventCallbackServiceImpl implements IEventCallbackService{
deptT100.put("top_organization_no","ALL"); deptT100.put("top_organization_no","ALL");
deptT100.put("department_heads_employee_no",""); deptT100.put("department_heads_employee_no","");
deptT100.put("ooeg005","Y"); deptT100.put("ooeg005","Y");
// todo ooeg004
// deptT100.put("ooeg004",);
createOrUpdateDept(deptT100); createOrUpdateDept(deptT100);
// 部门停用时,删除链路中心部门 // 部门停用时,删除链路中心部门
if (!active) { if (!active) {
......
...@@ -51,7 +51,6 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService { ...@@ -51,7 +51,6 @@ public class OrdersSentQueryServiceImpl implements IOrdersSentQueryService {
String transport = sent.getTransport(); String transport = sent.getTransport();
switch (transport) { switch (transport) {
case "134": case "134":
case "109":
htmlPath = qinCeUtils.wlHtmlPath + sent.getAhSentNo(); htmlPath = qinCeUtils.wlHtmlPath + sent.getAhSentNo();
break; break;
case "132": 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论