From 44b6b79dd5dee0ebbd2d11b08abbc2be275bed58 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 09 二月 2026 16:10:17 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OutController.java |   52 +++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 972d79c..c32005b 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -5,12 +5,17 @@
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.R;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.enums.LocStsType;
 import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.BasDeviceServiceImpl;
+import com.zy.asrs.service.impl.LocAroundBindServiceImpl;
 import com.zy.common.model.LocDto;
 import com.zy.common.model.TaskDto;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -46,6 +51,10 @@
 
     @Resource
     private OrderPakoutService orderPakOutService;
+    @Autowired
+    private BasDeviceService basDeviceService;
+    @Autowired
+    private LocAroundBindService locAroundBindService;
 
 
     @PostMapping("/out/pakout/orderDetlIds/auth")
@@ -68,7 +77,6 @@
         }
 
         List<LocDto> locDtos = new ArrayList<>();
-
         Set<String> exist = new HashSet<>();
 
         // 鑾峰彇璁㈠崟涓昏〃
@@ -87,9 +95,20 @@
                         LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                                 issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
                         LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                        LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", locMast.getLocNo()));
+                        if (!Cools.isEmpty(bLocNo)) {
+                            continue;
+                        }
                         locDto.setFrozen(locDetl.getFrozen());
                         locDto.setFrozenLoc(locMast.getFrozen());
                         List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), 107);
+                        locDto.setBrand(orderDetl.getBrand());
+                        locDto.setStandby1(orderDetl.getStandby1());
+                        locDto.setStandby2(orderDetl.getStandby2());
+                        locDto.setStandby3(orderDetl.getStandby3());
+                        locDto.setBoxType1(orderDetl.getBoxType1());
+                        locDto.setBoxType2(orderDetl.getBoxType2());
+                        locDto.setBoxType3(orderDetl.getBoxType3());
                         locDto.setStaNos(staNos);
                         locDtos.add(locDto);
                         // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
@@ -100,6 +119,13 @@
                 }
                 if (issued > 0) {
                     LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                    locDto.setBrand(orderDetl.getBrand());
+                    locDto.setStandby1(orderDetl.getStandby1());
+                    locDto.setStandby2(orderDetl.getStandby2());
+                    locDto.setStandby3(orderDetl.getStandby3());
+                    locDto.setBoxType1(orderDetl.getBoxType1());
+                    locDto.setBoxType2(orderDetl.getBoxType2());
+                    locDto.setBoxType3(orderDetl.getBoxType3());
                     locDto.setLack(Boolean.TRUE);
                     locDtos.add(locDto);
                 }
@@ -121,6 +147,13 @@
                         locDto.setFrozenLoc(locMast.getFrozen());
                         List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
                         locDto.setStaNos(staNos);
+                        locDto.setBrand(orderDetl.getBrand());
+                        locDto.setStandby1(orderDetl.getStandby1());
+                        locDto.setStandby2(orderDetl.getStandby2());
+                        locDto.setStandby3(orderDetl.getStandby3());
+                        locDto.setBoxType1(orderDetl.getBoxType1());
+                        locDto.setBoxType2(orderDetl.getBoxType2());
+                        locDto.setBoxType3(orderDetl.getBoxType3());
                         locDtos.add(locDto);
                         exist.add(locDetl.getLocNo());
                         // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
@@ -131,6 +164,13 @@
                 }
                 if (issued > 0) {
                     LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
+                    locDto.setBrand(orderDetl.getBrand());
+                    locDto.setStandby1(orderDetl.getStandby1());
+                    locDto.setStandby2(orderDetl.getStandby2());
+                    locDto.setStandby3(orderDetl.getStandby3());
+                    locDto.setBoxType1(orderDetl.getBoxType1());
+                    locDto.setBoxType2(orderDetl.getBoxType2());
+                    locDto.setBoxType3(orderDetl.getBoxType3());
                     locDto.setLack(Boolean.TRUE);
                     locDtos.add(locDto);
                 }
@@ -141,6 +181,7 @@
 
     @PostMapping("/out/pakout/auth")
     @ManagerAuth(memo = "璁㈠崟鍑哄簱")
+    @Transactional
     public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException {
         if (Cools.isEmpty(locDtos)) {
             return R.parse(BaseRes.PARAM);
@@ -172,7 +213,7 @@
         // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
         for (LocDto locDto : locDtos) {
             if (locDto.isLack()) { continue; }
-            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto, locDto.getStandby1());
             if (TaskDto.has(taskDtos, taskDto)) {
                 TaskDto dto = TaskDto.find(taskDtos, taskDto);
                 assert dto != null;
@@ -184,7 +225,12 @@
         // -----------------------------------------------------------------------------------------------
         for (TaskDto taskDto : taskDtos) {
             BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
-            workService.stockOut(staNo, taskDto, getUserId());
+            if (!Objects.isNull(taskDto.getDeviceNo())) {
+                //鐢熸垚鍑哄簱浠诲姟
+                workService.stockOut(staNo, taskDto, taskDto.getDeviceNo(), getUserId());
+            } else  {
+                workService.stockOut(staNo, taskDto, null, getUserId());
+            }
         }
         return R.ok();
     }

--
Gitblit v1.9.1