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