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 | 85 ++++++++++++++++++++++++++----------------
1 files changed, 53 insertions(+), 32 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 99122b0..09d2037 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -14,6 +14,7 @@
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.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -28,6 +29,7 @@
* Created by vincent on 2022/3/26
*/
+@Slf4j
@RestController
public class OutController extends BaseController {
@@ -87,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);
@@ -131,29 +137,8 @@
if (issued <= 0.0D) {
continue;
}
-
-// if (!Objects.isNull(orderDetl.getStandby1())) {
-// BasDevice basDevice = basDeviceService.selectOne(new EntityWrapper<BasDevice>().eq("dev_no", orderDetl.getStandby1()));
-// if (Objects.isNull(basDevice)) {
-// throw new CoolException("鏈哄彴淇℃伅涓嶅瓨鍦紒锛�");
-// }
-// List<LocAroundBind> binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>().eq("dev_no", basDevice.getDevNo()));
-// if (Objects.isNull(binds) || binds.isEmpty()) {
-// throw new CoolException("鍙版満鏈粦瀹氬伐浣滅珯鍙帮紒锛�");
-// }
-// Set<String> locs = binds.stream().map(LocAroundBind::getBLocNo).collect(Collectors.toSet());
-//
-// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-// .in("loc_no", locs)
-// .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type));
-//
-//
-// } else {
-//
-// }
-
- 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(),
@@ -164,7 +149,6 @@
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());
@@ -203,8 +187,8 @@
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);
}
}
@@ -228,8 +212,10 @@
List<TaskDto> taskDtos = new ArrayList<>();
// 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
for (LocDto locDto : locDtos) {
- if (locDto.isLack()) { continue; }
- TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+ 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);
assert dto != null;
@@ -239,11 +225,46 @@
}
}
// -----------------------------------------------------------------------------------------------
+ int failCount = 0;
for (TaskDto taskDto : taskDtos) {
- BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
- workService.stockOut(staNo, taskDto, 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