From ef72e4cffa64267ea19c72b08cce1d4e6c03bc88 Mon Sep 17 00:00:00 2001 From: youjie <272855983@qq.com> Date: Tue, 27 Feb 2024 08:41:23 +0800 Subject: [PATCH] 叠盘完成任务,清空库存数据 --- ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue | 2 +- huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java | 2 ++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java | 24 ++++++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java | 37 ++++++++++++++++++++----------------- 4 files changed, 47 insertions(+), 18 deletions(-) diff --git a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue index c0f2d83..77c99b6 100644 --- a/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue @@ -173,7 +173,7 @@ <a-divider type="vertical"/> </a-popconfirm> - <a-popconfirm v-if="record.status < 100 && record.taskType != 600 " v-has="'taskHeader:switchTask'" title="确定切换任务吗?" @confirm="() => switchTask(record)"> + <a-popconfirm v-if="record.status <= 10 && record.taskType != 600 " v-has="'taskHeader:switchTask'" title="确定切换任务吗?" @confirm="() => switchTask(record)"> <a-button type="danger">切换任务</a-button> </a-popconfirm> </span> diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java index aaf210f..1eb1a4a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryHeaderService.java @@ -53,4 +53,6 @@ public interface IInventoryHeaderService extends IService<InventoryHeader> { boolean updateInventory(String containerCode, String locationCode, String warehouseCode); Result qualityInventoryDetail(List<InventoryDetail> inventoryDetailList, String warehouseCode); + + Result clearInentory(String containerCode, String warehouseCode); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java index dbce079..55f9c05 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java @@ -541,4 +541,28 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe return Result.ok("生成质检任务成功"); } + @Override + @Transactional(rollbackFor = Exception.class) + public Result clearInentory(String containerCode, String warehouseCode) { + InventoryHeader inventoryHeader = inventoryHeaderService.getInventoryHeaderByContainerCode(containerCode, warehouseCode); + if (inventoryHeader == null) { + return Result.error("清空库存失败,没有找到库存头"); + } + List<InventoryDetail> inventoryDetailList = inventoryDetailService.getInventoryDetailListByInventoryHeaderId(inventoryHeader.getId()); + if (inventoryDetailList.size() == 0) { + return Result.error("清空库存失败,没有找到库存详情"); + } + List<Integer> inventoryDetailIds = inventoryDetailList.stream().map(InventoryDetail::getId).collect(Collectors.toList()); + if (!inventoryDetailService.removeByIds(inventoryDetailIds)) { + throw new JeecgBootException("清空库存失败,删除库存详情失败"); + } + if (!inventoryHeaderService.removeById(inventoryHeader.getId())) { + throw new JeecgBootException("清空库存失败,删除库存头失败"); + } + if (!containerService.updateFillStatus(containerCode, QuantityConstant.STATUS_CONTAINER_FILL_EMPTY, warehouseCode)) { + throw new JeecgBootException("清空库存失败,更新托盘状态失败"); + } + return Result.ok("清空库存成功"); + } + } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java index 78eaeb9..03df444 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java @@ -1061,23 +1061,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea case QuantityConstant.TASK_TYPE_WHOLESHIPMENT: case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT: result = taskHeaderService.completeShipmentTask(taskHeader); - if (foldFlag) { - String fromLocationCode = taskHeader.getFromLocationCode(); - String toLocationCode = taskHeader.getToLocationCode(); - String containerCode = taskHeader.getContainerCode(); - String warehouseCode = taskHeader.getWarehouseCode(); - if (!containerService.updateLocationCode(containerCode, QuantityConstant.EMPTY_STRING, warehouseCode)) { - throw new JeecgBootException("完成任务," + containerCode + " 叠盘清空容器数据失败"); - } - if (!locationService.updateContainerCode(fromLocationCode, QuantityConstant.EMPTY_STRING, warehouseCode)) { - throw new JeecgBootException("完成任务," + containerCode + " 叠盘清空起始库位失败"); - } - if (StringUtils.isNotEmpty(toLocationCode)) { - if (!locationService.updateContainerCode(toLocationCode, QuantityConstant.EMPTY_STRING, warehouseCode)) { - throw new JeecgBootException("完成任务," + containerCode + " 叠盘清空目标库位失败"); - } - } - } break; case QuantityConstant.TASK_TYPE_CYCLECOUNT: result = taskHeaderService.completeCycleCountTask(taskHeader); @@ -1109,6 +1092,26 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea default: throw new JeecgBootException("完成任务," + "不支持的任务类型" + taskType); } + if (foldFlag) { + String fromLocationCode = taskHeader.getFromLocationCode(); + String toLocationCode = taskHeader.getToLocationCode(); + String containerCode = taskHeader.getContainerCode(); + String warehouseCode = taskHeader.getWarehouseCode(); + if (!containerService.updateLocationCode(containerCode, QuantityConstant.EMPTY_STRING, warehouseCode)) { + throw new JeecgBootException("完成任务," + containerCode + " 叠盘清空容器数据失败"); + } + if (StringUtils.isNotEmpty(fromLocationCode)) { + if (!locationService.updateContainerCode(fromLocationCode, QuantityConstant.EMPTY_STRING, warehouseCode)) { + throw new JeecgBootException("完成任务," + containerCode + " 叠盘清空起始库位失败"); + } + } + if (StringUtils.isNotEmpty(toLocationCode)) { + if (!locationService.updateContainerCode(toLocationCode, QuantityConstant.EMPTY_STRING, warehouseCode)) { + throw new JeecgBootException("完成任务," + containerCode + " 叠盘清空目标库位失败"); + } + } + inventoryHeaderService.clearInentory(containerCode, warehouseCode); + } return result; } -- libgit2 0.22.2