瀏覽代碼

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

liujiankang 5 年之前
父節點
當前提交
45085a279d
共有 18 個文件被更改,包括 279 次插入186 次删除
  1. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java
  2. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/cm/StoreInfo.java
  3. 10 0
      watero-rst-core/src/main/java/com.iamberry.rst.core/order/OrderBatch.java
  4. 1 1
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/order/OrderSyncLogService.java
  5. 17 10
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml
  6. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/storeInfoMapper.xml
  7. 2 12
      watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderDepartServiceImpl.java
  8. 95 74
      watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java
  9. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/order/mapper/orderBatchMapper.xml
  10. 16 8
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java
  11. 20 20
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java
  12. 29 11
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderBatchController.java
  13. 3 1
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderPlatformController.java
  14. 37 38
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java
  15. 12 8
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java
  16. 2 1
      watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl
  17. 2 2
      watero-rst-web/src/main/webapp/WEB-INF/views/product/add_product.ftl
  18. 1 0
      watero-rst-web/src/main/webapp/common/js/product/product.js

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -76,6 +76,8 @@ public class SalesOrder implements Serializable {
     private Integer salesWarrantyStatus;        //订单售后状态 同步第三方平台售后状态:0 没有售后 1 退款中
     private Integer salesMainOrderId;       //主订单id(拆单用)
 
+    private String salesExOrderId;       //第三方平台订单号
+
     private String companyName;             //销售公司名称
     private String storeName;               //店铺名称
 
@@ -1143,4 +1145,12 @@ public class SalesOrder implements Serializable {
     public void setStoreIds(Integer[] storeIds) {
         this.storeIds = storeIds;
     }
+
+    public String getSalesExOrderId() {
+        return salesExOrderId;
+    }
+
+    public void setSalesExOrderId(String salesExOrderId) {
+        this.salesExOrderId = salesExOrderId;
+    }
 }

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/StoreInfo.java

@@ -30,6 +30,8 @@ public class StoreInfo implements Serializable {
     //发货人地址
     private String storeShipAddress;
 
+    private Integer[] storeIds;              //控制可以获得哪些店铺的订单
+
     //客户id
     private Integer dealerId;
 
@@ -144,4 +146,12 @@ public class StoreInfo implements Serializable {
     public void setDealerId(Integer dealerId) {
         this.dealerId = dealerId;
     }
+
+    public Integer[] getStoreIds() {
+        return storeIds;
+    }
+
+    public void setStoreIds(Integer[] storeIds) {
+        this.storeIds = storeIds;
+    }
 }

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/OrderBatch.java

@@ -51,6 +51,8 @@ public class OrderBatch  implements  Serializable{
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date endDate;                   //结束时间
 
+    private Integer[] storeIds;              //控制可以获得哪些店铺的订单
+
     public String getBatchId(){
         return batchId;
     }
@@ -178,4 +180,12 @@ public class OrderBatch  implements  Serializable{
     public void setSalesCompanyId(Integer salesCompanyId) {
         this.salesCompanyId = salesCompanyId;
     }
+
+    public Integer[] getStoreIds() {
+        return storeIds;
+    }
+
+    public void setStoreIds(Integer[] storeIds) {
+        this.storeIds = storeIds;
+    }
 }

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/order/OrderSyncLogService.java

@@ -56,7 +56,7 @@ public interface OrderSyncLogService {
      * @param
      * @return Integer
      */
-    boolean syncXYTOrderShip(Integer salesOrderId);
+    boolean syncXYTOrderShip(Integer[] salesOrderId);
 
     /**
      * 清空Map

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

@@ -90,14 +90,7 @@
   <!-- 根据id查询订单信息 -->
   <select id="getSalesOrderByIds" resultType="SalesOrder" parameterType="java.util.List" >
     select
-      t.sales_id,t.sales_orderId,t.sales_deal_code,t.sales_send_type,t.sales_send_time,t.sales_sales_time,t.sales_post_num,t.sales_post_firm,
-      t.sales_address_info,t.sales_address_tel,t.sales_address_name,t.sales_amount,t.sales_pay_money,t.sales_shipping_fee,
-      t.sales_pay_time,t.sales_create_time,t.sales_admin_remark,t.sales_user_remark,t.sales_type,t.sales_order_status,t.sales_status,
-      t.sales_shipping_status,t.sales_deliver,t.sales_pay_status,t.sales_process_status,
-      t.sales_is_send,t.sales_is_locked,t.sales_is_separate,t.sales_is_download,t.sales_main_order_id,t.sales_batch_id,t.sales_add_type,
-      t.sales_admin_id,t.sales_deliver_time,t.sales_distribution_time,t.sales_warehouse_id,t.sales_return_status,
-      t.sales_address_postcode,t.sales_postage_cost,t.sales_is_sublist,t.sales_belong_orderId,t.sales_process_refund,
-      t.sales_is_ship,t.sales_warranty_status
+      t.*
     from tb_rst_sales_order_info t
     where
       sales_id IN
@@ -217,6 +210,12 @@
                         #{node}
                     </foreach >
                 </if>
+                <if test="storeIds != null">
+                    AND sales_store_id IN
+                    <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                        #{storeId}
+                    </foreach >
+                </if>
                 <if test="salesWarehouseId != null ">
                     AND sales_warehouse_id = #{salesWarehouseId}
                 </if>
@@ -693,6 +692,12 @@
                     #{node}
                 </foreach >
             </if>
+            <if test="storeIds != null">
+                AND sales_store_id IN
+                <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                    #{storeId}
+                </foreach >
+            </if>
             <if test="salesWarehouseId != null ">
                 AND sales_warehouse_id = #{salesWarehouseId}
             </if>
@@ -934,7 +939,8 @@
                 sales_address_postcode,
                 sales_warehouse_id,
                 sales_is_sublist,
-                sales_belong_orderId
+                sales_belong_orderId,
+                sales_ex_orderId
             )
         values
             (
@@ -984,7 +990,8 @@
                 #{salesAddressPostcode},
                 #{salesWarehouseId},
                 #{salesIsSublist},
-                #{salesBelongOrderId}
+                #{salesBelongOrderId},
+                #{salesExOrderId}
             )
   </insert>
 

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

@@ -66,6 +66,12 @@
       <if test="storeName != null">
         and store_name LIKE CONCAT('%',#{storeName},'%')
       </if>
+      <if test="storeIds != null">
+        AND store_id IN
+        <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+          #{storeId}
+        </foreach >
+      </if>
     </where>
   </select>
 

+ 2 - 12
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderDepartServiceImpl.java

@@ -60,23 +60,13 @@ public class OrderDepartServiceImpl  implements OrderDepartService {
                 }
             }
             if(companyIds.size() > 0 ){
-                Integer[] compantStoreIds = new Integer[companyIds.size()];
-                Integer i=0;
-                for (Integer companyId : companyIds) {
-                    compantStoreIds[i]  = companyId;
-                    i++;
-                }
+                Integer[] compantStoreIds = companyIds.toArray(new Integer[]{});
                 List<StoreInfo> storeInfoList = storeInfoService.getStoreInfoByCompantIds(compantStoreIds);
                 for (StoreInfo si : storeInfoList) {
                     storeIds.add(si.getStoreId());
                 }
             }
-            Integer[] siIds = new Integer[storeIds.size()];
-            Integer y=0;
-            for (Integer siId : storeIds) {
-                siIds[y] = siId;
-                y++;
-            }
+            Integer[] siIds = storeIds.toArray(new Integer[]{});
             return siIds;
         }
     }

+ 95 - 74
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java

@@ -203,8 +203,17 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
         orderSyncLog.setSyncLogMode(type);
         orderSyncLog.setSyncLogRecentNum(amountAllNum); //同步总数量
         orderSyncLog.setSyncLogErrorNum(amountAllNum - amountSuccessAllNum); //同步失败数量
-        orderSyncLog.setSyncLogMsg("");   //备注
-        orderSyncLog.setSyncLogErrorMsg(stringBuffer.toString());  //失败信息
+        if(batchId != ""){
+            batchId = "批次编号:"+batchId;
+        }
+        orderSyncLog.setSyncLogMsg("批量拉取,"+batchId);   //备注
+        if(!stringBuffer.toString().equals("")){
+            String newErrorMsg = stringBuffer.toString();
+            if(newErrorMsg.length() > 5000){
+                newErrorMsg = newErrorMsg.substring(0,4999);
+            }
+            orderSyncLog.setSyncLogErrorMsg(newErrorMsg);  //失败信息
+        }
         orderSyncLogMapper.save(orderSyncLog);
 
         if(type == 1){
@@ -281,9 +290,13 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
         orderSyncLog.setSyncLogMode(type);
         orderSyncLog.setSyncLogRecentNum(amountAllNum); //同步总数量
         orderSyncLog.setSyncLogErrorNum(amountAllNum - amountSuccessAllNum); //同步失败数量
-        orderSyncLog.setSyncLogMsg("");   //备注
+        orderSyncLog.setSyncLogMsg("单个拉取订单:"+orderId);   //备注
         if(!stringBuffer.toString().equals("")){
-            orderSyncLog.setSyncLogErrorMsg("同步失败订单号:"+stringBuffer.toString());  //失败信息
+            String newErrorMsg = stringBuffer.toString();
+            if(newErrorMsg.length() > 5000){
+                newErrorMsg.substring(0,4999);
+            }
+            orderSyncLog.setSyncLogErrorMsg(newErrorMsg);  //失败信息
         }
         orderSyncLogMapper.save(orderSyncLog);
         return null;
@@ -477,75 +490,81 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
 
     /**
      * 发货接口-小亚通
-     * @param salesOrderId
+     * @param salesOrderIds
      * @return
      */
     @Override
-    public boolean syncXYTOrderShip(Integer salesOrderId) {
-        SalesOrder salesOrder = salesOrderService.getSalesOrderByIdConcise(salesOrderId);
-        if(!generateKeyUtil.isXytBatchId(salesOrder.getSalesBatchId())){    //不是小亚通第三方的订单,直接通过,不走该程序
-            return true;
-        }
-        if(salesOrder.getSalesShippingStatus() != 1){
-            //1已发货
-            logger.info("小亚通发货失败,订单未发货!");
-            return false;
-        }
-        if(salesOrder.getSalesPostNum() == null || "".equals(salesOrder.getSalesPostNum())){
-            logger.info("小亚通发货失败,订单未发货!");
-            return false;
-        }
-        LogisticsInfo logisticsInfo = logisticsInfoService.getLogisticsNameByRSTCode(salesOrder.getSalesPostFirm());
-        List<SalesOrderItem>  salesOrderItemList = salesOrderService.getOrderItemListBySalesId(salesOrderId);
-
-        if(salesOrderItemList==null || salesOrderItemList.size()<1){
-            logger.info("小亚通发货失败,未查询到订单信息!");
-            return false;
-        }
-
-        HashSet<Long> itemIdSet = new HashSet();
-        for (SalesOrderItem salesOrderItem:salesOrderItemList) {
-            Long otherItemId =  Long.valueOf(salesOrderItem.getItemOtherId());
-            itemIdSet.add(otherItemId);
-        }
-
-        Long[] itemIds = new Long[itemIdSet.size()];
-        //通过加强for循环遍历HashSet
-        int i = 0;
-        for(Long item : itemIdSet) {
-            itemIds[i] = item;
-            i++;
-        }
+    public boolean syncXYTOrderShip(Integer[] salesOrderIds) {
+        for (int m = 0; m < salesOrderIds.length; m++) {
+            Integer salesOrderId = salesOrderIds[m];
+            SalesOrder salesOrder = salesOrderService.getSalesOrderByIdConcise(salesOrderId);
+            if(!generateKeyUtil.isXytBatchId(salesOrder.getSalesBatchId())){    //不是小亚通第三方的订单,直接通过,不走该程序
+                logger.info("不是小亚通订单,退出!");
+                continue;
+            }
+            if(salesOrder.getSalesShippingStatus() != 1){
+                //1已发货
+                logger.info("小亚通发货失败,订单未发货!");
+                continue;
+            }
+            if(salesOrder.getSalesPostNum() == null || "".equals(salesOrder.getSalesPostNum())){
+                logger.info("小亚通发货失败,订单未发货!");
+                continue;
+            }
 
-        //删除因为拆单增加的订单后缀
-        String orderId  = salesOrder.getSalesDealCode();
-        if(orderId.indexOf("-")>-1){
-            orderId = orderId.substring(0,orderId.indexOf("-"));
-        }
-        Long otherOrderId = Long.valueOf(orderId);
+            LogisticsInfo logisticsInfo = logisticsInfoService.getLogisticsNameByRSTCode(salesOrder.getSalesPostFirm());
 
-        Map[] maps = new Map[1];
+            List<SalesOrderItem>  salesOrderItemList = salesOrderService.getOrderItemListBySalesId(salesOrderId);
 
-        Map<String,Object> deliveryInfosMap = new HashMap<>();
-        deliveryInfosMap.put("itemIds",itemIds);//订单项ID,如果为null 表示整个订单只有1 个包裹,否则只是部分订单项
-        deliveryInfosMap.put("companyCode",logisticsInfo.getLogisticsXytCode());//物流公司编码
-        deliveryInfosMap.put("deliveryNo",salesOrder.getSalesPostNum());//物流单号
-        deliveryInfosMap.put("deliveryTime",sdf.format(salesOrder.getSalesSendTime()));//发货时间
+            if(salesOrderItemList==null || salesOrderItemList.size()<1){
+                logger.info("小亚通发货失败,未查询到订单信息!");
+                continue;
+            }
 
-        maps[0]=deliveryInfosMap;
+            HashSet<Long> itemIdSet = new HashSet();
+            for (SalesOrderItem salesOrderItem:salesOrderItemList) {
+                Long otherItemId =  Long.valueOf(salesOrderItem.getItemOtherId());
+                itemIdSet.add(otherItemId);
+            }
 
-        Map<String,Object> map = new HashMap<>();
-        map.put("orderId",otherOrderId);//原始订单号
-        map.put("deliveryInfos",maps);//原始订单号
+            Long[] itemIds = new Long[itemIdSet.size()];
+            //通过加强for循环遍历HashSet
+            int i = 0;
+            for(Long item : itemIdSet) {
+                itemIds[i] = item;
+                i++;
+            }
 
-        String shipResultJson = this.syncXYT("delivery",map);
-        JSONObject jsonObj = new JSONObject(shipResultJson);//转化为json格式
-        String resultMsg = jsonObj.getString("result_msg");
-        if(resultMsg.equals("success")) {
-            //发货成功
-            return true;
+            //删除因为拆单增加的订单后缀
+            String orderId  = salesOrder.getSalesDealCode();
+            if(orderId.indexOf("-")>-1){
+                orderId = orderId.substring(0,orderId.indexOf("-"));
+            }
+            Long otherOrderId = Long.valueOf(orderId);
+
+            Map[] maps = new Map[1];
+            Map<String,Object> deliveryInfosMap = new HashMap<>();
+            deliveryInfosMap.put("itemIds",itemIds);//订单项ID,如果为null 表示整个订单只有1 个包裹,否则只是部分订单项
+            deliveryInfosMap.put("companyCode",logisticsInfo.getLogisticsXytCode());//物流公司编码
+            deliveryInfosMap.put("deliveryNo",salesOrder.getSalesPostNum());//物流单号
+            deliveryInfosMap.put("deliveryTime",sdf.format(salesOrder.getSalesSendTime()));//发货时间
+            maps[0]=deliveryInfosMap;
+            Map<String,Object> map = new HashMap<>();
+            map.put("orderId",otherOrderId);//原始订单号
+            map.put("deliveryInfos",maps);//原始订单号
+
+            String shipResultJson = this.syncXYT("delivery",map);
+            JSONObject jsonObj = new JSONObject(shipResultJson);//转化为json格式
+            String resultMsg = jsonObj.getString("result_msg");
+            if(resultMsg.equals("success")) {
+                //修改同步物流状态
+                SalesOrder shipSalesOrder = new SalesOrder();
+                shipSalesOrder.setSalesIsShip(1);   //同步物流状态到第三方平台 1:是
+                shipSalesOrder.setSalesId(salesOrderId);
+                salesOrderService.update(shipSalesOrder);
+            }
         }
-        return false;
+        return true;
     }
 
     @Override
@@ -676,6 +695,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                 for(int i=0;i<beanListArray.length();i++){
                     JSONObject job = beanListArray.getJSONObject(i);
                     Long otherOrderId = null;
+                    String otherExtOrderId = null;
                     try{
                         JSONObject consigneeObj = job.getJSONObject("consignee");   //用户信息
                         JSONObject infoObj = job.getJSONObject("info");   //订单基本信息
@@ -685,20 +705,23 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                             memoObj = job.getJSONObject("memo");   //备注信息  如果没有备注,将为null
                         }
 
-                        //订单编号
-                        Long orderId = infoObj.getLong("orderId");
-                        otherOrderId = orderId;
+                        //小亚通订单编号
+                        otherOrderId = infoObj.getLong("orderId");
+
+                        //商城订单编号
+                        otherExtOrderId = infoObj.getString("extOrderId");
 
                         //订单状态::0 待支付;10 待成团;20 待发货;30 预售中;40 待审批;50 仓库代发货;60 已发货;70 已签收;80 已拒收;999 已作废
                         Integer orderStatus = infoObj.getInt("orderStatus");
                         if(20 != orderStatus){   //20 待发货
-                            errorMsg.append(otherOrderId+"该订单状态异常,"+ getStatusMsg(orderStatus) +";");
+                            errorMsg.append("商城订单编号:"+otherExtOrderId+"该订单状态异常,"+ getStatusMsg(orderStatus) +";");
                             continue;
                         }
 
                         SalesOrder salesOrder = new SalesOrder();
-                        salesOrder.setSalesOrderId(String.valueOf(orderId));  //小亚通订单编号
-                        salesOrder.setSalesDealCode(String.valueOf(orderId));  //小亚通订单编号
+                        salesOrder.setSalesOrderId(String.valueOf(otherOrderId));  //小亚通订单编号
+                        salesOrder.setSalesDealCode(String.valueOf(otherOrderId));  //小亚通订单编号
+                        salesOrder.setSalesExOrderId(otherExtOrderId);
                         //收货人信息
                         salesOrder.setSalesAddressName(consigneeObj.getString("receiverName"));//收件人姓名
                         salesOrder.setSalesAddressTel(consigneeObj.getString("receiverMobile"));//收件人手机号码
@@ -809,8 +832,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                         String shopIdStr = String.valueOf(shopId);
                         switch (platformId){
                             case "TMALL":{
-                                /*if(Objects.equals("天猫店铺号",shopIdStr)){
-                                }*/
                                 salesOrder.setSalesStoreId(86);     //天猫爱贝源旗舰店
                                 salesOrder.setSalesCompanyId(1);    //深圳爱贝源
                                 salesOrder.setSalesPayType(5);//付款方式5:支付宝支付
@@ -910,8 +931,8 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
 
                             ProductColor productColor = productColorMapper.getProductColorByBar(extSkuId);
                             if(productColor == null){
-                                logger.info("订单编号:"+orderId+"-订单项中的SKU未匹配到本地,SKU编号:"+extSkuId+"; ");
-                                errorMsg.append(orderId+"-订单项中的SKU未匹配到本地,SKU编号:"+extSkuId+";");
+                                logger.info("商城订单编号:"+otherExtOrderId+"-订单项中的SKU未匹配到本地,SKU编号:"+extSkuId+"; ");
+                                errorMsg.append(otherExtOrderId+"-订单项中的SKU未匹配到本地,SKU编号:"+extSkuId+";");
                                 break;
                             }
 
@@ -1256,7 +1277,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
             in.close();
             result = strber.toString();
             if(response.getStatusLine().getStatusCode()!=HttpStatus.SC_OK){
-                result = "服务器异常";
+                result = "服务器异常"+result;
             }
         } catch (Exception e){
             System.out.println("请求异常");

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

@@ -42,6 +42,12 @@
             <if test="salesCompanyId != null and salesCompanyId != ''">
                 AND soi.sales_company_id = #{salesCompanyId}
             </if>
+            <if test="storeIds != null">
+                AND soi.sales_store_id IN
+                <foreach collection="storeIds" item="storeId" index="index" separator="," open="(" close=")">
+                    #{storeId}
+                </foreach >
+            </if>
         </where>
         GROUP BY soi.sales_batch_id
         ORDER BY t.batch_create_time DESC

+ 16 - 8
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminCustomerController.java

@@ -20,6 +20,7 @@ import com.iamberry.rst.faces.fm.ComplaintSignclosedInfoService;
 import com.iamberry.rst.faces.fm.ComplaintSmallClassInfoService;
 import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.order.LogisticsInfoService;
+import com.iamberry.rst.faces.order.OrderDepartService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.faces.sys.SysService;
@@ -109,6 +110,8 @@ public class AdminCustomerController {
     private LogisticsInfoService logisticsInfoService;
     @Autowired
     private ComplaintDetectInfoService complaintDetectInfoService;
+    @Autowired
+    private OrderDepartService orderDepartService;
 
     /**
      * 获取客诉列表
@@ -401,22 +404,27 @@ public class AdminCustomerController {
      *
      * @param request
      * @param storeInfo
+     * @param isMyStore 为1则需要判断是否是自己包含的店铺,  为其他则查询所有店铺
      * @return
      */
     @ResponseBody
     @RequiresPermissions("customer:add:customer")
     @RequestMapping(value = "/select_storeInfo")
-    public ResponseJson listStoreInfo(HttpServletRequest request, StoreInfo storeInfo) {
+    public ResponseJson listStoreInfo(HttpServletRequest request, StoreInfo storeInfo,
+                                      @RequestParam(value = "isMyStore", defaultValue = "2", required = false) Integer isMyStore) {
+
+        if(isMyStore == 1){
+            //判断用户只能查看自己所能查询的公司的订单
+            Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
+            storeInfo.setStoreIds(storeIds);
+        }
+
         storeInfo.setStoreStatus(1);
         List<StoreInfo> storeInfoList = storeInfoService.listStore(storeInfo);
 
-        if (storeInfoList == null || storeInfoList.size() < 1) {
-            return new ResponseJson(500, "查询失败", 500);
-        } else {
-            ResponseJson rj = new ResponseJson(200, "查询成功", 200);
-            rj.addResponseKeyValue("storeInfoList", storeInfoList);
-            return rj;
-        }
+        ResponseJson rj = new ResponseJson(200, "查询成功", 200);
+        rj.addResponseKeyValue("storeInfoList", storeInfoList);
+        return rj;
     }
 
     /**

+ 20 - 20
watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java

@@ -599,36 +599,36 @@ public class MQTask implements InitializingBean {
 		    return;
         }
         for (SalesOrder salesOrder:salesOrderList) {
-            // 查询订单对应的物流公司
-            LogisticsInfo log = new LogisticsInfo();
-            log.setLogisticsRstCode(salesOrder.getSalesPostFirm());
-            List<LogisticsInfo> listlog = logisticsInfoService.getLogisticsInfoList(log);
-            if(listlog.size() > 0){
-            	if(listlog.get(0).getLogisticsIsSynchronous() == 1){
-					// 调用第三方接口查询物流信息
-					Date date = kuaidi100.selectCourierSignCaseTime(listlog.get(0),salesOrder.getSalesPostNum());
-					if(date == null){
-						continue;
-					}
-					// 编辑订单的揽件时间
-					SalesOrder so = new SalesOrder();
-					so.setSalesId(salesOrder.getSalesId());
-					so.setOrderCaseDate(date);
-					if(salesOrderService.update(so) <= 0){
-						logger.info("修改揽件时间异常,订单号:"+salesOrder.getSalesOrderId());
-					}
+		// 查询订单对应的物流公司
+		LogisticsInfo log = new LogisticsInfo();
+		log.setLogisticsRstCode(salesOrder.getSalesPostFirm());
+		List<LogisticsInfo> listlog = logisticsInfoService.getLogisticsInfoList(log);
+		if(listlog.size() > 0){
+			if(listlog.get(0).getLogisticsIsSynchronous() == 1){
+				// 调用第三方接口查询物流信息
+				Date date = kuaidi100.selectCourierSignCaseTime(listlog.get(0),salesOrder.getSalesPostNum());
+				if(date == null){
+					continue;
+				}
+				// 编辑订单的揽件时间
+				SalesOrder so = new SalesOrder();
+				so.setSalesId(salesOrder.getSalesId());
+				so.setOrderCaseDate(date);
+				if(salesOrderService.update(so) <= 0){
+					logger.info("修改揽件时间异常,订单号:"+salesOrder.getSalesOrderId());
 				}
 			}
+		}
 
-        }
 	}
+}
 
 
 	/**
 	 * 定时拉取小亚通订单
 	 */
 //	@Scheduled(cron = "0 0/3 * * * ?")//每三分钟执行一次
-	@Scheduled(cron = "0 0/30 * * * ?")//每半个小时执行一次
+	@Scheduled(cron = "0 0/10 * * * ?")//每十分钟执行一次
 	public void syncXytOrder(){
 		logger.info("-----定时拉取小亚通订单-开始----");
 		Integer num = orderSyncLogService.syncXYTOrder(1,null);

+ 29 - 11
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderBatchController.java

@@ -8,6 +8,8 @@ import com.iamberry.rst.core.tools.LogisticsInfo;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.order.LogisticsInfoService;
 import com.iamberry.rst.faces.order.OrderBatchService;
+import com.iamberry.rst.faces.order.OrderDepartService;
+import com.iamberry.rst.util.PageUtil;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
@@ -22,6 +24,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.List;
 
 @Controller
@@ -34,6 +37,8 @@ public class AdminOrderBatchController {
     private SalesOrderService salesOrderService;
     @Autowired
     private LogisticsInfoService logisticsInfoService;
+    @Autowired
+    private OrderDepartService orderDepartService;
     private static final Logger LOGGER = LoggerFactory.getLogger(AdminOrderBatchController.class);
     /**
      * 批次列表
@@ -48,21 +53,34 @@ public class AdminOrderBatchController {
                                          @RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) {
         ModelAndView mv = new ModelAndView("order/bacth/order_batch_list");
 
-        Admin admin = AdminUtils.getLoginAdmin();
-        Integer identity = admin.getAdminDept();
-        if(identity == 2){
-            orderBatch.setSalesAdminId(admin.getAdminId());
-        }
-
-        PagedResult<OrderBatch> pagedResult = orderBatchService.listOrderBatchPage(pageNO, pageSize, orderBatch, totalNum == 0);
-        if (totalNum != 0){
-            pagedResult.setTotal(totalNum);
+//        Admin admin = AdminUtils.getLoginAdmin();
+//        Integer identity = admin.getAdminDept();
+//        if(identity == 2){
+//            orderBatch.setSalesAdminId(admin.getAdminId());
+//        }
+
+        //判断用户只能查看自己所能查询的公司的订单
+        Integer[] storeIds = orderDepartService.getDepartStoreIds(AdminUtils.getLoginAdminId());
+        PagedResult<OrderBatch> pagedResult = null;
+        if(storeIds.length < 1){
+            pagedResult = PageUtil.getPage(new ArrayList<OrderBatch>());
+            pagedResult.setTotal(0);
+            pagedResult.setPageNo(1);
+            pagedResult.setPages(0);
+            pagedResult.setPageSize(20);
+            if (totalNum != 0){
+                pagedResult.setTotal(totalNum);
+            }
+        }else{
+            orderBatch.setStoreIds(storeIds);
+            pagedResult = orderBatchService.listOrderBatchPage(pageNO, pageSize, orderBatch, totalNum == 0);
+            if (totalNum != 0){
+                pagedResult.setTotal(totalNum);
+            }
         }
-
         StitchAttrUtil.getSa()
                 .addDatePro("yyyy-MM-dd HH:mm:ss","startDate","endDate")
                 .setModelAndView(orderBatch, mv, "/admin/order_batch/batch_list", pagedResult);
-
         return mv;
     }
 

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

@@ -48,9 +48,11 @@ public class AdminOrderPlatformController {
     @ResponseBody
     @RequestMapping("/send")
     public ResponseJson sendOrder(HttpServletRequest request,Integer orderId){
+        Integer[] orderIds = new Integer[1];
+        orderIds[0] = orderId;
         boolean flag = orderSyncLogService.syncXYTOrderShipInspec(orderId);
         if(flag){
-            boolean shipFlag = orderSyncLogService.syncXYTOrderShip(orderId);
+            boolean shipFlag = orderSyncLogService.syncXYTOrderShip(orderIds);
             if(shipFlag){
                 return ResponseJson.getSUCCESS();
             }

+ 37 - 38
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminSalesOrderController.java

@@ -23,6 +23,7 @@ import com.iamberry.rst.faces.order.*;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.faces.sms.SmsService;
 import com.iamberry.rst.util.GenerateKeyUtil;
+import com.iamberry.rst.util.PageUtil;
 import com.iamberry.rst.utils.AdminUtils;
 import com.iamberry.rst.utils.ExcelUtil;
 import com.iamberry.rst.utils.StitchAttrUtil;
@@ -122,46 +123,44 @@ public class AdminSalesOrderController {
         List<ProductColor> productColorList = productService.listproductAndColor(productColor);
 
         //判断用户只能查看自己所能查询的公司的订单
-//        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")
-//                    .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{
-//            salesOrder.setStoreIds(storeIds);
-//        }
-
-        // 开始装配查询订单的数据
-        if(AdminUtils.getLoginAdmin().getAdminDept() == 2){
-            // 如果是销售部门,只允许查看自己的订单
-            salesOrder.setSalesAdminId(AdminUtils.getLoginAdmin().getAdminId());
+        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")
+                    .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{
+            salesOrder.setStoreIds(storeIds);
         }
 
+        // 搜索店铺
+        storeInfo.setStoreIds(storeIds);
+        listStoreInfo = storeInfoService.listStore(storeInfo);
+
         // 不查询客诉添加的订单
         salesOrder.setIsSelectCustomer(2);
         //分页获取订单信息

+ 12 - 8
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AwaitSendController.java

@@ -54,7 +54,6 @@ import java.util.*;
 @Controller
 @RequestMapping("/admin/await_send")
 public class AwaitSendController {
-
     @Autowired
     private SalesOrderService salesOrderService;
     @Autowired
@@ -422,6 +421,11 @@ public class AwaitSendController {
         }else{
             eOrderRequestData.Quantity = 1;
         }
+
+        //第三方发货,传入的id
+        Set<Integer> salesIdsset = new HashSet<Integer>();
+        salesIdsset.add(salesOrderInfo.getSalesId());
+
         try {
             // 向第三方系统【快递鸟】提交订单数据,第三方系统会检测订单是否重复
             String json = OrderUtils.orderOnlineByJson(eOrderRequestData);
@@ -481,6 +485,7 @@ public class AwaitSendController {
                             order.setSalesId(orders.get(i).getSalesId());
                             order.setSalesOldOrderStatus(11);
                             Integer msg = salesOrderService.updateSalesOrder(order);
+                            salesIdsset.add(orders.get(i).getSalesId());
                             if (msg == null || msg <= 0) {
                                 return ResponseJson.getFAILURE().addResponseKeyValue("error", "子订单状态非通知配货,无法打印");
                             }
@@ -522,13 +527,12 @@ public class AwaitSendController {
                 }
 
                 //小亚通订单,调用接口发货
-                boolean isShip = orderSyncLogService.syncXYTOrderShip(salesOrderInfo.getSalesId());
-                if(isShip){
-                    //修改同步物流状态
-                    SalesOrder shipSalesOrder = new SalesOrder();
-                    shipSalesOrder.setSalesIsShip(1);   //同步物流状态到第三方平台 1:是
-                    shipSalesOrder.setSalesId(salesOrderInfo.getSalesId());
-                    salesOrderService.update(shipSalesOrder);
+                try{
+                    Integer[] saleIds = salesIdsset.toArray(new Integer[] {});
+                    boolean isShip = orderSyncLogService.syncXYTOrderShip(saleIds);
+                }catch (Exception e){
+                    LOGGER.error("小亚通发货接口调用失败");
+                    e.printStackTrace();
                 }
 
                 //添加操作跟踪信息

+ 2 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl

@@ -384,7 +384,8 @@
         $.ajax({
             type: "POST",
             data: {
-                companyId : companyId
+                companyId : companyId,
+                isMyStore : 1
             },
             url: "${path}/admin/customer/select_storeInfo",
             success: function(data){

+ 2 - 2
watero-rst-web/src/main/webapp/WEB-INF/views/product/add_product.ftl

@@ -275,7 +275,7 @@
                     </div>
                     <label class="form-label col-1 col-sm-1">添加库存:</label>
                     <div class="formControls col-2 col-sm-2">
-                        <input type="text" class="input-text add_color str colorInventory" value="" placeholder="库存" id="" name=""  myMaxlength="10"  errormsg="库存非必填,可填写1-10个字符!">
+                        <input type="text" class="input-text add_color str colorInventory" value="10000" placeholder="库存" id="" name=""  myMaxlength="10"  errormsg="库存非必填,可填写1-10个字符!">
                     </div>
                 </div>
 
@@ -319,7 +319,7 @@
                 <div class="row cl" id="" style="">
                     <label class="form-label col-1 col-sm-1"><span class="c-red">*</span>库存数量:</label>
                     <div class="formControls col-2 col-sm-2">
-                        <input type="text" class="input-text  str inventoryGoodProductNum" value="" placeholder="填写库存数量" id="inventoryGoodProductNum" name="inventoryGoodProductNum" myMinlength="1" myMaxlength="12" errormsg="库存数量必填!" >
+                        <input type="text" class="input-text  str inventoryGoodProductNum" value="10000" placeholder="填写库存数量" id="inventoryGoodProductNum" name="inventoryGoodProductNum" myMinlength="1" myMaxlength="12" errormsg="库存数量必填!" >
                     </div>
                 </div>
                 <div class="row cl" id="" style="">

+ 1 - 0
watero-rst-web/src/main/webapp/common/js/product/product.js

@@ -362,6 +362,7 @@ function colorClear() {
     });
     $(".colorNoMachine").iCheck('check');
     $(".colorIsStatus").iCheck('check');
+    $(".colorInventory").val(10000);
 }
 
 /**