Jelajahi Sumber

订单同步

wangxiaoming 5 tahun lalu
induk
melakukan
8287536e93

+ 69 - 14
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java

@@ -476,6 +476,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
      */
     @Override
     public Integer syncXYTOrderOne(Integer type, String orderId) {
+        Integer flag = 0;
         OrderSyncPlatform orderSyncPlatform =  getXYTPlatform();
         Map<String,Object> paramsMap = new HashMap<>();
         List<Map<String,Object>> conditionTypeList = new ArrayList<>();
@@ -510,6 +511,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
         if(status == 1){   //0.拉取订单失败   1.拉取订单成功
             amountAllNum+=amountNum;
             amountSuccessAllNum+=amountSuccessNum;
+            if(amountSuccessNum > 0){
+                flag = 1;
+            }
+            if(amountNum == 0){
+                stringBuffer.append("该订单已存在");
+            }
         }else{
             stringBuffer.append(errorMsg);
         }
@@ -529,7 +536,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
             orderSyncLog.setSyncLogErrorMsg(newErrorMsg);  //失败信息
         }
         orderSyncLogMapper.save(orderSyncLog);
-        return null;
+        return flag;
     }
 
     /**
@@ -994,6 +1001,17 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                             memoObj = job.getJSONObject("memo");   //备注信息  如果没有备注,将为null
                         }
 
+                        SalesOrder salesOrder = new SalesOrder();
+                        //状态信息
+                        salesOrder.setSalesIsLocked(0);//是否锁定0:否1:是
+                        salesOrder.setSalesIsSeparate(0);//是否缺货0:否1:是
+                        salesOrder.setSalesAdminId(1);   //录入人id
+
+                        salesOrder.setSalesIsSend(0);//是否通知配货0:否1:是
+                        salesOrder.setSalesDeliver(1);  //出库状态1:未出库2:已出库
+                        salesOrder.setSalesShippingStatus(0);////发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
+                        salesOrder.setSalesStatus(1);  //确认状态  0(未确认)1(确认)2(挂起)3(作废) 4:京东自发 -- 在订单项判断中,可能会变成京东仓库自发状态
+
                         //小亚通订单编号
                         otherOrderId = infoObj.getLong("orderId");
 
@@ -1002,12 +1020,56 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
 
                         //订单状态::0 待支付;10 待成团;20 待发货;30 预售中;40 待审批;50 仓库代发货;60 已发货;70 已签收;80 已拒收;999 已作废
                         Integer orderStatus = infoObj.getInt("orderStatus");
-                        if(20 != orderStatus){   //20 待发货
+                        boolean isStatus = true;
+                        switch (orderStatus){
+                            case 20:
+                                break;
+                            case 60:
+                                salesOrder.setSalesIsSend(1);//是否通知配货0:否1:是
+                                salesOrder.setSalesDeliver(2);  //出库状态1:未出库2:已出库
+                                salesOrder.setSalesShippingStatus(1);////发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
+                                salesOrder.setSalesStatus(1);  //确认状态  0(未确认)1(确认)2(挂起)3(作废) 4:京东自发 -- 在订单项判断中,可能会变成京东仓库自发状态
+
+                                JSONArray logisticsArray = null;
+                                if(job.has("logistics")){
+                                    logisticsArray = job.getJSONArray("logistics");
+                                }
+                                if(logisticsArray.length() < 1){
+                                    errorMsg.append("商城订单编号:"+otherExtOrderId+"发货异常,未拉取到发货单号");
+                                }else{
+                                    JSONObject logistics = logisticsArray.getJSONObject(0);
+                                    String companyCode = logistics.getString("companyCode");
+                                    String deliveryNo = logistics.getString("deliveryNo");
+                                    switch (companyCode){
+                                        case "2087":{
+                                            salesOrder.setSalesPostFirm("jd");
+                                            break;
+                                        }
+                                        case "STO":{
+                                            salesOrder.setSalesPostFirm("STO");
+                                            break;
+                                        }
+                                        default:{
+                                            salesOrder.setSalesPostFirm(companyCode);
+                                            break;
+                                        }
+                                    }
+                                    salesOrder.setSalesPostNum(deliveryNo);   //快递单号
+                                }
+                                break;
+                            case 999:
+                                salesOrder.setSalesStatus(3);  //订单作废
+                                break;
+                            default:
+                                isStatus = false;
+                                break;
+                        }
+
+                        if(!isStatus){
                             errorMsg.append("商城订单编号:"+otherExtOrderId+"该订单状态异常,"+ getStatusMsg(orderStatus) +";");
                             continue;
                         }
 
-                        SalesOrder salesOrder = new SalesOrder();
                         salesOrder.setSalesOrderId(String.valueOf(otherOrderId));  //小亚通订单编号
                         salesOrder.setSalesDealCode(String.valueOf(otherOrderId));  //小亚通订单编号
                         salesOrder.setSalesExOrderId(otherExtOrderId);
@@ -1224,15 +1286,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                         salesOrder.setSalesWaitMoney(0);//待付金额
                         salesOrder.setSalesSendType(2);//送货方式 1:线下送货,2:物流发货
 
-                        //状态信息
-                        salesOrder.setSalesIsSend(0);//是否通知配货0:否1:是
-                        salesOrder.setSalesIsLocked(0);//是否锁定0:否1:是
-                        salesOrder.setSalesIsSeparate(0);//是否缺货0:否1:是
-                        salesOrder.setSalesStatus(0);  //确认状态0(未确认) -- 在订单项判断中,可能会变成京东仓库自发状态
-                        salesOrder.setSalesShippingStatus(0);////发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
-                        salesOrder.setSalesDeliver(1);  //出库状态1:未出库2:已出库
-                        salesOrder.setSalesAdminId(1);   //录入人id
-
                         Integer salesWarrantyStatus = 0;
                         List<SalesOrderItem> salesOrderItemList = new ArrayList<SalesOrderItem>();
                         for(int j=0;j<itemsArray.length();j++){
@@ -1254,8 +1307,10 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                             }
 
                             if(productColor.getColorIsJdAuto() == 1 && salesOrder.getSalesStoreId() == 40){
-                                //京东仓自发 && 京东店铺
-                                salesOrder.setSalesStatus(4);  //4:京东自发
+                                if(salesOrder.getSalesStatus() == 0){
+                                    //京东仓自发 && 京东店铺
+                                    salesOrder.setSalesStatus(4);  //4:京东自发
+                                }
                             }
 
                             Long orderItemId = item.getLong("orderItemId"); //小亚通订单项编号

+ 1 - 1
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderPlatformController.java

@@ -64,7 +64,7 @@ public class AdminOrderPlatformController {
 
         StitchAttrUtil.getSa()
                 .addDatePro("yyyy-MM-dd HH:mm:ss", "startDate", "endDate","syncLogCreateDate")
-                .setModelAndView(orderSyncLog, mv, "/admin/sync_order/sync/sync_list", pagedResult);
+                .setModelAndView(orderSyncLog, mv, "/admin/sync_order/sync_list", pagedResult);
         return mv;
     }
 

+ 13 - 11
watero-rst-web/src/main/webapp/WEB-INF/views/order/sync/order_sync.ftl

@@ -31,26 +31,25 @@
 </nav>
 <div class="page-container">
     <div class="text-c">
-        <form action="${path}/admin/order_batch/batch_list" method="post">
-            <button type="button" class="my-btn-search" onclick="sync_order_fun()" >拉取全部订单</button>
+        <#--<form action="${path}/admin/order_batch/batch_list" method="post">-->
+            <#--<button type="submit" class="my-btn-search" style="" id="" name=""><i class="Hui-iconfont">&#xe665;</i> 搜索</button>-->
+        <#--</form>-->
 
-
-            <input type="text" class="my-input trim_input" id="salesExOrderId" style="margin-top: -3px;width:118px;margin-left: 50px;height: 32px;padding: 0px 0px 0px 2px;" value="" placeholder="商城订单编号" />
-
-            <button type="button" class="my-btn-search" onclick="sync_order_send()" >发货</button>
-        </form>
+        <button type="button" class="my-btn-search" onclick="sync_order_fun()" >拉取全部订单</button>
+        <input type="text" class="my-input trim_input" id="salesExOrderId" style="margin-top: -3px;width:118px;margin-left: 50px;height: 32px;padding: 0px 0px 0px 2px;" value="" placeholder="商城订单编号" />
+        <button type="button" class="my-btn-search" onclick="sync_order_send()" >发货</button>
     </div>
 
     <div class="mt-20">
         <table class="table table-border table-bordered table-bg table-hover table-sort">
         <thead>
         <tr class="text-c">
-            <th width="40">同步类型</th>
-            <th width="30">总数量</th>
+            <th width="50">同步类型</th>
+            <th width="40">总数量</th>
             <th width="30">失败数量</th>
             <th width="100">备注</th>
             <th width="200">错误信息</th>
-            <th width="50">同步时间</th>
+            <th width="60">同步时间</th>
         </tr>
         </thead>
         <tbody>
@@ -71,7 +70,10 @@
                             <td>${orderSyncLog.syncLogErrorNum!''}</td>
                             <td>${orderSyncLog.syncLogMsg!''}</td>
                             <td>${orderSyncLog.syncLogErrorMsg!''}</td>
-                            <td>${(orderSyncLog.syncLogCreateDate?string("yyyy-MM-dd HH:mm:ss"))!''}</td>
+                            <td>
+                                ${(orderSyncLog.syncLogCreateDate?string("yyyy-MM-dd"))!''}</br>
+                                ${(orderSyncLog.syncLogCreateDate?string("HH:mm:ss"))!''}
+                            </td>
                         </tr>
                     </#list>
             <#else>