From e2e642848e9a75cd5915cf349453d71d31838b68 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期日, 23 十一月 2025 13:40:53 +0800
Subject: [PATCH] *分拣流程orderNo由唯一降级为不唯一
---
src/main/java/com/zy/asrs/entity/param/OrderToLine.java | 11 ++-
src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java | 2
src/main/java/com/zy/asrs/entity/BasArmMast.java | 2
src/main/java/com/zy/asrs/controller/OpenController.java | 9 ++-
src/main/java/com/zy/asrs/entity/param/TaskArmReportParam.java | 1
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java | 106 ++++++++++++++++++++--------------
src/main/java/com/zy/asrs/utils/ToSortLineUtils.java | 22 +++---
7 files changed, 89 insertions(+), 64 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 5d4837d..25f2539 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -243,9 +243,12 @@
if (Cools.isEmpty(param.getUpc())) {
return R.error("UPC[upc]涓嶈兘涓虹┖");
}
- if (Cools.isEmpty(param.getSupplier())) {
- return R.error("璐ф簮[supplier]涓嶈兘涓虹┖");
+ if (Cools.isEmpty(param.getItem())) {
+ return R.error("UPC[item]涓嶈兘涓虹┖");
}
+// if (Cools.isEmpty(param.getSupplier())) {
+// return R.error("璐ф簮[supplier]涓嶈兘涓虹┖");
+// }
if (Cools.isEmpty(param.getStaNo())) {
return R.error("鍒嗘嫞鐐逛綅[staNo]涓嶈兘涓虹┖");
}
@@ -406,7 +409,7 @@
/**
- * 鍒嗘嫞绾夸笂鎶ユ帴鏀�
+ * AGV涓婃姤鎺ユ敹
*/
@PostMapping("/agv/task/v1/agvCallback")
@AppAuth(memo = "AGV涓婃姤鎺ユ敹")
diff --git a/src/main/java/com/zy/asrs/entity/BasArmMast.java b/src/main/java/com/zy/asrs/entity/BasArmMast.java
index 79f3d7b..8b94834 100644
--- a/src/main/java/com/zy/asrs/entity/BasArmMast.java
+++ b/src/main/java/com/zy/asrs/entity/BasArmMast.java
@@ -130,7 +130,7 @@
public BasArmMast(TaskArmReportParam param) {
this.orderNo = param.getOrderNo();
this.sku = param.getSku();
- this.matnr = param.getSku();
+ this.matnr = param.getItem();
this.po = param.getPo();
this.upc = param.getUpc();
this.supplier = param.getSupplier();
diff --git a/src/main/java/com/zy/asrs/entity/param/OrderToLine.java b/src/main/java/com/zy/asrs/entity/param/OrderToLine.java
index d0c0b14..4999bae 100644
--- a/src/main/java/com/zy/asrs/entity/param/OrderToLine.java
+++ b/src/main/java/com/zy/asrs/entity/param/OrderToLine.java
@@ -26,6 +26,9 @@
@Data
public static class MatList {
+ // Sku\鍨嬪彿\鍒嗘嫞灞炴��1\涓嶅彲涓虹┖\鎵爜鍙幏鍙�
+ private String item;
+
// Sku\瀹汉鍨嬪彿\鍒嗘嫞灞炴��1\涓嶅彲涓虹┖\鎵爜鍙幏鍙�
private String sku;
@@ -43,8 +46,8 @@
//0锛氫笉鍒嗘嫞锛屽湪绾夸綋寰幆
private Integer sign;
- //璐ф簮\闈炲垎鎷e睘鎬э紙涓嶄笅鍙戯紝鏁版嵁鍦ㄦ潯鐮佷腑锛岄渶涓婃姤锛�
- private String supplier;
+ //璐ф簮\闈炲垎鎷e睘鎬э紙涓嶄笅鍙戯紝鏁版嵁鍦ㄦ潯鐮佷腑锛岄渶涓婃姤锛� 搴熷純
+// private String supplier;
//缁戝畾鏍囪锛堟爣璇嗙浉鍚屽繀椤诲幓鍚屼竴涓垎鎷e彛锛�
private Long bindingTags;
@@ -55,13 +58,13 @@
this.sku = sku;
this.po = po;
}
- public MatList(String sku, String po, Double ctns, String upc, Integer sign, String supplier, Long bindingTags) {
+ public MatList(String item, String sku, String po, Double ctns, String upc, Integer sign, Long bindingTags) {
+ this.item = item;
this.sku = sku;
this.po = po;
this.ctns = ctns;
this.upc = upc;
this.sign = sign;
- this.supplier = supplier;
this.bindingTags = bindingTags;
}
}
diff --git a/src/main/java/com/zy/asrs/entity/param/TaskArmReportParam.java b/src/main/java/com/zy/asrs/entity/param/TaskArmReportParam.java
index 503d252..1287673 100644
--- a/src/main/java/com/zy/asrs/entity/param/TaskArmReportParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/TaskArmReportParam.java
@@ -15,6 +15,7 @@
private String sku;
//瀹汉PO
private String po;
+ private String item;
//鏉$爜鍊�
private String upc;
//璐ф簮
diff --git a/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java b/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
index 8786ba7..21c424b 100644
--- a/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
@@ -44,59 +44,77 @@
//閬嶅巻鍗曟嵁
for (String orderNo : orderNos) {
try{
- List<OrderDetlPakin> orderDetlPakinList = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo));
- if (orderDetlPakinList.size()<1){
+ List<OrderDetlPakin> orderDetlPakinListAll = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo).eq("inspect",0));
+ if (orderDetlPakinListAll.size()<1){
+ orderPakinService.updateOrderStatus(orderNo); //鏇存柊璁㈠崟鐘舵�� 0 -> 1
continue;
}
- List<ItemUtilParam.Item> items = new ArrayList<>();
- for (OrderDetlPakin orderDetl:orderDetlPakinList){
- Integer number = basArmRulesService.getNumber(orderDetl.getWeight(),orderDetl.getVolume(),orderDetl.getManLength(),orderDetl.getWidth(),orderDetl.getHeight());
- if (number == null) {
- BasArmRules basArmRules = new BasArmRules();
- basArmRules.setMaterialHeight(orderDetl.getHeight());
- basArmRules.setMaterialWeight(orderDetl.getWeight());
- basArmRules.setMaterialLength(orderDetl.getManLength());
- basArmRules.setMaterialWidth(orderDetl.getWidth());
- basArmRulesService.insert(basArmRules);
- return;
- } else if (number == 0){
- return;
+ List<String> boxType3List = new ArrayList<>();
+ for (OrderDetlPakin orderDetl:orderDetlPakinListAll){
+ if (!boxType3List.contains(orderDetl.getBoxType3())){
+ boxType3List.add(orderDetl.getBoxType3());
}
- String name = ToSortLineUtils.MergerParameter(orderDetl.getMatnr(),orderDetl.getStandby1(),orderDetl.getStandby2());
- int maxCapacity = number;
- int stock = orderDetl.getAnfme().intValue();
- items.add(new ItemUtilParam.Item(name, maxCapacity, stock));
}
+ for (String boxType3 : boxType3List){
+ List<OrderDetlPakin> orderDetlPakinList = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_no",orderNo).eq("box_type3",boxType3).eq("inspect",0));
+ if (orderDetlPakinList.size()<1){
+ continue;
+ }
+ List<ItemUtilParam.Item> items = new ArrayList<>();
+ for (OrderDetlPakin orderDetl:orderDetlPakinList){
+ Integer number = basArmRulesService.getNumber(orderDetl.getWeight(),orderDetl.getVolume(),orderDetl.getManLength(),orderDetl.getWidth(),orderDetl.getHeight());
+ if (number == null) {
+ BasArmRules basArmRules = new BasArmRules();
+ basArmRules.setMaterialHeight(orderDetl.getHeight());
+ basArmRules.setMaterialWeight(orderDetl.getWeight());
+ basArmRules.setMaterialLength(orderDetl.getManLength());
+ basArmRules.setMaterialWidth(orderDetl.getWidth());
+ basArmRulesService.insert(basArmRules);
+ return;
+ } else if (number == 0){
+ return;
+ }
+ String name = ToSortLineUtils.MergerParameter(orderDetl.getMatnr(),orderDetl.getStandby3(),orderDetl.getStandby1(),orderDetl.getStandby2());
+ int maxCapacity = number;
+ int stock = orderDetl.getAnfme().intValue();
+ items.add(new ItemUtilParam.Item(name, maxCapacity, stock));
+ }
- OrderToLine orderToLine = new OrderToLine();
- orderToLine.setOrderNo(orderNo); //鍗曟嵁缂栧彿
- orderToLine.setCreateTime(System.currentTimeMillis()); //鍒涘缓鏃堕棿
- OrderToLine orderToLineR = ToSortLineUtils.GetOrderToLine(items, orderToLine,"Opt3");
+ OrderToLine orderToLine = new OrderToLine();
+ orderToLine.setOrderNo(boxType3); //鍗曟嵁缂栧彿
+ orderToLine.setCreateTime(System.currentTimeMillis()); //鍒涘缓鏃堕棿
+ OrderToLine orderToLineR = ToSortLineUtils.GetOrderToLine(items, orderToLine,"Opt3");
- try{
- ReturnT<String> returnT = orderToLineHandler.start(orderToLineR);
- if (!returnT.isSuccess()) {
+ try{
+ ReturnT<String> returnT = orderToLineHandler.start(orderToLineR);
+ if (!returnT.isSuccess()) {
// log.error("涓嬪彂鍗曟嵁澶辫触===>"+ JSON.toJSON(orderToLineR));
- } else {
- try{
- for (OrderToLine.MatList matList:orderToLineR.getMatList()){
- BasArmMastSign basArmMastSign = new BasArmMastSign();
- basArmMastSign.setMatnr(matList.getSku());
- basArmMastSign.setOrderNo(orderNo);
- basArmMastSign.setSku(matList.getSku());
- basArmMastSign.setPo(matList.getPo());
- basArmMastSign.setUpc(matList.getUpc());
- basArmMastSign.setSupplier(matList.getSupplier());
- basArmMastSign.setStatus(0);
- basArmMastSign.setAnfme(matList.getCtns());
- basArmMastSign.setCreateTime(matList.getBindingTags());
- basArmMastSignService.insert(basArmMastSign);
- }
- }catch (Exception e){}
+ } else {
+ try{
+ for (OrderToLine.MatList matList:orderToLineR.getMatList()){
+ BasArmMastSign basArmMastSign = new BasArmMastSign();
+ basArmMastSign.setMatnr(matList.getItem());
+ basArmMastSign.setOrderNo(boxType3);//b3
+ basArmMastSign.setSku(matList.getSku());//s3
+ basArmMastSign.setPo(matList.getPo());//s1
+ basArmMastSign.setUpc(matList.getUpc());//s2
+// basArmMastSign.setSupplier(matList.getSupplier());
+ basArmMastSign.setStatus(0);
+ basArmMastSign.setAnfme(matList.getCtns());
+ basArmMastSign.setCreateTime(matList.getBindingTags());
+ basArmMastSignService.insert(basArmMastSign);
+ }
+ for (OrderDetlPakin orderDetl:orderDetlPakinList){
+ orderDetl.setInspect(1);
+ orderDetlPakinService.updateById(orderDetl);
+ }
+ }catch (Exception e){}
+ }
+ } catch (Exception e){
+ log.error("涓嬪彂鍗曟嵁寮傚父===>"+e.getMessage());
}
- } catch (Exception e){
- log.error("涓嬪彂鍗曟嵁寮傚父===>"+e.getMessage());
}
+
} catch (Exception e){
log.error("涓嬪彂鍗曟嵁寮傚父,璺宠浆涓嬩竴涓鍗�===>"+e.getMessage());
}
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java
index 9e017d2..062ff44 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderToLineHandler.java
@@ -61,7 +61,7 @@
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
success = true;
- orderPakinService.updateOrderStatus(orderToline.getOrderNo()); //鏇存柊璁㈠崟鐘舵�� 0 -> 1
+// orderPakinService.updateOrderStatus(orderToline.getOrderNo()); //鏇存柊璁㈠崟鐘舵�� 0 -> 1
} else {
log.error("涓嬪彂鍗曟嵁锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+Path, JSON.toJSONString(orderToline), response);
throw new CoolException("涓嬪彂鍗曟嵁澶辫触");
diff --git a/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java b/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java
index b4d5ad4..bfc3316 100644
--- a/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java
+++ b/src/main/java/com/zy/asrs/utils/ToSortLineUtils.java
@@ -32,8 +32,8 @@
System.out.println("\n" + solution);
}
- public static String MergerParameter(String sku,String po,String upc){
- return sku+sign_F+po+sign_F+upc;
+ public static String MergerParameter(String item,String sku,String po,String upc){
+ return item+sign_F+sku+sign_F+po+sign_F+upc;
}
public static OrderToLine GetOrderToLine(List<ItemUtilParam.Item> items, OrderToLine orderToLine,String sign){
@@ -62,14 +62,14 @@
for (OptimizedLockerPackingUtils.Locker locker:packingSolution.lockers) {
for (String mantnr : locker.contents.keySet()){
System.out.println(mantnr+"<===>"+locker.contents.get(mantnr));
- String[] split = mantnr.split(Pattern.quote(sign_F));
+ String[] split = mantnr.split(Pattern.quote(sign_F),-1);
OrderToLine.MatList mat = new OrderToLine.MatList(
- split[0], // matnr -> sku
- split[1], // supp -> po -> s1
+ split[0], // matnr -> matnr -> item
+ split[1], // sku -> sku
+ split[2], // standby1 -> po -> s1
locker.contents.get(mantnr).doubleValue(), //鏁存枡
- split[2], //barcode -> upc -> s2
+ split[3], //standby2 -> upc -> s2
1,
- null, //origin -> supplier 璐ф簮
locker.bindingTags
);
matLists.add(mat);
@@ -89,12 +89,12 @@
// System.out.println(mantnr+"<===>"+locker.contents.get(mantnr));
String[] split = mantnr.split(Pattern.quote(sign_F),-1);
OrderToLine.MatList mat = new OrderToLine.MatList(
- split[0], // matnr -> sku
- split[1], // supp -> po -> s1
+ split[0], // matnr -> item -> matnr
+ split[1], // standby3 -> sku -> standby3
+ split[2], // standby1 -> po -> standby1
locker.contents.get(mantnr).doubleValue(), //鏁存枡
- split[2], //barcode -> upc -> s2
+ split[3], //standby2 -> upc -> standby2
1,
- null, //origin -> supplier 璐ф簮
locker.bindingTags
);
matLists.add(mat);
--
Gitblit v1.9.1