From 43efe016c156158b9fc3a8b647810f612fb126e6 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 02 九月 2025 11:39:52 +0800
Subject: [PATCH] 自动补货单新增 1.订单中只能生成两笔自动补货单 2.CTU库是否有足够的空库位,空库位数需要大于100才会生成自动补货单 3.在补货时加上订单明细的数量进行判断
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 49 ++++++++++++++++++++++++++++++-------------------
1 files changed, 30 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 19cd7bc..bbf8a2e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -22,10 +22,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* Created by vincent on 2022/4/9
@@ -116,7 +113,7 @@
for (DetlDto detail : orderDetails) {
DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
if (DetlDto.has(list, dto)) {
- DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
assert detlDto != null;
detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
} else {
@@ -161,7 +158,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
if (order.getSettle() == 4L) {
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -181,7 +178,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -251,7 +248,7 @@
for (DetlDto detail : orderDetails) {
DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
if (DetlDto.has(list, dto)) {
- DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+ DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
assert detlDto != null;
detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
} else {
@@ -295,7 +292,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
if (order.getSettle() == 4L) {
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -315,7 +312,7 @@
result.setOrderType(order.getDocType$());
List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
for (OrderDetl orderDetl : orderDetls) {
- result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+ //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
}
// 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -525,6 +522,16 @@
callApiLogSaveMES(param, null, param.getBarcode() + "锛氬伐浣滄槑缁嗘。宸插瓨鍦ㄦ鏁版嵁", false);
throw new CoolException("宸ヤ綔鏄庣粏妗e凡瀛樺湪姝ゆ暟鎹�===>>" + param.getBarcode());
}
+ List<CombParam.CombMat> combMats = param.getCombMats();
+ Map<String, String> map = new HashMap<>();
+ for (CombParam.CombMat combMat : combMats) {
+ String batch = Cools.isEmpty(combMat.getBatch()) ? "" : combMat.getBatch();
+ if (!Cools.isEmpty(map.get(combMat.getMatnr() + batch))) {
+ throw new CoolException(param.getBarcode() + "缁勬墭鐨勭墿鏂欐槑缁嗛噸澶�,璇锋鏌ユ槸鍚﹂噸澶嶆壂鐮�");
+ } else {
+ map.put(combMat.getMatnr() + batch, combMat.getMatnr());
+ }
+ }
Date now = new Date();
try{
@@ -532,8 +539,9 @@
List<DetlDto> detlDtos = new ArrayList<>();
param.getCombMats().forEach(elem -> {
DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+ detlDto.setContainerCode(elem.getContainerCode());
if (DetlDto.has(detlDtos, detlDto)) {
- DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+ DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
assert one != null;
one.setAnfme(one.getAnfme() + detlDto.getAnfme());
} else {
@@ -690,7 +698,7 @@
}
@Transactional
- public boolean syncOrder(Map<String, Object> param) {
+ public boolean syncOrder(Map<String, Object> param, boolean pakin) {
if(Cools.isEmpty(param) || Cools.isEmpty(param.get("orderDetails"))){
throw new CoolException("鍗曟嵁鍙傛暟涓虹┖鎴栬�呭崟鎹鎯呬负绌猴紝鏃犳硶鐢熸垚鍗曟嵁淇℃伅");
}
@@ -699,7 +707,7 @@
throw new CoolException("璇ュ崟鎹凡瀛樺湪锛屾棤娉曠敓鎴愬崟鎹俊鎭�");
}
Date now = new Date();
- Order order = orderMapping(param,now);
+ Order order = orderMapping(param,now,pakin);
orderService.insert(order);
List<Map<String, Object>> orderDetails = (List<Map<String, Object>>) param.get("orderDetails");
orderDetails.forEach(odParam -> {
@@ -727,7 +735,7 @@
return true;
}
- private Order orderMapping(Map<String, Object> param, Date now){
+ private Order orderMapping(Map<String, Object> param, Date now, boolean pakin){
Order order = new Order();
//uuid
order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
@@ -739,9 +747,9 @@
order.setOrderNo(toString(param.get("id")));
//涓氬姟绫诲瀷
//order.setDefNumber(param.get("cBusType").toString());
- order.setDefNumber(toString(param.get("cBusType")));
+ order.setDefNumber(toString(param.get("cVouchType")));
//鍗曟嵁绫诲瀷
- DocType docType = docTypeService.selectOrAdd(param.get("cVouchType").toString(), Boolean.TRUE);
+ DocType docType = docTypeService.selectOrAdd(param.get("cBusType").toString(), pakin);
order.setDocType(docType.getDocId());
//鍗曟嵁鏃ユ湡
//order.setOrderTime(param.get("dDate").toString());
@@ -799,13 +807,16 @@
//od.setAnfme(toString(odParam.get("iQuantity")));
//琛屽彿
//od.setBrand(odParam.get("irowno").toString());
- od.setBrand(toString(odParam.get("irowno")));
+ //od.setBrand(toString(odParam.get("irowno")));
+ od.setManu(toString(odParam.get("irowno")));
//閿�鍞鍗曞彿
//od.setColor(odParam.get("csocode").toString());
- od.setColor(toString(odParam.get("csocode")));
+ //od.setColor(toString(odParam.get("csocode")));
+ od.setThreeCode(toString(odParam.get("csocode")));
//閿�鍞鍗曡鍙�
//od.setOrigin(odParam.get("isoseq").toString());
- od.setOrigin(toString(odParam.get("isoseq")));
+ //od.setOrigin(toString(odParam.get("isoseq")));
+ od.setDeadTime(toString(odParam.get("isoseq")));
od.setStatus(1);
od.setQty(0.0D);
--
Gitblit v1.9.1