From 5c90daa2c919f3f07df0a154ff91f0e015bf8d66 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 24 七月 2025 17:07:28 +0800 Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 68 ++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 16 deletions(-) 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 71a4afc..c536971 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 @@ -775,10 +775,29 @@ } else if (task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) { List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, Arrays.asList(ids))); if (!taskItems.isEmpty()) { - taskItems.forEach(taskItem -> { - checkDiffItemService.remove(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getTaskItemId, taskItem.getId())); - checkDiffService.removeById(taskItem.getSourceId()); + taskItems.forEach(taskItem -> { + if (!checkOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>() + .eq(WkOrderItem::getId, taskItem.getOrderItemId()) + .setSql("work_qty = work_qty - " + taskItem.getAnfme()))) { + throw new CoolException("鏄庣粏鏁伴噺淇敼澶辫触锛侊紒"); + } + + if (!checkOrderService.update(new LambdaUpdateWrapper<WkOrder>() + .eq(WkOrder::getId, taskItem.getOrderId()) + .setSql("work_qty = work_qty - " + taskItem.getAnfme()))) { + throw new CoolException("鐩樼偣鍗曟墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�"); + } + + CheckDiffItem serviceOne = checkDiffItemService.getOne(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getTaskItemId, taskItem.getId())); + + checkDiffItemService.remove(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getTaskItemId, taskItem.getId())); + if (!Objects.isNull(serviceOne)) { + CheckDiff checkDiff = checkDiffService.getById(serviceOne.getCheckId()); + if (!Objects.isNull(checkDiff)) { + checkDiffService.removeById(checkDiff.getId()); + } + } }); } @@ -1000,8 +1019,6 @@ } } } - - }); }); List<Long> matnrIds = taskItems.stream().map(TaskItem::getMatnrId).collect(Collectors.toList()); @@ -1037,10 +1054,14 @@ List<LocItemWorking> workings = new ArrayList<>(); List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); items.forEach(taskItem -> { - LocItemWorking itemWorking = new LocItemWorking(); - BeanUtils.copyProperties(taskItem, itemWorking); - itemWorking.setTaskId(task.getId()).setLocId(loc1.getId()).setLocCode(loc1.getCode()); - workings.add(itemWorking); + if (taskItem.getAnfme() > 0) { + LocItemWorking itemWorking = new LocItemWorking(); + BeanUtils.copyProperties(taskItem, itemWorking); + itemWorking.setTaskId(task.getId()) + .setLocId(loc1.getId()) + .setLocCode(loc1.getCode()); + workings.add(itemWorking); + } }); if (!locItemWorkingService.saveBatch(workings)) { @@ -1389,14 +1410,29 @@ List<LocItem> locItems = new ArrayList<>(); items.forEach(taskItem -> { Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()), false); + if (Objects.isNull(loc)) { + throw new CoolException("搴撲綅涓嶅瓨鍦紒锛�"); + } LocItem item = new LocItem(); - BeanUtils.copyProperties(taskItem, item); - item.setLocCode(loc.getCode()).setId(null) - .setLocId(loc.getId()) - .setUpdateBy(loginUserId) - .setWkType(taskItem.getWkType()) - .setType(taskItem.getOrderType()); - locItems.add(item); + LocItem locItem = locItemService.getOne(new LambdaQueryWrapper<LocItem>() + .eq(LocItem::getMatnrId, taskItem.getMatnrId()) + .eq(LocItem::getLocId, loc.getId()) + .eq(StringUtils.isNoneBlank(taskItem.getBatch()), LocItem::getBatch, taskItem.getBatch()) + .eq(StringUtils.isNoneBlank(taskItem.getFieldsIndex()), LocItem::getFieldsIndex, taskItem.getFieldsIndex())); + if (Objects.isNull(locItem)) { + BeanUtils.copyProperties(taskItem, item); + item.setLocCode(loc.getCode()) + .setId(null) + .setLocId(loc.getId()) + .setUpdateBy(loginUserId) + .setWkType(taskItem.getWkType()) + .setType(taskItem.getOrderType()); + locItems.add(item); + } else { + locItem.setAnfme(Math.round((locItem.getAnfme() + taskItem.getAnfme()) * 10000) / 10000.0) + .setUpdateTime(new Date()); + locItems.add(locItem); + } }); if (!locItemService.saveBatch(locItems)) { throw new CoolException("搴撲綅鏄庣粏鏇存柊澶辫触锛侊紒"); -- Gitblit v1.9.1