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 10674b5..2c43594 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 @@ -85,7 +85,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } public void allocateGZZ(String waveDocCode, Long zone_id, - List gzz_codes, int cfhs, int jhxl, int syhs, + List gzz_codes, int cfhs, int jianHuoXiaoLv, int FenPeiWeiChuLiRenWu, Map gzz_maps) { Session session = ((HibernateDaoSupport) this.commonDao) .getSessionFactory().openSession(); @@ -352,12 +352,12 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements } Collections.sort(gzlistGongZuoZhans); - int count_all = syhs + list_fenpei.size();// 所有未处理的数据 + int count_all = FenPeiWeiChuLiRenWu + list_fenpei.size();// 所有未处理的数据 int gzz_nx_avg = count_all / gzz_codes.size();// 得到工作站的平均能效, Map gzzMap = new HashMap<>(); - - if (gzz_nx_avg < jhxl) { - gzz_nx_avg = jhxl; + LogPrint(log_GongZuoZhanMinXi,"gzz_nx_avg:"+gzz_nx_avg+""); + if (gzz_nx_avg < jianHuoXiaoLv) { + gzz_nx_avg = jianHuoXiaoLv; int fenpeiALl = 0; for (GongZuoZhan gongZuoZhan : gzlistGongZuoZhans) { int notFinished = gongZuoZhan.notFinished; @@ -382,7 +382,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements gzzMap.put(gzz.code, gzz); } } - + LogPrint(log_GongZuoZhanMinXi,"gzz_nx_avg:"+gzz_nx_avg+"jianHuoXiaoLv:"+jianHuoXiaoLv); LogPrint( log_GongZuoZhanMinXi, "---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------"); @@ -404,6 +404,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements for (TwlFenZu twlFenZu : twlFenZuList) { List gongDanList = twlFenZu.gdPaiXus; // 当前头物料所有的工单组合,以及每个工单的物料明细 int this_fenzuCount = twlFenZu.wl_count; // 当前分组总物料行数 + int this_notFenPei=this_fenzuCount; List listGzz = FaiXuGzz(gzzMap); // 工作站根据可分配数量进行排序 if (gongDanList.size() == 1) { @@ -411,11 +412,13 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements GongZuoZhan curr_gzz = PiPeiGongZuoZhanForGzzxAndRqh(listGzz, gongDanMingXi, cfhs); List list_wList = gongDanMingXi.list; + for (FenPei fenPei : list_wList) { curr_gzz.renWuList.add(fenPei); curr_gzz.RongQIHaoMap.put(fenPei.rqh, ""); curr_gzz.GongZuoZhongXinMap.put(fenPei.gzzx, ""); } + this_notFenPei=this_notFenPei-list_wList.size(); gzzMap.put(curr_gzz.code, curr_gzz); } else { @@ -427,10 +430,10 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements // 当前工单的物料 List list_wList = gongDanMingXi.list; - int chao = (list_wList.size() + curr_gzz.notFinished + curr_gzz.renWuList - .size()) - curr_gzz.maxRenWu; + int GzzRenwuOver = (list_wList.size() + curr_gzz.notFinished + curr_gzz.renWuList.size()) - curr_gzz.maxRenWu; // LogPrint(listGzz.size()); - if (chao <= cfhs || index == gongDanList.size() - 1) { + //如果当前任务分配进此工作站不超过最大任务数,或者 当前任务在内 剩余数量不超过 拆分行数或者 当前工单是最后一个工单 + if (GzzRenwuOver <= 0 || (this_notFenPei<=cfhs||index == gongDanList.size() - 1)) { // LogPrint("11=="+listGzz.get(gzz_index)); // 如果当前待分配+此工作站未完成+已分配任务数 小于最大任务数 //将当前任务分配到此工作站 for (FenPei fenPei : list_wList) { @@ -438,6 +441,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements curr_gzz.RongQIHaoMap.put(fenPei.rqh, ""); curr_gzz.GongZuoZhongXinMap.put(fenPei.gzzx, ""); } + this_notFenPei=this_notFenPei-list_wList.size(); if (index == gongDanList.size() - 1) { // 最后一个工单 gzzMap.put(curr_gzz.code, curr_gzz); @@ -452,6 +456,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements curr_gzz.RongQIHaoMap.put(fenPei.rqh, ""); curr_gzz.GongZuoZhongXinMap.put(fenPei.gzzx, ""); } + this_notFenPei=this_notFenPei-list_wList.size(); if (index == gongDanList.size() - 1) { // 最后一个工单 gzzMap.put(curr_gzz.code, curr_gzz);