From 9700e007ebb34750369452a72187f9c47b9ff1bb Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期五, 08 五月 2026 01:30:25 +0800
Subject: [PATCH] 出库补发

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |   34 +++++++++++++++++++++++++++++-----
 1 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index 0a6add5..3d5eada 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -58,6 +58,8 @@
     private BasStationService basStationService;
     @Autowired
     private MatnrService matnrService;
+    @Autowired
+    private AsnOrderItemService asnOrderItemService;
 
     /** 鍏ュ簱/鍑哄簱淇濆瓨鍓嶏細鑻ヨ鏍兼垨鍨嬪彿涓虹┖鍒欎粠鐗╂枡甯﹀嚭 */
     private void fillSpecModelFromMatnr(LocItem item) {
@@ -260,7 +262,7 @@
             if (map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)
                     || map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)
                     || map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) {
-                // 鍑哄簱閲忚揪鍒板簱浣嶅簱瀛橈紙鍚宸級瑙嗕负鍏ㄧ増鍑哄簱锛岄伩鍏嶆诞鐐硅宸鑷磋鍒や负鎷f枡/閮ㄥ垎鍑哄簱
+                // 鍑哄簱閲忚揪鍒板簱浣嶅簱瀛橈紙鍚宸級瑙嗕负鍏ㄦ澘鍑哄簱锛岄伩鍏嶆诞鐐硅宸鑷磋鍒や负鎷f枡/閮ㄥ垎鍑哄簱
                 if (orgQtyBd.subtract(outQtyBd).compareTo(FULL_OUT_QTY_TOLERANCE) > 0) {
                     // 鎷f枡鍑哄簱锛堥儴鍒嗗嚭搴擄級
                     DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
@@ -367,17 +369,39 @@
                         .setUpdateTime(new Date())
                         .setOrderType(OrderType.ORDER_OUT.type);
                 if (map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)) {
-                    taskItem.setWkType(Short.parseShort(order.getWkType()))
+                    taskItem.setWkType(order.getWkType())
                             .setSourceCode(order.getCode())
                             .setSourceId(order.getId())
+                            .setOrderId(order.getId())
                             .setOrderItemId(item.getOrderItemId());
+                    String poOrCode = StringUtils.isNotBlank(order.getPoCode()) ? order.getPoCode() : order.getCode();
+                    if (StringUtils.isBlank(taskItem.getPlatOrderCode()) && StringUtils.isNotBlank(poOrCode)) {
+                        taskItem.setPlatOrderCode(poOrCode);
+                    }
+                    if (item.getOrderItemId() != null) {
+                        WkOrderItem oi = asnOrderItemService.getById(item.getOrderItemId());
+                        if (oi != null) {
+                            if (StringUtils.isBlank(taskItem.getPlatItemId()) && StringUtils.isNotBlank(oi.getPlatItemId())) {
+                                taskItem.setPlatItemId(oi.getPlatItemId());
+                            }
+                            if (StringUtils.isBlank(taskItem.getPlatWorkCode()) && StringUtils.isNotBlank(oi.getPlatWorkCode())) {
+                                taskItem.setPlatWorkCode(oi.getPlatWorkCode());
+                            }
+                            if (StringUtils.isBlank(taskItem.getPlatOrderCode())) {
+                                String p = StringUtils.isNotBlank(oi.getPlatOrderCode()) ? oi.getPlatOrderCode() : poOrCode;
+                                if (StringUtils.isNotBlank(p)) {
+                                    taskItem.setPlatOrderCode(p);
+                                }
+                            }
+                        }
+                    }
                 } else if (map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) {
                     taskItem.setSourceId(wave.getId())
-                            .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER.type))
+                            .setWkType(OrderWorkType.ORDER_WORK_TYPE_OTHER.type)
                             .setSourceCode(wave.getCode())
                             .setSource(item.getSource());
                 } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK) || map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)) {
-                    taskItem.setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type))
+                    taskItem.setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type)
                             .setSource(item.getId())
                             .setSourceId(item.getLocId())
                             .setSourceCode(item.getLocCode());
@@ -502,7 +526,7 @@
                         .setSource(item.getId())
                         .setUpdateTime(new Date())
                         .setOrderType(OrderType.ORDER_IN.type)
-                        .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type));
+                        .setWkType(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type);
                 taskItems.add(taskItem);
             }
             if (!taskItemService.saveBatch(taskItems)) {

--
Gitblit v1.9.1