From 2e550be60b3bbd14a61695489ec1fc242fd0e38a Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 25 六月 2025 13:22:19 +0800 Subject: [PATCH] #出库完成变为等待确认 --- rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java | 2 ++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java | 8 ++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java | 43 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java index fbff6e4..9996357 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java @@ -31,6 +31,14 @@ } @PreAuthorize("hasAuthority('manager:task:list')") + @GetMapping("/saveOutTaskSts/{barcode}") + @ApiOperation("蹇�熸嫞璐ф煡璇�") + public R saveOutTaskSts(@PathVariable String barcode) { + + return pdaOutStockService.saveOutTaskSts(barcode); + } + + @PreAuthorize("hasAuthority('manager:task:list')") @PostMapping("/getWaveList") @ApiOperation("鏌ヨ娉㈡鍒楄〃") public R getWaveListItem(@RequestBody Map<String, String> map) { diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java index 8baeade..0cb81ca 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaOutStockService.java @@ -15,4 +15,6 @@ R getContainerWaveList(Map<String, String> map); R saveWavePick(ContainerWaveParam containerWaveParam,Long loginUserId); + + R saveOutTaskSts(String barcode); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java index ea902c4..58fe8c0 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java @@ -9,9 +9,11 @@ import com.vincent.rsf.server.api.service.PdaOutStockService; import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.enums.AsnExceStatus; +import com.vincent.rsf.server.manager.enums.TaskResouceType; import com.vincent.rsf.server.manager.enums.TaskStsType; import com.vincent.rsf.server.manager.enums.WaveExceStatus; import com.vincent.rsf.server.manager.service.*; +import lombok.Synchronized; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -22,6 +24,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; @Service public class PdaOutStockServiceImpl implements PdaOutStockService { @@ -55,6 +58,33 @@ } @Override + public R saveOutTaskSts(String barcode) { + LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Task::getBarcode, barcode); + Task task = taskService.getOne(lambdaQueryWrapper); + if (null == task){ + throw new CoolException("鏈壘鍒板鍣ㄥ彿瀵瑰簲浠诲姟"); + } + if (!task.getTaskStatus().equals(TaskStsType.AWAIT.id)){ + return R.error("浠诲姟鐘舵�佷笉鏄瓑寰呯‘璁�"); + } + List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); + Map<Long, List<TaskItem>> maps = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getSource)); + maps.keySet().forEach(key -> { + AsnOrderItem orderItem = asnOrderItemService.getById(key); + if (Objects.isNull(orderItem)) { + throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�"); + } + }); + task.setTaskStatus(TaskStsType.COMPLETE_OUT.id); + if (!taskService.updateById(task)){ + return R.error("鏇存柊浠诲姟鐘舵�佸け璐�"); + } + + return R.ok("纭鎴愬姛"); + } + + @Override public R getWaveListItem(String barcode) { LambdaQueryWrapper<Wave> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(!Cools.isEmpty(barcode),Wave::getCode,barcode); @@ -73,8 +103,8 @@ if (null == task){ throw new CoolException("鏈壘鍒板鍣ㄥ彿瀵瑰簲浠诲姟"); } - if (task.getTaskStatus().equals(TaskStsType.COMPLETE_OUT.id)){ - throw new CoolException("褰撳墠鐘舵�佷负涓嶅彲鎷h揣鐘舵��"); + if (!task.getTaskStatus().equals(TaskStsType.AWAIT.id)){ + return R.error("浠诲姟鐘舵�佷笉鏄瓑寰呯‘璁�"); } ArrayList<ContainerWaveDto> containerWaveDtos = new ArrayList<>(); List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); @@ -108,6 +138,7 @@ @Override @Transactional(rollbackFor = Exception.class) + @Synchronized public R saveWavePick(ContainerWaveParam containerWaveParam, Long loginUserId) { if (null == containerWaveParam || containerWaveParam.getContainerWaveDtos().size() <= 0){ return R.error("鍙傛暟閿欒"); @@ -115,6 +146,9 @@ Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode,containerWaveParam.getContainer())); if (null == task){ return R.error("鏈壘鍒版墭鐩樺搴旂殑浠诲姟"); + } + if (!task.getTaskStatus().equals(TaskStsType.AWAIT.id)){ + return R.error("浠诲姟鐘舵�佷笉鏄瓑寰呯‘璁�"); } for (ContainerWaveDto containerWaveDto : containerWaveParam.getContainerWaveDtos()) { @@ -125,7 +159,8 @@ if (!anfme.equals(total)){ throw new CoolException("鎾鏁伴噺涓嶇瓑浜庡鍣ㄥ嚭搴撴暟閲忥紝璇锋鏌�"); } - for (AsnOrderItem orderItem : containerWaveDto.getAsnOrderItems()) { + for (AsnOrderItem oldOrderItem : containerWaveDto.getAsnOrderItems()) { + AsnOrderItem orderItem = asnOrderItemService.getById(oldOrderItem.getId()); if (Double.compare(orderItem.getDemandQty(), 0.0) == 0) { continue; } @@ -175,6 +210,8 @@ return R.ok(); } + + private Boolean checkWaveComplete(TaskItem taskItem) { Wave wave = waveService.getById(taskItem.getSourceId()); List<AsnOrder> asnOrderList = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getWaveId, wave.getId())); -- Gitblit v1.9.1