From 03f63637e706283f1a95b7d0d6d631901ae359b2 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 21 七月 2025 13:24:00 +0800
Subject: [PATCH] 盘点单功能优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 17 ++++++++++++++++-
rsf-admin/src/page/orders/check/CheckOrderPub.jsx | 7 ++++---
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java | 26 +++++++++++++++++++-------
rsf-server/src/main/resources/application.yml | 2 +-
rsf-admin/src/i18n/zh.js | 2 +-
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java | 3 +++
rsf-admin/src/page/orders/check/CheckOrderList.jsx | 2 +-
7 files changed, 45 insertions(+), 14 deletions(-)
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 2814362..b902fdd 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -679,7 +679,7 @@
checkType: "鐩樼偣绫诲瀷",
areaId: "搴撳尯ID",
areaName: "搴撳尯",
- anfme: "搴撻潰鏁伴噺",
+ anfme: "搴撳瓨鏁伴噺",
checkQty: "鐩樼偣鏁伴噺",
exceStatus: "鎵ц鐘舵��",
},
diff --git a/rsf-admin/src/page/orders/check/CheckOrderList.jsx b/rsf-admin/src/page/orders/check/CheckOrderList.jsx
index b9cee96..d6945e1 100644
--- a/rsf-admin/src/page/orders/check/CheckOrderList.jsx
+++ b/rsf-admin/src/page/orders/check/CheckOrderList.jsx
@@ -73,7 +73,7 @@
<AutocompleteInput label="table.field.checkOrder.type" optionValue="value" />
</ReferenceInput>,
<ReferenceInput source="wkType" reference="dictData" filter={{ dictTypeCode: 'sys_check_order_type' }} label="table.field.checkOrder.checkType" alwaysOn>
- <AutocompleteInput label="table.field.checkOrder.checkType" optionValue="value" />
+ <AutocompleteInput label="table.field.checkOrder.checkType" optionValue="value"/>
</ReferenceInput>,
<TextInput source="logisNo" label="table.field.checkOrder.logisNo" />,
<DateInput source="arrTime" label="table.field.checkOrder.arrTime" />,
diff --git a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
index e9d4ded..b35286f 100644
--- a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
+++ b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
@@ -87,7 +87,7 @@
const mas = data.filter(item => selectedIds.includes(item.id)).map(item => item.matnrCode);
//璁剧疆搴撲綅淇℃伅绛涢�夋潯浠�
setSelectedMatnr(mas);
- // onUnselectItems()
+ onUnselectItems()
}
return (
record.exceStatus != 3 ? <><Button label="toolbar.confirm" size="medium" onClick={handleRowClick} /></> : <></>
@@ -222,7 +222,7 @@
</Box>
<Box sx={{ textAlign: 'center' }}>
<CloseButton setOpen={setOpen} />
- <SubmitButton selectedIds={selectedIds} setSelectedIds={setSelectedIds} rowSelectedIds={rowSelectedIds} gridRef={gridRef} record={record} />
+ <SubmitButton selectedIds={selectedIds} setOpen={setOpen} setSelectedIds={setSelectedIds} rowSelectedIds={rowSelectedIds} gridRef={gridRef} record={record} />
</Box>
</Card>
</Grid>
@@ -420,7 +420,7 @@
//鎻愪氦鎸夐挳
-const SubmitButton = ({ selectedIds, setSelectedIds, rowSelectedIds, gridRef, record }) => {
+const SubmitButton = ({ selectedIds, setSelectedIds, rowSelectedIds, gridRef, record, setOpen }) => {
const notify = useNotify();
const refresh = useRefresh();
const translate = useTranslate();
@@ -444,6 +444,7 @@
const { data: { code, data, msg } } = await request.post('/check/generate/tasks', records);
if (code == 200) {
refresh();
+ setOpen(false)
} else {
notify(msg);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java
index f644846..5c16c7d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/CheckDiffItem.java
@@ -218,6 +218,9 @@
}
public Double getDiffQty() {
+ if (checkQty.compareTo(0.0) <= 0) {
+ return 0.0;
+ }
Double diffQty = Math.round((this.checkQty - this.anfme) * 1000) / 1000.0;
return diffQty;
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java
index a1fb5ed..d201957 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/CheckOrderSchedules.java
@@ -47,15 +47,27 @@
* @description: 鑷姩鑾峰彇宸茬敓鎴愮洏鐐逛换鍔$殑鐩樼偣鍒楄〃
* @version 1.0
*/
- @Scheduled(cron = "0/5 * * * * ?")
+ @Scheduled(cron = "0/15 * * * * ?")
@Transactional(rollbackFor = Exception.class)
public void genReCheck() {
- List<CheckDiffItem> list = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>().select(CheckDiffItem::getTaskItemId));
+ List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+ .select(Task::getId)
+ .eq(Task::getTaskType, TaskType.TASK_TYPE_CHECK_OUT.type));
+ if (tasks.isEmpty()) {
+ return;
+ }
+ List<CheckDiffItem> list = checkDiffItemService
+ .list(new LambdaQueryWrapper<CheckDiffItem>()
+ .select(CheckDiffItem::getTaskItemId));
if (list.isEmpty()) {
return;
}
+ Set<Long> taskIds = tasks.stream().map(Task::getId).collect(Collectors.toSet());
List<Long> itemIds = list.stream().map(CheckDiffItem::getTaskItemId).collect(Collectors.toList());
- List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().notIn(TaskItem::getId, itemIds));
+ List<TaskItem> taskItems = taskItemService
+ .list(new LambdaQueryWrapper<TaskItem>()
+ .in(TaskItem::getTaskId, taskIds)
+ .notIn(TaskItem::getId, itemIds));
if (taskItems.isEmpty()) {
return;
}
@@ -64,7 +76,7 @@
taskMps.keySet().forEach(orderId -> {
WkOrder order = checkOrderService.getById(orderId);
if (Objects.isNull(order)) {
- throw new CoolException("鐩樼偣鍗曟嵁涓嶅瓨鍦紒锛�");
+ throw new CoolException("鐩樼偣鍗曟嵁涓嶅瓨鍦紒锛�");
}
CheckDiff checkDiff = checkDiffService.getOne(new LambdaQueryWrapper<CheckDiff>().eq(CheckDiff::getOrderId, orderId));
if (Objects.isNull(checkDiff)) {
@@ -119,9 +131,9 @@
}
});
- if (!checkDiffItemService.saveBatch(diffItems)) {
- throw new CoolException("鐩樼偣宸紓鍗曚繚瀛樺け璐ワ紒锛�");
- }
+ if (!checkDiffItemService.saveBatch(diffItems)) {
+ throw new CoolException("鐩樼偣宸紓鍗曚繚瀛樺け璐ワ紒锛�");
+ }
});
}
}
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 7ed0dfb..a9b1461 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
@@ -83,11 +83,14 @@
private OutStockService outStockService;
@Autowired
private OutStockItemService outStockItemService;
-
@Autowired
private CheckOrderItemService checkOrderItemService;
@Autowired
private CheckOrderService checkOrderService;
+ @Autowired
+ private CheckDiffService checkDiffService;
+ @Autowired
+ private CheckDiffItemService checkDiffItemService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -783,6 +786,18 @@
.setSql("work_qty = work_qty - " + taskItem.getAnfme()))) {
throw new CoolException("鐩樼偣鍗曟墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�");
}
+
+ List<CheckDiffItem> diffItems = checkDiffItemService
+ .list(new LambdaQueryWrapper<CheckDiffItem>()
+ .eq(CheckDiffItem::getTaskItemId, taskItem.getTaskId()));
+ if (!diffItems.isEmpty()) {
+ CheckDiffItem item = diffItems.stream().findFirst().get();
+ List<CheckDiffItem> items = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>()
+ .eq(CheckDiffItem::getId, item.getCheckId()));
+ if (items.isEmpty()) {
+ checkDiffService.removeById(item.getCheckId());
+ }
+ }
});
}
diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml
index db51329..ac31a5b 100644
--- a/rsf-server/src/main/resources/application.yml
+++ b/rsf-server/src/main/resources/application.yml
@@ -25,7 +25,7 @@
# global-config:
# field-strategy: 0
configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
cache-enabled: true
call-setters-on-nulls: true
--
Gitblit v1.9.1