任务分配处理

main
霸王龙 2025-02-18 13:40:34 +08:00
parent 709b9cf354
commit 2f43563fbe
1 changed files with 14 additions and 9 deletions

View File

@ -85,7 +85,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
}
public void allocateGZZ(String waveDocCode, Long zone_id,
List<String> gzz_codes, int cfhs, int jhxl, int syhs,
List<String> gzz_codes, int cfhs, int jianHuoXiaoLv, int FenPeiWeiChuLiRenWu,
Map<String, Integer> 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<String, GongZuoZhan> 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<GongDanMingXi> gongDanList = twlFenZu.gdPaiXus; // 当前头物料所有的工单组合,以及每个工单的物料明细
int this_fenzuCount = twlFenZu.wl_count; // 当前分组总物料行数
int this_notFenPei=this_fenzuCount;
List<GongZuoZhan> 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<FenPei> 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<FenPei> 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);