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