From 94aafd2a215bdf9377bdc4e2d67e4599c768eb71 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 11 九月 2024 19:07:19 +0800
Subject: [PATCH] #
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java | 98 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 96 insertions(+), 2 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
index faa4b8d..ba2a50e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -52,7 +52,12 @@
private OperationPortService operationPortService;
@Autowired
private OrderUtils orderUtils;
-
+ @Autowired
+ private OrderNoRuleService orderNoRuleService;
+ @Autowired
+ private WaveService waveService;
+ @Autowired
+ private WaveDetlService waveDetlService;
/**
* 鍑哄簱
@@ -330,6 +335,8 @@
Long locId = entry.getKey();
List<OrderOutBatchPreviewDto> previewDtos = entry.getValue();
Boolean all = outUtils.isAllForPreview(locId, previewDtos);
+ OrderOutBatchPreviewDto previewDto = previewDtos.get(0);
+ Long operationPortId = previewDto.getOperationPort();
Loc loc = locService.getById(locId);
if (loc == null) {
@@ -338,6 +345,11 @@
if (!loc.getLocStsId().equals(LocStsType.F.val())) {
continue;
+ }
+
+ OperationPort operationPort = operationPortService.getById(operationPortId);
+ if (operationPort == null) {
+ throw new CoolException("浣滀笟鍙d笉瀛樺湪");
}
@@ -349,7 +361,7 @@
task.setTaskType(taskType);
task.setIoPri(workService.generateIoPri(taskType));
task.setOriginLoc(loc.getLocNo());
- task.setTargetSite("A");
+ task.setTargetSite(operationPort.getFlag());
task.setBarcode(loc.getBarcode());
boolean res = taskService.save(task);
if (!res) {
@@ -719,4 +731,86 @@
}
+ @Transactional
+ public void generateWave(List<Long> orderIds) {
+ if (orderIds == null) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ if (orderIds.isEmpty()) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ List<Order> orderList = orderService.listByIds(orderIds);
+ if (orderList.isEmpty()) {
+ throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+ }
+
+ for (Order order : orderList) {
+ if (order.getWaveId() != null) {
+ throw new CoolException("褰撳墠璁㈠崟涓凡缁忕敓鎴愭尝娆�");
+ }
+ }
+
+ String waveNo = orderNoRuleService.getOrderNo(3);
+ Wave wave = new Wave();
+ wave.setWaveNo(waveNo);
+ wave.setWaveType(0);
+ if (!waveService.save(wave)) {
+ throw new CoolException("娉㈡鐢熸垚澶辫触");
+ }
+
+ for (Order order : orderList) {
+ WaveDetl waveDetl = new WaveDetl();
+ waveDetl.setWaveNo(waveNo);
+ waveDetl.setWaveId(wave.getId());
+ waveDetl.setOrderId(order.getId());
+ waveDetl.setOrderNo(order.getOrderNo());
+ if (!waveDetlService.save(waveDetl)) {
+ throw new CoolException("娉㈡鏄庣粏鐢熸垚澶辫触");
+ }
+
+ order.setWaveId(wave.getId());
+ order.setWaveNo(waveNo);
+ order.setUpdateTime(new Date());
+ if (!orderService.updateById(order)) {
+ throw new CoolException("璁㈠崟鍙嶅啓娉㈡澶辫触");
+ }
+ }
+
+ }
+
+ @Transactional
+ public void cancelWave(List<Long> waveIds) {
+ if (waveIds == null) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ if (waveIds.isEmpty()) {
+ throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+ }
+
+ List<Wave> waves = waveService.listByIds(waveIds);
+ if (waves.isEmpty()) {
+ throw new CoolException("娉㈡涓嶅瓨鍦�");
+ }
+
+ for (Wave wave : waves) {
+ List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()));
+ for (WaveDetl waveDetl : waveDetls) {
+ Order order = orderService.getById(waveDetl.getOrderId());
+ order.setWaveId(null);
+ order.setWaveNo(null);
+ if (!orderService.updateById(order)) {
+ throw new CoolException("璁㈠崟鍙嶅啓澶辫触");
+ }
+
+ waveDetlService.removeById(waveDetl.getId());
+ }
+
+ waveService.removeById(wave.getId());
+ }
+
+ }
+
}
--
Gitblit v1.9.1