From 987f22ecac693908e6cc32de6eafef09e2c836b6 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 24 七月 2025 17:00:20 +0800 Subject: [PATCH] #增加只扫描托盘码的方式 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 62 +++++++++++++++++++++++-------- 1 files changed, 46 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 b269e33..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,6 +775,7 @@ } 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 -> { if (!checkOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>() .eq(WkOrderItem::getId, taskItem.getOrderItemId()) @@ -788,9 +789,15 @@ throw new CoolException("鐩樼偣鍗曟墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�"); } - checkDiffItemService.remove(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getTaskItemId, taskItem.getId())); + CheckDiffItem serviceOne = checkDiffItemService.getOne(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getTaskItemId, taskItem.getId())); - checkDiffService.removeById(taskItem.getSourceId()); + 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()); + } + } }); } @@ -997,13 +1004,15 @@ tempLocs.forEach(working -> { taskItems.forEach(taskItem -> { if (taskItem.getMatnrId().equals(working.getMatnrId())) { - Double minQty = Math.round((working.getAnfme() - taskItem.getAnfme()) * 10000) / 10000.0; + Double minQty = taskItem.getAnfme(); + if (!task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)) { + minQty = Math.round((working.getAnfme() - taskItem.getAnfme()) * 10000) / 10000.0; + } if (minQty.compareTo(0.0) > 0) { taskItem.setAnfme(minQty); if (!taskItemService.updateById(taskItem)) { throw new CoolException("浠诲姟鏄庣粏淇敼澶辫触锛侊紒"); } - } else { if (!taskItemService.removeById(taskItem)) { throw new CoolException("浠诲姟鏄庣粏淇敼澶辫触锛侊紒"); @@ -1021,6 +1030,8 @@ TaskItem taskItem = taskItems.stream().findFirst().get(); taskItem.setMatnrId(working.getMatnrId()) .setMaktx(working.getMaktx()) + .setMatnrId(working.getMatnrId()) + .setMatnrCode(working.getMatnrCode()) .setSpec(working.getSpec()) .setAnfme(working.getAnfme()) .setBatch(working.getBatch()) @@ -1035,7 +1046,7 @@ }); locItemWorkingService.remove(new LambdaQueryWrapper<LocItemWorking>().eq(LocItemWorking::getTaskId, task.getId())); - Loc loc1 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc())); + Loc loc1 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc())); if (Objects.isNull(loc1)) { throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦紒锛�"); } @@ -1043,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)) { @@ -1395,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