From c90cfc885fc256dd2faf69c7fef0cad3173c7a8e Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 30 七月 2025 09:48:46 +0800
Subject: [PATCH] 调拔单功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java     |    4 ++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java |   14 ++++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java          |   17 ++++----
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferController.java    |    3 -
 rsf-admin/src/page/orders/transfer/ManualCreate.jsx                                           |    7 ---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java                   |    5 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java    |   11 ++++-
 rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx                                     |   17 +++++---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java        |    1 
 9 files changed, 44 insertions(+), 35 deletions(-)

diff --git a/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx b/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx
index 78f7014..f2eee48 100644
--- a/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx
+++ b/rsf-admin/src/page/orders/transfer/CreateBySelectMats.jsx
@@ -83,15 +83,20 @@
                 return acc;
             }, {});
             return {
-                matnrId: el.id,
-                maktx: el.name,
-                matnrCode: el.code,
-                stockUnit: el.stockUnit || '',
-                purUnit: el.purchaseUnit || '',
+                matnrId: el.matnrId,
+                maktx: el.maktx,
+                matnrCode: el.matnrCode,
+                anfme: el.anfme,
+                batch: el.batch,
+                spec: el.spec,
+                model: el.model,
+                stockUnit: el.unit || '',
                 ...dynamicFields
             }
-        }))
+        }));
         setData([...data, ...value]);
+
+        console.log(data);
         setOpen(false);
         reset();
     };
diff --git a/rsf-admin/src/page/orders/transfer/ManualCreate.jsx b/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
index f774644..3e6e6fa 100644
--- a/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
+++ b/rsf-admin/src/page/orders/transfer/ManualCreate.jsx
@@ -379,13 +379,6 @@
             editable: true,
         },
         {
-            field: 'poCode',
-            headerName: translate('table.field.outStockItem.poDetlCode'),
-            minWidth: 100,
-            flex: 1,
-            editable: true,
-        },
-        {
             field: 'stockUnit',
             headerName: translate('table.field.outStockItem.stockUnit'),
             minWidth: 100,
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
index 1e3df96..bb0357e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -140,7 +140,6 @@
         return R.ok("瀹屾垚浠诲姟鎴愬姛").add(taskService.operateComplete(id, getLoginUserId()));
     }
 
-
     /**
      * 鎷f枡鍑哄簱锛堢敤浜庢祴璇曟嫞鏂欏嚭搴擄級
      * @return
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferController.java
index 526ab46..cde90ee 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TransferController.java
@@ -174,9 +174,6 @@
         return R.ok().add(transferService.getLocsItems(params, getLoginUserId()));
     }
 
-
-
-
     /**
      * @author Ryan
      * @description 涓嬭浇妯℃澘
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java
index b88a12b..4f26a50 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java
@@ -219,6 +219,9 @@
     @ApiModelProperty(value= "淇敼浜哄憳")
     private Long updateBy;
 
+    @ApiModelProperty("渚涘簲鍟咺D")
+    private Long splrId;
+
     /**
      * 淇敼鏃堕棿
      */
@@ -382,8 +385,6 @@
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
     }
-
-
 
     public Boolean getStatusBool(){
         if (null == this.status){ return null; }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
index 09ec461..d4eb69c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -76,6 +76,7 @@
     public void outStockComplete() {
         List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()
                         .eq(WkOrder::getType, OrderType.ORDER_OUT.type)
+                        .eq(WkOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val)
                 .apply("anfme = work_qty")
         );
         if (wkOrders.isEmpty()) {
@@ -94,7 +95,8 @@
      */
     private void moveOrderToLog(List<WkOrder> wkOrders, String type) {
         Set<Long> longSet = wkOrders.stream().map(WkOrder::getId).collect(Collectors.toSet());
-        List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getOrderId, longSet));
+        List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
+                .in(WkOrderItem::getOrderId, longSet));
         if (orderItems.isEmpty()) {
             throw new CoolException("鏀惰揣鏄庣粏涓虹┖锛侊紒");
         }
@@ -114,11 +116,13 @@
             }
 
             List<AsnOrderItemLog> logs = new ArrayList<>();
-            List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId()));
+            List<WkOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
+                    .eq(WkOrderItem::getOrderId, order.getId()));
             items.forEach(item -> {
                 AsnOrderItemLog itemLog = new AsnOrderItemLog();
                 BeanUtils.copyProperties(item, itemLog);
                 itemLog.setAsnItemId(itemLog.getId())
+                        .setId(null)
                         .setLogId(orderLog.getId())
                         .setAsnId(item.getOrderId());
                 logs.add(itemLog);
@@ -129,7 +133,8 @@
             }
         }
 
-        if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getOrderId, longSet))) {
+        if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>()
+                .in(WkOrderItem::getOrderId, longSet))) {
             throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
         }
         if (!this.asnOrderService.removeByIds(longSet)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index cba0f0e..e51563e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -106,12 +106,12 @@
         List<Task> vaildTasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getId, longSet));
         taskService.completeTask(vaildTasks);
 
-        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
-                .eq(TaskItem::getWkType, OrderWorkType.ORDER_WORK_TYPE_STOCK_TERANSFER.type)
-                .in(TaskItem::getTaskId, longSet));
-        if (!taskItems.isEmpty()) {
-            genInStock(taskItems);
-        }
+//        List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
+//                .eq(TaskItem::getWkType, OrderWorkType.ORDER_WORK_TYPE_STOCK_TERANSFER.type)
+//                .in(TaskItem::getTaskId, longSet));
+//        if (!taskItems.isEmpty()) {
+//            genInStock(taskItems);
+//        }
     }
 
     /**
@@ -125,12 +125,13 @@
         Set<Long> orderIds = taskItems.stream().map(TaskItem::getSourceId).collect(Collectors.toSet());
         List<WkOrder> wkOrders = outStockService.list(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, orderIds));
         wkOrders.forEach(wkOrder -> {
-            List<WkOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, wkOrder.getId()));
+            List<WkOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<WkOrderItem>()
+                    .eq(WkOrderItem::getOrderId, wkOrder.getId()));
             if (!orderItems.isEmpty()) {
                 WkOrder order = new WkOrder();
                 BeanUtils.copyProperties(wkOrder, order);
                 String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, order);
-                if (StringUtils.isNotBlank(ruleCode)) {
+                if (StringUtils.isBlank(ruleCode)) {
                     throw new CoolException("鍏ュ簱鍗曞彿鐢熸垚澶辫触锛侊紒");
                 }
                 order.setWkType(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER.type)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 5d9fb64..0ade071 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -1252,6 +1252,10 @@
                     .setType(OrderType.ORDER_OUT.type);
         } else if (!Objects.isNull(orderItem) && StringUtils.isNotBlank(orderItem.getId() + "")) {
             WkOrder wkOrder = asnOrderService.getById(orderItem.getOrderId());
+            wkOrder.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val);
+            if (!asnOrderService.updateById(wkOrder)) {
+                throw new CoolException("鍑哄簱鍗曟洿鏂板け璐ワ紒锛�");
+            }
             stock.setWkType(Short.parseShort(wkOrder.getWkType()))
                     .setType(OrderType.ORDER_OUT.type);
         } else if (!Objects.isNull(diffItem)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
index 2749343..45cf4f8 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TransferServiceImpl.java
@@ -1,6 +1,7 @@
 package com.vincent.rsf.server.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.Query;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -279,6 +280,7 @@
         BeanUtils.copyProperties(wkOrder, order);
         order.setType(OrderType.ORDER_IN.type)
                 .setWkType(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER.type)
+                .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)
                 .setId(null);
         String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, order);
         if (StringUtils.isBlank(ruleCode)) {
@@ -349,13 +351,15 @@
                 .eq(!Objects.isNull(params.getOrgAreaId()), Loc::getAreaId, params.getOrgAreaId()));
 
         Page<LocItem> page = new Page<>(params.getCurrent(), params.getPageSize());
-        LambdaQueryWrapper<LocItem> wrapper = new LambdaQueryWrapper<>();
-
-        wrapper.eq(StringUtils.isNotBlank(params.getMatnrCode()), LocItem::getMatnrCode, params.getMatnrCode().trim())
-                .like(StringUtils.isNotBlank(params.getMaktx().trim()), LocItem::getMaktx, params.getMaktx().trim());
+        QueryWrapper<LocItem> wrapper = new QueryWrapper<>();
+        wrapper.select("id, matnr_id, maktx, matnr_code, anfme, work_qty, qty, batch, unit, fields_index, model, spec, loc_id ")
+                .lambda()
+                .eq(StringUtils.isNotBlank(params.getMatnrCode()), LocItem::getMatnrCode, params.getMatnrCode())
+                .like(StringUtils.isNotBlank(params.getMaktx()), LocItem::getMaktx, params.getMaktx());
         if (!locs.isEmpty()) {
             Set<Long> locIds = locs.stream().map(Loc::getId).collect(Collectors.toSet());
-            wrapper.in(LocItem::getLocId, locIds);
+            wrapper.lambda().in(LocItem::getLocId, locIds)
+                    .groupBy(LocItem::getBatch, LocItem::getFieldsIndex, LocItem::getMatnrCode);
             return locItemService.page(page, wrapper);
         } else {
             return locItemService.page(page, wrapper);

--
Gitblit v1.9.1