From db06b944e7886832d20b8e3ae62b2cb70bcba30f Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期五, 17 四月 2026 13:59:50 +0800
Subject: [PATCH] lsh#订单完结

---
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AsnOrderLogSchedule.java |  134 +++++++++++++++++++++-----------------------
 1 files changed, 64 insertions(+), 70 deletions(-)

diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AsnOrderLogSchedule.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AsnOrderLogSchedule.java
index 4132acc..d5cc0e1 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AsnOrderLogSchedule.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AsnOrderLogSchedule.java
@@ -5,10 +5,8 @@
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
-import com.vincent.rsf.schedule.api.controller.erp.params.ReportDataParam;
-import com.vincent.rsf.schedule.api.controller.erp.params.ReportParams;
+import com.alibaba.fastjson.JSONObject;
 import com.vincent.rsf.schedule.api.service.ReportMsgService;
-import com.vincent.rsf.schedule.common.utils.FieldsUtils;
 import com.vincent.rsf.schedule.manager.entity.*;
 import com.vincent.rsf.schedule.manager.enums.*;
 import com.vincent.rsf.schedule.manager.service.*;
@@ -63,7 +61,7 @@
      * @description 鍒犻櫎宸插畬鎴愯鍗曞姞鍏og琛�
      * @time 2025/3/19 19:09
      */
-//    @Scheduled(cron = "0/35 * * * * ?  ")
+    @Scheduled(cron = "0/1 * * * * ?  ")
     @Transactional(rollbackFor = Exception.class)
     public void InStockToLog() {
         List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()
@@ -110,86 +108,82 @@
     /**
      * @author Ryan
      * @date 2025/10/28
-     * @description: 涓婁紶宸插畬鎴愯鍗曡嚦ERP骞冲彴
+     * @description: 瀹氭椂瑙﹀彂rsf-open-api涓婃姤ERP
+     * @version 1.0
+     */
+    @Scheduled(cron = "0/30 * * * * ?  ")
+    public void reportToErp() {
+        try {
+            reportMsgService.triggerErpReport();
+        } catch (Exception e) {
+            log.error("瑙﹀彂ERP涓婃姤澶辫触", e);
+        }
+    }
+
+    /**
+     * @author Ryan
+     * @date 2025/10/28
+     * @description: 涓婁紶宸插畬鎴愯鍗曡嚦ERP骞冲彴锛堟柊閾捐矾锛孫rder鏍煎紡锛�
      * @version 1.0
      */
     public void reportOrders(WkOrder order) {
-            ReportParams params = new ReportParams();
             List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId()));
             if (orderItems.isEmpty()) {
                 throw new CoolException("璁㈡嵁鏄庣粏涓嶅瓨鍦紒锛�");
             }
-            List<ReportDataParam> reportData = new ArrayList<>();
-            orderItems.forEach(orderItem -> {
-                ReportDataParam param = new ReportDataParam();
-                User user = userService.getById(order.getUpdateBy());
-                String nickName = null;
-                if (!Objects.isNull(user)) {
-                    nickName = user.getNickname();
+
+            // 鏋勫缓Order鏍煎紡鐨凧SON鏁版嵁锛屼笌涓嬪彂/add鎺ュ彛瀛楁淇濇寔涓�鑷�
+            JSONObject orderData = new JSONObject(true);
+            // 骞傜瓑閿細orderNo + reportOnce 纭繚姣忔涓婃姤鍞竴
+            int seq = order.getReportOnce() == null ? 0 : order.getReportOnce();
+            orderData.put("eventId", order.getCode() + "_REPORT_" + seq);
+            orderData.put("orderNo", order.getCode());
+            orderData.put("poCode", order.getPoCode());
+            orderData.put("type", order.getType());
+            orderData.put("wkType", order.getWkType());
+            orderData.put("createTime", order.getCreateTime() != null ? order.getCreateTime().getTime() / 1000 : null);
+            orderData.put("memo", order.getMemo());
+
+            User user = userService.getById(order.getUpdateBy());
+            String nickName = null;
+            if (!Objects.isNull(user)) {
+                nickName = user.getNickname();
+            }
+            orderData.put("editUser", nickName);
+            orderData.put("editDate", order.getUpdateTime() != null ? order.getUpdateTime().getTime() / 1000 : null);
+
+            // 鏋勫缓鏄庣粏鍒楄〃锛屽瓧娈典笌OrderItem涓�鑷�
+            List<JSONObject> items = new ArrayList<>();
+            for (WkOrderItem orderItem : orderItems) {
+                JSONObject item = new JSONObject(true);
+                item.put("lineId", orderItem.getPlatItemId());
+                item.put("planNo", orderItem.getPlatWorkCode());
+                item.put("matNr", orderItem.getMatnrCode());
+                item.put("makTx", orderItem.getMaktx());
+                item.put("anfme", orderItem.getAnfme());
+                item.put("batch", orderItem.getBatch());
+                item.put("unit", orderItem.getStockUnit());
+                item.put("spec", orderItem.getSpec());
+                item.put("model", orderItem.getModel());
+                item.put("memo", orderItem.getMemo());
+                // 瀹屾垚鏁伴噺锛氬叆搴撶敤qty锛屽嚭搴撶敤workQty
+                if (order.getType().equals(OrderType.ORDER_IN.type)) {
+                    item.put("doneQty", orderItem.getQty());
+                } else {
+                    item.put("doneQty", orderItem.getWorkQty());
                 }
+                items.add(item);
+            }
+            orderData.put("orderItems", items);
 
-                Map<String, String> fields = FieldsUtils.getFields(orderItem.getFieldsIndex());
-
-                //璁剧疆閫氱敤鍙傛暟
-                param.setWMSNO(order.getCode())
-                        .setPONO(order.getPoCode())
-                        .setOrderNO(order.getPoCode())
-                        .setOrderDate(order.getCreateTime())
-                        .setItemCode(orderItem.getMatnrCode())
-                        .setEditUser(nickName)
-                        .setEditDate(order.getUpdateTime())
-//                        .setGoodsNO(fields.get("crushNo"))
-                        .setMemoDtl(order.getMemo());
-
-                if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
-                    //閲囪喘鍏ュ簱鍗�
-                    params.setOrderType("PO_Instock").setAction("Update");
-                    //鑾峰彇鎸囧畾鏌ヨ瀛楁CrushNo 绁ㄥ彿
-                    param.setInQty(orderItem.getQty());
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE_RETURN.type)) {
-                    //閲囪喘閫�璐�
-                    params.setOrderType("PR_Outstock").setAction("Update");
-                    param.setOutQty(orderItem.getQty());
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
-                    //鐢熶骇鍏ュ簱鍗�
-//                params.setOrderType("WO_Outstock").setAction("Update");
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
-                    //鐢熶骇閫�鏂�
-                    params.setOrderType("WR_Instock").setAction("Update");
-                    param.setInQty(orderItem.getQty());
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
-                    //鐢熶骇棰嗘枡
-                    params.setOrderType("WO_Outstock").setAction("Update");
-                    param.setOutQty(orderItem.getQty());
-
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_PROD_ADDITION.type)) {
-                    //鐢熶骇琛ユ枡
-                    params.setOrderType("WR_Instock_BL").setAction("Update");
-                    param.setOutQty(orderItem.getQty());
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_FIX_OUT.type)) {
-                    params.setOrderType("WO_Outstock_WR").setAction("Update");
-                    param.setOutQty(orderItem.getQty());
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)) {
-                    //鍏跺畠鍏ュ簱鍗�/鎵嬪姩鍏ュ簱鍗�
-                    params.setOrderType("In_Instock").setAction("Update");
-                    param.setInQty(orderItem.getQty());
-
-                } else if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)) {
-                    //鍏跺畠鍑哄簱鍗�/鎵嬪姩鍑哄簱鍗�
-                    params.setOrderType("Io_Outstock").setAction("Update");
-                    param.setOutQty(orderItem.getQty());
-                }
-                reportData.add(param);
-            });
-            params.setData(reportData);
             try {
-                R reported = reportMsgService.uploadReportOrders(params);
-                if (reported.get("code").equals("200")) {
+                R reported = reportMsgService.uploadReportOrdersNew(orderData);
+                if (reported.get("code").equals(200)) {
                     order.setNtyStatus(OrderReportStatus.ORDER_REPORT_STATUS_ALL.val);
                     asnOrderService.updateById(order);
                 }
             } catch (Exception e) {
-                log.error("<UNK>", e);
+                log.error("涓婃姤璁㈠崟澶辫触", e);
             }
     }
 

--
Gitblit v1.9.1