From 6a4497d2fcd015f73856ce0f75e2c2832362c88f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期日, 04 五月 2025 16:54:33 +0800
Subject: [PATCH] 5.4问题修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java |   60 ---------------
 rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx                                            |   14 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java              |   16 ++-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java |   10 +-
 rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx                                                |    5 
 rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemEdit.jsx                              |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java    |   64 ++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java       |   19 ----
 rsf-admin/src/page/histories/taskLog/TaskLogList.jsx                                          |    2 
 9 files changed, 91 insertions(+), 101 deletions(-)

diff --git a/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx b/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx
index c769153..bf00454 100644
--- a/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx
+++ b/rsf-admin/src/page/histories/taskLog/TaskLogList.jsx
@@ -62,7 +62,6 @@
     <SearchInput source="condition" alwaysOn />,
     <DateInput label='common.time.after' source="timeStart" alwaysOn />,
     <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
-
     <NumberInput source="taskId" label="table.field.taskLog.taskId" />,
     <TextInput source="taskCode" label="table.field.taskLog.taskCode" />,
     <NumberInput source="taskStatus" label="table.field.taskLog.taskStatus" />,
@@ -79,7 +78,6 @@
     <TextInput source="expCode" label="table.field.taskLog.expCode" />,
     <DateInput source="startTime" label="table.field.taskLog.startTime" />,
     <DateInput source="endTime" label="table.field.taskLog.endTime" />,
-
     <TextInput label="common.field.memo" source="memo" />,
     <SelectInput
         label="common.field.status"
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx b/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
index 8af2f5a..b6f182e 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
@@ -59,7 +59,7 @@
                     defaultValues={{}}
                 >
                     <Grid container width={{ xs: '100%', xl: '100%' }}>
-                        <Grid item xs={12} md={8}>
+                        <Grid item xs={24} md={12}>
                             <Typography variant="h6" gutterBottom>
                                 {translate('common.edit.title.main')}
                             </Typography>
@@ -80,8 +80,7 @@
                                         { id: 1, name: ' 鏄�' },
                                     ]}
                                 />
-                            </Stack>
-                            <Stack direction='row' gap={2}>
+
                                 <TextInput
                                     label="table.field.waitPakin.barcode"
                                     readOnly
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx
index 611914e..ca5dca1 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx
@@ -119,25 +119,25 @@
                     preferenceKey='waitPakinItem'
                     bulkActionButtons={false}
                     rowClick={(id, resource, record) => false}
-                    omit={['id', 'pakinId', 'createTime', 'createBy', 'memo', 'fieldsIndex']}
+                    omit={['id', 'pakinId', 'createTime',  'matnrId', 'createBy', 'memo', 'fieldsIndex']}
                 >
                     <NumberField source="id" />
                     <NumberField source="pakinId" label="table.field.waitPakinItem.pakinId" />
-                    <TextField source="maktx" label="table.field.waitPakinItem.maktx" />
-                    <NumberField source="matnrId" label="table.field.waitPakinItem.matnrId" />
                     <TextField source="matnrCode" label="table.field.waitPakinItem.matnrCode" />
+                    <TextField source="maktx" label="table.field.waitPakinItem.maktx" />
+                    <TextField source="batch" label="table.field.waitPakinItem.batch" />
+                    <NumberField source="matnrId" label="table.field.waitPakinItem.matnrId" />
                     <NumberField source="anfme" label="table.field.waitPakinItem.anfme" />
-                    <NumberField source="workQty" label="table.field.waitPakinItem.workQty" />
                     <TextField source="unit" label="table.field.waitPakinItem.unit" />
+                    <NumberField source="workQty" label="table.field.waitPakinItem.workQty" />
                     <TextField source="fieldsIndex" label="table.field.waitPakinItem.fieldsIndex" />
                     <NumberField source="qty" label="table.field.waitPakinItem.qty" />
-                    <TextField source="batch" label="table.field.waitPakinItem.batch" />
                     <TextField source="updateBy$" label="common.field.updateBy" />
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
                     <TextField source="createBy$" label="common.field.createBy"  />
-                    <TextField source="flagDefect" label="common.field.createBy"  />
+                    {/* <TextField source="flagDefect" label="common.field.flagDefect"  /> */}
                     <DateField source="createTime" label="common.field.createTime" showTime />
-                    <BooleanField source="statusBool" label="common.field.status" sortable={false} />
+                    {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */}
                     <TextField source="memo" label="common.field.memo" sortable={false} />
                 </StyledDatagrid>
             </List>
diff --git a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemEdit.jsx b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemEdit.jsx
index fd344fa..9b0e694 100644
--- a/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemEdit.jsx
+++ b/rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemEdit.jsx
@@ -175,7 +175,7 @@
                         <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.warehouseAreasItem.splrBtch"
-                                source="splrBtch"
+                                source="splrBatch"
                                 parse={v => v}
                             />
                         </Stack>
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
index 05870a3..568ac34 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -334,31 +334,16 @@
                 throw new CoolException("鏀惰揣澶辫触锛侊紒");
             }
         }
-//        if (!warehouseAreasItemService.saveBatch(allOrders)) {
-//            throw new CoolException("鏀惰揣澶辫触锛侊紒");
-//        }
 
         AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, asnCode));
         if (order.getQty().compareTo(order.getAnfme()) >= 0.00) {
-            order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val).setRleStatus(Short.valueOf("1"));
-
+            order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val).setRleStatus(Short.valueOf("1"));
             if (!asnOrderMapper.updateById(order)) {
                 throw new CoolException("璁㈠崟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
             }
         }
 
-
-        //鑾峰彇閲囪喘鏁伴噺
-//        double purQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getPurQty).sum();
-
-//        BigDecimal subtract = BigDecimal.valueOf(receiptQty).subtract(BigDecimal.valueOf(purQty));
-//        //鍒ゆ柇宸叉敹璐ф暟閲忔槸鍚﹀皬浜庣瓑浜庨噰璐暟閲�
-//        if (subtract.compareTo(new BigDecimal("0.0")) <= 0) {
-//            asnOrder.setRleStatus(Short.valueOf("1"));
-//            //鏃ュ織琛ㄦ搷浣�
-//            operateOrderLogs(asnOrder);
-//        }
-        return R.ok(asnOrder);
+        return R.ok("鏀惰揣鎴愬姛锛侊紒");
     }
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
index 7bb8737..7781d17 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
@@ -12,17 +12,17 @@
     //璐ㄦ鐘舵��
     ASN_EXCE_STATUS_UN_EXCE("0", "鏈墽琛�"),
     ASN_EXCE_STATUS_EXCE_ING("1", "鎵ц涓�"),
+
     ASN_EXCE_STATUS_RECEIPT_DONE("2", "鏀惰揣瀹屾垚"),
     ASN_EXCE_STATUS_TASK_DONE("3", "宸插畬鎴�"),
     ASN_EXCE_STATUS_TASK_CANCEL("4", "鍙栨秷"),
     ASN_EXCE_STATUS_TASK_CLOSE("5", "宸插叧闂�"),
 
 
-
-    OUT_STOCK_STATUS_TASK_INIT("5", "鍒濆鍖�"),
-    OUT_STOCK_STATUS_TASK_EXCE("6", "寰呭鐞�"),
-    OUT_STOCK_STATUS_TASK_WAVE("7", "鐢熸垚娉㈡"),
-    OUT_STOCK_STATUS_TASK_WORKING("8", "浣滀笟涓�")
+    OUT_STOCK_STATUS_TASK_INIT("11", "鍒濆鍖�"),
+    OUT_STOCK_STATUS_TASK_EXCE("12", "寰呭鐞�"),
+    OUT_STOCK_STATUS_TASK_WAVE("13", "鐢熸垚娉㈡"),
+    OUT_STOCK_STATUS_TASK_WORKING("14", "浣滀笟涓�")
     ;
     AsnExceStatus(String val, String desc) {
         this.val = Short.parseShort(val);
@@ -47,6 +47,8 @@
             return AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.desc;
         } else if (val.equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_EXCE.val)) {
             return AsnExceStatus.OUT_STOCK_STATUS_TASK_EXCE.desc;
+        } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val)) {
+            return AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.desc;
         } else {
             return null;
         }
@@ -63,10 +65,12 @@
             return AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.val;
         } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.desc)) {
             return AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val;
-        }else if (desc.equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.desc)) {
+        } else if (desc.equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.desc)) {
             return AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val;
         } else if (desc.equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_EXCE.desc)) {
             return AsnExceStatus.OUT_STOCK_STATUS_TASK_EXCE.val;
+        } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.desc)) {
+            return AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val;
         } else {
             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 820fe6e..5692412 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
@@ -1,15 +1,27 @@
 package com.vincent.rsf.server.manager.schedules;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.manager.entity.AsnOrder;
+import com.vincent.rsf.server.manager.entity.AsnOrderItem;
+import com.vincent.rsf.server.manager.entity.AsnOrderItemLog;
+import com.vincent.rsf.server.manager.entity.AsnOrderLog;
+import com.vincent.rsf.server.manager.enums.AsnExceStatus;
 import com.vincent.rsf.server.manager.service.AsnOrderItemLogService;
 import com.vincent.rsf.server.manager.service.AsnOrderItemService;
 import com.vincent.rsf.server.manager.service.AsnOrderLogService;
 import com.vincent.rsf.server.manager.service.AsnOrderService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @author Ryan
@@ -21,6 +33,17 @@
 @Component
 public class AsnOrderLogSchedule {
 
+    @Autowired
+    private AsnOrderService asnOrderService;
+    @Autowired
+    private AsnOrderItemService asnOrderItemService;
+
+    @Autowired
+    private AsnOrderLogService asnOrderLogService;
+
+    @Autowired
+    private AsnOrderItemLogService asnOrderItemLogService;
+
     /**
      * @author Ryan
      * @description 鍒犻櫎宸插畬鎴愯鍗曞姞鍏og琛�
@@ -31,6 +54,47 @@
     @Scheduled(cron = "0 0/05 * * * ?  ")
     @Transactional(rollbackFor = Exception.class)
     public void moveOrderToLog() {
+        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val));
+        if (asnOrders.isEmpty()) {
+            return;
+        }
+        Set<Long> longSet = asnOrders.stream().map(AsnOrder::getId).collect(Collectors.toSet());
+        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, longSet));
+        if (orderItems.isEmpty()) {
+            throw new CoolException("鏀惰揣鏄庣粏涓虹┖锛侊紒");
+        }
 
+        for (AsnOrder order : asnOrders) {
+            AsnOrderLog orderLog = new AsnOrderLog();
+            BeanUtils.copyProperties(order, orderLog);
+            orderLog.setId(null);
+            orderLog.setAsnId(order.getId());
+
+            if (!asnOrderLogService.save(orderLog)) {
+                throw new CoolException("涓诲崟鍘嗗彶妗f坊鍔犲け璐ワ紒锛�");
+            }
+
+            List<AsnOrderItemLog> logs = new ArrayList<>();
+            List<AsnOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId()));
+            items.forEach(item -> {
+                AsnOrderItemLog itemLog = new AsnOrderItemLog();
+                BeanUtils.copyProperties(item, itemLog);
+                itemLog.setAsnItemId(itemLog.getId())
+                        .setLogId(orderLog.getId())
+                        .setAsnId(item.getAsnId());
+                logs.add(itemLog);
+            });
+
+            if (!asnOrderItemLogService.saveBatch(logs)) {
+                throw new CoolException("閫氱煡鍗曟槑缁嗗巻鍙叉。淇濆瓨澶辫触锛侊紒");
+            }
+        }
+
+        if (!asnOrderItemService.remove(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, longSet))) {
+            throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
+        }
+        if (!this.asnOrderService.removeByIds(longSet)) {
+            throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
+        }
     }
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
index 7146ce9..6f9dbe6 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -272,15 +272,15 @@
 //        }
         AsnOrder order = this.getById(asrder.getId());
         AsnOrderLog orderLog = new AsnOrderLog();
-        order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
+//        order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
         BeanUtils.copyProperties(order, orderLog);
         orderLog.setId(null);
         orderLog.setAsnId(order.getId());
 
-        if (!this.saveOrUpdate(order)) {
-            throw new CoolException("鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-        }
-        orderLog.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val);
+//        if (!this.saveOrUpdate(order)) {
+//            throw new CoolException("鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+//        }
+//        orderLog.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val);
         if (!asnOrderLogService.save(orderLog)) {
             throw new CoolException("涓诲崟鍘嗗彶妗f坊鍔犲け璐ワ紒锛�");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index 126219c..a1617bd 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -87,66 +87,6 @@
      * @param
      * @return
      * @author Ryan
-     * @description 鍒犻櫎鍘熶富鍗曞強鏄庣粏锛屽姞鍏ュ巻鍙叉。
-     * @time 2025/3/19 19:53
-     */
-    @Transactional(rollbackFor = Exception.class)
-    private void operateOrderLogs(AsnOrder asrder) throws Exception {
-        if (Objects.isNull(asrder) || Objects.isNull(asrder.getId())) {
-            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
-        }
-        asrder.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val);
-
-        if (!this.updateById(asrder)) {
-            throw new CoolException("鍗曟嵁鍏抽棴澶辫触锛侊紒");
-        }
-        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, asrder.getId()));
-        if (orderItems.isEmpty()) {
-            throw new CoolException("鏀惰揣鏄庣粏涓虹┖锛侊紒");
-        }
-//        if (Objects.isNull(asrder.getAnfme()) || asrder.getAnfme().compareTo(0.00) == 0) {
-//            throw new CoolException("鏀惰揣鏁伴噺涓嶈兘涓洪浂锛侊紒");
-//        }
-        AsnOrder order = this.getById(asrder.getId());
-        AsnOrderLog orderLog = new AsnOrderLog();
-        order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
-        BeanUtils.copyProperties(order, orderLog);
-        orderLog.setId(null);
-        orderLog.setAsnId(order.getId());
-
-        if (!this.saveOrUpdate(order)) {
-            throw new CoolException("鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-        }
-        orderLog.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val);
-        if (!asnOrderLogService.save(orderLog)) {
-            throw new CoolException("涓诲崟鍘嗗彶妗f坊鍔犲け璐ワ紒锛�");
-        }
-        List<AsnOrderItemLog> logs = new ArrayList<>();
-        List<AsnOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId()));
-        items.forEach(item -> {
-            AsnOrderItemLog itemLog = new AsnOrderItemLog();
-            BeanUtils.copyProperties(item, itemLog);
-            itemLog.setAsnItemId(itemLog.getId())
-                    .setLogId(orderLog.getId())
-                    .setAsnId(item.getAsnId());
-            logs.add(itemLog);
-        });
-
-        if (!asnOrderItemLogService.saveBatch(logs)) {
-            throw new CoolException("閫氱煡鍗曟槑缁嗗巻鍙叉。淇濆瓨澶辫触锛侊紒");
-        }
-        if (!asnOrderItemService.remove(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId()))) {
-            throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
-        }
-        if (!this.removeById(asrder.getId())) {
-            throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
-        }
-    }
-
-    /**
-     * @param
-     * @return
-     * @author Ryan
      * @description 鍙栨秷鍑哄簱鍗曟嵁
      * @time 2025/4/22 10:40
      */

--
Gitblit v1.9.1