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