From 8543b0accaf45e49362b4ae72799ace85d4673ab Mon Sep 17 00:00:00 2001
From: Administrator <1051256694@qq.com>
Date: 星期一, 16 三月 2026 09:04:08 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OutController.java | 66 +++++++++++++++++++++++++-------
1 files changed, 51 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index c8cf713..09d2037 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -14,8 +14,8 @@
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
+import lombok.extern.slf4j.Slf4j;
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;
@@ -29,6 +29,7 @@
* Created by vincent on 2022/3/26
*/
+@Slf4j
@RestController
public class OutController extends BaseController {
@@ -88,13 +89,17 @@
if (issued <= 0.0D) {
continue;
}
- List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist,orderDetl.getMatnr(), orderDetl.getBatch(),
- orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
+ List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist, orderDetl.getMatnr(), orderDetl.getBatch(),
+ orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3());
for (LocDetl locDetl : locDetls) {
if (issued > 0) {
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);
@@ -132,8 +137,8 @@
if (issued <= 0.0D) {
continue;
}
- List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist,orderDetl.getMatnr(), orderDetl.getBatch(),
- orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(),orderDetl.getBoxType1(),orderDetl.getBoxType2(),orderDetl.getBoxType3());
+ List<LocDetl> locDetls = locDetlService.queryStockAll(null, exist, orderDetl.getMatnr(), orderDetl.getBatch(),
+ orderDetl.getBrand(), orderDetl.getStandby1(), orderDetl.getStandby2(), orderDetl.getStandby3(), orderDetl.getBoxType1(), orderDetl.getBoxType2(), orderDetl.getBoxType3());
for (LocDetl locDetl : locDetls) {
if (issued > 0) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
@@ -177,14 +182,13 @@
@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);
}
List<LocDto> locDtoArrayList = new ArrayList<>();
- for (LocDto locDto : locDtos){
- if (locDto.getFrozen()!=1 && locDto.getFrozenLoc()!=1){
+ for (LocDto locDto : locDtos) {
+ if (locDto.getFrozen() != 1 && locDto.getFrozenLoc() != 1) {
locDtoArrayList.add(locDto);
}
}
@@ -208,7 +212,9 @@
List<TaskDto> taskDtos = new ArrayList<>();
// 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
for (LocDto locDto : locDtos) {
- if (locDto.isLack()) { continue; }
+ if (locDto.isLack()) {
+ continue;
+ }
TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto, locDto.getStandby1());
if (TaskDto.has(taskDtos, taskDto)) {
TaskDto dto = TaskDto.find(taskDtos, taskDto);
@@ -219,16 +225,46 @@
}
}
// -----------------------------------------------------------------------------------------------
+ int failCount = 0;
for (TaskDto taskDto : taskDtos) {
- BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
- if (!Objects.isNull(taskDto.getDeviceNo())) {
- //鐢熸垚鍑哄簱浠诲姟
- workService.stockOut(staNo, taskDto, taskDto.getDeviceNo(), getUserId());
- } else {
- workService.stockOut(staNo, taskDto, null, getUserId());
+ if (!stockOutSafely(taskDto, getUserId(), "鎵嬪姩璁㈠崟鍑哄簱")) {
+ failCount++;
}
+ }
+ if (failCount > 0) {
+ return R.ok("閮ㄥ垎鍑哄簱浠诲姟宸茬敓鎴愶紝鎴愬姛" + (taskDtos.size() - failCount) + "鏉★紝澶辫触" + failCount + "鏉★紝璇锋煡鐪嬫棩蹇�");
}
return R.ok();
}
+ private boolean stockOutSafely(TaskDto taskDto, Long userId, String scene) {
+ try {
+ BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+ workService.stockOut(staNo, taskDto, taskDto.getDeviceNo(), userId);
+ return true;
+ } catch (Exception e) {
+ log.error("{}澶辫触[locNo={}, staNo={}, deviceNo={}, orderNos={}]锛屽師鍥�: {}",
+ scene,
+ taskDto.getLocNo(),
+ taskDto.getStaNo(),
+ taskDto.getDeviceNo(),
+ collectOrderNos(taskDto),
+ getErrorMessage(e));
+ return false;
+ }
+ }
+
+ private String collectOrderNos(TaskDto taskDto) {
+ Set<String> orderNos = new LinkedHashSet<>();
+ for (LocDto locDto : taskDto.getLocDtos()) {
+ if (!Cools.isEmpty(locDto.getOrderNo())) {
+ orderNos.add(locDto.getOrderNo());
+ }
+ }
+ return orderNos.toString();
+ }
+
+ private String getErrorMessage(Exception e) {
+ return Cools.isEmpty(e.getMessage()) ? e.getClass().getSimpleName() : e.getMessage();
+ }
}
--
Gitblit v1.9.1