是否自动生产

This commit is contained in:
Owen 2025-01-11 20:13:53 +08:00
parent d95e7f3627
commit f294f1b965
9 changed files with 190 additions and 50 deletions

View File

@ -72,7 +72,27 @@ public class HaokaUpdateOrderSchedule {
Long total = 100L;
// 需要更新的订单过滤 todo从本地查询出需要从上游同步状态的订单
// pageReqVO.setStatus(Lists.asList(1)); // 已经完成/取消/删除的订单不需要再从上游同步这里过滤掉
// 1 订单未就绪 -100
//2 订单已就绪 100
//3 待解密 101
//4 刷单拦截 110
//5 初步审核 120
//6 订单欠费 122
//7 敏感地区待审核 125
//8 待完善证件信息 150
//9 照片待审核 200
//10 待开卡 450
//11 已领取 460
//12 开卡中 470
//13 待发货 500
//14 已发货 550
//15 已退货 -700
//16 发货后失败 -560
//17 初审失败 -451
//18 开卡失败 -460
//19 证件不合格待重传 -200
//20 订单终止 0
pageReqVO.setStatus(Lists.newArrayList(450L,460L,470L,500L,550L)); // 已经完成/取消/删除的订单不需要再从上游同步这里过滤掉
while ((long) pageNo * pageSize < total) {
pageNo += 1;
@ -84,6 +104,8 @@ public class HaokaUpdateOrderSchedule {
// 开始从上游同步订单状态解析并且更新本地订单状态
updateOrderInfo(ordersDO);
}
Thread.sleep(1000*10);
}
} catch (Exception e) {

View File

@ -38,7 +38,7 @@ public class ApiDealServiceImpl implements ApiDealStrategyService {
@Override
public ApiDealResp<OrderApiCreateResp> createOrder(final SuperiorApiLogSaveReqVO logVO, OrderApiCreateParam param) {
String redisKey="ApiDealServiceImpl::createOrder::"+param.getId();
String redisKey = "ApiDealServiceImpl::createOrder::" + param.getId();
RLock lock = redissonClient.getLock(redisKey);
logVO.setApiType(1);
logVO.setHaokaOrderId(param.getId());
@ -152,9 +152,13 @@ public class ApiDealServiceImpl implements ApiDealStrategyService {
//
param.setId(ordersDO.getId());
param.setSupplierOrderId(ordersDO.getId().toString());
param.setOnSaleProductId(ordersDO.getOnSaleProductId());
param.setSuperiorProductConfigId(ordersDO.getSuperiorProductConfigId());
param.setProductId(ordersDO.getProductId());
param.setSupplierOrderId(ordersDO.getUpstreamOrderId());
param.setPlanMobileProduced(ordersDO.getPlanMobileProduced());
param.setOrderCreateRequest(ordersDO.getOrderCreateRequest());
param.setOrderCreateResponse(ordersDO.getOrderCreateResponse());
return this.queryOrder(new SuperiorApiLogSaveReqVO(), param);

View File

@ -1,15 +1,9 @@
package cn.iocoder.yudao.module.haoka.service.api.models;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.time.LocalDateTime;
@Data
@ToString(callSuper = true)
@ -17,6 +11,7 @@ import java.time.LocalDateTime;
@NoArgsConstructor
@AllArgsConstructor
public class OrderApiCreateParam {
private Boolean success;
private String orderCreateParam;

View File

@ -21,6 +21,25 @@ import java.time.LocalDateTime;
@AllArgsConstructor
public class OrderApiCreateResp extends BaseDO {
/**
* 上游订单状态描述
*/
private String supplierOrderStatusDesc;
/**
* 订单状态
* 1 生产异常 -430
* 2 开卡失败 -460
* 3 提交异常 0
* 4 开卡中 470
* 5 待发货 500
* 6 已发货 550
* 7 已激活 700
*/
private String orderStatusCode;
/**
* 接口数据对象
*/

View File

@ -41,4 +41,13 @@ public class OrderApiQueryParam {
* 产品上游接口配置ID
*/
private Long superiorProductConfigId;
/**
* 请求参数
*/
private String orderCreateRequest;
/**
* 返回参数
*/
private String orderCreateResponse;
}

View File

@ -33,6 +33,13 @@ public class OrderApiQueryResp extends BaseDO {
/**
* 订单状态
* 1 生产异常 -430
* 2 开卡失败 -460
* 3 提交异常 0
* 4 开卡中 470
* 5 待发货 500
* 6 已发货 550
* 7 已激活 700
*/
private String orderStatusCode;

View File

@ -139,7 +139,7 @@ public class HaiNanDxApiDealStrategy implements ApiDealStrategy {
if (skuConfigVO == null) {
return ApiDealResp.failed("商品对接上游配置不存在");
}
OrderApiQueryResp orderApiQueryResp = new OrderApiQueryResp();
Long haokaSuperiorApiId = superiorApi.getId();
try {
HaiNanDianXinApi.QueryOrderInfoRequest queryParam = new HaiNanDianXinApi.QueryOrderInfoRequest();
@ -156,9 +156,13 @@ public class HaiNanDxApiDealStrategy implements ApiDealStrategy {
JSONArray jsonArray = JSON.parseArray(data);
OrderApiCreateResp superApiResponse = new OrderApiCreateResp();
if (null==jsonArray){
return ApiDealResp.failed("上游接口返回信息为空");
// return ApiDealResp.failed("上游接口返回信息为空");
orderApiQueryResp.setOrderStatusCode("0");
orderApiQueryResp.setSupplierOrderStatusDesc("上游接口返回信息为空");
return ApiDealResp.ok(orderApiQueryResp);
}
JSONObject jsonObject = jsonArray.getJSONObject(0);
@ -167,7 +171,7 @@ public class HaiNanDxApiDealStrategy implements ApiDealStrategy {
}
OrderApiQueryResp orderApiQueryResp = new OrderApiQueryResp();
// todo 转换本地订单状态
// orderApiQueryResp.setOrderStatusCode();
String statusCd = jsonObject.getString("statusCd");

View File

@ -125,24 +125,39 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
}
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.InternetCardQualificationResp> checked = apiHuNanDXService.checkInternetCardQualification(logVO, haokaSuperiorApiId,cardQualificationParam);
OrderApiCreateResp superApiResponse = new OrderApiCreateResp();
if (!"00000".equals(checked.getRes_code())) {
logVO.setResponse(JSON.toJSONString(checked));
return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
// return ApiDealResp.failed(checked.getRes_message());
} else if (checked.getResult() == null) {
logVO.setResponse(JSON.toJSONString(checked));
return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
// return ApiDealResp.failed(checked.getRes_message());
} else {
if ("1003".equals(checked.getResult().getString("code"))) {
logVO.setResponse(JSON.toJSONString(checked));
ApiDealResp<OrderApiCreateResp> message = ApiDealResp.failed(checked.getResult().getString("message"));
message.setIsBlack(true);
return message;
// ApiDealResp<OrderApiCreateResp> message = ApiDealResp.failed(checked.getResult().getString("message"));
// message.setIsBlack(true);
// return message;
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getResult().getString("message"));
return ApiDealResp.ok(superApiResponse);
}
if (!"0".equals(checked.getResult().getString("code"))) {
logVO.setResponse(JSON.toJSONString(checked));
return ApiDealResp.failed(checked.getResult().getString("message"));
// return ApiDealResp.failed(checked.getResult().getString("message"));
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getResult().getString("message"));
return ApiDealResp.ok(superApiResponse);
}
}
@ -155,16 +170,28 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.PossessPhoneNumberResp> possessResponse = apiHuNanDXService.possessPhoneNumber(logVO,haokaSuperiorApiId, needSignQueryParam);
if (!"00000".equals(possessResponse.getRes_code())) {
logVO.setResponse(JSON.toJSONString(possessResponse));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
JSONObject result = possessResponse.getResult();
if (result == null || result.getJSONObject("respData") == null) {
logVO.setResponse(JSON.toJSONString(possessResponse));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
if (!"0000".equals(result.getJSONObject("respData").getString("respCode"))) {
logVO.setResponse(result.getJSONObject("respData").getString("respDesc"));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
}
@ -175,16 +202,28 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.PossessPhoneNumberResp> possessResponse = apiHuNanDXService.possessPhoneNumber(logVO, haokaSuperiorApiId,needSignQueryParam);
if (!"00000".equals(possessResponse.getRes_code())) {
logVO.setResponse(JSON.toJSONString(possessResponse));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
JSONObject result = possessResponse.getResult();
if (result == null || result.getJSONObject("respData") == null) {
logVO.setResponse(JSON.toJSONString(possessResponse));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
if (!"0000".equals(result.getJSONObject("respData").getString("respCode"))) {
logVO.setResponse(result.getJSONObject("respData").getString("respDesc"));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(result.getJSONObject("respData").getString("respDesc"));
return ApiDealResp.ok(superApiResponse);
}
}
@ -195,23 +234,33 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
if (!"00000".equals(responseInfo.getRes_code())) {
logVO.setResponse(JSON.toJSONString(responseInfo));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
JSONObject result = responseInfo.getResult();
if (result == null || result.getJSONObject("code") == null) {
logVO.setResponse(JSON.toJSONString(responseInfo));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
if (!"0".equals(result.getString("code"))) {
logVO.setResponse(result.getString("message"));
return ApiDealResp.failed(checked.getRes_message());
// return ApiDealResp.failed(checked.getRes_message());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse);
}
OrderApiCreateResp orderApiCreateResp = new OrderApiCreateResp();
orderApiCreateResp.setOrderCreateResponse(JSON.toJSONString(responseInfo));
orderApiCreateResp.setSupplierOrderId(param.getId().toString());
return ApiDealResp.ok(orderApiCreateResp);
superApiResponse.setOrderStatusCode("470");
superApiResponse.setOrderCreateResponse(JSON.toJSONString(responseInfo));
superApiResponse.setSupplierOrderId(param.getId().toString());
return ApiDealResp.ok(superApiResponse);
}
@ -236,27 +285,48 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
queryParam.setOutId(param.getId().toString());
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.QueryOrderResp> responseInfo = apiHuNanDXService.queryOrder(logVO,haokaSuperiorApiId, queryParam);
logVO.setResponse(JSON.toJSONString(responseInfo));
OrderApiQueryResp orderApiQueryResp = new OrderApiQueryResp();
if (responseInfo.getResult() == null) {
return ApiDealResp.failed(responseInfo.getRes_message());
orderApiQueryResp.setOrderStatusCode("0");
orderApiQueryResp.setSupplierOrderStatusDesc(responseInfo.getRes_message());
return ApiDealResp.ok(orderApiQueryResp);
// return ApiDealResp.failed(responseInfo.getRes_message());
}
if (responseInfo.getResult().getJSONObject("data") == null) {
return ApiDealResp.failed(responseInfo.getResult().getString("message"));
// return ApiDealResp.failed(responseInfo.getResult().getString("message"));
orderApiQueryResp.setOrderStatusCode("0");
orderApiQueryResp.setSupplierOrderStatusDesc(responseInfo.getResult().getString("message"));
return ApiDealResp.ok(orderApiQueryResp);
}
if (responseInfo.getResult().getJSONObject("data").getJSONObject("busOppOrder") == null) {
return ApiDealResp.failed("busOppOrder null");
// return ApiDealResp.failed("busOppOrder null");
orderApiQueryResp.setOrderStatusCode("0");
orderApiQueryResp.setSupplierOrderStatusDesc("busOppOrder null");
return ApiDealResp.ok(orderApiQueryResp);
}
String string = responseInfo.getResult().getJSONObject("data").getJSONObject("busOppOrder").getString("tbBusOppOrderThState");
if (string == null) {
return ApiDealResp.failed("tbBusOppOrderThState null");
// return ApiDealResp.failed("tbBusOppOrderThState null");
orderApiQueryResp.setOrderStatusCode("0");
orderApiQueryResp.setSupplierOrderStatusDesc("tbBusOppOrderThState null");
return ApiDealResp.ok(orderApiQueryResp);
}
if (!string.equals("1")) {
// return ApiDealResp.failed("tbBusOppOrderThState null");
orderApiQueryResp.setOrderStatusCode("0");
orderApiQueryResp.setSupplierOrderStatusDesc("状态为:"+string+",状态说明0待确认1生产2作废3同步失败4待下单5待转业务单8业务单挂起状态");
return ApiDealResp.ok(orderApiQueryResp);
}
OrderApiQueryResp orderApiQueryResp = new OrderApiQueryResp();
orderApiQueryResp.setData(responseInfo);
orderApiQueryResp.setOrderStatusCode(string);
orderApiQueryResp.setSupplierOrderStatusDesc(string+"----说明:0待确认1生产2作废3同步失败4待下单5待转业务单8业务单挂起状态");
orderApiQueryResp.setOrderStatusCode("470");
orderApiQueryResp.setSupplierOrderStatusDesc("状态为:"+string+",状态说明:0待确认1生产2作废3同步失败4待下单5待转业务单8业务单挂起状态");
return ApiDealResp.ok(orderApiQueryResp);
} catch (Exception e) {
return ApiDealResp.failed(e.getMessage());

View File

@ -118,9 +118,12 @@ public class LianTongApiDealStrategy implements ApiDealStrategy {
logVO.setResponse(JSON.toJSONString(ziLiaoResponse));
String rspCode = ziLiaoResponse.getaDesc();
// 提交资料给上游
OrderApiCreateResp superApiResponse = new OrderApiCreateResp();
if (!"成功".equals(rspCode)) {
return ApiDealResp.failed(ziLiaoResponse.getRspDesc());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(ziLiaoResponse.getRspDesc());
return ApiDealResp.ok(superApiResponse);
}
// 2提交预订单 得到token lianTongPreOrderSync
@ -170,7 +173,11 @@ public class LianTongApiDealStrategy implements ApiDealStrategy {
logVO.setResponse(JSON.toJSONString(preOrderResponse));
if (!"0000".equals(preOrderResponse.getRspCode())) {
return ApiDealResp.failed(preOrderResponse.getRspDesc());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(preOrderResponse.getRspDesc());
return ApiDealResp.ok(superApiResponse);
// return ApiDealResp.failed(preOrderResponse.getRspDesc());
}
// String preOrderResponseBody = preOrderResponse.getBody();
// JSONObject preOrderJSONObject = JSON.parseObject(preOrderResponseBody);
@ -220,7 +227,11 @@ public class LianTongApiDealStrategy implements ApiDealStrategy {
KingOrderSyncResponse response = apiLianTongService.lianTongOrderSyncV2(haokaSuperiorApiId, syncV2);
logVO.setResponse(JSON.toJSONString(response));
if (!"0000".equals(response.getRspCode())) {
return ApiDealResp.failed(response.getRspDesc());
superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(preOrderResponse.getRspDesc());
return ApiDealResp.ok(superApiResponse);
// return ApiDealResp.failed(response.getRspDesc());
}
// /**
// * 返回体JSON字符串包含字段
@ -232,14 +243,14 @@ public class LianTongApiDealStrategy implements ApiDealStrategy {
// */
// private String body;
OrderApiCreateResp orderApiCreateResp = new OrderApiCreateResp();
String body1 = response.getBody();
orderApiCreateResp.setOrderCreateResponse(JSON.toJSONString(body1));
superApiResponse.setOrderCreateResponse(JSON.toJSONString(body1));
JSONObject jsonObject = JSON.parseObject(body1);
superApiResponse.setOrderStatusCode("470");
superApiResponse.setSupplierOrderId(jsonObject.getString("orderNo"));
orderApiCreateResp.setSupplierOrderId(jsonObject.getString("orderNo"));
return ApiDealResp.ok(orderApiCreateResp);
return ApiDealResp.ok(superApiResponse);
}
@Override
@ -250,7 +261,6 @@ public class LianTongApiDealStrategy implements ApiDealStrategy {
}
Long haokaSuperiorApiId = param.getSuperiorApiId();
logVO.setHaokaSuperiorApiId(haokaSuperiorApiId);
return ApiDealResp.ontSupport("联通不支持查询订单接口,须参照回调接口");
}
}