From 4f9902403a176d8e97def29caaf525dde3585393 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 23 七月 2025 12:43:49 +0800 Subject: [PATCH] 盘点差异单功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java | 65 +++++++++++++++++++------------- 1 files changed, 39 insertions(+), 26 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..41323b5 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 @@ -776,18 +776,6 @@ 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()) - .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("鐩樼偣鍗曟墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�"); - } - checkDiffItemService.remove(new LambdaQueryWrapper<CheckDiffItem>().eq(CheckDiffItem::getTaskItemId, taskItem.getId())); checkDiffService.removeById(taskItem.getSourceId()); @@ -997,19 +985,23 @@ 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("浠诲姟鏄庣粏淇敼澶辫触锛侊紒"); } } } + + }); }); List<Long> matnrIds = taskItems.stream().map(TaskItem::getMatnrId).collect(Collectors.toList()); @@ -1021,6 +1013,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 +1029,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 +1037,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 +1393,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