|
@@ -15,16 +15,16 @@ import com.fs.erp.domain.ErpRefundOrder;
|
|
|
import com.fs.erp.dto.*;
|
|
|
import com.fs.erp.dto.df.*;
|
|
|
import com.fs.erp.dto.sdk.df.DfClient;
|
|
|
-import com.fs.erp.dto.sdk.df.enums.ExpressProductCodeEnum;
|
|
|
import com.fs.erp.dto.sdk.df.enums.RequestUrlEnum;
|
|
|
import com.fs.erp.service.IErpOrderService;
|
|
|
-import com.fs.erp.utils.CommonUtils;
|
|
|
import com.fs.his.config.FsSysConfig;
|
|
|
import com.fs.his.domain.*;
|
|
|
import com.fs.his.enums.FsStoreOrderLogEnum;
|
|
|
import com.fs.his.mapper.*;
|
|
|
+import com.fs.his.param.FsStoreOrderSalesParam;
|
|
|
import com.fs.his.service.IFsExpressService;
|
|
|
import com.fs.his.service.IFsStoreOrderLogsService;
|
|
|
+import com.fs.his.service.IFsStoreOrderService;
|
|
|
import com.fs.his.utils.ConfigUtil;
|
|
|
import com.hc.openapi.tool.util.StringUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -75,6 +75,8 @@ public class DfOrderServiceImpl implements IErpOrderService
|
|
|
|
|
|
@Autowired
|
|
|
private IFsExpressService expressService;
|
|
|
+ @Autowired
|
|
|
+ private IFsStoreOrderService fsStoreOrderService;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -205,6 +207,9 @@ public class DfOrderServiceImpl implements IErpOrderService
|
|
|
if (order != null) {
|
|
|
//获取下单账户
|
|
|
FsStoreOrderDf df = fsStoreOrderDfMapper.selectFsStoreOrderDfByOrderId(order.getOrderId());
|
|
|
+ if(df == null){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
Integer sfAccountIndex = getSFAccountIndex(order.getOrderId());
|
|
|
if (sfAccountIndex > -1) {
|
|
|
Map<String, Object> orderResultQueryParam = new HashMap<>();
|
|
@@ -233,6 +238,64 @@ public class DfOrderServiceImpl implements IErpOrderService
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void getOrderDeliveryStatus(FsStoreOrder order) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ Integer sfAccountIndex = getSFAccountIndex(order.getOrderId());
|
|
|
+ map.put("orderNumber", order.getOrderCode());
|
|
|
+ map.put("mailNumber", order.getDeliverySn());
|
|
|
+ try {
|
|
|
+ String response = client.execute(RequestUrlEnum.ORDER_DELIVERY_STATUS, map, sfAccountIndex);
|
|
|
+ DFApiResponse dfApiResponse = JSON.parseObject(response, DFApiResponse.class);
|
|
|
+ if ("运单不存在".equals(dfApiResponse.getMsg())){
|
|
|
+ //取消订单
|
|
|
+ FsStoreOrderSalesParam afterSalesParam = new FsStoreOrderSalesParam();
|
|
|
+ afterSalesParam.setOrderId(order.getOrderId());
|
|
|
+ afterSalesParam.setReasons("代服管家取消订单");
|
|
|
+ afterSalesParam.setOperator("代服管家");
|
|
|
+ fsStoreOrderService.afterSales(afterSalesParam);
|
|
|
+ FsStoreOrderDf df = new FsStoreOrderDf();
|
|
|
+ df.setOrderId(order.getOrderId());
|
|
|
+ df.setStatus(2);
|
|
|
+ df.setUpdateTime(new Date());
|
|
|
+ fsStoreOrderDfMapper.updateFsStoreOrderDf(df);
|
|
|
+ log.info("代服管家 订单取消成功: {}", response);
|
|
|
+ }
|
|
|
+ //3.处理请求结果
|
|
|
+ if (dfApiResponse != null && "ok".equals(dfApiResponse.getCode())) {
|
|
|
+ String jsonString = JSON.toJSONString(dfApiResponse.getResult());
|
|
|
+ List<DFOrderStatusResultRequest> requestList = JSON.parseArray(jsonString, DFOrderStatusResultRequest.class);
|
|
|
+ if (requestList != null && !requestList.isEmpty()){
|
|
|
+ //0待揽收 1已揽收 2运输中 3派送中 4异常件 5退回件 6退回签收 7转寄件 8作废件 9已签收 10 已取消
|
|
|
+ for (DFOrderStatusResultRequest temp : requestList) {
|
|
|
+ if (temp.getStatus() == 10){
|
|
|
+ //取消订单
|
|
|
+ String mailNumber = temp.getMailNumber();
|
|
|
+ List<FsStoreOrder> fsStoreOrders = fsStoreOrderMapper.selectFsStoreOrderListByDeliverySn(mailNumber);
|
|
|
+ if (fsStoreOrders != null && !fsStoreOrders.isEmpty()){
|
|
|
+ fsStoreOrders.forEach(tempOrder -> {
|
|
|
+ FsStoreOrderSalesParam afterSalesParam = new FsStoreOrderSalesParam();
|
|
|
+ afterSalesParam.setOrderId(tempOrder.getOrderId());
|
|
|
+ afterSalesParam.setReasons("代服管家取消订单");
|
|
|
+ afterSalesParam.setOperator("代服管家");
|
|
|
+ fsStoreOrderService.afterSales(afterSalesParam);
|
|
|
+ FsStoreOrderDf df = new FsStoreOrderDf();
|
|
|
+ df.setOrderId(order.getOrderId());
|
|
|
+ df.setStatus(2);
|
|
|
+ df.setUpdateTime(new Date());
|
|
|
+ fsStoreOrderDfMapper.updateFsStoreOrderDf(df);
|
|
|
+ log.info("代服管家 订单取消成功: {}", response);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取erp推送参数
|
|
|
*
|
|
@@ -266,11 +329,11 @@ public class DfOrderServiceImpl implements IErpOrderService
|
|
|
Map<String, Object> orderResultQueryParam = new HashMap<>();
|
|
|
orderResultQueryParam.put("orderNumber", order.getPlatform_code());
|
|
|
orderResultQueryParam.put("exInterfaceType", df.getStatus());
|
|
|
-// try {
|
|
|
-// getOrderResult(orderResultQueryParam,sfAccountIndex);
|
|
|
-// } catch (Exception e) {
|
|
|
-//
|
|
|
-// }
|
|
|
+ try {
|
|
|
+ getOrderResult(orderResultQueryParam,sfAccountIndex);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("推送订单完成,查询订单问题{}", e.getMessage());
|
|
|
+ }
|
|
|
ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
|
|
|
erpOrderResponse.setCode(order.getPlatform_code());
|
|
|
erpOrderResponse.setSuccess(true);
|
|
@@ -293,6 +356,7 @@ public class DfOrderServiceImpl implements IErpOrderService
|
|
|
df.setAppSecret(config.getDfAppsecret());
|
|
|
df.setLoginAccount(config.getLoginAccount());
|
|
|
df.setMonthlyCard(config.getMonthlyCard());
|
|
|
+ df.setExpressProductCode(config.getExpressProductCode());
|
|
|
df.setTotalPrice(fsStoreOrder.getPayMoney());
|
|
|
df.setPlatformPrice(fsStoreOrder.getPayPrice());
|
|
|
df.setStatus(1);
|
|
@@ -323,6 +387,7 @@ public class DfOrderServiceImpl implements IErpOrderService
|
|
|
}
|
|
|
String loginAccount = config.getLoginAccount();
|
|
|
vo.setMonthlyCard(config.getMonthlyCard()); //月结卡号
|
|
|
+ vo.setExpressProductCode(config.getExpressProductCode()); //物流产品编码
|
|
|
|
|
|
|
|
|
vo.setLoginAccount(loginAccount); //代服系统登录账号
|
|
@@ -345,11 +410,11 @@ public class DfOrderServiceImpl implements IErpOrderService
|
|
|
orderPayMethod = 2;
|
|
|
// 货到付款金额 = 物流代收金额-优惠金额
|
|
|
vo.setCollectingMoney(fsStoreOrder.getPayDelivery().subtract(couponPrice).doubleValue());
|
|
|
+ vo.setCollectionCardNumber(config.getMonthlyCard()); // 就是月结账号
|
|
|
}
|
|
|
//订单付款方式 1:在线支付 2:货到付款
|
|
|
//如果填了2,代收金额必须大于0,代收卡号必填
|
|
|
vo.setOrderPayMethod(orderPayMethod);
|
|
|
- vo.setExpressProductCode(ExpressProductCodeEnum.LAND.getValue()); //物流产品编码 默认陆运包裹
|
|
|
|
|
|
vo.setConsignmentNumber(Integer.valueOf(Math.toIntExact(fsStoreOrder.getTotalNum()))); //托寄物数量 必填
|
|
|
|