2 Commits 78ce244f86 ... ca4c44fcf5

Author SHA1 Message Date
  wangxiaoming ca4c44fcf5 1.订单同步列表点击下一页问题 5 years ago
  wangxiaoming 8287536e93 订单同步 5 years ago

+ 12 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/postOrderNumMapper.xml

@@ -239,6 +239,12 @@
                 WHERE dc.dealer_id = #{dealerId}
                 )
             </if>
+            <if test="storeIds != null">
+                AND t.sales_store_id IN
+                <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                    #{storeId}
+                </foreach >
+            </if>
             <if test="orderIscostTotal != null and orderIscostTotal == 1">
                 AND dco.item_id is not null
             </if>
@@ -398,6 +404,12 @@
                 WHERE dc.dealer_id = #{dealerId}
                 )
             </if>
+            <if test="storeIds != null">
+                AND t.sales_store_id IN
+                <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                    #{storeId}
+                </foreach >
+            </if>
         </where>
         ORDER BY t.sales_id DESC
     </select>

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -2084,6 +2084,12 @@
                     WHERE dc.dealer_id = #{dealerId}
                 )
             </if>
+            <if test="storeIds != null">
+                AND tt.sales_store_id IN
+                <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                    #{storeId}
+                </foreach >
+            </if>
             <if test="salesReturnGoods != null and salesReturnGoods == 1">
                 AND  oi.item_return_num <![CDATA[=]]> 0
             </if>

+ 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"); //小亚通订单项编号

+ 15 - 0
watero-rst-service/src/main/java/com/iamberry/rst/util/PageUtil.java

@@ -57,4 +57,19 @@ public class PageUtil {
         return result;
     }
 
+
+    /**
+     * 根据 List 获取分页数据
+     * @param
+     * @param <T>
+     * @return
+     */
+    public static <T> PagedResult<T> getPage() {
+        PagedResult<T> result = new PagedResult<T>();
+        result.setPageNo(1);
+        result.setPages(0);
+        result.setPageSize(20);
+        return result;
+    }
+
 }

+ 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 - 43
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -115,57 +115,27 @@ public class AdminSalesOrderController {
             storeInfo.setCompanyId(salesOrder.getSalesCompanyId());
             productColor.setTypeCompany(salesOrder.getSalesCompanyId());
         }
-        // 搜索店铺
-        List<StoreInfo> listStoreInfo = storeInfoService.listStore(storeInfo);
-        // 搜索物流方式
-        List<LogisticsInfo> logisticsInfoList = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
-        // 查询产品颜色
-        List<ProductColor> productColorList = productService.listproductAndColor(productColor);
+
+        // 不查询客诉添加的订单
+        salesOrder.setIsSelectCustomer(2);
+        //分页获取订单信息
+        PagedResult<SalesOrder> pagedResult = PageUtil.getPage();
 
         //判断用户只能查看自己所能查询的公司的订单
         Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
-        if(storeIds.length < 1){
-            // 不查询客诉添加的订单
-            salesOrder.setIsSelectCustomer(2);
-            //分页获取订单信息
-            PagedResult<SalesOrder> pagedResult = PageUtil.getPage(new ArrayList<SalesOrder>());
-            pagedResult.setTotal(0);
-            pagedResult.setPageNo(1);
-            pagedResult.setPages(0);
-            pagedResult.setPageSize(20);
-
-            if (totalNum != 0) {
-                pagedResult.setTotal(totalNum);
-            }
-            ModelAndView mv = new ModelAndView("order/salesOrder/sales_order_list");
-            StitchAttrUtil.getSa()
-                    .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
-                    .addNoPro("suSalesOrderItemList")
-                    .addNoPro("salesOrderItemList")
-                    .addNoPro("storeIds")
-                    .setModelAndView(salesOrder, mv, "/admin/salesOrder/list_order_page", pagedResult);
-            salesOrder.setSalesOrderItemList(null);
-
-            // 查询订单各个状态数量
-            mv.addObject("orderNum",salesOrderService.getStatusNum());
-            mv.addObject("listStoreInfo",listStoreInfo);
-            mv.addObject("logisticsInfoList",logisticsInfoList);
-            mv.addObject("identity",AdminUtils.getLoginAdmin().getAdminDept());
-            mv.addObject("productColorList",productColorList);
-            mv.addObject("admin",AdminUtils.getLoginAdmin());
-            return mv;
-        }else{
+        if(storeIds.length > 0){
             salesOrder.setStoreIds(storeIds);
+            storeInfo.setStoreIds(storeIds);
+            pagedResult = salesOrderService.listSalesOrderPage(pageNO, pageSize, salesOrder,totalNum == 0);
         }
 
         // 搜索店铺
-        storeInfo.setStoreIds(storeIds);
-        listStoreInfo = storeInfoService.listStore(storeInfo);
+        List<StoreInfo> listStoreInfo = storeInfoService.listStore(storeInfo);
+        // 搜索物流方式
+        List<LogisticsInfo> logisticsInfoList = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
+        // 查询产品颜色
+        List<ProductColor> productColorList = productService.listproductAndColor(productColor);
 
-        // 不查询客诉添加的订单
-        salesOrder.setIsSelectCustomer(2);
-        //分页获取订单信息
-        PagedResult<SalesOrder> pagedResult = salesOrderService.listSalesOrderPage(pageNO, pageSize, salesOrder,totalNum == 0);
         if (totalNum != 0) {
             pagedResult.setTotal(totalNum);
         }

+ 52 - 9
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -19,8 +19,10 @@ import com.iamberry.rst.faces.cm.*;
 import com.iamberry.rst.faces.dm.DmDealerService;
 import com.iamberry.rst.faces.fm.ComplaintDetectInfoService;
 import com.iamberry.rst.faces.order.LogisticsInfoService;
+import com.iamberry.rst.faces.order.OrderDepartService;
 import com.iamberry.rst.faces.order.OrderSyncLogService;
 import com.iamberry.rst.faces.product.ProductService;
+import com.iamberry.rst.util.PageUtil;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.OrderUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
@@ -79,6 +81,8 @@ public class AwaitSendController {
     @Autowired
     private OrderSyncLogService orderSyncLogService;
     @Autowired
+    private OrderDepartService orderDepartService;
+    @Autowired
     private ComplaintDetectInfoService complaintDetectInfoService;
     private static final Logger LOGGER = LoggerFactory.getLogger(AwaitSendController.class);
 
@@ -1122,25 +1126,43 @@ public class AwaitSendController {
                                       @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
         ModelAndView mv = new ModelAndView("order/statistics/order_statistics");
         salesOrder.setIsCustmerAddOrder(2);
-        //分页获取订单信息
-        PagedResult<SalesOrder> pagedResult = salesOrderService.salesOrderListAndItemPage(pageNO, pageSize, salesOrder,totalNum == 0);
-        if (totalNum != 0) {
-            pagedResult.setTotal(totalNum);
+
+        StoreInfo storeInfo = new StoreInfo();
+
+        PagedResult<SalesOrder> pagedResult = PageUtil.getPage();
+
+        Admin admin = AdminUtils.getLoginAdmin();
+        switch (admin.getAdminDept()){
+            case 2:  //销售
+                Integer[] storeIds = orderDepartService.getDepartStoreIds(admin.getAdminId());
+                salesOrder.setStoreIds(storeIds);
+                storeInfo.setStoreIds(storeIds);
+                if(storeIds.length > 0){
+                    //分页获取订单信息
+                    pagedResult = salesOrderService.salesOrderListAndItemPage(pageNO, pageSize, salesOrder,totalNum == 0);
+                }
+                break;
+            default:
+                pagedResult = salesOrderService.salesOrderListAndItemPage(pageNO, pageSize, salesOrder,totalNum == 0);
+                break;
         }
-        List<StoreInfo> listStoreInfo = storeInfoService.listStore(new StoreInfo());
+
+        List<StoreInfo> listStoreInfo = storeInfoService.listStore(storeInfo);
         List<LogisticsInfo> logisticsInfoList = logisticsInfoService.getLogisticsInfoList(new LogisticsInfo());
         List<ProductColor> productColorList = productService.listproductAndColor(new ProductColor());
         List<OrderWarehouse> listOrderWarehouse = salesOrderService.listOrderWarehouse();
+
+        if (totalNum != 0) {
+            pagedResult.setTotal(totalNum);
+        }
         StitchAttrUtil.getSa()
                 .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
                 .addNoPro("salesOrderItemList")
                 .setModelAndView(salesOrder, mv, "/admin/await_send/order_statistics", pagedResult);
-
         mv.addObject("listOrderWarehouse",listOrderWarehouse);
         mv.addObject("listStoreInfo",listStoreInfo);
         mv.addObject("logisticsInfoList",logisticsInfoList);
         mv.addObject("productColorList",productColorList);
-
         return mv;
     }
 
@@ -1157,7 +1179,16 @@ public class AwaitSendController {
     @RequiresPermissions("salesOrder:order_statistics:deliver")
     public ResponseJson valDownloadOrderStatistics(HttpServletRequest request,SalesOrder so) throws Exception {
         ResponseJson rj = ResponseJson.getFAILURE();
-        Integer num = postOrderNumService.listSalesOrderAndItemNum(so);
+        Integer num = 0;
+        if(AdminUtils.getLoginAdmin().getAdminDept() == 2){
+            Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
+            if(storeIds.length > 0){
+                so.setStoreIds(storeIds);
+                num = postOrderNumService.listSalesOrderAndItemNum(so);
+            }
+        }else{
+            num = postOrderNumService.listSalesOrderAndItemNum(so);
+        }
         if(num > 20000){
             rj.setResultMsg("下载订单超过20000条,请精确查询条件");
             return rj;
@@ -1175,7 +1206,17 @@ public class AwaitSendController {
     @RequiresPermissions("salesOrder:order_statistics:deliver")
     public ModelAndView downloadOrderExcel(HttpServletRequest request,SalesOrder so) throws Exception {
         so.setIsCustmerAddOrder(2);
-        List<SalesOrder> temporarySalesOrderList = postOrderNumService.listSalesOrderAndItem(so);
+        List<SalesOrder> temporarySalesOrderList = new ArrayList<>();
+
+        if(AdminUtils.getLoginAdmin().getAdminDept() == 2){
+            Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
+            if(storeIds.length > 0){
+                so.setStoreIds(storeIds);
+               temporarySalesOrderList = postOrderNumService.listSalesOrderAndItem(so);
+            }
+        }else{
+            temporarySalesOrderList = postOrderNumService.listSalesOrderAndItem(so);
+        }
 
         if(temporarySalesOrderList.size() > 20000){
             return new ModelAndView().addObject("下载出错,下载数量过大");
@@ -1190,6 +1231,7 @@ public class AwaitSendController {
         titles.add("订单创建日期");
         titles.add("订单编号");
         titles.add("交易号");
+        titles.add("商家编号");
         titles.add("订单类型");
         titles.add("姓名");
         titles.add("电话");
@@ -1220,6 +1262,7 @@ public class AwaitSendController {
                 row.add(salesOrder.getSalesCreateTime() == null ? null:formatter.format(salesOrder.getSalesCreateTime()));
                 row.add(salesOrder.getSalesOrderId() == null ? null:salesOrder.getSalesOrderId());
                 row.add(salesOrder.getSalesDealCode() == null ? null:salesOrder.getSalesDealCode());
+                row.add(salesOrder.getSalesExOrderId() == null ? null:salesOrder.getSalesExOrderId());
                 if(salesOrder.getSalesCustomerId() == null){
                     row.add("正常订单");
                 }else{

+ 2 - 1
watero-rst-web/src/main/java/com/iamberry/rst/utils/StitchAttrUtil.java

@@ -37,7 +37,8 @@ public class StitchAttrUtil {
             "signclosedProductInfoList",
             "cmRelation",
             "signclosedImgInfoList",
-            "suSalesOrderItemList"
+            "suSalesOrderItemList",
+            "storeIds"
     };
 
 

+ 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>