From 8f7e1bf264a5beaca1cf563452bc9ef72dea848f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 21 五月 2025 08:16:22 +0800
Subject: [PATCH] 修复取消组托,收货数量修改错误问题
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 64 ++++++++++++++++
rsf-admin/src/page/orders/purchase/PurchaseList.jsx | 4
rsf-admin/src/page/task/TaskList.jsx | 4
rsf-admin/src/page/waitPakin/WaitPakinList.jsx | 8 +-
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java | 3
rsf-admin/src/i18n/zh.js | 2
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java | 1
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java | 99 +++---------------------
8 files changed, 90 insertions(+), 95 deletions(-)
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index e71dd67..9b0169f 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -187,7 +187,7 @@
taskItem: '浠诲姟妗f槑缁�',
taskLog: '浠诲姟鍘嗗彶妗�',
taskItemLog: '浠诲姟鏄庣粏鍘嗗彶妗�',
- stock: '鍏ュ嚭搴撳瓨淇℃伅',
+ stock: '鍏ュ嚭搴撳巻鍙�',
stockItem: '鍗曟嵁鏄庣粏',
locItem: '搴撲綅鏄庣粏',
histories: '鍘嗗彶妗�',
diff --git a/rsf-admin/src/page/orders/purchase/PurchaseList.jsx b/rsf-admin/src/page/orders/purchase/PurchaseList.jsx
index 254601e..bc2d2c4 100644
--- a/rsf-admin/src/page/orders/purchase/PurchaseList.jsx
+++ b/rsf-admin/src/page/orders/purchase/PurchaseList.jsx
@@ -124,7 +124,7 @@
<StyledDatagrid
preferenceKey='purchase'
bulkActionButtons={() => <BulkDeleteButton mutationMode="pessimistic"/>}
- rowClick={'edit'}
+ rowClick={false}
expand={false}
expandSingle={true}
omit={['id', 'createTime', 'createBy','channel', 'platCode', 'memo', 'channel','startTime','workQty', 'endTime']}
@@ -151,7 +151,7 @@
{/* <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' }} />
+ <EditButton label="toolbar.detail" sx={{ padding: '1px', fontSize: '.75rem' }} />
<DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode="pessimistic"/>
</WrapperField>
</StyledDatagrid>
diff --git a/rsf-admin/src/page/task/TaskList.jsx b/rsf-admin/src/page/task/TaskList.jsx
index 463508a..068a809 100644
--- a/rsf-admin/src/page/task/TaskList.jsx
+++ b/rsf-admin/src/page/task/TaskList.jsx
@@ -25,6 +25,7 @@
SelectInput,
NumberInput,
Button,
+ EditButton,
} from 'react-admin';
import { Box, Typography, Card, Stack, Drawer } from '@mui/material';
import { styled } from '@mui/material/styles';
@@ -129,7 +130,7 @@
<BulkDeleteButton mutationMode={OPERATE_MODE} />
</>
}
- rowClick={'edit'}
+ rowClick={false}
expand={false}
expandSingle={true}
omit={['id', 'createTime', 'createBy', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'status', 'sort']}
@@ -156,6 +157,7 @@
{/* <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" onClick={(e) => e.stopPropagation()} >
+ <EditButton label="toolbar.detail"/>
<DoneButton sx={{ padding: '1px', fontSize: '.75rem' }} ></DoneButton>
<CancelButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
<SetTopButton sx={{ padding: '1px', fontSize: '.75rem' }} ></SetTopButton>
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
index 82dfe95..f8213de 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -93,7 +93,7 @@
const [drawerVal, setDrawerVal] = useState(false);
const CreateTaskButton = () => {
- const record = useRecordContext();
+ const record = useRecordContext();
const notify = useNotify();
const refresh = useRefresh();
const { selectedIds, onUnselectItems, data } = useListContext();
@@ -115,7 +115,7 @@
}
const CreateTaskRowButton = () => {
- const record = useRecordContext();
+ const record = useRecordContext();
const refresh = useRefresh();
const createTask = (event) => {
@@ -124,7 +124,7 @@
setSource([record])
refresh()
}
-
+
return (
<>
<Button onClick={(event) => createTask(event)} label={"toolbar.createTask"}>
@@ -166,7 +166,7 @@
<CreateTaskButton />
{/* <BulkDeleteButton mutationMode={OPERATE_MODE} /> */}
</>}
- rowClick='edit'
+ rowClick={false}
omit={['id', 'createTime', 'createBy', 'memo']}
>
<NumberField source="id" />
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
index 114e815..1456ea1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java
@@ -31,17 +31,13 @@
@Autowired
private TaskService taskService;
-
@Autowired
private TaskItemService taskItemService;
-
@Autowired
private WaitPakinService waitPakinService;
-
@Autowired
private LocService locService;
- @Autowired
- private BasStationService basStationService;
+
@PreAuthorize("hasAuthority('manager:task:list')")
@PostMapping("/task/page")
@@ -103,75 +99,8 @@
if (Objects.isNull(ids) || ids.length < 1) {
return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
- List<Short> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
- List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getId, ids).in(Task::getTaskStatus, longs));
- if (tasks.isEmpty()) {
- throw new CoolException("浠诲姟宸插鎵ц鐘舵�佷笉鍙彇娑堬紒锛�");
- }
- for (Task task : tasks) {
- //鎭㈠缁勬墭鐘舵��
- WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
- .eq(WaitPakin::getBarcode, task.getBarcode())
- );
- if (null != waitPakin) {
- waitPakin.setIoStatus(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
- if (!waitPakinService.updateById(waitPakin)) {
- throw new CoolException("鏇存柊缁勬墭鐘舵�佸け璐ワ紒锛�");
-
- }
- }
- Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>()
- .eq(Loc::getCode, task.getTaskType() < 100 ? task.getTargLoc() : task.getOrgLoc())
- );
- if (null != loc
- && (loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_S.type)
- || loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_R.type))) {
-
- loc.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
- if (!locService.updateById(loc)) {
- throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐ワ紒锛�");
- }
- }
- if (task.getWarehType().equals(WarehType.WAREHOUSE_TYPE_AGV.id)){
- BasStation basStation = null;
- if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)
- ){
- basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
- .eq(BasStation::getStationName, task.getOrgSite())
- .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type)
- );
-
-
- } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
- || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
- ) {
- basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
- .eq(BasStation::getStationName, task.getTargLoc())
- .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type)
- );
- }
- if (null == basStation) {
- throw new CoolException("绔欑偣鐘舵�侀敊璇紒锛�");
- }
- basStation.setUseStatus(StaUseStatusType.TYPE_F.type);
- if (!basStationService.updateById(basStation)){
- throw new CoolException("鏇存柊绔欑偣鐘舵�佸け璐ワ紒锛�");
- }
- }
-
-
- }
- if (!taskService.removeByIds(Arrays.asList(ids))) {
- return R.error("Delete Fail");
- }
- if (!taskItemService.remove(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, ids))) {
- return R.error("Details delete Failed");
- }
- return R.ok("Delete Success").add(ids);
+ return taskService.removeTask(ids);
+// return R.ok("Delete Success").add(ids);
}
@PreAuthorize("hasAuthority('manager:task:list')")
@@ -208,24 +137,24 @@
// }
// taskService.completeTask(tasks);
for (Task task : tasks) {
- task.setTaskStatus(task.getTaskType() < (short)100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.COMPLETE_OUT.id);
+ task.setTaskStatus(task.getTaskType() < (short) 100 ? TaskStsType.COMPLETE_IN.id : TaskStsType.COMPLETE_OUT.id);
}
- if (!taskService.updateBatchById(tasks)){
+ if (!taskService.updateBatchById(tasks)) {
return R.error("瀹屾垚浠诲姟澶辫触");
}
return R.ok("瀹屾垚浠诲姟鎴愬姛");
}
- @PreAuthorize("hasAuthority('manager:task:update')")
- @ApiOperation("鍙栨秷浠诲姟")
- @PostMapping("/task/cancel/{id}")
- public R cancelTask(@PathVariable String id) {
- if (Objects.isNull(id)) {
- throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
- }
- return R.ok();
- }
+// @PreAuthorize("hasAuthority('manager:task:update')")
+// @ApiOperation("鍙栨秷浠诲姟")
+// @PostMapping("/task/cancel/{id}")
+// public R cancelTask(@PathVariable String id) {
+// if (Objects.isNull(id)) {
+// throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+// }
+// return R.ok();
+// }
@PreAuthorize("hasAuthority('manager:task:update')")
@ApiOperation("浠诲姟鍑哄簱缃《")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
index 7978c57..0d8adf9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java
@@ -19,4 +19,5 @@
// R completeTask(String id);
void completeTask(List<Task> task) throws Exception;
+ R removeTask(Long[] ids);
}
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 a943509..0863d97 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
@@ -60,6 +60,8 @@
private WaveItemService waveItemService;
@Autowired
private WaveService waveService;
+ @Autowired
+ private BasStationService basStationService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -383,6 +385,68 @@
}
}
+ @Override
+ public R removeTask(Long[] ids) {
+ List<Short> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id);
+ List<Task> tasks = this.list(new LambdaQueryWrapper<Task>().in(Task::getId, ids).in(Task::getTaskStatus, longs));
+ if (tasks.isEmpty()) {
+ throw new CoolException("浠诲姟宸插鎵ц鐘舵�佷笉鍙彇娑堬紒锛�");
+ }
+ for (Task task : tasks) {
+ //鎭㈠缁勬墭鐘舵��
+ WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
+ .eq(WaitPakin::getBarcode, task.getBarcode())
+ );
+ if (null != waitPakin) {
+ waitPakin.setIoStatus(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
+ if (!waitPakinService.updateById(waitPakin)) {
+ throw new CoolException("鏇存柊缁勬墭鐘舵�佸け璐ワ紒锛�");
+ }
+ }
+ Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTaskType() < TaskStsType.UPDATED_IN.id ? task.getTargLoc() : task.getOrgLoc()));
+ if (null != loc
+ && (loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_S.type)
+ || loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_R.type))) {
+
+ loc.setUseStatus(LocStsType.LOC_STS_TYPE_O.type);
+ if (!locService.updateById(loc)) {
+ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐ワ紒锛�");
+ }
+ }
+ if (!Objects.isNull(task.getWarehType()) && task.getWarehType().equals(WarehType.WAREHOUSE_TYPE_AGV.id)) {
+ BasStation basStation = null;
+ if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type) ) {
+ basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+ .eq(BasStation::getStationName, task.getOrgSite())
+ .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type)
+ );
+ } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
+ || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_IN.type)
+ || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
+ || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
+ || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_OUT.type)
+ ) {
+ basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+ .eq(BasStation::getStationName, task.getTargLoc())
+ .eq(BasStation::getUseStatus, StaUseStatusType.TYPE_R.type)
+ );
+ }
+ if (null == basStation) {
+ throw new CoolException("绔欑偣鐘舵�侀敊璇紒锛�");
+ }
+ basStation.setUseStatus(StaUseStatusType.TYPE_F.type);
+ if (!basStationService.updateById(basStation)) {
+ throw new CoolException("鏇存柊绔欑偣鐘舵�佸け璐ワ紒锛�");
+ }
+ }
+ }
+ if (!this.removeByIds(Arrays.asList(ids))) {
+ throw new CoolException("Delete Fail");
+ }
+
+ return R.ok("鎿嶄綔鎴愬姛");
+ }
+
/**
* @author Ryan
* @date 2025/5/20
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 e035315..1d8d4f1 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
@@ -298,8 +298,7 @@
continue;
}
double sum = pakin.stream().mapToDouble(WaitPakinItem::getAnfme).sum();
- item.setWorkQty(item.getWorkQty() - sum)
- .setAnfme(item.getAnfme() + sum);
+ item.setWorkQty(item.getWorkQty() - sum);
if (!warehouseAreasItemService.updateById(item)) {
throw new CoolException("鏀惰揣鍖烘暟鎹洖婊氬け璐ワ紒锛�");
}
--
Gitblit v1.9.1