From 0ff532196c988263dac617fbfbbbc903df40159c Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 12 六月 2024 12:33:07 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OutController.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 96cb5b9..4eb5846 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -164,6 +164,57 @@
}
return R.ok();
}
+ @PostMapping("/process/out/pakout/auth")
+ @ManagerAuth(memo = "鍔犲伐鍑哄簱")
+ @Transactional
+ @Synchronized
+ public synchronized R processPakout(@RequestBody List<LocDto> locDtos) throws InterruptedException {
+
+ //鍒ゆ柇鏄惁鍙互鐢熸垚鍑哄簱宸ヤ綔妗�
+ boolean lack = true;
+ for (LocDto locDto : locDtos) {
+ //濡傛灉AGV鍑哄簱绔欎负绌� 鍜� 鍥涢」搴撳嚭搴撶珯涓虹┖ 骞朵笖 鏈夊簱瀛樼殑鎯呭喌涓� 鍒欒繑鍥�
+ if (Cools.isEmpty(locDto.getStaNo()) && Cools.isEmpty(locDto.getAgvStaNo()) &&!locDto.isLack()) {
+ return R.error(locDto.getLocNo()+"搴撲綅璇烽�夋嫨鍑哄簱绔�");
+ }
+
+ AgvLocMast agvLocMast = agvLocMastService.selectById(locDto.getLocNo());
+ List<String> staNoList = agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1(),agvLocMast.getFloor());
+
+ if(!staNoList.contains(locDto.getAgvStaNo())){
+ return R.error(locDto.getAgvStaNo()+"璇ョ珯鐐瑰凡鏈夊嚭搴撲换鍔★紝鏃犳硶閫夋嫨璇ョ珯鐐瑰嚭搴�");
+ }
+ }
+ //濡傛灉鎵�鏈夊簱閮芥病鏈夊簱瀛橈紝鍒欒繑鍥�
+ for (LocDto locDto : locDtos) {
+ if (!locDto.isLack()) {
+ lack = false;
+ break;
+ }
+ }
+ if (lack) {
+ return R.error("搴撳瓨涓嶈冻");
+ }
+ Thread.sleep(500L);
+
+ // 璁㈠崟棰勬牎楠� ===>> 1.璁㈠崟鐘舵�侊紱 2.璁㈠崟甯﹀嚭鏁伴噺
+ List<OrderDto> orderDtos = orderPreVerification(locDtos);
+
+ List<TaskDto> taskDtos = new ArrayList<>();
+ List<TaskDto> agvTaskDtos = new ArrayList<>();
+ generateTaskDto(locDtos,taskDtos,agvTaskDtos);
+
+ //鐢熸垚AGV鍑哄簱浠诲姟
+ agvWorkService.stockOutWrkMast(agvTaskDtos, getUserId());
+
+ // 鐢熸垚鍑哄簱浠诲姟
+ taskDtos.stream().map(TaskDto::getLocNo).distinct().collect(Collectors.toList());
+ for (TaskDto taskDto : taskDtos) {
+ BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+ workService.stockOut(staNo, taskDto, getUserId());
+ }
+ return R.ok();
+ }
/**
--
Gitblit v1.9.1