diff --git a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java index 404e086..b133050 100644 --- a/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java +++ b/src/main/java/com/dev/swms/server/service/shipping/pojo/DefaultNewWaveManager.java @@ -428,12 +428,17 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements LogPrint( log_GongZuoZhanMinXi, "---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------"); + LogPrint( + log_GongZuoZhanMinXi, + "---------------------------------------------------开始分配-----------------------------------------------------------------------------------------------"); for (TwlFenZu twlFenZu : twlFenZuList) { List gongDanList = twlFenZu.gdPaiXus; // 当前头物料所有的工单组合,以及每个工单的物料明细 int this_fenzuCount = twlFenZu.wl_count; // 当前分组总物料行数 int this_notFenPei=this_fenzuCount; List listGzz = FaiXuGzz(gzzMap); // 工作站根据可分配数量进行排序 + LogPrint( true,"当前头物料:"+twlFenZu.gdPaiXus.get(0).twl+"总数量为:"+twlFenZu.wl_count +"工单数为:"+twlFenZu.gdPaiXus.size()); + if (gongDanList.size() == 1) { GongDanMingXi gongDanMingXi = gongDanList.get(0); GongZuoZhan curr_gzz = PiPeiGongZuoZhanForGzzxAndRqh(listGzz, @@ -449,6 +454,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements gzzMap.put(curr_gzz.code, curr_gzz); }else if(this_fenzuCount1) { + // 多个工单匹配进行 List list_wL_rq=new ArrayList<>(); String GDH=""; for (int index = 0; index < gongDanList.size(); index++) { @@ -467,7 +473,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } } }else{ - // 多个工单匹配进行 + int gzz_index = 0; // 当前分配工作站的排序下标 GongZuoZhan curr_gzz = listGzz.get(0); for (int index = 0; index < gongDanList.size(); index++) { @@ -475,7 +481,10 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements // 当前工单的物料 List list_wList = gongDanMingXi.list; + LogPrint( true,"当前工作站:"+curr_gzz.code+"notFinished:"+ curr_gzz.notFinished +"renWuList.size():"+curr_gzz.renWuList.size()+"maxRenWu:"+curr_gzz.maxRenWu); + int GzzRenwuOver = (list_wList.size() + curr_gzz.notFinished + curr_gzz.renWuList.size()) - curr_gzz.maxRenWu; + LogPrint( true,"list_wList:"+list_wList.size() +"GzzRenwuOver:"+ GzzRenwuOver+"this_notFenPei:"+this_notFenPei+"cfhs:"+cfhs+"index---"+index+"---"+( gongDanList.size() - 1)); // LogPrint(listGzz.size()); //如果当前任务分配进此工作站不超过最大任务数,或者 当前任务在内 剩余数量不超过 拆分行数或者 当前工单是最后一个工单 if (GzzRenwuOver <= 0 || (this_notFenPei<=cfhs||index == gongDanList.size() - 1)) { @@ -663,8 +672,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements "------------------------匹配容器号和工作中心-----------------------------------------------"); LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前工单号:" - + gongDanMingXi.gdh); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前工单号:"+ gongDanMingXi.gdh); for (GongZuoZhan gzz : listGzz) { LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前工作站:" + gzz.code); List list = gzz.renWuList; @@ -680,8 +688,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements //2025/02/24 if (chao > cfhs) { 修改为 chao > 0 散单不追加到 大工单内 if (chao > 0) { - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code - + "超出:" + chao + "无法分配,跳过此工作站"); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code+ "超出:" + chao + "无法分配,跳过此工作站"); continue; } StringBuffer sb_pipei = new StringBuffer(); @@ -696,12 +703,10 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements sb_pipei.append(fenPei.rqh); } } - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code - + " gzzx:" + gzzx + " rqh_count:" + rqh_count); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_gzzx.toString()); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_rqh.toString()); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, - "匹配上的容器号: " + sb_pipei.toString()); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code+ " gzzx:" + gzzx + " rqh_count:" + rqh_count); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_gzzx.toString()); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_rqh.toString()); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"匹配上的容器号: " + sb_pipei.toString()); Boolean isPiPeiGzzx = false;// true 优先按照工作中心匹配,再按照容器号。false直接按照容器号匹配散单 if (isPiPeiGzzx) { if (max_gzzx == 0 && gzzx == 0 && rqh_count > max_rqh_count) { @@ -745,9 +750,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements + " 工作站:" + check.code); LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); - LogPrint( - log_GongZuoZhanPiPeiForRqhAndGzzx, - "------------------------匹配容器号和工作中心-----------------------------------------------"); + return check; } @@ -761,11 +764,10 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements LogPrint( log_GongZuoZhanPiPeiForRqhAndGzzx, "------------------------匹配容器号和工作中心DuoHang-----------------------------------------------"); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, - "↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); + LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓"); LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前头物料:"+ GDH); for (GongZuoZhan gzz : listGzz) { - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前工作站:" + gzz.code); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前工作站:" + gzz.code); List list = gzz.renWuList; StringBuffer sb_gzzx = new StringBuffer(); StringBuffer sb_rqh = new StringBuffer(); @@ -779,8 +781,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements //2025/02/24 if (chao > cfhs) { 修改为 chao > 0 散单不追加到 大工单内 if (chao > 0) { - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code - + "超出:" + chao + "无法分配,跳过此工作站"); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code+ "超出:" + chao + "无法分配,跳过此工作站"); continue; } StringBuffer sb_pipei = new StringBuffer(); @@ -795,12 +796,10 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements sb_pipei.append(fenPei.rqh); } } - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code - + " gzzx:" + gzzx + " rqh_count:" + rqh_count); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_gzzx.toString()); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_rqh.toString()); - LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, - "匹配上的容器号: " + sb_pipei.toString()); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code+ " gzzx:" + gzzx + " rqh_count:" + rqh_count); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_gzzx.toString()); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_rqh.toString()); + //LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"匹配上的容器号: " + sb_pipei.toString()); Boolean isPiPeiGzzx = false;// true 优先按照工作中心匹配,再按照容器号。false直接按照容器号匹配散单 if (isPiPeiGzzx) { if (max_gzzx == 0 && gzzx == 0 && rqh_count > max_rqh_count) { @@ -844,9 +843,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements + " 工作站:" + check.code); LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑"); - LogPrint( - log_GongZuoZhanPiPeiForRqhAndGzzx, - "------------------------匹配容器号和工作中心-----------------------------------------------"); return check; } @@ -935,11 +931,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements int currCount = gdPaiXu.hangshu; boolean isFind = false; for (String twlKey : touwuliao_map.keySet()) { - String twl_in = touwuliao_map.get(twlKey).get(0).twl + "_" - + touwuliao_map.get(twlKey).get(0).list.get(0).wllx; + String twl_in = touwuliao_map.get(twlKey).get(0).twl + "_"+ touwuliao_map.get(twlKey).get(0).list.get(0).wllx; int currCount_in = touwuliao_map.get(twlKey).get(0).hangshu; - if (twl_in.equals(fenzu) - && Math.abs(currCount - currCount_in) <= 4||Math.abs(currCount - currCount_in) >40) { + if ((twl_in.equals(fenzu)&& Math.abs(currCount - currCount_in) <= 4)||(twl_in.equals(fenzu)&&currCount>40&&currCount_in>40)) { // 在分配好的数据中找到了相同的头物料 且 数量差小于4 头物料分组规则 List old = touwuliao_map.get(twlKey); old.add(gdPaiXu);