From 8c39eb09386b96d0256695b3de3d2822e95809f0 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 17 七月 2025 10:23:30 +0800
Subject: [PATCH] 盘点单下发功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java    |    2 
 rsf-admin/src/page/orders/check/CheckOrderPub.jsx                                               |   42 ++++++++++----------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java |   18 ++++++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java                     |    3 +
 rsf-admin/src/i18n/zh.js                                                                        |   24 +++++++++++
 rsf-admin/src/i18n/en.js                                                                        |   20 ++++++++++
 rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml                                  |    1 
 7 files changed, 82 insertions(+), 28 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index 6b73a9f..3e2edf7 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -622,6 +622,26 @@
                 ntyStatus: "涓婃姤鐘舵��",
                 exceStatus: '鍗曟嵁鐘舵��'
             },
+            checkOrderItem: {
+                orderId: "ID",
+                orderCode: "Out Code",
+                matnrId: "matnrId",
+                maktx: "maktx",
+                workQty: 'Work Qty',
+                anfme: "Anfme",
+                platOrderCode: 'Customer Code',
+                stockUnit: "stockUnit",
+                purQty: "purQty",
+                purUnit: "purUnit",
+                qty: "qty",
+                splrCode: "splrCode",
+                splrName: "splrName",
+                qrcode: "qrcode",
+                barcode: "barcode",
+                packName: "packName",
+                ntyStatus: "ntyStatus",
+                platItemId: 'platItemId'
+            },
             outStockItem: {
                 asnId: "ID",
                 asnCode: "Out Code",
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 5651c4a..b1cefa6 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -648,6 +648,28 @@
                 ntyStatus: "涓婃姤鐘舵��",
                 exceStatus: '鎵ц鐘舵��'
             },
+            checkOrderItem: {
+                orderId: "涓诲崟鏍囪瘑",
+                orderCode: "鍗曞彿",
+                matnrId: "鐗╂枡鏍囪瘑",
+                platOrderCode: '瀹㈡埛鍗曞彿',
+                platWorkCode: '宸ュ崟鍙�',
+                projectCode: '椤圭洰鍙�',
+                maktx: "鐗╂枡鍚嶇О",
+                spec: "瑙勬牸",
+                model: "鍨嬪彿",
+                matnrCode: "鐗╂枡缂栫爜",
+                anfme: "璁″垝鐩樼偣鏁�",
+                stockUnit: "鍗曚綅",
+                unit: '鍗曚綅',
+                workQty: '宸茬洏鐐规暟',
+                qty: "宸茬洏鐐规暟",
+                splrBatch: "鎵规",
+                splrCode: "渚涘簲鍟嗙紪鐮�",
+                splrName: "渚涘簲鍟�",
+                qrcode: "浜岀淮鐮�",
+                barcode: "搴忓垪鐮�",
+            },
             asnOrderItem: {
                 orderId: "涓诲崟鏍囪瘑",
                 orderCode: "鍗曞彿",
@@ -888,7 +910,7 @@
                 groupQty: '鍝佺被鏁�',
                 qty: "瀹屾垚鏁伴噺",
                 orderNum: "鍗曟嵁鏁�",
-                progress:"杩涘害"
+                progress: "杩涘害"
             },
             waveItem: {
                 waveId: "娉㈡ID",
diff --git a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
index 67af707..61af609 100644
--- a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
+++ b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
@@ -63,28 +63,30 @@
             setRows(fetchRows)
         } else {
             const mas = fetchRows.filter(item => selectedMatnr.includes(item.matnrCode));
-            console.log(mas);
-            let ids =  mas.map(item => item.matnrCode);
-            console.log(ids);
-            const { data: { code, data, msg } } = request.get('/check/order/items/' + ids );
-            if (code === 200) {
-                setFetchRows(data)
-            } else {
-                notify(msg);
-            }
-            // setRows(mas)
+            let ids = mas.map(item => item.matnrCode);
+            getLocs(ids)
         }
     }, [selectedMatnr])
 
 
+    const getLocs = async (ids) => {
+        const { data: { code, data, msg } } = await request.post('/check/locs/' + ids);
+        if (code === 200) {
+            setRows(data)
+        } else {
+            notify(msg);
+        }
+    }
+
     const ComfirmButton = () => {
-        const { selectedIds, data } = useListContext();
+        const { selectedIds, data, onUnselectItems } = useListContext();
         const handleRowClick = () => {
             const ids = data.filter(item => selectedIds.includes(item.id)).map(item => item.id);
             setRowSelectedIds(ids);
             const mas = data.filter(item => selectedIds.includes(item.id)).map(item => item.matnrCode);
             //璁剧疆搴撲綅淇℃伅绛涢�夋潯浠�
             setSelectedMatnr(mas);
+            onUnselectItems()
         }
 
         return (
@@ -192,14 +194,14 @@
                                     omit={['id', 'splrName', 'qty',]}
                                 >
                                     <NumberField source="id" />
-                                    <TextField source="orderCode" label="table.field.outStockItem.orderCode" />
-                                    <TextField source="matnrCode" label="table.field.outStockItem.matnrCode" />
-                                    <TextField source="maktx" label="table.field.outStockItem.maktx" />
-                                    <NumberField source="anfme" label="table.field.outStockItem.anfme" />
-                                    <NumberField source="workQty" label="table.field.outStockItem.workQty" />
-                                    <NumberField source="qty" label="table.field.outStockItem.qty" />
-                                    <TextField source="stockUnit" label="table.field.outStockItem.stockUnit" />
-                                    <TextField source="splrName" label="table.field.outStockItem.splrName" />
+                                    <TextField source="orderCode" label="table.field.checkOrderItem.orderCode" />
+                                    <TextField source="matnrCode" label="table.field.checkOrderItem.matnrCode" />
+                                    <TextField source="maktx" label="table.field.checkOrderItem.maktx" />
+                                    <NumberField source="anfme" label="table.field.checkOrderItem.anfme" />
+                                    <NumberField source="workQty" label="table.field.checkOrderItem.workQty" />
+                                    <NumberField source="qty" label="table.field.checkOrderItem.qty" />
+                                    <TextField source="stockUnit" label="table.field.checkOrderItem.stockUnit" />
+                                    <TextField source="splrName" label="table.field.checkOrderItem.splrName" />
                                 </StyledDatagrid>
                             </List>
                         </Card>
@@ -248,13 +250,11 @@
     }, [selectedIds])
 
     const baseColumns = [
-        // { field: 'id', headerName: 'ID', width: 40 },
         { field: 'locCode', headerName: '搴撲綅', width: 110 },
         { field: 'barcode', headerName: '瀹瑰櫒', width: 120 },
         { field: 'matnrCode', headerName: '鐗╂枡缂栫爜', width: 120 },
         { field: 'batch', headerName: '鎵规', width: 90 },
         { field: 'unit', headerName: '鍗曚綅', width: 60 },
-        { field: 'outQty', headerName: '鍑哄簱鏁伴噺', width: 110, },
         {
             field: 'anfme', headerName: '搴撳瓨鏁伴噺', width: 110,
             renderCell: (params) => (
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java
index 8efedda..bbd2959 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java
@@ -194,7 +194,7 @@
 
 
     @ApiOperation("鑾峰彇鍦ㄥ簱鐗╂枡鍒楄〃")
-    @GetMapping("/check/order/locs/{matnr}")
+    @PostMapping("/check/locs/{matnrs}")
     @PreAuthorize("hasAuthority('manager:check:list')")
     public R getAllLocByMatnr(@PathVariable String[] matnrs) {
         if (Objects.isNull(matnrs)) {
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 4eb3587..15c1f36 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
@@ -232,6 +232,9 @@
     @TableField(exist = false)
     private String sourceCode;
 
+    @ApiModelProperty("鍑虹珯鍙�")
+    @TableField(exist = false)
+    private String siteNo;
 
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
index f803400..8e8955f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java
@@ -231,12 +231,20 @@
     @Override
     public R getAllLocByMatnr(List<String> matnrs) {
         List<LocItem> locItems = locItemService.listByMatnr(matnrs);
-        if (locItems.isEmpty()) {
-            return R.ok();
+        if (!locItems.isEmpty()) {
+            List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_CHECK_OUT.type, TaskType.TASK_TYPE_CHECK_IN.type);
+            DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
+                    .in(DeviceSite::getType, list)
+                    .groupBy(DeviceSite::getSite)
+                    .last("limit 1"));
+            if (Objects.isNull(deviceSite)) {
+                throw new CoolException("搴撳彛涓嶄负绌猴紒锛�");
+            }
+            locItems.forEach(locItem -> {
+                locItem.setSiteNo(deviceSite.getSite());
+            });
         }
-
-
-        return null;
+        return R.ok().add(locItems);
     }
 
     /**
diff --git a/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml b/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml
index df271db..bc18949 100644
--- a/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml
@@ -15,6 +15,7 @@
                     li.matnr_code,
                     li.maktx,
                     li.batch,
+                    li.unit,
                     SUM( li.anfme ) anfme,
                     li.fields_index
                 FROM

--
Gitblit v1.9.1