24282 hai 1 ano
pai
achega
4581fd9fa3

+ 13 - 0
sd-wln/src/main/java/com/sd/wln/entity/StashParam.java

@@ -0,0 +1,13 @@
+package com.sd.wln.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class StashParam extends Signature {
+
+    private int page_no;
+    private int page_size;
+
+}

+ 43 - 58
sd-wln/src/main/java/com/sd/wln/service/impl/WlnOrderServiceImpl.java

@@ -5,8 +5,6 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.fjhx.tenant.entity.dict.po.DictCommonData;
-import com.fjhx.tenant.service.dict.DictCommonDataService;
 import com.ruoyi.common.constant.StatusConstant;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.framework.mybatis.holder.LogicHolder;
@@ -56,9 +54,6 @@ import java.util.stream.Collectors;
 public class WlnOrderServiceImpl implements WlnOrderService {
 
     @Autowired
-    private DictCommonDataService dictCommonDataService;
-
-    @Autowired
     private OrderInfoService orderInfoService;
 
     @Autowired
@@ -79,77 +74,67 @@ public class WlnOrderServiceImpl implements WlnOrderService {
     @Autowired
     private InventoryFinishedService inventoryFinishedService;
 
+    /**
+     * 只抓指定仓库编码订单数据
+     */
+    private static final String WAREHOUSE_CODE = "T008";
+
     @Override
     public void syncOrder() {
 
-        List<DictCommonData> warehouseCodeList = dictCommonDataService.list(q -> q.eq(DictCommonData::getDictCode, "warehouse_code"));
-
-        for (DictCommonData dictCommonData : warehouseCodeList) {
+        // 查询事业部万里牛订单
+        List<JSONObject> wlnOrderList = getWlnOrderList(WAREHOUSE_CODE);
 
-            // 获取事业部编号
-            String warehouseCode = dictCommonData.getDictValue();
-
-            // 查询事业部万里牛订单
-            List<JSONObject> wlnOrderList = getWlnOrderList(warehouseCode);
-
-            // 万里牛订单数量若为0,结束同步任务
-            if (wlnOrderList.isEmpty()) {
-                continue;
-            }
-
-            // 初始化订单上下文
-            OrderContext context = new OrderContext(warehouseCode, wlnOrderList);
-
-            // 获取已存在订单
-            Map<String, OrderInfo> existOrderMap = context.getExistOrderMap();
+        // 万里牛订单数量若为0,结束同步任务
+        if (wlnOrderList.isEmpty()) {
+            return;
+        }
 
-            // 循环万里牛订单
-            for (JSONObject wlnOrder : wlnOrderList) {
+        // 初始化订单上下文
+        OrderContext context = new OrderContext(WAREHOUSE_CODE, wlnOrderList);
 
-                // 数据库中是否存在订单
-                OrderInfo orderInfo = existOrderMap.get(wlnOrder.getString("uid"));
+        // 获取已存在订单
+        Map<String, OrderInfo> existOrderMap = context.getExistOrderMap();
 
-                // 不存在新增
-                if (orderInfo == null) {
+        // 循环万里牛订单
+        for (JSONObject wlnOrder : wlnOrderList) {
 
-                    // 9月1号之前的订单不同步
-                    Date printTime = wlnOrder.getDate("print_time");
-                    if (printTime != null && printTime.before(DateUtil.parse("2023-12-10 00:00:00"))) {
-                        continue;
-                    }
+            // 数据库中是否存在订单
+            OrderInfo orderInfo = existOrderMap.get(wlnOrder.getString("uid"));
 
-                    // 审核通过之前或预售状态的订单不同步
-                    Integer processStatus = wlnOrder.getInteger("process_status");
-                    if (processStatus < 1 || processStatus == 14) {
-                        continue;
-                    }
+            // 不存在新增
+            if (orderInfo == null) {
 
-                    // 创建订单
-                    orderInfo = createOrder(context, wlnOrder);
+                // 审核通过之前或预售状态的订单不同步
+                Integer processStatus = wlnOrder.getInteger("process_status");
+                if (processStatus < 1 || processStatus == 14) {
+                    continue;
+                }
 
-                    // 添加订单到上下文
-                    addOrder(context, wlnOrder, orderInfo);
+                // 创建订单
+                orderInfo = createOrder(context, wlnOrder);
 
-                }
-                // 存在修改
-                else {
-                    updateOrder(context, wlnOrder, orderInfo);
-                }
+                // 添加订单到上下文
+                addOrder(context, wlnOrder, orderInfo);
 
             }
-
-            // 保存新增、修改的订单
-            try {
-                TransactionUtil.execute(() -> {
-                    // 保存或更新数据
-                    saveOrUpdateOrder(context);
-                });
-            } catch (Exception e) {
-                log.error("同步订单失败");
+            // 存在修改
+            else {
+                updateOrder(context, wlnOrder, orderInfo);
             }
 
         }
 
+        // 保存新增、修改的订单
+        try {
+            TransactionUtil.execute(() -> {
+                // 保存或更新数据
+                saveOrUpdateOrder(context);
+            });
+        } catch (Exception e) {
+            log.error("同步订单失败");
+        }
+
     }
 
     /**

+ 26 - 0
sd-wln/src/main/java/com/sd/wln/util/WlnUtil.java

@@ -9,6 +9,7 @@ import com.ruoyi.common.utils.MapUtil;
 import com.sd.wln.constants.WlnConstant;
 import com.sd.wln.entity.GoodsSpecParam;
 import com.sd.wln.entity.SkuClassifyParam;
+import com.sd.wln.entity.StashParam;
 import com.sd.wln.entity.StockParam;
 import com.sd.wln.entity.TradesParam;
 import org.apache.http.HttpEntity;
@@ -213,4 +214,29 @@ public class WlnUtil {
     //    System.out.println();
     //}
 
+    /**
+     * 仓库列表
+     * { @link <a href="https://open-doc.hupun.com/#/apidetial/406602329304549469/574012557544625891/%E5%9F%BA%E7%A1%80%E4%BF%A1%E6%81%AF"/a>}
+     */
+    public static List<JSONObject> getStash(Integer page, Integer limit) throws IOException {
+        StashParam param = new StashParam();
+        param.setPage_no(page);
+        param.setPage_size(limit);
+        param.generateSign(MapUtil.createLinkString(MapUtil.beanToMap(param)));
+
+        String result = send(PREFIX + "erp/base/storage/query", MapUtil.beanToMap(param));
+        JSONObject json = JSONObject.parseObject(result);
+        Integer code = json.getInteger("code");
+        if (code != 0) {
+            throw new ServiceException(result);
+        }
+        return json.getJSONArray("data").toJavaList(JSONObject.class);
+    }
+
+    //public static void main(String[] args) throws IOException {
+    //    List<JSONObject> list = getStash(1, 100);
+    //
+    //    System.out.println();
+    //}
+
 }