From 4c8b7a6e813b93b649576ca1a249f60cb9a5267b Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 29 五月 2025 13:56:29 +0800 Subject: [PATCH] 库存出库取消任务优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 64 +++++++++++++++++++++---------- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java | 7 +++ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/TaskService.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/TaskController.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java | 13 ++++++ 5 files changed, 64 insertions(+), 24 deletions(-) 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 7a915da..d58dd54 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 @@ -102,7 +102,7 @@ if (Objects.isNull(ids) || ids.length < 1) { return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - return taskService.removeTask(ids); + return taskService.removeTask(ids, getLoginUserId()); // return R.ok("Delete Success").add(ids); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java index da508bf..7569030 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java @@ -263,6 +263,19 @@ return dictDatas.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 getIsptResult$(){ if (Cools.isEmpty(this.isptResult)){ return null; 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 8acfa0d..7e4379e 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,7 +19,7 @@ // R completeTask(String id); void completeTask(List<Task> task) throws Exception; - R removeTask(Long[] ids); + R removeTask(Long[] ids, Long loginUserId); Task pickOrCheckTask(Long id, String oType) throws Exception; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java index e86379e..2e04767 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java @@ -156,7 +156,6 @@ } task.setTaskType(TaskType.TASK_TYPE_CHECK_OUT.type).setWarehType(deviceSite.getDevice()); - } if (!taskService.save(task)) { @@ -171,6 +170,9 @@ .setBatch(item.getBatch()) .setUpdateBy(loginUserId) .setCreateBy(loginUserId) + .setSource(item.getId()) + .setSourceId(item.getLocId()) + .setSourceCode(item.getLocCode()) .setCreateTime(new Date()) .setUpdateTime(new Date()) .setOrderType(OrderType.ORDER_OUT.type) @@ -299,6 +301,9 @@ .setAnfme(item.getAnfme()) .setBatch(item.getBatch()) .setUpdateBy(loginUserId) + .setSourceId(item.getLocId()) + .setSourceCode(item.getLocCode()) + .setSource(item.getId()) .setUpdateTime(new Date()) .setOrderType(OrderType.ORDER_IN.type) .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)); 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 fe0f865..3252593 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 @@ -579,11 +579,12 @@ * 浠诲姟鍙栨秷 * * @param ids + * @param loginUserId * @return */ @Override @Transactional(rollbackFor = Exception.class) - public R removeTask(Long[] ids) { + public R removeTask(Long[] ids, Long loginUserId) { List<Integer> longs = Arrays.asList(TaskStsType.GENERATE_IN.id, TaskStsType.GENERATE_OUT.id); List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_IN.type, TaskType.TASK_TYPE_OUT.type, TaskType.TASK_TYPE_EMPITY_IN.type, TaskType.TASK_TYPE_EMPITY_OUT.type, TaskType.TASK_TYPE_MERGE_OUT.type); List<Task> tasks = this.list(new LambdaQueryWrapper<Task>() @@ -593,24 +594,6 @@ throw new CoolException("浠诲姟宸插鎵ц鐘舵�佷笉鍙彇娑堬紒锛�"); } for (Task task : tasks) { - //鎭㈠缁勬墭鐘舵�� - WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() - .eq(WaitPakin::getBarcode, task.getBarcode()) - ); - if (null != waitPakin) { - waitPakin.setIoStatus(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.val)) { BasStation basStation = null; if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type) || task.getTaskType().equals(TaskType.TASK_TYPE_EMPITY_IN.type)) { @@ -637,8 +620,47 @@ } } - if (!taskItemService.remove(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()))) { - throw new CoolException("浠诲姟鏄庣粏鍒犻櫎澶辫触锛侊紒"); + List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); + if (!taskItems.isEmpty()) { + for (TaskItem item : taskItems) { + if (item.getOrderType().equals(OrderType.ORDER_OUT.type)) { + //鍑哄簱 + if (item.getWkType().equals(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type))) { + //搴撳瓨鍑哄簱 + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getId, item.getSourceId())); + if (Objects.isNull(loc)) { + throw new CoolException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉瀛樺湪锛侊紒"); + } + + loc.setUseStatus(LocStsType.LOC_STS_TYPE_F.type).setBarcode(task.getBarcode()).setUpdateBy(loginUserId).setUpdateTime(new Date()); + if (!locService.updateById(loc)) { + throw new CoolException("搴撲綅淇℃伅淇敼澶辫触锛侊紒"); + } + } + } else { + //鍏ュ簱 + //鎭㈠缁勬墭鐘舵�� + WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>() + .eq(WaitPakin::getBarcode, task.getBarcode())); + if (null != waitPakin) { + waitPakin.setIoStatus(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 (!taskItemService.remove(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()))) { + throw new CoolException("浠诲姟鏄庣粏鍒犻櫎澶辫触锛侊紒"); + } } } if (!this.removeByIds(Arrays.asList(ids))) { -- Gitblit v1.9.1