生成头物料,波次优化
							parent
							
								
									66c8a5643a
								
							
						
					
					
						commit
						8553b089ba
					
				| 
						 | 
				
			
			@ -127,7 +127,7 @@ public class Task extends VersionalEntity {
 | 
			
		|||
	private String operator;//操作人
 | 
			
		||||
	private Date dateline;//交单日期
 | 
			
		||||
	private String setTask;//集套交单任务
 | 
			
		||||
	private int agvStatus =0;//任务状态 0-未下发  1=已下发 2=执行中,3=完成。
 | 
			
		||||
	private int agvStatus =0;//任务状态 0-未下发  1=已下发 2=执行中,3=完成,-1已分配工作站未下发AGV。
 | 
			
		||||
	private Date operatorDate;//合单日期
 | 
			
		||||
	/**任务号 1已绑定工作站,0还没开始的任务*/
 | 
			
		||||
	private int libraryStatus=0;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -373,13 +373,6 @@ public class DefaultNewAutoAllocator extends DefaultBaseManager implements NewAu
 | 
			
		|||
								task.setStrBill7(inventory.getLocation().getStock().getLP());
 | 
			
		||||
							}
 | 
			
		||||
							task.setBillCode(pt.getRelatedBill2());
 | 
			
		||||
							String tItemCode=item.getCode().substring(0, 9);
 | 
			
		||||
							String ptCode = ptd.getPickTicket().getCode();
 | 
			
		||||
							char lastChar = ptCode.charAt(ptCode.length() - 1);
 | 
			
		||||
							if (Character.isUpperCase(lastChar)) {
 | 
			
		||||
				                //System.out.println("最后一位是大写字母");
 | 
			
		||||
								task.setStrBill8(tItemCode+lastChar);
 | 
			
		||||
				            } 
 | 
			
		||||
							task.setCode(TimeNumberUtils.getTaskCode());
 | 
			
		||||
							task.setType(TaskType.MV_PICKTICKET);
 | 
			
		||||
							task.setItemKey(inventory.getItemKey());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1136,13 +1136,6 @@ public class DefaultNewWaveDocManager extends DefaultBaseManager implements
 | 
			
		|||
								task.setStrBill7(inventory.getLocation().getStock().getLP());
 | 
			
		||||
							}
 | 
			
		||||
							task.setBillCode(pt.getRelatedBill2());		
 | 
			
		||||
							String tItemCode=item.getCode().substring(0, 9);
 | 
			
		||||
							String ptCode = ptd.getPickTicket().getCode();
 | 
			
		||||
							char lastChar = ptCode.charAt(ptCode.length() - 1);
 | 
			
		||||
							if (Character.isUpperCase(lastChar)) {
 | 
			
		||||
				                //System.out.println("最后一位是大写字母");
 | 
			
		||||
								task.setStrBill8(tItemCode+lastChar);
 | 
			
		||||
				            } 
 | 
			
		||||
							task.setCode(TimeNumberUtils.getTaskCode());
 | 
			
		||||
							task.setType(TaskType.MV_PICKTICKET);
 | 
			
		||||
							task.setItemKey(inventory.getItemKey());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,17 +18,15 @@ import org.hibernate.Query;
 | 
			
		|||
import org.hibernate.Session;
 | 
			
		||||
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
 | 
			
		||||
 | 
			
		||||
import com.dev.energy.server.model.EntityFactory;
 | 
			
		||||
import com.dev.energy.server.service.pojo.DefaultBaseManager;
 | 
			
		||||
import com.dev.sequence.model.sequence.Sequence;
 | 
			
		||||
import com.dev.sequence.service.sequence.SequenceManager;
 | 
			
		||||
import com.dev.swms.server.model.base.ShiXiao;
 | 
			
		||||
import com.dev.swms.server.model.inventory.Task;
 | 
			
		||||
import com.dev.swms.server.model.receiving.LibraryTaskType.classification;
 | 
			
		||||
import com.dev.swms.server.model.shipping.NewWaveFlag;
 | 
			
		||||
import com.dev.swms.server.model.shipping.WaveDoc;
 | 
			
		||||
import com.dev.swms.server.service.interfaceLog.JsonUtil;
 | 
			
		||||
import com.dev.swms.server.service.shipping.NewWaveManager;
 | 
			
		||||
import com.dev.swms.server.utils.interfaceUtil;
 | 
			
		||||
import com.itextpdf.text.pdf.PdfStructTreeController.returnType;
 | 
			
		||||
import com.sun.org.apache.bcel.internal.classfile.Code;
 | 
			
		||||
 | 
			
		||||
import org.apache.log4j.Logger;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +54,7 @@ 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();// 所有工作站没完成的任务
 | 
			
		||||
			Map<String, Integer> maps = gzzCount(waveDoc.getCode());// 所有工作站没完成的任务
 | 
			
		||||
			int lxCount = 0;// 工作站任务未处理任务数
 | 
			
		||||
			int hjCount = 0;
 | 
			
		||||
			int lkCount = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -74,13 +72,13 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
			}
 | 
			
		||||
 | 
			
		||||
			allocateGZZ(waveDoc.getCode(), NewWaveFlag.LXQ, lx_codes,
 | 
			
		||||
					(int) lx_sx.getTaskD(), (int) lx_sx.getNumber(), lxCount,
 | 
			
		||||
					(int) lx_sx.getTaskD(), getValueGzzNumber(lx_sx), lxCount,
 | 
			
		||||
					maps);
 | 
			
		||||
			allocateGZZ(waveDoc.getCode(), NewWaveFlag.HJQ, hj_codes,
 | 
			
		||||
					(int) hj_sx.getTaskD(), (int) hj_sx.getNumber(), hjCount,
 | 
			
		||||
					(int) hj_sx.getTaskD(), getValueGzzNumber(hj_sx), hjCount,
 | 
			
		||||
					maps);
 | 
			
		||||
			allocateGZZ(waveDoc.getCode(), NewWaveFlag.LKQ, lk_codes,
 | 
			
		||||
					(int) lk_sx.getTaskD(), (int) lk_sx.getNumber(), lkCount,
 | 
			
		||||
					(int) lk_sx.getTaskD(), getValueGzzNumber(lk_sx), lkCount,
 | 
			
		||||
					maps);
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -113,7 +111,7 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
				+ "loc.code as kwh,"
 | 
			
		||||
				+ "max(t.agv_Status) as rwzt,"
 | 
			
		||||
				+ "max(item.GOOD_TYPE) as wllx,"
 | 
			
		||||
				+ "max(t.strBill8) as twl "
 | 
			
		||||
				+ "max(LEFT(pt.RELATED_BILL3, 9)+RIGHT(pt.CODE,1)) as twl "
 | 
			
		||||
				+ "from task t   "
 | 
			
		||||
				+ "left join PICK_TICKET_DETAIL ptd on ptd.id=t.PICK_TICKET_DETAIL_ID   "
 | 
			
		||||
				+ "left join PICK_TICKET pt on pt.id=ptd.PICK_TICKET_ID "
 | 
			
		||||
| 
						 | 
				
			
			@ -124,8 +122,10 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
				+ "left join STOCK s2 on s2.id=t.SRC_LP   "
 | 
			
		||||
				+ "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 wd.code='"
 | 
			
		||||
				+ waveDocCode + "' and t.WAVE_DOC_ID is not null  and t.agv_status=0";
 | 
			
		||||
				+ "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";
 | 
			
		||||
		if (zone_id != null) {
 | 
			
		||||
			sql += " and z.id=" + zone_id;
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			@ -170,16 +170,15 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		List<FenPei> list_fen = Paixu(list_fenpei, cfhs);
 | 
			
		||||
		// 初始化 GongDan_WuLiao_Map 根据(工单号+物料类型+拆分组号)分组
 | 
			
		||||
		Map<String, List<FenPei>> GongDan_WuLiao_Map = new HashMap<>();
 | 
			
		||||
		for (FenPei fenPei : list_fen) {
 | 
			
		||||
			String GongDan_WuLiao = fenPei.gdh + fenPei.wllx + fenPei.chf_fz;
 | 
			
		||||
			if (((java.util.Map) GongDan_WuLiao_Map).containsKey(GongDan_WuLiao)) {
 | 
			
		||||
				List<FenPei> list_count = GongDan_WuLiao_Map.get(GongDan_WuLiao);
 | 
			
		||||
			if (((java.util.Map) GongDan_WuLiao_Map)
 | 
			
		||||
					.containsKey(GongDan_WuLiao)) {
 | 
			
		||||
				List<FenPei> list_count = GongDan_WuLiao_Map
 | 
			
		||||
						.get(GongDan_WuLiao);
 | 
			
		||||
				list_count.add(fenPei);
 | 
			
		||||
				GongDan_WuLiao_Map.put(GongDan_WuLiao, list_count);
 | 
			
		||||
			} else {
 | 
			
		||||
| 
						 | 
				
			
			@ -191,8 +190,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		// 打印分组情况
 | 
			
		||||
		PirntGongdanMap(GongDan_WuLiao_Map, "最终工单分组");
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
		
 | 
			
		||||
		// 记录每个工单 的数目
 | 
			
		||||
 | 
			
		||||
		List<GongDanMingXi> GongDan_List = new ArrayList<GongDanMingXi>();
 | 
			
		||||
| 
						 | 
				
			
			@ -216,7 +213,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		for (GongDanMingXi gdPaiXu : GongDan_List) {
 | 
			
		||||
 | 
			
		||||
			// 获取当前头物料
 | 
			
		||||
			String fenzu = gdPaiXu.list.get(0).twl_fz+"_"+gdPaiXu.list.get(0).chf_fz;
 | 
			
		||||
			String fenzu = gdPaiXu.list.get(0).twl_fz + "_"
 | 
			
		||||
					+ gdPaiXu.list.get(0).chf_fz;
 | 
			
		||||
 | 
			
		||||
			String gdh = gdPaiXu.gdh;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -226,7 +224,9 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
			// 在touwuliao_map中进行匹配
 | 
			
		||||
			boolean isFind = false;
 | 
			
		||||
			for (String twlKey : touwuliao_map.keySet()) {
 | 
			
		||||
				String twl_in = touwuliao_map.get(twlKey).get(0).list.get(0).twl_fz + "_"+ touwuliao_map.get(twlKey).get(0).list.get(0).chf_fz;
 | 
			
		||||
				String twl_in = touwuliao_map.get(twlKey).get(0).list.get(0).twl_fz
 | 
			
		||||
						+ "_"
 | 
			
		||||
						+ touwuliao_map.get(twlKey).get(0).list.get(0).chf_fz;
 | 
			
		||||
				int currCount_in = touwuliao_map.get(twlKey).get(0).hangshu;
 | 
			
		||||
				if (twl_in.equals(fenzu)
 | 
			
		||||
						&& Math.abs(currCount - currCount_in) <= 4) {
 | 
			
		||||
| 
						 | 
				
			
			@ -252,7 +252,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
 | 
			
		||||
		// 计算没个容器号出现得次数(在每个头物料得分组里面)
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
		for (String twlKey : touwuliao_map.keySet()) {
 | 
			
		||||
			List<GongDanMingXi> GongDanList = touwuliao_map.get(twlKey);
 | 
			
		||||
			// 初始化rq_showTime 记录容器号次数
 | 
			
		||||
| 
						 | 
				
			
			@ -277,7 +276,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
 | 
			
		||||
			}
 | 
			
		||||
			// 给touwuliao_map的 中 按照容器出现次数进行排序
 | 
			
		||||
			//循环GongDanList 并给所有工单 中所有任务,写入任务中容器出现次数,并按容器次数进行排序;刷新touwuliao_map(头物料分组合集);
 | 
			
		||||
			// 循环GongDanList 并给所有工单
 | 
			
		||||
			// 中所有任务,写入任务中容器出现次数,并按容器次数进行排序;刷新touwuliao_map(头物料分组合集);
 | 
			
		||||
			List<GongDanMingXi> list_show_new = new ArrayList<>();
 | 
			
		||||
			for (GongDanMingXi fenPei2 : GongDanList) {
 | 
			
		||||
				List<FenPei> list_new = new ArrayList<>();
 | 
			
		||||
| 
						 | 
				
			
			@ -295,7 +295,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		// 初始化 List<TwlFenZu> twlFenZuList 给所有数据写入twlFenZuList
 | 
			
		||||
		List<TwlFenZu> twlFenZuList = new ArrayList<>();
 | 
			
		||||
		for (String twlKey : touwuliao_map.keySet()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -305,37 +304,50 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		}
 | 
			
		||||
		// 根据 头物料 中所有工单总任务数进行 排序
 | 
			
		||||
		Collections.sort(twlFenZuList);
 | 
			
		||||
		LogPrint(log_TouWuLiaoChaiFen,"---------------------------------------------------头物料拆分排序结果-----------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_TouWuLiaoChaiFen,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_TouWuLiaoChaiFen,
 | 
			
		||||
				"---------------------------------------------------头物料拆分排序结果-----------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_TouWuLiaoChaiFen,
 | 
			
		||||
				"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
		int wlcountString = 0;
 | 
			
		||||
		for (TwlFenZu twlFenZu : twlFenZuList) {
 | 
			
		||||
			List<GongDanMingXi> list_show = twlFenZu.gdPaiXus;
 | 
			
		||||
			for (GongDanMingXi fenPei2 : list_show) {
 | 
			
		||||
				LogPrint(log_TouWuLiaoChaiFen,"twl" + fenPei2.twl + "		GDH:" + fenPei2.gdh
 | 
			
		||||
						+ "	GDHCount:" + fenPei2.hangshu+"		FenZu:"+fenPei2.list.get(0).chf_fz);
 | 
			
		||||
				LogPrint(log_TouWuLiaoChaiFen, "twl" + fenPei2.twl + "		GDH:"
 | 
			
		||||
						+ fenPei2.gdh + "	GDHCount:" + fenPei2.hangshu
 | 
			
		||||
						+ "		FenZu:" + fenPei2.list.get(0).chf_fz);
 | 
			
		||||
				StringBuffer rqm = new StringBuffer();
 | 
			
		||||
				for (FenPei fff : fenPei2.list) {
 | 
			
		||||
					rqm.append(fff.rqh + "(" + fff.show_time + "/"+fff.chf+")		");
 | 
			
		||||
					rqm.append(fff.rqh + "(" + fff.show_time + "/" + fff.chf
 | 
			
		||||
							+ ")		");
 | 
			
		||||
					wlcountString = wlcountString + 1;
 | 
			
		||||
				}
 | 
			
		||||
				LogPrint(log_TouWuLiaoChaiFen, rqm.toString());
 | 
			
		||||
			}
 | 
			
		||||
			LogPrint(log_TouWuLiaoChaiFen,"--------------------------------------------------------------------------------------------------------------------------------------------------");
 | 
			
		||||
			LogPrint(
 | 
			
		||||
					log_TouWuLiaoChaiFen,
 | 
			
		||||
					"--------------------------------------------------------------------------------------------------------------------------------------------------");
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
		LogPrint(log_TouWuLiaoChaiFen,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
		LogPrint(log_TouWuLiaoChaiFen,"---------------------------------------------------头物料拆分结果-----------------------------------------------------------------------------------------------");
 | 
			
		||||
		
 | 
			
		||||
		LogPrint(log_TouWuLiaoChaiFen,"GongDan_wuLiaoMingXiCout:"+GongDan_wuLiaoMingXiCout+"wlcountString:"+wlcountString);
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_TouWuLiaoChaiFen,
 | 
			
		||||
				"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_TouWuLiaoChaiFen,
 | 
			
		||||
				"---------------------------------------------------头物料拆分结果-----------------------------------------------------------------------------------------------");
 | 
			
		||||
 | 
			
		||||
		LogPrint(log_TouWuLiaoChaiFen, "GongDan_wuLiaoMingXiCout:"
 | 
			
		||||
				+ GongDan_wuLiaoMingXiCout + "wlcountString:" + wlcountString);
 | 
			
		||||
 | 
			
		||||
		// 工作站使用判定
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
		List<GongZuoZhan> gzlistGongZuoZhans = new ArrayList<DefaultNewWaveManager.GongZuoZhan>();
 | 
			
		||||
		for (String gongzuozhancode : gzz_codes) {
 | 
			
		||||
			int notFinished=(gzz_maps.get(gongzuozhancode)==null?0:gzz_maps.get(gongzuozhancode));
 | 
			
		||||
			GongZuoZhan gongZuoZhan=new GongZuoZhan(gongzuozhancode,notFinished,0,true);
 | 
			
		||||
			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);
 | 
			
		||||
| 
						 | 
				
			
			@ -352,10 +364,12 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
				int fenpeicount = gzz_nx_avg - notFinished;
 | 
			
		||||
				if (fenpeiALl - count_all <= 0) {
 | 
			
		||||
					fenpeiALl = fenpeiALl + fenpeicount;
 | 
			
		||||
					GongZuoZhan gzz=new GongZuoZhan(gongZuoZhan.code, notFinished, gzz_nx_avg, true);
 | 
			
		||||
					GongZuoZhan gzz = new GongZuoZhan(gongZuoZhan.code,
 | 
			
		||||
							notFinished, gzz_nx_avg, true);
 | 
			
		||||
					gzzMap.put(gzz.code, gzz);
 | 
			
		||||
				} else {
 | 
			
		||||
					GongZuoZhan gzz=new GongZuoZhan(gongZuoZhan.code, notFinished, gzz_nx_avg, true);
 | 
			
		||||
					GongZuoZhan gzz = new GongZuoZhan(gongZuoZhan.code,
 | 
			
		||||
							notFinished, gzz_nx_avg, true);
 | 
			
		||||
					gzzMap.put(gzz.code, gzz);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -363,20 +377,30 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
			for (GongZuoZhan gongZuoZhan : gzlistGongZuoZhans) {
 | 
			
		||||
				int notFinished = gongZuoZhan.notFinished;
 | 
			
		||||
				// int gzz_nx = gzz_nx_avg - notFinished;
 | 
			
		||||
				GongZuoZhan gzz=new GongZuoZhan(gongZuoZhan.code, notFinished, gzz_nx_avg, true);
 | 
			
		||||
				GongZuoZhan gzz = new GongZuoZhan(gongZuoZhan.code,
 | 
			
		||||
						notFinished, gzz_nx_avg, true);
 | 
			
		||||
				gzzMap.put(gzz.code, gzz);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
		LogPrint(log_GongZuoZhanMinXi,"---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_GongZuoZhanMinXi,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_GongZuoZhanMinXi,
 | 
			
		||||
				"---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_GongZuoZhanMinXi,
 | 
			
		||||
				"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
		for (String key : gzzMap.keySet()) {
 | 
			
		||||
			GongZuoZhan gongZuoZhan = gzzMap.get(key);
 | 
			
		||||
			LogPrint(log_GongZuoZhanMinXi,"Code:"+gongZuoZhan.code+" notFinished:"+gongZuoZhan.notFinished+"	maxRenWu:"+gongZuoZhan.maxRenWu+"	isEnble:"+gongZuoZhan.isEnble);
 | 
			
		||||
			LogPrint(log_GongZuoZhanMinXi, "Code:" + gongZuoZhan.code
 | 
			
		||||
					+ " notFinished:" + gongZuoZhan.notFinished + "	maxRenWu:"
 | 
			
		||||
					+ gongZuoZhan.maxRenWu + "	isEnble:" + gongZuoZhan.isEnble);
 | 
			
		||||
		}
 | 
			
		||||
		LogPrint(log_GongZuoZhanMinXi,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
		LogPrint(log_GongZuoZhanMinXi,"---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_GongZuoZhanMinXi,
 | 
			
		||||
				"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_GongZuoZhanMinXi,
 | 
			
		||||
				"---------------------------------------------------工作站详情-----------------------------------------------------------------------------------------------");
 | 
			
		||||
		for (TwlFenZu twlFenZu : twlFenZuList) {
 | 
			
		||||
			List<GongDanMingXi> gongDanList = twlFenZu.gdPaiXus; // 当前头物料所有的工单组合,以及每个工单的物料明细
 | 
			
		||||
			int this_fenzuCount = twlFenZu.wl_count; // 当前分组总物料行数
 | 
			
		||||
| 
						 | 
				
			
			@ -384,7 +408,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
 | 
			
		||||
			if (gongDanList.size() == 1) {
 | 
			
		||||
				GongDanMingXi gongDanMingXi = gongDanList.get(0);
 | 
			
		||||
				GongZuoZhan curr_gzz=PiPeiGongZuoZhanForGzzxAndRqh(listGzz,gongDanMingXi,cfhs);
 | 
			
		||||
				GongZuoZhan curr_gzz = PiPeiGongZuoZhanForGzzxAndRqh(listGzz,
 | 
			
		||||
						gongDanMingXi, cfhs);
 | 
			
		||||
				List<FenPei> list_wList = gongDanMingXi.list;
 | 
			
		||||
				for (FenPei fenPei : list_wList) {
 | 
			
		||||
					curr_gzz.renWuList.add(fenPei);
 | 
			
		||||
| 
						 | 
				
			
			@ -402,7 +427,8 @@ 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 chao = (list_wList.size() + curr_gzz.notFinished + curr_gzz.renWuList
 | 
			
		||||
							.size()) - curr_gzz.maxRenWu;
 | 
			
		||||
					// LogPrint(listGzz.size());
 | 
			
		||||
					if (chao <= cfhs || index == gongDanList.size() - 1) {
 | 
			
		||||
						// LogPrint("11=="+listGzz.get(gzz_index));
 | 
			
		||||
| 
						 | 
				
			
			@ -435,36 +461,130 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
		int fenPeiCount = 0;
 | 
			
		||||
		Map<String, Sequence> gdNextMaps = getGdNextSeq();
 | 
			
		||||
		Map<String, Integer> gdNextMax_ALL = new HashMap<String, Integer>();
 | 
			
		||||
		Map<String, Integer> gdNextMax_B = new HashMap<String, Integer>();
 | 
			
		||||
		Map<String, Integer> gdNextMax_S = new HashMap<String, Integer>();
 | 
			
		||||
		for ( String gdh: GongDan_WuLiao_Map.keySet()) {
 | 
			
		||||
			List<FenPei> gdlist=GongDan_WuLiao_Map.get(gdh);
 | 
			
		||||
			FenPei fenPei=gdlist.get(0);
 | 
			
		||||
			String gdhkey = fenPei.gdh + "-";
 | 
			
		||||
			String lx = "S";// 小件
 | 
			
		||||
			gdNextMax_ALL.put(gdhkey, 1);
 | 
			
		||||
			if (!gdNextMax_B.containsKey(gdhkey)) {
 | 
			
		||||
				gdNextMax_B.put(gdhkey, 1);
 | 
			
		||||
			}
 | 
			
		||||
			if (!gdNextMax_S.containsKey(gdhkey)) {
 | 
			
		||||
				gdNextMax_S.put(gdhkey, 1);
 | 
			
		||||
			}
 | 
			
		||||
			if ("big".equals(fenPei.wllx)) {
 | 
			
		||||
				lx = "B";// 大件
 | 
			
		||||
				int va = gdNextMax_B.get(gdhkey);
 | 
			
		||||
				if (fenPei.chf_fz > va) {
 | 
			
		||||
					gdNextMax_B.put(gdhkey, fenPei.chf_fz);
 | 
			
		||||
				}
 | 
			
		||||
				
 | 
			
		||||
			}else{
 | 
			
		||||
				int va = gdNextMax_S.get(gdhkey);
 | 
			
		||||
				if (fenPei.chf_fz > va) {
 | 
			
		||||
					gdNextMax_S.put(gdhkey, fenPei.chf_fz);
 | 
			
		||||
				}
 | 
			
		||||
				
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		for (String key : gzzMap.keySet()) {
 | 
			
		||||
			GongZuoZhan gongZuoZhan = gzzMap.get(key);
 | 
			
		||||
			LogPrint(log_GongZuoZhanFenPeiJieGuo,"----------------------------------------------------开始分配----------------------------------------------------------------------");
 | 
			
		||||
			LogPrint(log_GongZuoZhanFenPeiJieGuo,"Code:"+gongZuoZhan.code+" notFinished:"+gongZuoZhan.notFinished+"	maxRenWu:"+gongZuoZhan.maxRenWu+"	isEnble:"+gongZuoZhan.isEnble);
 | 
			
		||||
			LogPrint(log_GongZuoZhanFenPeiJieGuo,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
			LogPrint(
 | 
			
		||||
					log_GongZuoZhanFenPeiJieGuo,
 | 
			
		||||
					"----------------------------------------------------开始分配----------------------------------------------------------------------");
 | 
			
		||||
			LogPrint(log_GongZuoZhanFenPeiJieGuo, "Code:" + gongZuoZhan.code
 | 
			
		||||
					+ " notFinished:" + gongZuoZhan.notFinished + "	maxRenWu:"
 | 
			
		||||
					+ gongZuoZhan.maxRenWu + "	isEnble:" + gongZuoZhan.isEnble);
 | 
			
		||||
			LogPrint(
 | 
			
		||||
					log_GongZuoZhanFenPeiJieGuo,
 | 
			
		||||
					"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
			for (FenPei fenPei : gongZuoZhan.renWuList) {
 | 
			
		||||
				fenPeiCount = fenPeiCount + 1;
 | 
			
		||||
				String[] ids = fenPei.tsakId.split(",");
 | 
			
		||||
				for (int i = 0; i < ids.length; i++) {
 | 
			
		||||
					Task task=this.commonDao.get(Task.class, Long.parseLong(ids[i]));
 | 
			
		||||
					String lx="S";
 | 
			
		||||
					Task task = this.commonDao.get(Task.class,
 | 
			
		||||
							Long.parseLong(ids[i]));
 | 
			
		||||
					String lx = "S";// 小件
 | 
			
		||||
					int seq = 1;
 | 
			
		||||
					String gdhkey = fenPei.gdh + "-";
 | 
			
		||||
					
 | 
			
		||||
					if ("big".equals(fenPei.wllx)) {
 | 
			
		||||
						lx="B";
 | 
			
		||||
						lx = "B";// 大件
 | 
			
		||||
						if (gdNextMaps.containsKey(gdhkey)) {
 | 
			
		||||
							seq = gdNextMaps.get(gdhkey).getNextId().intValue()-1;
 | 
			
		||||
						}
 | 
			
		||||
					task.setBillCode(fenPei.gdh+"-"+lx+"-"+fenPei.chf_fz);
 | 
			
		||||
					task.setEndRegion(gongZuoZhan.code);
 | 
			
		||||
					//task.setAgvStatus(1);//下发
 | 
			
		||||
						int maxS=0;
 | 
			
		||||
						if(gdNextMax_S.containsKey(gdhkey)){
 | 
			
		||||
							maxS=gdNextMax_S.get(gdhkey);
 | 
			
		||||
						}
 | 
			
		||||
						task.setOldZrw(fenPei.gdh + "-"
 | 
			
		||||
								+ (seq+maxS+fenPei.chf_fz ));
 | 
			
		||||
						
 | 
			
		||||
					}else{
 | 
			
		||||
						if (gdNextMaps.containsKey(gdhkey)) {
 | 
			
		||||
							seq =gdNextMaps.get(gdhkey).getNextId().intValue()-1;
 | 
			
		||||
						}
 | 
			
		||||
						task.setOldZrw(fenPei.gdh  + "-"
 | 
			
		||||
								+ (fenPei.chf_fz + seq ));
 | 
			
		||||
					}
 | 
			
		||||
					
 | 
			
		||||
					// task.setBillCode(fenPei.gdh+"-"+lx+"-"+fenPei.chf_fz);
 | 
			
		||||
					// task.setEndRegion(gongZuoZhan.code);
 | 
			
		||||
					// if(task.getOldGzz()!=null){
 | 
			
		||||
					// task.setBillCode(task.getOldZrw());
 | 
			
		||||
					// task.setEndRegion(task.getOldGzz());
 | 
			
		||||
					// }
 | 
			
		||||
					task.setAgvStatus(-1);
 | 
			
		||||
					task.setOldGzz(gongZuoZhan.code);
 | 
			
		||||
				
 | 
			
		||||
				
 | 
			
		||||
					task.setStrBill9(lx+"-"+fenPei.chf_fz);
 | 
			
		||||
					task.setStrBill8(fenPei.twl);
 | 
			
		||||
					this.commonDao.store(task);
 | 
			
		||||
					// LogPrint("one:"+task.getBillCode()+"---"+task.getEndRegion()+"--two:-"+task.getOldGzz()+"---"+task.getOldZrw()+"--three:-"+fenPei.gdh+"-"+fenPei.chf_fz+"-----"+gongZuoZhan.code);
 | 
			
		||||
 | 
			
		||||
				}
 | 
			
		||||
				LogPrint(log_GongZuoZhanFenPeiJieGuo,"工作站:"+gongZuoZhan.code+" 	工单号:"+fenPei.gdh+"	容器号:"+fenPei.rqh+"	拆分号:"+fenPei.chf+"		拆分组:"+fenPei.chf_fz+"		头物料:"+fenPei.twl_fz);
 | 
			
		||||
				LogPrint(log_GongZuoZhanFenPeiJieGuo, "工作站:" + gongZuoZhan.code
 | 
			
		||||
						+ " 	工单号:" + fenPei.gdh + "	容器号:" + fenPei.rqh
 | 
			
		||||
						+ "	拆分号:" + fenPei.chf + "		拆分组:" + fenPei.chf_fz
 | 
			
		||||
						+ "		头物料:" + fenPei.twl_fz);
 | 
			
		||||
				// LogPrint(""+fenPei.twl_fz+"---"+fenPei.chf_fz+"---"+fenPei.chf+"---"+fenPei.gdh+"---"+fenPei.rqh);
 | 
			
		||||
			}
 | 
			
		||||
			LogPrint(log_GongZuoZhanFenPeiJieGuo,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
			LogPrint(
 | 
			
		||||
					log_GongZuoZhanFenPeiJieGuo,
 | 
			
		||||
					"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
		}
 | 
			
		||||
		LogPrint(log_GongZuoZhanFenPeiJieGuo,"GongDan_wuLiaoMingXiCout:"+GongDan_wuLiaoMingXiCout+"wlcountString:"+wlcountString+"		fenPeiCount:"+fenPeiCount);
 | 
			
		||||
		for (String gdhkey: gdNextMax_ALL.keySet()) {	
 | 
			
		||||
			Sequence s = gdNextMaps.get(gdhkey);
 | 
			
		||||
			int maxB=0;
 | 
			
		||||
			int maxS=0;
 | 
			
		||||
			if(gdNextMax_S.containsKey(gdhkey)){
 | 
			
		||||
				maxS=gdNextMax_S.get(gdhkey);
 | 
			
		||||
			}
 | 
			
		||||
			if(gdNextMax_B.containsKey(gdhkey)){
 | 
			
		||||
				maxB=gdNextMax_B.get(gdhkey);
 | 
			
		||||
			}
 | 
			
		||||
			int max=maxB+maxS;
 | 
			
		||||
			if(s!=null){
 | 
			
		||||
				s.setNextId(s.getNextId() +max );
 | 
			
		||||
				this.commonDao.store(s);
 | 
			
		||||
			} else {
 | 
			
		||||
				String insert_sql = "INSERT INTO SEQUENCE ([SEQUENCE_KEY], [SEQUENCE_TYPE], [NEXT_ID]) VALUES ('"
 | 
			
		||||
						+ gdhkey + "', ' ', " + max+ ")";
 | 
			
		||||
				session.createSQLQuery(insert_sql).executeUpdate();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		LogPrint(log_GongZuoZhanFenPeiJieGuo, "GongDan_wuLiaoMingXiCout:"
 | 
			
		||||
				+ GongDan_wuLiaoMingXiCout + "wlcountString:" + wlcountString
 | 
			
		||||
				+ "		fenPeiCount:" + fenPeiCount);
 | 
			
		||||
		// 写入数据库
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
| 
						 | 
				
			
			@ -480,14 +600,19 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public GongZuoZhan PiPeiGongZuoZhanForGzzxAndRqh(List<GongZuoZhan>listGzz,GongDanMingXi gongDanMingXi,int cfhs){
 | 
			
		||||
	public GongZuoZhan PiPeiGongZuoZhanForGzzxAndRqh(List<GongZuoZhan> listGzz,
 | 
			
		||||
			GongDanMingXi gongDanMingXi, int cfhs) {
 | 
			
		||||
		List<FenPei> list_wList = gongDanMingXi.list;
 | 
			
		||||
		GongZuoZhan check = listGzz.get(0);
 | 
			
		||||
		int max_rqh_count = 0;
 | 
			
		||||
		int max_gzzx = 0;
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"------------------------匹配容器号和工作中心-----------------------------------------------");
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"当前工单号:"+gongDanMingXi.gdh);
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_GongZuoZhanPiPeiForRqhAndGzzx,
 | 
			
		||||
				"------------------------匹配容器号和工作中心-----------------------------------------------");
 | 
			
		||||
		LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,
 | 
			
		||||
				"↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓");
 | 
			
		||||
		LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前工单号:"
 | 
			
		||||
				+ gongDanMingXi.gdh);
 | 
			
		||||
		for (GongZuoZhan gzz : listGzz) {
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "当前工作站:" + gzz.code);
 | 
			
		||||
			List<FenPei> list = gzz.renWuList;
 | 
			
		||||
| 
						 | 
				
			
			@ -497,10 +622,12 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
				sb_gzzx.append(fenPei.gzzx + "	,	");
 | 
			
		||||
				sb_rqh.append(fenPei.rqh + "	,	");
 | 
			
		||||
			}
 | 
			
		||||
				int chao=(list_wList.size()+gzz.notFinished+gzz.renWuList.size())-gzz.maxRenWu;
 | 
			
		||||
			int chao = (list_wList.size() + gzz.notFinished + gzz.renWuList
 | 
			
		||||
					.size()) - gzz.maxRenWu;
 | 
			
		||||
			// LogPrint(listGzz.size());
 | 
			
		||||
			if (chao > cfhs) {
 | 
			
		||||
					LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"工作站:"+gzz.code+"超出:"+chao+"无法分配,跳过此工作站");
 | 
			
		||||
				LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code
 | 
			
		||||
						+ "超出:" + chao + "无法分配,跳过此工作站");
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
			StringBuffer sb_pipei = new StringBuffer();
 | 
			
		||||
| 
						 | 
				
			
			@ -515,10 +642,12 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
					sb_pipei.append(fenPei.rqh);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
				LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"工作站:"+gzz.code+"	gzzx:"+gzzx+"		rqh_count:"+rqh_count);
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "工作站:" + gzz.code
 | 
			
		||||
					+ "	gzzx:" + gzzx + "		rqh_count:" + rqh_count);
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_gzzx.toString());
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, sb_rqh.toString());
 | 
			
		||||
				LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"匹配上的容器号:	"+sb_pipei.toString());
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,
 | 
			
		||||
					"匹配上的容器号:	" + sb_pipei.toString());
 | 
			
		||||
			Boolean isPiPeiGzzx = false;// true 优先按照工作中心匹配,再按照容器号。false直接按照容器号匹配散单
 | 
			
		||||
			if (isPiPeiGzzx) {
 | 
			
		||||
				if (max_gzzx == 0 && gzzx == 0 && rqh_count > max_rqh_count) {
 | 
			
		||||
| 
						 | 
				
			
			@ -532,7 +661,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
					max_gzzx = gzzx;
 | 
			
		||||
					check = gzz;
 | 
			
		||||
 | 
			
		||||
					}else if(max_gzzx==1 &&gzzx==1 && rqh_count>max_rqh_count){
 | 
			
		||||
				} else if (max_gzzx == 1 && gzzx == 1
 | 
			
		||||
						&& rqh_count > max_rqh_count) {
 | 
			
		||||
					// 如果匹配过工作中心,且本次匹配到工作中心; 容器号匹配度大优先
 | 
			
		||||
					max_rqh_count = rqh_count;
 | 
			
		||||
					max_gzzx = gzzx;
 | 
			
		||||
| 
						 | 
				
			
			@ -545,7 +675,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
					max_rqh_count = rqh_count;
 | 
			
		||||
					max_gzzx = gzzx;
 | 
			
		||||
					check = gzz;
 | 
			
		||||
					}else if(rqh_count==max_rqh_count && gzzx==1 && max_gzzx==0){
 | 
			
		||||
				} else if (rqh_count == max_rqh_count && gzzx == 1
 | 
			
		||||
						&& max_gzzx == 0) {
 | 
			
		||||
					// 如果容器号匹配次数相同,且上次匹配工作站未匹配工作中心,本次匹配到了工作中心,本次匹配设为最优解
 | 
			
		||||
					max_rqh_count = rqh_count;
 | 
			
		||||
					max_gzzx = gzzx;
 | 
			
		||||
| 
						 | 
				
			
			@ -555,13 +686,17 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"容器号匹配次数:"+max_rqh_count+"		工作中心匹配次数:"+max_gzzx+"		工单号:"+gongDanMingXi.gdh+"		工作站:"+check.code);
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
			LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,"------------------------匹配容器号和工作中心-----------------------------------------------");
 | 
			
		||||
		LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx, "容器号匹配次数:" + max_rqh_count
 | 
			
		||||
				+ "		工作中心匹配次数:" + max_gzzx + "		工单号:" + gongDanMingXi.gdh
 | 
			
		||||
				+ "		工作站:" + check.code);
 | 
			
		||||
		LogPrint(log_GongZuoZhanPiPeiForRqhAndGzzx,
 | 
			
		||||
				"↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_GongZuoZhanPiPeiForRqhAndGzzx,
 | 
			
		||||
				"------------------------匹配容器号和工作中心-----------------------------------------------");
 | 
			
		||||
		return check;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	public List<GongZuoZhan> FaiXuGzz(Map<String, GongZuoZhan> gzzMap) {
 | 
			
		||||
		List<GongZuoZhan> list = new ArrayList<DefaultNewWaveManager.GongZuoZhan>();
 | 
			
		||||
		for (String key : gzzMap.keySet()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -573,14 +708,15 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		return list;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	class GongZuoZhan implements Comparable<GongZuoZhan> {
 | 
			
		||||
		public GongZuoZhan(String code,int notFinished,int maxRenWu,boolean isEnble){
 | 
			
		||||
		public GongZuoZhan(String code, int notFinished, int maxRenWu,
 | 
			
		||||
				boolean isEnble) {
 | 
			
		||||
			this.code = code;
 | 
			
		||||
			this.notFinished = notFinished;
 | 
			
		||||
			this.maxRenWu = maxRenWu;
 | 
			
		||||
			this.isEnble = isEnble;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public String code = "";
 | 
			
		||||
		public boolean isEnble;
 | 
			
		||||
		public int maxRenWu;
 | 
			
		||||
| 
						 | 
				
			
			@ -589,23 +725,25 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
 | 
			
		||||
		Map<String, String> GongZuoZhongXinMap = new HashMap<>();
 | 
			
		||||
		Map<String, String> RongQIHaoMap = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public int compareTo(GongZuoZhan other) {
 | 
			
		||||
			// TODO Auto-generated method stub
 | 
			
		||||
			return this.notFinished+renWuList.size()-other.notFinished-other.renWuList.size();
 | 
			
		||||
			return this.notFinished + renWuList.size() - other.notFinished
 | 
			
		||||
					- other.renWuList.size();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	public List<FenPei> Paixu(List<FenPei> list_fenpei, int cfhs) {
 | 
			
		||||
		Map<String, List<FenPei>> GongDan_WuLiao_Map = new HashMap<>();
 | 
			
		||||
		// 第一步:给所有任务进行分组(根据工单号,和物料类型)
 | 
			
		||||
		for (FenPei fenPei : list_fenpei) {
 | 
			
		||||
			String GongDan_WuLiao = fenPei.gdh + fenPei.wllx;
 | 
			
		||||
			if (((java.util.Map) GongDan_WuLiao_Map).containsKey(GongDan_WuLiao)) {
 | 
			
		||||
			if (((java.util.Map) GongDan_WuLiao_Map)
 | 
			
		||||
					.containsKey(GongDan_WuLiao)) {
 | 
			
		||||
 | 
			
		||||
				List<FenPei> list_count = GongDan_WuLiao_Map.get(GongDan_WuLiao);
 | 
			
		||||
				List<FenPei> list_count = GongDan_WuLiao_Map
 | 
			
		||||
						.get(GongDan_WuLiao);
 | 
			
		||||
				list_count.add(fenPei);
 | 
			
		||||
				GongDan_WuLiao_Map.put(GongDan_WuLiao, list_count);
 | 
			
		||||
			} else {
 | 
			
		||||
| 
						 | 
				
			
			@ -633,8 +771,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		// 打印排序结果
 | 
			
		||||
		PirntGongDanMingXiList(GongDan_List, "首次工单排序");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		// 先根据头物料分组 如果头物料相同 且工单总行数 差异小于4的工单分到一个组里面 (尽量分配到同一工作站)
 | 
			
		||||
		Map<String, List<GongDanMingXi>> touwuliao_map = new HashMap<>();
 | 
			
		||||
		for (GongDanMingXi gdPaiXu : GongDan_List) {
 | 
			
		||||
| 
						 | 
				
			
			@ -646,7 +782,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
			int currCount = gdPaiXu.hangshu;
 | 
			
		||||
			boolean isFind = false;
 | 
			
		||||
			for (String twlKey : touwuliao_map.keySet()) {
 | 
			
		||||
				String twl_in = touwuliao_map.get(twlKey).get(0).twl + "_"+ touwuliao_map.get(twlKey).get(0).list.get(0).wllx;
 | 
			
		||||
				String twl_in = touwuliao_map.get(twlKey).get(0).twl + "_"
 | 
			
		||||
						+ touwuliao_map.get(twlKey).get(0).list.get(0).wllx;
 | 
			
		||||
				int currCount_in = touwuliao_map.get(twlKey).get(0).hangshu;
 | 
			
		||||
				if (twl_in.equals(fenzu)
 | 
			
		||||
						&& Math.abs(currCount - currCount_in) <= 4) {
 | 
			
		||||
| 
						 | 
				
			
			@ -669,7 +806,6 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		// 打印头物料分组后的情况
 | 
			
		||||
		PirntFirstTouwuLiaoMap(touwuliao_map, "首次头物料分组");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		// 计算没个容器号出现得次数(在每个头物料得分组里面)
 | 
			
		||||
 | 
			
		||||
		for (String twlKey : touwuliao_map.keySet()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -697,7 +833,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
 | 
			
		||||
			}
 | 
			
		||||
			// 给touwuliao_map的 中 按照容器出现次数进行排序
 | 
			
		||||
			//循环GongDanList 并给所有工单 中所有任务,写入任务中容器出现次数,并按容器次数进行排序;刷新touwuliao_map(头物料分组合集);
 | 
			
		||||
			// 循环GongDanList 并给所有工单
 | 
			
		||||
			// 中所有任务,写入任务中容器出现次数,并按容器次数进行排序;刷新touwuliao_map(头物料分组合集);
 | 
			
		||||
			List<GongDanMingXi> list_show_new = new ArrayList<>();
 | 
			
		||||
			for (GongDanMingXi fenPei2 : GongDanList) {
 | 
			
		||||
				List<FenPei> list_new = new ArrayList<>();
 | 
			
		||||
| 
						 | 
				
			
			@ -742,7 +879,8 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
					if (fz_col < gdPaiXu.list.size()) {
 | 
			
		||||
						FenPei fenPei = list_fen.get(fz_col);
 | 
			
		||||
						rq_last_show2.put(fenPei.rqh, 1);
 | 
			
		||||
						 if((fz_col+1)%cfhs==1||(fz_col+1)%cfhs==2){
 | 
			
		||||
						if ((fz_col + 1) % cfhs == 1
 | 
			
		||||
								|| (fz_col + 1) % cfhs == 2) {
 | 
			
		||||
							// 如果 超过最大拆分行的第一列 第二列中 出现了 上一个分组的容器,则本 任务分给上一个组
 | 
			
		||||
							if (rq_last_show.containsKey(fenPei.rqh)) {
 | 
			
		||||
								fenPei.chf_fz = (fz_col) / cfhs;
 | 
			
		||||
| 
						 | 
				
			
			@ -774,24 +912,28 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
					rq_last_show2 = new HashMap<>();
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		
 | 
			
		||||
		return list_new;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void PirntFirstTouwuLiaoMap(Map<String, List<GongDanMingXi>> touwuliao_map ,String title){
 | 
			
		||||
	public void PirntFirstTouwuLiaoMap(
 | 
			
		||||
			Map<String, List<GongDanMingXi>> touwuliao_map, String title) {
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap, "");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap, "");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap,"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap,"------------------------------------"+title+"------------------------------------------");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_PirntFirstTouwuLiaoMap,
 | 
			
		||||
				"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap,
 | 
			
		||||
				"------------------------------------" + title
 | 
			
		||||
						+ "------------------------------------------");
 | 
			
		||||
		for (String twlKey : touwuliao_map.keySet()) {
 | 
			
		||||
			List<GongDanMingXi> list_show = touwuliao_map.get(twlKey);
 | 
			
		||||
			for (GongDanMingXi gongDan : list_show) {
 | 
			
		||||
				LogPrint(log_PirntFirstTouwuLiaoMap,"头物料	" + gongDan.twl + "		工单号:" + gongDan.gdh+ "		头物料分组KEY:" + twlKey + "		任务行数:"+ gongDan.hangshu);
 | 
			
		||||
				LogPrint(log_PirntFirstTouwuLiaoMap, "头物料	" + gongDan.twl
 | 
			
		||||
						+ "		工单号:" + gongDan.gdh + "		头物料分组KEY:" + twlKey
 | 
			
		||||
						+ "		任务行数:" + gongDan.hangshu);
 | 
			
		||||
 | 
			
		||||
				StringBuffer rqm = new StringBuffer();
 | 
			
		||||
				for (FenPei fff : gongDan.list) {
 | 
			
		||||
| 
						 | 
				
			
			@ -800,47 +942,65 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
				LogPrint(log_PirntFirstTouwuLiaoMap, "容器号:	" + rqm.toString());
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
			LogPrint(log_PirntFirstTouwuLiaoMap,"-----------------------------------------------------------------------");
 | 
			
		||||
			LogPrint(log_PirntFirstTouwuLiaoMap,
 | 
			
		||||
					"-----------------------------------------------------------------------");
 | 
			
		||||
			LogPrint(log_PirntFirstTouwuLiaoMap, "");
 | 
			
		||||
			LogPrint(log_PirntFirstTouwuLiaoMap, "");
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void PirntGongDanMingXiList(List<GongDanMingXi> GongDan_List ,String title){
 | 
			
		||||
	public void PirntGongDanMingXiList(List<GongDanMingXi> GongDan_List,
 | 
			
		||||
			String title) {
 | 
			
		||||
		LogPrint(log_PirntGongDanMingXiList, "");
 | 
			
		||||
		LogPrint(log_PirntGongDanMingXiList, "");
 | 
			
		||||
		LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap,"------------------------------------"+title+"------------------------------------------");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_PirntGongdanMap,
 | 
			
		||||
				"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap,
 | 
			
		||||
				"------------------------------------" + title
 | 
			
		||||
						+ "------------------------------------------");
 | 
			
		||||
		for (GongDanMingXi gdPaiXu : GongDan_List) {
 | 
			
		||||
			LogPrint(log_PirntGongDanMingXiList, "工单号:" + gdPaiXu.gdh);
 | 
			
		||||
			List<FenPei> list_FenPei = gdPaiXu.list;
 | 
			
		||||
			for (FenPei fenPei : list_FenPei) {
 | 
			
		||||
				LogPrint(log_PirntGongDanMingXiList,"工单号:" +fenPei.gdh+"		物料类型:"+fenPei.wllx+"		头物料:"+fenPei.twl+"		容器号:	"+fenPei.rqh);
 | 
			
		||||
				LogPrint(log_PirntGongDanMingXiList, "工单号:" + fenPei.gdh
 | 
			
		||||
						+ "		物料类型:" + fenPei.wllx + "		头物料:" + fenPei.twl
 | 
			
		||||
						+ "		容器号:	" + fenPei.rqh);
 | 
			
		||||
			}
 | 
			
		||||
			LogPrint(log_PirntGongdanMap, "");
 | 
			
		||||
			LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
			LogPrint(
 | 
			
		||||
					log_PirntGongdanMap,
 | 
			
		||||
					"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void PirntGongdanMap(Map<String, List<FenPei>> GongDan_WuLiao_Map,String title){
 | 
			
		||||
	public void PirntGongdanMap(Map<String, List<FenPei>> GongDan_WuLiao_Map,
 | 
			
		||||
			String title) {
 | 
			
		||||
		LogPrint(log_PirntGongDanMingXiList, "");
 | 
			
		||||
		LogPrint(log_PirntGongDanMingXiList, "");
 | 
			
		||||
		LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap,"------------------------------------"+title+"------------------------------------------");
 | 
			
		||||
		LogPrint(
 | 
			
		||||
				log_PirntGongdanMap,
 | 
			
		||||
				"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		LogPrint(log_PirntFirstTouwuLiaoMap,
 | 
			
		||||
				"------------------------------------" + title
 | 
			
		||||
						+ "------------------------------------------");
 | 
			
		||||
		for (String key : GongDan_WuLiao_Map.keySet()) {
 | 
			
		||||
			LogPrint(log_PirntGongdanMap, "工单号:" + key);
 | 
			
		||||
			LogPrint(log_PirntGongdanMap, "");
 | 
			
		||||
			List<FenPei> list_FenPei = GongDan_WuLiao_Map.get(key);
 | 
			
		||||
			for (FenPei fenPei : list_FenPei) {
 | 
			
		||||
				LogPrint(log_PirntGongdanMap,"工单号:" +fenPei.gdh+"		物料类型:"+fenPei.wllx+"		头物料:"+fenPei.twl+"		容器号:	"+fenPei.rqh);
 | 
			
		||||
				LogPrint(log_PirntGongdanMap, "工单号:" + fenPei.gdh + "		物料类型:"
 | 
			
		||||
						+ fenPei.wllx + "		头物料:" + fenPei.twl + "		容器号:	"
 | 
			
		||||
						+ fenPei.rqh);
 | 
			
		||||
			}
 | 
			
		||||
			LogPrint(log_PirntGongdanMap, "");
 | 
			
		||||
			LogPrint(log_PirntGongdanMap,"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
			LogPrint(
 | 
			
		||||
					log_PirntGongdanMap,
 | 
			
		||||
					"-------------------------------------------------------------------------------------------------------");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	class TwlFenZu implements Comparable<TwlFenZu> {
 | 
			
		||||
		List<GongDanMingXi> gdPaiXus;
 | 
			
		||||
		public int wl_count = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -986,6 +1146,19 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 工作站初始效能
 | 
			
		||||
	public int getValueGzzNumber(ShiXiao lx_sx) {
 | 
			
		||||
		int str = 60;
 | 
			
		||||
		try {
 | 
			
		||||
			str = Integer.parseInt(lx_sx.getTime()) / 60
 | 
			
		||||
					* (int) lx_sx.getNumber();
 | 
			
		||||
		} catch (Exception e) {
 | 
			
		||||
			// LogPrint(i + "" + e.toString());
 | 
			
		||||
			str = 60;
 | 
			
		||||
		}
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getValueString(Object[] obj, int i) {
 | 
			
		||||
		String str = "";
 | 
			
		||||
		try {
 | 
			
		||||
| 
						 | 
				
			
			@ -1033,11 +1206,13 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		return codes;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Map<String, Integer> gzzCount() {
 | 
			
		||||
	// 工作站剩余任务量
 | 
			
		||||
	public Map<String, Integer> gzzCount(String waveDocCode) {
 | 
			
		||||
		Session session = ((HibernateDaoSupport) this.commonDao)
 | 
			
		||||
				.getSessionFactory().openSession();
 | 
			
		||||
		String sql = "select v.gzz,count(v.gzz) gzz_count from "
 | 
			
		||||
				+ " (SELECT MAX ( t.END_REGION ) AS gzz FROM task t "
 | 
			
		||||
//				+ " (SELECT MAX ( t.END_REGION ) AS gzz FROM task t "
 | 
			
		||||
				+ " (SELECT MAX ( t.old_gzz ) AS gzz FROM task t "
 | 
			
		||||
				+ " LEFT JOIN PICK_TICKET_DETAIL ptd ON ptd.id= t.PICK_TICKET_DETAIL_ID "
 | 
			
		||||
				+ " LEFT JOIN PICK_TICKET pt ON pt.id= ptd.PICK_TICKET_ID "
 | 
			
		||||
				+ " LEFT JOIN LOCATION loc ON loc.id= t.SRC_LOC_ID "
 | 
			
		||||
| 
						 | 
				
			
			@ -1045,20 +1220,21 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
				+ " LEFT JOIN ITEM item ON item.id= ik.ITEM_ID "
 | 
			
		||||
				+ " LEFT JOIN WAVE_DOC wd ON wd.id= t.WAVE_DOC_ID  "
 | 
			
		||||
				+ " WHERE 1 = 1  AND pt.BILL_TYPE_ID= 1094 and loc.ZONE_ID in (1763,1765,1766) "
 | 
			
		||||
				+ " AND  t.agv_Status in (1,2) "
 | 
			
		||||
				+ " AND t.WAVE_DOC_ID IS NOT NULL "
 | 
			
		||||
				+ " AND  t.agv_Status in (-1,1,2) "
 | 
			
		||||
				+ " AND t.WAVE_DOC_ID IS NOT NULL and t.END_REGION is not null and wd.code!='"
 | 
			
		||||
				+ waveDocCode
 | 
			
		||||
				+ "' "
 | 
			
		||||
				+ " GROUP BY pt.code,t.BILLCODE,loc.id,loc.code,ik.PROP_C1,ik.PROP_C2,ik.PROP_C3,ik.PROP_D1,ik.PROP_D2,item.ISBOM ) v "
 | 
			
		||||
				+ " GROUP BY v.gzz";
 | 
			
		||||
		LogPrint(log_sql,sql);
 | 
			
		||||
		Query query = session.createSQLQuery(sql);
 | 
			
		||||
		List<Object[]> objs = (List<Object[]>) query.list();
 | 
			
		||||
		Map<String, Integer> gdCount = new HashMap<String, Integer>();
 | 
			
		||||
		if (objs.size() > 0) {
 | 
			
		||||
			for (int i = 0; i < objs.size(); i++) {
 | 
			
		||||
				Object[] obj = objs.get(i);
 | 
			
		||||
			
 | 
			
		||||
				if (obj[0] != null) {
 | 
			
		||||
					gdCount.put(obj[0].toString() + "", getValueInt(obj, 1));
 | 
			
		||||
				
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1066,6 +1242,19 @@ public class DefaultNewWaveManager extends DefaultBaseManager implements
 | 
			
		|||
		return gdCount;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 工作站剩余任务量
 | 
			
		||||
	public Map<String, Sequence> getGdNextSeq() {
 | 
			
		||||
		String hql = " from Sequence";
 | 
			
		||||
		List<Sequence> list = commonDao.findByQuery(hql);
 | 
			
		||||
		Map<String, Sequence> maps = new HashMap<String, Sequence>();
 | 
			
		||||
		for (Sequence seq : list) {
 | 
			
		||||
			maps.put(seq.getSequenceKey().getKey(), seq);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return maps;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 拆分行数查询
 | 
			
		||||
	public ShiXiao kqShiXiao(Long zone_id) {
 | 
			
		||||
		String hql = " from ShiXiao sx where sx.warehouseArea.id=" + zone_id;
 | 
			
		||||
		List<ShiXiao> list = commonDao.findByQuery(hql);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue