300行以下订单自适应开启工作站个数
							parent
							
								
									52ab113fb8
								
							
						
					
					
						commit
						719494249a
					
				| 
						 | 
					@ -54,39 +54,60 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
				
			||||||
			List<String> lx_codes = getGzzCodes(NewWaveFlag.LXQ);// 自动创波工作站
 | 
								List<String> lx_codes = getGzzCodes(NewWaveFlag.LXQ);// 自动创波工作站
 | 
				
			||||||
			List<String> hj_codes = getGzzCodes(NewWaveFlag.HJQ);
 | 
								List<String> hj_codes = getGzzCodes(NewWaveFlag.HJQ);
 | 
				
			||||||
			List<String> lk_codes = getGzzCodes(NewWaveFlag.LKQ);
 | 
								List<String> lk_codes = getGzzCodes(NewWaveFlag.LKQ);
 | 
				
			||||||
			Map<String, Integer> maps = gzzCount(waveDoc.getCode());// 所有工作站没完成的任务
 | 
								Map<String, Integer> gzz_maps = gzzCount(waveDoc.getCode());// 所有工作站没完成的任务
 | 
				
			||||||
			int lxCount = 0;// 工作站任务未处理任务数
 | 
								int lxCount = 0;// 工作站任务未处理任务数
 | 
				
			||||||
			int hjCount = 0;
 | 
								int hjCount = 0;
 | 
				
			||||||
			int lkCount = 0;
 | 
								int lkCount = 0;
 | 
				
			||||||
 | 
					 | 
				
			||||||
			for (String code : lx_codes) {
 | 
								for (String code : lx_codes) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				lxCount += maps.get(code) == null ? 0 : maps.get(code);
 | 
									lxCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								//定义工作站最小能效数,自适应开启工作站数
 | 
				
			||||||
 | 
								//自适应合理开启工作站数gzz_codes,每个工作站暂定60
 | 
				
			||||||
 | 
								int lx_jianHuoXiaoLv=getValueGzzNumber(lx_sx);
 | 
				
			||||||
 | 
								List<Object[]> lx_wwc_list=getTaskList(waveDoc.getCode(), NewWaveFlag.LXQ);
 | 
				
			||||||
 | 
								if(lx_wwc_list.size()<=lx_jianHuoXiaoLv*5){//lx_jianHuoXiaoLv*lx_codes.size()/2
 | 
				
			||||||
 | 
									List<GongZuoZhan> gzlistGongZuoZhans = new ArrayList<DefaultNewWaveManager.GongZuoZhan>();
 | 
				
			||||||
 | 
									for (String gongzuozhancode : lx_codes) {
 | 
				
			||||||
 | 
										int notFinished = (gzz_maps.get(gongzuozhancode) == null ? 0
 | 
				
			||||||
 | 
												: gzz_maps.get(gongzuozhancode));
 | 
				
			||||||
 | 
										GongZuoZhan gongZuoZhan = new GongZuoZhan(gongzuozhancode,
 | 
				
			||||||
 | 
												notFinished, 0, true);
 | 
				
			||||||
 | 
										gzlistGongZuoZhans.add(gongZuoZhan);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									Collections.sort(gzlistGongZuoZhans);
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
									lx_codes=new ArrayList<String>();
 | 
				
			||||||
 | 
									int wcc_count=0;
 | 
				
			||||||
 | 
									for(GongZuoZhan gzz:gzlistGongZuoZhans){
 | 
				
			||||||
 | 
										wcc_count+=lx_jianHuoXiaoLv-gzz.notFinished;
 | 
				
			||||||
 | 
										lx_codes.add(gzz.code);
 | 
				
			||||||
 | 
										logger.info("开启工作站========="+gzz.code+"====剩余未完成任务数==========="+gzz.notFinished);
 | 
				
			||||||
 | 
										if(wcc_count>=lx_wwc_list.size()){
 | 
				
			||||||
 | 
											break;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			for (String code : hj_codes) {
 | 
								for (String code : hj_codes) {
 | 
				
			||||||
				hjCount += maps.get(code) == null ? 0 : maps.get(code);
 | 
									hjCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
 | 
				
			||||||
			}	
 | 
								}	
 | 
				
			||||||
 | 
					 | 
				
			||||||
			for (String code : lk_codes) {
 | 
								for (String code : lk_codes) {
 | 
				
			||||||
				lkCount += maps.get(code) == null ? 0 : maps.get(code);
 | 
									lkCount += gzz_maps.get(code) == null ? 0 : gzz_maps.get(code);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								allocateGZZ(lx_wwc_list, lx_codes,
 | 
				
			||||||
			allocateGZZ(waveDoc.getCode(), NewWaveFlag.LXQ, lx_codes,
 | 
										(int) lx_sx.getTaskD(), lx_jianHuoXiaoLv, lxCount,
 | 
				
			||||||
					(int) lx_sx.getTaskD(), getValueGzzNumber(lx_sx), lxCount,
 | 
										gzz_maps);
 | 
				
			||||||
					maps);
 | 
								allocateGZZ(getTaskList(waveDoc.getCode(), NewWaveFlag.HJQ), hj_codes,
 | 
				
			||||||
			allocateGZZ(waveDoc.getCode(), NewWaveFlag.HJQ, hj_codes,
 | 
					 | 
				
			||||||
					(int) hj_sx.getTaskD(), getValueGzzNumber(hj_sx), hjCount,
 | 
										(int) hj_sx.getTaskD(), getValueGzzNumber(hj_sx), hjCount,
 | 
				
			||||||
					maps);
 | 
										gzz_maps);
 | 
				
			||||||
			allocateGZZ(waveDoc.getCode(), NewWaveFlag.LKQ, lk_codes,
 | 
								allocateGZZ(getTaskList(waveDoc.getCode(),  NewWaveFlag.LKQ), lk_codes,
 | 
				
			||||||
					(int) lk_sx.getTaskD(), getValueGzzNumber(lk_sx), lkCount,
 | 
										(int) lk_sx.getTaskD(), getValueGzzNumber(lk_sx), lkCount,
 | 
				
			||||||
					maps);
 | 
										gzz_maps);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void allocateGZZ(String waveDocCode, Long zone_id,
 | 
						public List<Object[]> getTaskList(String waveDocCode, Long zone_id){
 | 
				
			||||||
			List<String> gzz_codes, int cfhs, int jianHuoXiaoLv, int FenPeiWeiChuLiRenWu,
 | 
					 | 
				
			||||||
			Map<String, Integer> gzz_maps) {
 | 
					 | 
				
			||||||
		Session session = ((HibernateDaoSupport) this.commonDao)
 | 
							Session session = ((HibernateDaoSupport) this.commonDao)
 | 
				
			||||||
				.getSessionFactory().openSession();
 | 
									.getSessionFactory().openSession();
 | 
				
			||||||
		/* try { */
 | 
							/* try { */
 | 
				
			||||||
| 
						 | 
					@ -124,8 +145,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
				
			||||||
				+ "left join WAVE_DOC wd on wd.id=t.WAVE_DOC_ID  "
 | 
									+ "left join WAVE_DOC wd on wd.id=t.WAVE_DOC_ID  "
 | 
				
			||||||
				+ "where 1=1 and pt.BILL_TYPE_ID=1094   "
 | 
									+ "where 1=1 and pt.BILL_TYPE_ID=1094   "
 | 
				
			||||||
//				+ "and t.agv_status in (0,-1) "
 | 
					//				+ "and t.agv_status in (0,-1) "
 | 
				
			||||||
				+ "and wd.code='" + waveDocCode
 | 
									+ "and wd.code='" + waveDocCode+ "' "
 | 
				
			||||||
				+ "' and t.WAVE_DOC_ID is not null";
 | 
									+ "and t.WAVE_DOC_ID is not null";
 | 
				
			||||||
		if (zone_id != null) {
 | 
							if (zone_id != null) {
 | 
				
			||||||
			sql += " and z.id=" + zone_id;
 | 
								sql += " and z.id=" + zone_id;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -136,8 +157,11 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
		Query query = session.createSQLQuery(sql);
 | 
							Query query = session.createSQLQuery(sql);
 | 
				
			||||||
		List<Object[]> list = (List<Object[]>) query.list();
 | 
							List<Object[]> list = (List<Object[]>) query.list();
 | 
				
			||||||
 | 
							session.close();
 | 
				
			||||||
 | 
							return list;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						public void allocateGZZ(List<Object[]> list,List<String> gzz_codes, int cfhs, int jianHuoXiaoLv, int FenPeiWeiChuLiRenWu,Map<String, Integer> gzz_maps) {
 | 
				
			||||||
		int GongDan_wuLiaoMingXiCout = list.size();
 | 
							int GongDan_wuLiaoMingXiCout = list.size();
 | 
				
			||||||
 | 
					 | 
				
			||||||
		List<FenPei> list_fenpei = new ArrayList<FenPei>();
 | 
							List<FenPei> list_fenpei = new ArrayList<FenPei>();
 | 
				
			||||||
		List<FenPei> list_fenpei_wgzz = new ArrayList<FenPei>();// 无需分配工作站数据
 | 
							List<FenPei> list_fenpei_wgzz = new ArrayList<FenPei>();// 无需分配工作站数据
 | 
				
			||||||
		for (int i = 0; i < list.size(); i++) {
 | 
							for (int i = 0; i < list.size(); i++) {
 | 
				
			||||||
| 
						 | 
					@ -352,6 +376,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		Collections.sort(gzlistGongZuoZhans);
 | 
							Collections.sort(gzlistGongZuoZhans);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		int count_all = FenPeiWeiChuLiRenWu + 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<>();
 | 
				
			||||||
| 
						 | 
					@ -585,6 +610,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
				
			||||||
					log_GongZuoZhanFenPeiJieGuo,
 | 
										log_GongZuoZhanFenPeiJieGuo,
 | 
				
			||||||
					"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
										"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							Session session = ((HibernateDaoSupport) this.commonDao)
 | 
				
			||||||
 | 
									.getSessionFactory().openSession();
 | 
				
			||||||
		for (String gdhkey: gdNextMax_ALL.keySet()) {	
 | 
							for (String gdhkey: gdNextMax_ALL.keySet()) {	
 | 
				
			||||||
			Sequence s = gdNextMaps.get(gdhkey);
 | 
								Sequence s = gdNextMaps.get(gdhkey);
 | 
				
			||||||
			int maxB=0;
 | 
								int maxB=0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue