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