Commit e80b5c1d by shuhu.hou@freemud.cn

oms订单履单正向流程

parent 2177ca8a
...@@ -36,8 +36,8 @@ public class OrderManagerController { ...@@ -36,8 +36,8 @@ public class OrderManagerController {
private OrderManagerAdapter orderManagerAdapter; private OrderManagerAdapter orderManagerAdapter;
@ApiAnnotation(logMessage = "订单履单") @ApiAnnotation(logMessage = "oms订单履单")
@ApiOperation(value = "订单履单", notes = "订单履单", produces = "application/json") @ApiOperation(value = "oms订单履单", notes = "订单履单", produces = "application/json")
@PostMapping("/statusOperate") @PostMapping("/statusOperate")
public BaseResponse deliveryCreate(@Validated @LogParams @RequestBody OrderManagerRequest request) { public BaseResponse deliveryCreate(@Validated @LogParams @RequestBody OrderManagerRequest request) {
OperateType byOpType = OperateType.getByOpType(request.getOperateType()); OperateType byOpType = OperateType.getByOpType(request.getOperateType());
......
...@@ -55,37 +55,26 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -55,37 +55,26 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
/** /**
* 接单 * 接单
* @param request 请求参数 *
* @param request 请求参数
* @param orderBean 订单实体 * @param orderBean 订单实体
* @return * @return
*/ */
@Override @Override
public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//退款状态 // 订单接单
RefundStatus refundStatus = CollectionUtils.isEmpty(orderBean.getRefundList()) ? null : RefundStatus.getByCode(orderBean.getRefundList().get(0).getStatus()); saasOrderService.orderAffirm(request, orderBean);
//订单接单
BaseQueryOrderRequest orderConfirmRequest = orderSdkAdapter.getOrderConfirmRequest(request.getOperator(), orderBean);
BaseOrderResponse confirmOrderResponse = orderCenterSdkService.orderConfirmTake(orderConfirmRequest);
//获取门店信息 //获取门店信息
StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()),""); StoreResponse storeInfo = storeCenterService.getStoreInfo(new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId()), "");
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),storeInfo.getStatusCode().toString()) || storeInfo.getBizVO() == null) { if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), storeInfo.getStatusCode().toString()) || storeInfo.getBizVO() == null) {
return ResponseUtil.error(ResponseResult.STORE_NOT_FOUND); return ResponseUtil.error(ResponseResult.STORE_NOT_FOUND);
} }
//处理1秒重复接单问题 订单服务接单返回20067重复操作,20018状态机不支持认为接单成功 // 创建配送单
if ("20067".equals(confirmOrderResponse.getErrcode().toString()) || "20018".equals(confirmOrderResponse.getErrcode().toString()) || "50002".equals(confirmOrderResponse.getErrcode().toString()) ) { orderDeliveryService.createDelivery(orderBean, storeInfo, request.getOperator());
return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect(),refundStatus));
}
if( ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),confirmOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED);
}
//创建配送单
Pair<Boolean, String> deliveryResponse = orderDeliveryService.createDelivery(orderBean, storeInfo, request.getOperator());
if (!deliveryResponse.getKey()){
return ResponseUtil.error(ResponseResult.ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED);
}
// 推送pos消息中心 // 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM,request.getReason()); orderBaseService.sendMessage(orderBean, OperateType.ORDER_CONFIRM, request.getReason());
return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(),orderBean.getGmtExpect(),refundStatus)); return ResponseUtil.success(new OrderManagerResponse(storeInfo.getBizVO().getOrderPrintConfig(), orderBean.getGmtExpect(),
CollectionUtils.isEmpty(orderBean.getRefundList()) ? null : RefundStatus.getByCode(orderBean.getRefundList().get(0).getStatus())));
} }
/** /**
...@@ -97,14 +86,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -97,14 +86,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
*/ */
@Override @Override
public BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//订单制作完成 // 订单制作完成
BaseQueryOrderRequest orderDoneRequest = orderSdkAdapter.getOrderConfirmRequest(request.getOperator(), orderBean); saasOrderService.orderDone(request, orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderDone(orderDoneRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.DELIVERY_FAIL);
}
// 推送pos消息中心 // 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_DONE,request.getReason()); orderBaseService.sendMessage(orderBean, OperateType.ORDER_DONE, request.getReason());
return ResponseUtil.success(); return ResponseUtil.success();
} }
...@@ -117,14 +102,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -117,14 +102,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
*/ */
@Override @Override
public BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//订单配送 // 订单配送
BaseQueryOrderRequest orderDeliveryRequest = orderSdkAdapter.getOrderDeliveryRequest(request.getOperator(), orderBean); saasOrderService.orderDelivery(request, orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderSend(orderDeliveryRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.DELIVERY_FAIL);
}
// 推送pos消息中心 // 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_SEND,request.getReason()); orderBaseService.sendMessage(orderBean, OperateType.ORDER_SEND, request.getReason());
return ResponseUtil.success(); return ResponseUtil.success();
} }
...@@ -137,14 +118,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService { ...@@ -137,14 +118,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
*/ */
@Override @Override
public BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) { public BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//订单完成 // 订单完成
BaseQueryOrderRequest orderAffirmRequest = orderSdkAdapter.getOrderDeliveryRequest(request.getOperator(), orderBean); saasOrderService.orderAffirm(request, orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderAffirm(orderAffirmRequest);
if (baseOrderResponse==null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),baseOrderResponse.getErrcode().toString())){
return ResponseUtil.error(ResponseResult.DELIVERY_FAIL);
}
// 推送pos消息中心 // 推送pos消息中心
orderBaseService.sendMessage(orderBean, OperateType.ORDER_AFFIRM,request.getReason()); orderBaseService.sendMessage(orderBean, OperateType.ORDER_AFFIRM, request.getReason());
return ResponseUtil.success(); return ResponseUtil.success();
} }
......
...@@ -2,6 +2,7 @@ package cn.freemud.management.service.impl; ...@@ -2,6 +2,7 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.enums.ResponseResult; import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException; import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
...@@ -33,6 +34,27 @@ public class SaasOrderService { ...@@ -33,6 +34,27 @@ public class SaasOrderService {
@Autowired @Autowired
private OrderCenterSdkService orderCenterSdkService; private OrderCenterSdkService orderCenterSdkService;
/**
* 确认接单
* @param request
* @param orderBean
* @return
*/
public BaseResponse orderConfirm(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
//订单接单
BaseQueryOrderRequest orderConfirmRequest = orderSdkAdapter.getOrderConfirmRequest(request.getOperator(), orderBean);
BaseOrderResponse confirmOrderResponse = orderCenterSdkService.orderConfirmTake(orderConfirmRequest);
//处理1秒重复接单问题 订单服务接单返回20067重复操作,20018状态机不支持认为接单成功
if ("20067".equals(confirmOrderResponse.getErrcode().toString()) || "20018".equals(confirmOrderResponse.getErrcode().toString()) || "50002".equals(confirmOrderResponse.getErrcode().toString()) ) {
return ResponseUtil.success();
}
if( ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),confirmOrderResponse.getErrcode().toString())){
throw new OrderServiceException(ResponseResult.ORDER_ACCEPT_FAILED);
}
return ResponseUtil.success();
}
/** /**
* 订单制作完成 * 订单制作完成
* @param request * @param request
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment