// 头物料相同的工单且行数差小于4 放在一起 或者 头物料相同的工单且行数大于40 放在一起
parent
4b544cac3a
commit
947c440423
|
|
@ -428,12 +428,17 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
|
|||
LogPrint(
|
||||
log_GongZuoZhanMinXi,
|
||||
"---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------");
|
||||
LogPrint(
|
||||
log_GongZuoZhanMinXi,
|
||||
"---------------------------------------------------开始分配-----------------------------------------------------------------------------------------------");
|
||||
for (TwlFenZu twlFenZu : twlFenZuList) {
|
||||
List<GongDanMingXi> gongDanList = twlFenZu.gdPaiXus; // 当前头物料所有的工单组合,以及每个工单的物料明细
|
||||
int this_fenzuCount = twlFenZu.wl_count; // 当前分组总物料行数
|
||||
int this_notFenPei=this_fenzuCount;
|
||||
List<GongZuoZhan> 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_fenzuCount<cfhs &&gongDanList.size() >1) {
|
||||
// 多个工单匹配进行
|
||||
List<FenPei> 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<FenPei> 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<FenPei> 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<FenPei> 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<GongDanMingXi> old = touwuliao_map.get(twlKey);
|
||||
old.add(gdPaiXu);
|
||||
|
|
|
|||
Loading…
Reference in New Issue