From e07b5ecacc2476cf551d665af92d3bb902aa0e90 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期五, 23 一月 2026 17:24:24 +0800
Subject: [PATCH] lsh#

---
 rsf-admin/src/page/components/OrderCodeField.jsx                                            |   60 ++++++++++++++++++++++++++++++
 rsf-admin/src/page/locPreview/LocPreviewItems.jsx                                           |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java |    4 ++
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/OrderItem.java               |    6 +++
 4 files changed, 72 insertions(+), 1 deletions(-)

diff --git a/rsf-admin/src/page/components/OrderCodeField.jsx b/rsf-admin/src/page/components/OrderCodeField.jsx
new file mode 100644
index 0000000..b0afc4d
--- /dev/null
+++ b/rsf-admin/src/page/components/OrderCodeField.jsx
@@ -0,0 +1,60 @@
+// 鍒涘缓 OrderCodeField.jsx
+import React, { useState, useEffect } from 'react';
+import { TextField, useRecordContext, useNotify } from 'react-admin';
+import request from '@/utils/request';
+
+const OrderCodeField = (props) => {
+    const { source, label, ...rest } = props;
+    const record = useRecordContext();
+    const [orderCode, setOrderCode] = useState('');
+    const [loading, setLoading] = useState(false);
+    const notify = useNotify();
+
+    const orderId = record?.[source];
+
+    useEffect(() => {
+        if (orderId) {
+            fetchOrderCode(orderId);
+        }
+    }, [orderId]);
+
+    const fetchOrderCode = async (id) => {
+        if (!id) return;
+
+        setLoading(true);
+        try {
+            const { data: { code, data, msg } } = await request.get(`/asnOrder/${id}`);
+            if (code === 200 && data) {
+                setOrderCode(data.code || `璁㈠崟 ${id}`);
+            } else {
+                setOrderCode(`璁㈠崟 ${id}`);
+                if (code !== 200) {
+                    notify(msg || '鑾峰彇璁㈠崟淇℃伅澶辫触', { type: 'warning' });
+                }
+            }
+        } catch (error) {
+            console.error('鑾峰彇璁㈠崟淇℃伅澶辫触:', error);
+            setOrderCode(`璁㈠崟 ${id}`);
+            notify('缃戠粶閿欒锛岃幏鍙栬鍗曚俊鎭け璐�', { type: 'error' });
+        } finally {
+            setLoading(false);
+        }
+    };
+
+    if (!orderId) return null;
+
+    return (
+        <TextField
+            {...rest}
+            record={{ ...record, [source]: loading ? '鍔犺浇涓�...' : orderCode }}
+            source={source}
+            label={label}
+        />
+    );
+};
+
+OrderCodeField.defaultProps = {
+    addLabel: true,
+};
+
+export default OrderCodeField;
\ No newline at end of file
diff --git a/rsf-admin/src/page/locPreview/LocPreviewItems.jsx b/rsf-admin/src/page/locPreview/LocPreviewItems.jsx
index d0cba55..d9715c3 100644
--- a/rsf-admin/src/page/locPreview/LocPreviewItems.jsx
+++ b/rsf-admin/src/page/locPreview/LocPreviewItems.jsx
@@ -39,6 +39,7 @@
 import { useNavigate } from 'react-router-dom';
 import { styled } from '@mui/material/styles';
 import request from '@/utils/request';
+import OrderCodeField from '../components/OrderCodeField';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -160,7 +161,7 @@
                 <NumberField source="locId" label="table.field.locItem.locId" />,
                 <TextField source="wareArea" label="table.field.locItem.wareArea" />,
                 <TextField source="locCode" label="table.field.locItem.locCode" />,
-                <NumberField source="orderId" label="table.field.locItem.orderId" />,
+                <OrderCodeField source="orderId" label="table.field.locItem.orderId" />,
                 <NumberField source="wkType$" label="table.field.locItem.wkType" />,
                 <TextField source="platWorkCode" label="table.field.asnOrderItem.platWorkCode" />,
                 <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" />,                
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/OrderItem.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/OrderItem.java
index 474d5ec..67034ea 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/OrderItem.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/phyz/OrderItem.java
@@ -30,6 +30,7 @@
     private String makTx;
     // 瑙勬牸
     private String spec;
+    private String specs;
     // 鍨嬪彿
     private String model;
     // 鏁伴噺
@@ -62,4 +63,9 @@
     private String keeperId;
     // 淇濈鑰呭悕绉�
     private String keeperName;
+
+    public void setSpec(String spec) {
+        this.spec = spec;
+        this.specs = spec;
+    }
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index 9a1ea89..dbe3bc0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -474,6 +474,10 @@
                     map.put("platItemId", orderItem.getLineId());
                     map.put("splrBatch", orderItem.getBatch());
                     map.put("batch", orderItem.getBatch());
+                    map.put("spec", orderItem.getSpecs());
+                    map.put("model", orderItem.getModel());
+                    map.put("stockUnit", orderItem.getUnit());
+                    map.put("purUnit", orderItem.getUnit());
 
                     if (!asnOrderItemService.fieldsSave(map, loginUserId)) {
                         throw new CoolException("鏄庣粏淇濆瓨澶辫触锛侊紒");

--
Gitblit v1.9.1