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