From 0696db2f8a83d32d8c00ba55967694ed1a76f4d0 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 05 五月 2025 16:07:35 +0800
Subject: [PATCH] 1. 往来企业问题修复 2. 组托问题修复 3. 库位信息问题修复

---
 rsf-admin/src/page/orders/stock/OrderList.jsx                                                  |    8 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinLog.java               |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java                 |    2 
 rsf-admin/src/page/basicInfo/companys/CompanysList.jsx                                         |   27 ++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocItem.java                    |   29 +++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java        |   15 ++-
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java       |   10 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java      |   18 ++-
 rsf-admin/src/page/locItem/LocItemList.jsx                                                     |   40 +++----
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CompanysController.java     |   37 ++++---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java  |    3 
 rsf-admin/src/page/waitPakin/WaitPakinList.jsx                                                 |    2 
 rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogList.jsx                                 |    1 
 rsf-admin/src/page/locItem/LocItemEdit.jsx                                                     |   41 +------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java               |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrder.java                   |    4 
 rsf-admin/src/i18n/zh.js                                                                       |    8 +
 rsf-admin/src/i18n/en.js                                                                       |    4 
 rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx                                           |   13 -
 rsf-admin/src/config/setting.js                                                                |    2 
 21 files changed, 148 insertions(+), 122 deletions(-)

diff --git a/rsf-admin/src/config/setting.js b/rsf-admin/src/config/setting.js
index 23e458a..aca143f 100644
--- a/rsf-admin/src/config/setting.js
+++ b/rsf-admin/src/config/setting.js
@@ -25,7 +25,7 @@
 
 export const ABORT_SIGNAL = false;
 
-export const DEFAULT_PAGE_SIZE = 25;
+export const DEFAULT_PAGE_SIZE = 20;
 
 export const DEFAULT_ITEM_PAGE_SIZE = 10;
 
diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index ac65feb..6181644 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -24,6 +24,10 @@
             memoWrap: 'memo wrap',
             memo: 'memo',
             opt: 'operate',
+            supplier: 'Supplier',
+            customer: 'Customer',
+            shipper: 'Shipper',
+            partners: 'Strategic Partners',
         },
         list: {
             empty: {
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index e68df35..9bd5378 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -24,6 +24,10 @@
             memoWrap: '鏄剧ず澶囨敞',
             memo: '澶囨敞',
             opt: '鎿嶄綔',
+            supplier: '渚涘簲鍟�',
+            customer: '瀹㈡埛',
+            shipper: '璐т富',
+            partners: '鎴樼暐鍚堜綔',
         },
         list: {
             empty: {
@@ -906,13 +910,15 @@
             },
             locItem: {
                 locId: "搴撲綅ID",
-                locCode: "搴撲綅缂栫爜",
+                locCode: "搴撲綅",
                 orderId: "璁㈠崟ID",
                 type: "鍗曟嵁绫诲瀷",
                 orderItemId: "鍗曟嵁鏄庣粏ID",
                 wkType: "涓氬姟绫诲瀷",
                 matnrId: "鐗╂枡ID",
                 maktx: "鐗╂枡鍚嶇О",
+                unit: '鍗曚綅',
+                anfme: '鏁伴噺',
                 matnrCode: "鐗╂枡缂栫爜",
                 trackCode: "璺熻釜鐮�",
                 workQty: '鎵ц鏁�',
diff --git a/rsf-admin/src/page/basicInfo/companys/CompanysList.jsx b/rsf-admin/src/page/basicInfo/companys/CompanysList.jsx
index 92de173..7de39db 100644
--- a/rsf-admin/src/page/basicInfo/companys/CompanysList.jsx
+++ b/rsf-admin/src/page/basicInfo/companys/CompanysList.jsx
@@ -41,6 +41,7 @@
 import MyExportButton from '../../components/MyExportButton';
 import PageDrawer from "../../components/PageDrawer";
 import DictField from "../../components/DictField";
+import DictSelect from "../../components/DictSelect";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
 import * as Common from '@/utils/common';
 
@@ -60,12 +61,20 @@
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
-
     <TextInput source="code" label="table.field.companys.code" />,
     <TextInput source="name" label="table.field.companys.name" />,
     <TextInput source="nameEn" label="table.field.companys.nameEn" />,
     <TextInput source="breifCode" label="table.field.companys.breifCode" />,
-    <TextInput source="type" label="table.field.companys.type" />,
+    //   <ReferenceInput source="type" reference="dictData" filter={{ dictTypeCode: 'sys_companys_type' }} label="table.field.companys.type">
+    //     <AutocompleteInput label="table.field.companys.type" optionValue="value"/>
+    //   </ReferenceInput>,
+    <SelectInput label="table.field.companys.type" source="type"
+        choices={[
+            { id: 'shipper', name: 'common.field.shipper' },
+            { id: 'customer', name: 'common.field.customer' },
+            { id: 'supplier', name: 'common.field.supplier' },
+            { id: 'partners', name: 'common.field.partners' }
+        ]} />,
     <TextInput source="contact" label="table.field.companys.contact" />,
     <TextInput source="tel" label="table.field.companys.tel" />,
     <TextInput source="email" label="table.field.companys.email" />,
@@ -73,7 +82,6 @@
     <TextInput source="province" label="table.field.companys.province" />,
     <TextInput source="city" label="table.field.companys.city" />,
     <TextInput source="address" label="table.field.companys.address" />,
-
     <TextInput label="common.field.memo" source="memo" />,
     <SelectInput
         label="common.field.status"
@@ -88,7 +96,6 @@
 
 const CompanysList = () => {
     const translate = useTranslate();
-
     const [createDialog, setCreateDialog] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
 
@@ -104,7 +111,7 @@
                     marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.companys"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
@@ -124,7 +131,6 @@
                     omit={['id', 'createTime', 'createBy', 'memo']}
                 >
                     <NumberField source="id" />
-                    {/* <TextField source="code" label="table.field.companys.code" /> */}
                     <TextField source="name" label="table.field.companys.name" />
                     <TextField source="nameEn" label="table.field.companys.nameEn" />
                     <TextField source="breifCode" label="table.field.companys.breifCode" />
@@ -136,14 +142,9 @@
                     <TextField source="province" label="table.field.companys.province" />
                     <TextField source="city" label="table.field.companys.city" />
                     <TextField source="address" label="table.field.companys.address" />
-
-                    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
-                        <TextField source="nickname" />
-                    </ReferenceField>
+                    <TextField source="updateBy$" label="common.field.updateBy" />
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
-                    <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
-                        <TextField source="nickname" />
-                    </ReferenceField>
+                    <TextField source="createBy$" label="common.field.createBy" />
                     <DateField source="createTime" label="common.field.createTime" showTime />
                     <BooleanField source="statusBool" label="common.field.status" sortable={false} />
                     <TextField source="memo" label="common.field.memo" sortable={false} />
diff --git a/rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogList.jsx b/rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogList.jsx
index ff30723..53c8898 100644
--- a/rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogList.jsx
+++ b/rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogList.jsx
@@ -123,7 +123,6 @@
                     <TextField source="barcode" label="table.field.waitPakinLog.barcode" />
                     <NumberField source="anfme" label="table.field.waitPakinLog.anfme" />
                     <TextField source="ioStatus$" label="table.field.waitPakinLog.ioStatus" sortable={false} />
-
                     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                         <TextField source="nickname" />
                     </ReferenceField>
diff --git a/rsf-admin/src/page/locItem/LocItemEdit.jsx b/rsf-admin/src/page/locItem/LocItemEdit.jsx
index f9d7aa1..120f850 100644
--- a/rsf-admin/src/page/locItem/LocItemEdit.jsx
+++ b/rsf-admin/src/page/locItem/LocItemEdit.jsx
@@ -33,9 +33,9 @@
     const { getValues } = useFormContext();
 
     return (
-        <Toolbar sx={{ justifyContent: 'space-between' }}>
+        <Toolbar sx={{ justifyContent: 'end' }}>
             <SaveButton />
-            <DeleteButton mutationMode="optimistic" />
+            {/* <DeleteButton mutationMode="optimistic" /> */}
         </Toolbar>
     )
 }
@@ -58,8 +58,8 @@
                 defaultValues={{}}
             // validate={(values) => { }}
             >
-                <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
-                    <Grid item xs={12} md={8}>
+                <Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}>
+                    <Grid item xs={14} md={10}>
                         <Typography variant="h6" gutterBottom>
                             {translate('common.edit.title.main')}
                         </Typography>
@@ -69,24 +69,18 @@
                                 source="locId"
                                 autoFocus
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.locCode"
                                 source="locCode"
                                 parse={v => v}
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <NumberInput
                                 label="table.field.locItem.orderId"
                                 source="orderId"
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.type"
-                                source="type"
+                                source="type$"
                                 parse={v => v}
                             />
                         </Stack>
@@ -95,14 +89,10 @@
                                 label="table.field.locItem.orderItemId"
                                 source="orderItemId"
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <NumberInput
                                 label="table.field.locItem.wkType"
                                 source="wkType"
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <NumberInput
                                 label="table.field.locItem.matnrId"
                                 source="matnrId"
@@ -114,22 +104,17 @@
                                 source="maktx"
                                 parse={v => v}
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
+
                             <TextInput
                                 label="table.field.locItem.matnrCode"
                                 source="matnrCode"
                                 parse={v => v}
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.trackCode"
                                 source="trackCode"
                                 parse={v => v}
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.unit"
                                 source="unit"
@@ -141,20 +126,14 @@
                                 label="table.field.locItem.anfme"
                                 source="anfme"
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <NumberInput
                                 label="table.field.locItem.qty"
                                 source="qty"
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <NumberInput
                                 label="table.field.locItem.workQty"
                                 source="workQty"
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.batch"
                                 source="batch"
@@ -167,22 +146,16 @@
                                 source="splrBatch"
                                 parse={v => v}
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.spec"
                                 source="spec"
                                 parse={v => v}
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.model"
                                 source="model"
                                 parse={v => v}
                             />
-                        </Stack>
-                        <Stack direction='row' gap={2}>
                             <TextInput
                                 label="table.field.locItem.fieldsIndex"
                                 source="fieldsIndex"
@@ -191,7 +164,7 @@
                         </Stack>
 
                     </Grid>
-                    <Grid item xs={12} md={4}>
+                    <Grid item xs={10} md={2}>
                         <Typography variant="h6" gutterBottom>
                             {translate('common.edit.title.common')}
                         </Typography>
diff --git a/rsf-admin/src/page/locItem/LocItemList.jsx b/rsf-admin/src/page/locItem/LocItemList.jsx
index 95821c1..7b4aa44 100644
--- a/rsf-admin/src/page/locItem/LocItemList.jsx
+++ b/rsf-admin/src/page/locItem/LocItemList.jsx
@@ -54,15 +54,14 @@
     '& .column-name': {
     },
     '& .opt': {
-        width: 200
+        width: 100
     },
 }));
 
 const filters = [
     <SearchInput source="condition" alwaysOn />,
-    <DateInput label='common.time.after' source="timeStart" alwaysOn />,
-    <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
-
+    <DateInput label='common.time.after' source="timeStart" />,
+    <DateInput label='common.time.before' source="timeEnd" />,
     <NumberInput source="locId" label="table.field.locItem.locId" />,
     <TextInput source="locCode" label="table.field.locItem.locCode" />,
     <NumberInput source="orderId" label="table.field.locItem.orderId" />,
@@ -82,7 +81,6 @@
     <TextInput source="spec" label="table.field.locItem.spec" />,
     <TextInput source="model" label="table.field.locItem.model" />,
     <TextInput source="fieldsIndex" label="table.field.locItem.fieldsIndex" />,
-
     <TextInput label="common.field.memo" source="memo" />,
     <SelectInput
         label="common.field.status"
@@ -113,15 +111,15 @@
                     marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.locItem"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
                     <TopToolbar>
                         <FilterButton />
-                        <MyCreateButton onClick={() => { setCreateDialog(true) }} />
+                        {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */}
                         <SelectColumnsButton preferenceKey='locItem' />
-                        <MyExportButton />
+                        {/* <MyExportButton /> */}
                     </TopToolbar>
                 )}
                 perPage={DEFAULT_PAGE_SIZE}
@@ -129,43 +127,39 @@
                 <StyledDatagrid
                     preferenceKey='locItem'
                     bulkActionButtons={false}
-                    rowClick={(id, resource, record) => false}
+                    rowClick={false}
                     expand={() => <LocItemPanel />}
                     expandSingle={true}
-                    omit={['id', 'createTime','locId','workQty','qty', 'createBy', 'memo','fieldsIndex','opt']}
+                    omit={['id', 'createTime','locId','orderId', 'orderItemId', 'matnrId', 'splrBatch','workQty','qty', 'createBy', 'memo','fieldsIndex']}
                    
                 >
                     <NumberField source="id" />
                     <NumberField source="locId" label="table.field.locItem.locId" />
                     <TextField source="locCode" label="table.field.locItem.locCode" />
                     <NumberField source="orderId" label="table.field.locItem.orderId" />
-                    <TextField source="type" label="table.field.locItem.type" />
+                    <TextField source="type$" label="table.field.locItem.type" />
                     <NumberField source="orderItemId" label="table.field.locItem.orderItemId" />
-                    <NumberField source="wkType" label="table.field.locItem.wkType" />
+                    <NumberField source="wkType$" label="table.field.locItem.wkType" />
                     <NumberField source="matnrId" label="table.field.locItem.matnrId" />
-                    <TextField source="maktx" label="table.field.locItem.maktx" />
                     <TextField source="matnrCode" label="table.field.locItem.matnrCode" />
+                    <TextField source="maktx" label="table.field.locItem.maktx" />
+                    <TextField source="spec" label="table.field.locItem.spec" />
+                    <TextField source="model" label="table.field.locItem.model" />
+                    <TextField source="batch" label="table.field.locItem.batch" />
                     <TextField source="trackCode" label="table.field.locItem.trackCode" />
                     <TextField source="unit" label="table.field.locItem.unit" />
                     <NumberField source="anfme" label="table.field.locItem.anfme" />
-                    <TextField source="batch" label="table.field.locItem.batch" />
                     <TextField source="splrBatch" label="table.field.locItem.splrBatch" />
-                    <TextField source="spec" label="table.field.locItem.spec" />
-                    <TextField source="model" label="table.field.locItem.model" />
                     <TextField source="fieldsIndex" label="table.field.locItem.fieldsIndex" />
-                    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
-                        <TextField source="nickname" />
-                    </ReferenceField>
+                    <TextField source="updateBy$" label="common.field.updateBy"  />
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
-                    <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
-                        <TextField source="nickname" />
-                    </ReferenceField>
+                    <TextField source="createBy$" label="common.field.createBy" />
                     <DateField source="createTime" label="common.field.createTime" showTime />
                     <BooleanField source="statusBool" label="common.field.status" sortable={false} />
                     <TextField source="memo" label="common.field.memo" sortable={false} />
                     <WrapperField cellClassName="opt" label="common.field.opt">
                         <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
-                        <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
+                        {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
                     </WrapperField>
                 </StyledDatagrid>
             </List>
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
index e6c2bec..796ed9e 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -246,34 +246,29 @@
                                         required
                                     />
                                 </Grid>
-                                <Grid item md={3}>
+                                <Grid item md={2}>
                                     <TextField
                                         label={translate("table.field.asnOrder.poCode")}
                                         value={formData.poCode}
+                                        variant="filled"
                                         onChange={(e) => handleChange(e.target.value, 'poCode')}
                                     />
                                 </Grid>
-                                <Grid item md={3}>
+                                <Grid item md={2}>
                                     <TextField
                                         label={translate("table.field.asnOrder.logisNo")}
                                         value={formData.logisNo}
+                                        variant="filled"
                                         onChange={(e) => handleChange(e.target.value, 'logisNo')}
                                     />
                                 </Grid>
-
                                 <Grid item md={3}>
-                                    {/* <TextField
-                                        label={translate("table.field.asnOrder.arrTime")}
-                                        value={formData.arrTime}
-                                        onChange={(e) => handleChange(e.target.value, 'arrTime')}
-                                    /> */}
                                     <DateInput
                                         source="arrTime"
                                         label="table.field.asnOrder.arrTime"
                                         value={formData.arrTime}
                                         onChange={(e) => handleChange(e.target.value, 'arrTime')}
                                     />
-
                                 </Grid>
                             </Grid>
                         </Form>
diff --git a/rsf-admin/src/page/orders/stock/OrderList.jsx b/rsf-admin/src/page/orders/stock/OrderList.jsx
index 192b56a..0f498e6 100644
--- a/rsf-admin/src/page/orders/stock/OrderList.jsx
+++ b/rsf-admin/src/page/orders/stock/OrderList.jsx
@@ -116,18 +116,18 @@
                     bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
                     rowClick='edit'
                     expandSingle={true}
-                    omit={['id', 'createTime', 'createBy', 'memo']}
+                    omit={['id', 'createTime','sourceId', 'createBy', 'memo']}
                 >
                     <NumberField source="id" />
                     <TextField source="code" label="table.field.stock.code" />
                     <TextField source="sourceCode" label="table.field.stock.sourceCode" />
                     <NumberField source="sourceId" label="table.field.stock.sourceId" />
-                    <TextField source="type" label="table.field.stock.type" />
-                    <TextField source="wkType" label="table.field.stock.wkType" />
+                    <TextField source="type$" label="table.field.stock.type" />
+                    <TextField source="wkType$" label="table.field.stock.wkType" />
                     <NumberField source="anfme" label="table.field.stock.anfme" />
                     <TextField source="updateBy$" label="common.field.updateBy" />
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
-                    <TextField source="createBy" label="common.field.createBy"  />
+                    <TextField source="createBy$" label="common.field.createBy"  />
                     <DateField source="createTime" label="common.field.createTime" showTime />
                     <BooleanField source="statusBool" label="common.field.status" sortable={false} />
                     <TextField source="memo" label="common.field.memo" sortable={false} />
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
index 0d519b2..362885e 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -130,7 +130,7 @@
                     marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                 }}
                 title={"menu.waitPakin"}
-                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
+                empty={false}
                 filters={filters}
                 sort={{ field: "create_time", order: "desc" }}
                 actions={(
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java
index c18bf62..1b59c9a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/MobileController.java
@@ -123,12 +123,12 @@
 
     @PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
     @ApiOperation("鑾峰彇璁㈠崟鐗╂枡鏄庣粏")
-    @GetMapping("/asnOrderItem/trackCode/{code}")
-    public R getItemByTrackCode(@PathVariable String code) {
-        if (StringUtils.isBlank(code)) {
-            return R.error("缂栫爜涓嶈兘涓虹┖锛侊紒");
+    @PostMapping("/asnOrderItem/trackCode")
+    public R getItemByTrackCode(@RequestBody Map<String, Object> params) {
+        if (Objects.isNull(params)) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        return mobileService.getDeltByCode(code);
+        return mobileService.getDeltByCode(params);
     }
 
     @PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
index 121003c..4543e66 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/MobileService.java
@@ -36,7 +36,7 @@
 
     List<Fields> getDynamicFields();
 
-    R getDeltByCode(String code);
+    R getDeltByCode(Map<String, Object> params);
 
     WaitPakin mergeItems(WaitPakinParam waitPakin, Long userId);
 
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 568ac34..beae2ad 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
@@ -217,7 +217,6 @@
         }
 
         List<ReceiptDetlsDto> receipts = receiptParam.getReceipts();
-        List<WarehouseAreasItem> allOrders = new ArrayList<>();
 
         Double receiptQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getReceiptQty).sum();
 
@@ -267,7 +266,7 @@
             }
             Double itemRcptQty = dto.getReceiptQty() + orderItem.getQty();
             orderItem.setQty(itemRcptQty)
-                    .setSplrBatch(dto.getSplrBatch())
+//                    .setSplrBatch(dto.getSplrBatch())
                     .setUpdateBy(loginUserId)
                     .setStockUnit(dto.getStockUnit())
                     .setProdTime(dto.getProdTime());
@@ -421,13 +420,19 @@
      * @time 2025/4/7 16:58
      */
     @Override
-    public R getDeltByCode(String code) {
+    public R getDeltByCode(Map<String, Object> params ) {
+        String code = params.get("code").toString();
+        String batch = null;
+        if (!Objects.isNull(params.get("batch"))) {
+            batch = params.get("batch").toString();
+        }
         //TODO 鍚庣画闇�鏍规嵁绛栫暐閰嶇疆锛岃幏鍙栫粍鎷栨暟鎹�傚锛氭贩瑁咃紝鎸夋壒娆℃贩瑁呯瓑
         LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new QueryWrapper<WarehouseAreasItem>()
                 .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch,unit, stock_unit,  qty, work_qty, matnr_code, matnr_id, maktx").lambda()
-                .eq(WarehouseAreasItem::getTrackCode, code)
+                .eq(StringUtils.isNotBlank(code), WarehouseAreasItem::getTrackCode, code)
+                .eq(StringUtils.isNotBlank(batch), WarehouseAreasItem::getSplrBatch, batch)
                 .groupBy(WarehouseAreasItem::getSplrBatch, WarehouseAreasItem::getAsnId, WarehouseAreasItem::getAreaId, WarehouseAreasItem::getMatnrId);
-        return R.ok(warehouseAreasItemService.getOne(queryWrapper));
+        return R.ok(warehouseAreasItemService.getOne(queryWrapper, false));
     }
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CompanysController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CompanysController.java
index 23f6804..6b4d172 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CompanysController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CompanysController.java
@@ -69,12 +69,18 @@
             throw new CoolException("浼佷笟绫诲瀷涓嶈兘涓虹┖锛侊紒");
         }
 
-        List<Companys> warehouses = companysService.list(new LambdaQueryWrapper<Companys>().eq(Companys::getName, companys.getName()));
+        List<Companys> warehouses = companysService.list(new LambdaQueryWrapper<Companys>()
+                .eq(Companys::getName, companys.getName())
+                .eq(Companys::getType, companys.getType())
+                .eq(Companys::getBreifCode, companys.getBreifCode()));
         if (!warehouses.isEmpty()) {
-            throw new CoolException("浼佷笟鍚嶇О宸插瓨鍦紒锛�");
+            throw new CoolException("浼佷笟宸插瓨鍦紒锛�");
         }
-        if (!companysService.list(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, companys.getBreifCode())).isEmpty()) {
-            throw new CoolException("缂栫爜宸插瓨鍦紒锛�");
+        if (!companysService.list(new LambdaQueryWrapper<Companys>()
+                .eq(Companys::getType, companys.getType())
+                .eq(Companys::getName, companys.getName())
+                .eq(Companys::getCode, companys.getBreifCode())).isEmpty()) {
+            throw new CoolException("浼佷笟缂栫爜閲嶅锛侊紒");
         }
 
         companys.setCreateBy(getLoginUserId());
@@ -99,18 +105,19 @@
         if (Objects.isNull(companys.getType())) {
             throw new CoolException("绫诲瀷涓嶈兘涓虹┖锛侊紒");
         }
-        Companys companys1 = companysService.getById(companys.getId());
-        if (!companys.getName().equals(companys1.getName())) {
-            List<Companys> areasList = companysService.list(new LambdaQueryWrapper<Companys>().eq(Companys::getName, companys.getName()));
-            if (!areasList.isEmpty()) {
-                throw new CoolException("浼佷笟鍚嶅凡瀛樺湪锛侊紒");
-            }
+//        Companys companys1 = companysService.getById(companys.getId());
+        List<Companys> warehouses = companysService.list(new LambdaQueryWrapper<Companys>()
+                .eq(Companys::getName, companys.getName())
+                .eq(Companys::getType, companys.getType())
+                .eq(Companys::getBreifCode, companys.getBreifCode()));
+        if (!warehouses.isEmpty()) {
+            throw new CoolException("浼佷笟宸插瓨鍦紒锛�");
         }
-        if (!companys.getBreifCode().equals(companys1.getBreifCode())) {
-            List<Companys> areasList = companysService.list(new LambdaQueryWrapper<Companys>().eq(Companys::getBreifCode, companys.getBreifCode()));
-            if (!areasList.isEmpty()) {
-                throw new CoolException("缂栫爜宸插瓨鍦紒锛�");
-            }
+        if (!companysService.list(new LambdaQueryWrapper<Companys>()
+                .eq(Companys::getType, companys.getType())
+                .eq(Companys::getName, companys.getName())
+                .eq(Companys::getCode, companys.getBreifCode())).isEmpty()) {
+            throw new CoolException("浼佷笟缂栫爜閲嶅锛侊紒");
         }
 
         if (!companysService.updateById(companys)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java
index 9e83b73..9facf84 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/WaitPakinParam.java
@@ -19,6 +19,9 @@
     @ApiModelProperty("璺熻釜鐮�")
     private List<PakinItem> items;
 
+    @ApiModelProperty("鎵规")
+    private String batch;
+
     @ApiModelProperty("缁勬嫋绫诲瀷{null: 缁勬嫋, defective: 涓嶈壇鍝亇")
     private String type;
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrder.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrder.java
index 46aaaef..3698344 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrder.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrder.java
@@ -213,7 +213,9 @@
             return "";
         }
         DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
-        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>().eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_ORDER_TYPE).eq(DictData::getValue, this.type));
+        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
+                .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_ORDER_TYPE)
+                .eq(DictData::getValue, this.type));
         if (Objects.isNull(dictData)) {
             return null;
         }
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 84560fd..3dfa6cf 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
@@ -5,7 +5,11 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.vincent.rsf.server.system.constant.DictTypeCode;
+import com.vincent.rsf.server.system.entity.DictData;
+import com.vincent.rsf.server.system.service.DictDataService;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.text.SimpleDateFormat;
@@ -21,6 +25,7 @@
 import com.vincent.rsf.server.system.entity.User;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Objects;
 
 @Data
 @Accessors(chain = true)
@@ -262,6 +267,30 @@
 //            null    // 澶囨敞
 //    );
 
+    public String getType$(){
+        if (Cools.isEmpty(this.type)){
+            return "";
+        }
+        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
+        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>().eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_ORDER_TYPE).eq(DictData::getValue, this.type));
+        if (Objects.isNull(dictData)) {
+            return null;
+        }
+        return dictData.getLabel();
+    }
+
+    public String getWkType$(){
+        if (Cools.isEmpty(this.wkType)){
+            return "";
+        }
+        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
+        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>().eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_BUSINESS_TYPE).eq(DictData::getValue, this.wkType));
+        if (Objects.isNull(dictData)) {
+            return null;
+        }
+        return dictData.getLabel();
+    }
+
     public String getStatus$(){
         if (null == this.status){ return null; }
         switch (this.status){
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinLog.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinLog.java
index cc7a483..e76b367 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinLog.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinLog.java
@@ -161,6 +161,10 @@
                 return "寰呭叆搴�";
             case  1:
                 return " 鍏ュ簱涓�";
+            case 2:
+                return "浠诲姟鎵ц涓�";
+            case 3:
+                return "浠诲姟瀹屾垚";
             default:
                 return String.valueOf(this.ioStatus);
         }
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 7781d17..5d43cc8 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,7 +12,6 @@
     //璐ㄦ鐘舵��
     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", "鍙栨秷"),
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 444690f..a8be86f 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
@@ -93,11 +93,6 @@
             throw new CoolException("鏈壘鍒版墍灞炲簱鍖轰俊鎭�");
         }
 
-        /**鑾峰彇搴撲綅*/
-        String targetLoc = LocManageUtil.getTargetLoc(warehouseArea.getId());
-        if (Cools.isEmpty(targetLoc)) {
-            throw new CoolException("璇ョ珯鐐瑰搴斿簱鍖烘湭鎵惧埌搴撲綅");
-        }
         /**鑾峰彇缁勬嫋*/
         List<Long> ids = waitPakin.getWaitPakins().stream().map(WaitPakin::getId).collect(Collectors.toList());
         List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>()
@@ -107,6 +102,12 @@
             throw new CoolException("璇锋鏌ョ粍鎷栫姸鎬佹槸鍚﹀畬鎴愶紒锛�");
         }
         waitPakins.forEach(pakin -> {
+            /**鑾峰彇搴撲綅*/
+            String targetLoc = LocManageUtil.getTargetLoc(warehouseArea.getId());
+            if (Cools.isEmpty(targetLoc)) {
+                throw new CoolException("璇ョ珯鐐瑰搴斿簱鍖烘湭鎵惧埌搴撲綅");
+            }
+
             List<TaskItem> taskItems = new ArrayList<>();
             String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TASK_CODE, null);
             if (StringUtils.isBlank(ruleCode)) {
@@ -256,7 +257,7 @@
      * @time 2025/4/30 16:32
      */
     @Transactional(rollbackFor = Exception.class)
-    private void removeReceiptStock(WaitPakinItem pakinItem) {
+    public void removeReceiptStock(WaitPakinItem pakinItem) {
         WarehouseAreasItem itemServiceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
                 .eq(WarehouseAreasItem::getTrackCode, pakinItem.getTrackCode())
                 .eq(WarehouseAreasItem::getSplrBatch, pakinItem.getBatch()));
@@ -302,7 +303,10 @@
             Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()), false);
             LocItem item = new LocItem();
             BeanUtils.copyProperties(taskItem, item);
-            item.setLocCode(loc.getCode()).setId(null).setLocId(loc.getId()).setType(taskItem.getOrderType());
+            item.setLocCode(loc.getCode()).setId(null)
+                    .setLocId(loc.getId())
+                    .setWkType(taskItem.getWkType())
+                    .setType(taskItem.getOrderType());
             locItems.add(item);
         });
         if (!locItemService.saveBatch(locItems)) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
index a04a951..d236929 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -151,6 +151,7 @@
                     .select("SUM(anfme) as anfme, track_code, asn_code, id, splr_batch, ispt_result, plat_item_id, batch, qty, unit, stock_unit, work_qty, matnr_code, matnr_id, maktx")
                     .lambda()
                     .in(WarehouseAreasItem::getTrackCode, tracks)
+                    .eq(StringUtils.isNotBlank(waitPakin.getBatch()),  WarehouseAreasItem::getSplrBatch, waitPakin.getBatch())
                     .groupBy(WarehouseAreasItem::getSplrBatch,
                             WarehouseAreasItem::getTrackCode);
             List<WarehouseAreasItem> warehouseAreasItems = warehouseAreasItemService.list(queryWrapper);

--
Gitblit v1.9.1