package xin.glue.ui.G.G04; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; public class YardHandle { private PosGenericDao dao; private PosParameter param; private PosRowSet rowSet; private PosRow row; public YardHandle(PosGenericDao dao){ this.dao = dao; } //获得板坯层数 public int getStorelay(String addr){ param = new PosParameter(); param.setWhereClauseParameter(0, addr); rowSet = dao.find("UIG04COMM_STORELAY_CHK.select", param); if(rowSet.hasNext()){ row = rowSet.next(); int storelay = Integer.parseInt((String)row.getAttribute("STORELAY")); return storelay; } else return 0; } //检查存放垛位是否满足最大16块 public boolean chekStorelay(String add){ int storelay = getStorelay(add); return (storelay > 0 && storelay <= 16)?true:false; } //清除原垛位的坯料 public int clearFromAddr(String fromAddr,String fromStorelay){ param = new PosParameter(); param.setWhereClauseParameter(0, fromAddr); param.setWhereClauseParameter(1, fromStorelay); int updateCnt = dao.update("UIG04COMM_FROM_ADDR_CLEAR.update", param); return updateCnt; } public int clearFromAddrBySlabNo(String slabNo){ param = new PosParameter(); param.setWhereClauseParameter(0, slabNo); int updateCnt = dao.update("UIG04COMM_FROM_ADDR_CLEAR_BY_SLABN0.update", param); return updateCnt; } //更新目标垛位信息 public int setToAddr(String slabNo ,String fromYardAddr ,String fromStorelay ,String toYardAddr ,String toStorelay ,String slabExtRegDtime ,String slabExtRegId){ param = new PosParameter(); param.setWhereClauseParameter(0, slabNo);//SLAB_NO param.setWhereClauseParameter(1, fromYardAddr + "" + fromStorelay);//BEF_STORE_LOC param.setWhereClauseParameter(2, "");//CR_NO param.setWhereClauseParameter(3, slabExtRegId);//REG_ID param.setWhereClauseParameter(4, "");//ORD_FLAG param.setWhereClauseParameter(5, toYardAddr);//YARD_ADDR param.setWhereClauseParameter(6, toStorelay);//STORELAY int updateCnt = dao.update("UIG04COMM_TO_ADDR_SET.update", param); return updateCnt; } //更新板坯公共表信息 eg:出库,入库时间 public int setExtSlabComm( String slabNo ,String fromYardAddr ,String fromStorelay ,String toYardAddr ,String toStorelay){ param = new PosParameter(); param.setWhereClauseParameter(0, toYardAddr + "" + toStorelay); param.setWhereClauseParameter(1, slabNo); String sqlStr = null; if(fromYardAddr.substring(0, 1).equals("L")){ sqlStr = "UIG04COMM_SLAB_G_COMM_TAKEOUT.update"; }else if(fromYardAddr.substring(0, 1).equals("Z")){ sqlStr = "UIG04COMM_SLAB_H_COMM_TAKEOUT.update"; } int updateCnt = (sqlStr == null ?0:dao.update(sqlStr, param)); return updateCnt; } public int setEntSlabComm( String slabNo ,String toYardAddr ,String toStorelay){ param = new PosParameter(); param.setWhereClauseParameter(0, toYardAddr + "" + toStorelay); param.setWhereClauseParameter(1, slabNo); String sqlStr = null; if(toYardAddr.substring(0, 1).equals("L")){ sqlStr = "UIG04COMM_SLAB_G_COMM_TAKEIN.update"; }else if(toYardAddr.substring(0, 1).equals("Z")){ sqlStr = "UIG04COMM_SLAB_H_COMM_TAKEIN.update"; } int updateCnt = (sqlStr == null ?0:dao.update(sqlStr, param)); return updateCnt; } //修改公共表中 垛位,入库时间 ,入库时间类型 public int setEntSlabComm( String slabNo ,String toYardAddr ,String toStorelay ,String slabStockType){ param = new PosParameter(); param.setWhereClauseParameter(0, toYardAddr + "" + toStorelay); param.setWhereClauseParameter(1, slabStockType); param.setWhereClauseParameter(2, slabNo); String sqlStr = null; if(toYardAddr.substring(0, 1).equals("L")){ sqlStr = "UIG04COMM_SLAB_G_COMM_TAKEIN_02.update"; }else if(toYardAddr.substring(0, 1).equals("Z")){ sqlStr = "UIG04COMM_SLAB_H_COMM_TAKEIN_02.update"; } int updateCnt = (sqlStr == null ?0:dao.update(sqlStr, param)); return updateCnt; } //修改公共表中 垛位,入库时间 ,入库时间类型 public int setEntSlabComm( String slabNo ,String toYardAddr ,String toStorelay ,String slabStockType ,String hcrClf){ param = new PosParameter(); param.setWhereClauseParameter(0, toYardAddr + "" + toStorelay); param.setWhereClauseParameter(1, slabStockType); param.setWhereClauseParameter(2, hcrClf); param.setWhereClauseParameter(3, slabNo); String sqlStr = null; if(toYardAddr.substring(0, 1).equals("L")){ sqlStr = "UIG04COMM_SLAB_G_COMM_TAKEIN_03.update"; }else if(toYardAddr.substring(0, 1).equals("Z")){ sqlStr = "UIG04COMM_SLAB_H_COMM_TAKEIN_03.update"; } int updateCnt = (sqlStr == null ?0:dao.update(sqlStr, param)); return updateCnt; } //行车命令制定检查 //检查坯料是否已经制定行车命令,是否在垛位没制定杭车命令坯料的最上层 //return A 成功 // B 已经制定行车命令 // C 不在垛位最上层 // D 板坯已经制定行车命令 // E 数据异常 public String creatCrNoChek(String slabNo,String yardAddr){ param = new PosParameter(); param.setWhereClauseParameter(0, slabNo); rowSet = dao.find("UIG04COMM_CRATE_CRNO_CHECK_03.select", param); if(rowSet.hasNext()){ return "B"; } param = new PosParameter(); param.setWhereClauseParameter(0, slabNo); param.setWhereClauseParameter(1, yardAddr); param.setWhereClauseParameter(2, yardAddr); rowSet = dao.find("UIG04COMM_CRATE_CRNO_CHECK_01.select", param); if(rowSet.hasNext()){ row = rowSet.next(); //是否已经制定行车命令 String Flag = (String)row.getAttribute("ORD_FLAG"); if (Flag != null && Flag.equals("1")) { return "B"; } else { return "A"; } }else{ param = new PosParameter(); param.setWhereClauseParameter(0, yardAddr); param.setWhereClauseParameter(1, slabNo); param.setWhereClauseParameter(2, yardAddr); rowSet = dao.find("UIG04COMM_CRATE_CRNO_CHECK_02.select", param); if (rowSet.hasNext()) { return "C"; } else { return "E"; } } } //行车命令制定 public void CrNoCreate(String crType,String slabNo,String fromAddr,String toAddr,String crNo){ if(crType.equals("B")){//上料 loadBlank(slabNo,fromAddr,toAddr,crNo); } } //上料行车命令制定 public void loadBlank(String slabNo,String fromAddr,String toAddr,String crNo){ String sqlCrL1 = "SELECT SLAB_CRANE_ORDER_SEQ.NEXTVAL SEQ_NO FROM DUAL "; PosRowSet CrSeqVo = dao.findByQueryStatement(sqlCrL1 ); if (CrSeqVo.hasNext()) { param = new PosParameter(); param.setValueParamter(0, fromAddr); param.setValueParamter(1, toAddr); param.setValueParamter(2, "1"); param.setValueParamter(3, crNo); param.setValueParamter(4, slabNo); dao.insert("UIG040041_01.insert", param); } // 标记对应库位 ORD_FLAG = '1' 制定 /*PosParameter param2 = new PosParameter(); param2.setValueParamter(0, "2"); param2.setValueParamter(1, slabNo); param2.setValueParamter(2, fromAddr); dao.insert("UIG040041_01.update", param2);*/ //Crane Command set 'CRD' TO CUR_LOAD_LOC column of TBG02_SLAB_COMM param = new PosParameter(); param.setValueParamter(0, "CRD"); param.setValueParamter(1, slabNo); dao.insert("UIG040041_SLAB_COMM.update", param); } // public void (){ // // } // 修改行车命令状态 // 1:制定 // 2:执行 // 3:删除 public void crOrdUpt(String seqNo,String ordStat){ param = new PosParameter(); param.setValueParamter(0,ordStat); param.setValueParamter(1,seqNo); dao.update("UIG04COMM_CR_ORD.update", param); } //加热炉一级发送上料信息 public void RHFSendL1(String slabNo,String toAddr) { String sqlTIL1 = "SELECT TBH06_L2_SEND_SLAB_TAKEIN_SEQ.NEXTVAL SEQ_NO FROM DUAL "; rowSet = dao.findByQueryStatement(sqlTIL1); if (rowSet.hasNext()) { row = rowSet.next(); Number SEQ_NO1 = (Number) row.getAttribute("SEQ_NO"); param = new PosParameter(); param.setValueParamter(0, "FML010"); param.setValueParamter(1, slabNo); param.setValueParamter(2, toAddr); param.setValueParamter(3, "C"); param.setValueParamter(4, "A7"); param.setValueParamter(5, SEQ_NO1); dao.update("UIG04COMM_L1_TAKEIN.update", param); } else { param = new PosParameter(); param.setValueParamter(0, "FML010"); param.setValueParamter(1, slabNo); param.setValueParamter(2, toAddr); param.setValueParamter(3, "C"); param.setValueParamter(4, "A7"); dao.update("UIG04COMM_L1_TAKEIN.insert", param); } } //加热炉二级发送上料信息 public void RHFSendL2(String slabNo, String toAddr) { param = new PosParameter(); param.setWhereClauseParameter(0, slabNo); rowSet = dao.find("UIG040042_COIL_NO.select", param); if (rowSet.hasNext()) { row = rowSet.next(); String CoilNo = (String) row.getAttribute("COIL_NO"); String sqlTIL2 = "SELECT TBH06_L1_SEND_SLAB_TAKEIN_SEQ.NEXTVAL SEQ_NO FROM DUAL "; rowSet = dao.findByQueryStatement(sqlTIL2); if (rowSet.hasNext()) { row = rowSet.next(); Number SEQ_NO2 = (Number) row.getAttribute("SEQ_NO"); param = new PosParameter(); param.setValueParamter(0, "HMFU30"); param.setValueParamter(1, toAddr); param.setValueParamter(2, slabNo); param.setValueParamter(3, CoilNo); param.setValueParamter(4, SEQ_NO2); dao.update("UIG04COMM_L2_TAKEIN.update", param); } else { param = new PosParameter(); param.setValueParamter(0, "HMFU30"); param.setValueParamter(1, toAddr); param.setValueParamter(2, slabNo); param.setValueParamter(3, CoilNo); dao.update("UIG04COMM_L2_TAKEIN.insert", param); } } } //加热炉二级发送上料信息 public void RHFSendL1(String slabNo,String fromAddr,String toAddr) { String sqlTO = "SELECT TBH06_L1_SEND_SLAB_TAKEOUT_SEQ SEQ_NO FROM DUAL "; rowSet = dao.findByQueryStatement(sqlTO); if (rowSet.hasNext()) { row = rowSet.next(); Number SEQ_NO3 = (Number) row.getAttribute("SEQ_NO"); param = new PosParameter(); param.setValueParamter(0, "FML020"); param.setValueParamter(1, slabNo); param.setValueParamter(2, fromAddr); param.setValueParamter(3, toAddr); param.setValueParamter(4, SEQ_NO3); dao.update("UIG040042_L1_TAKEOUT.update", param); } else { param = new PosParameter(); param.setValueParamter(0, "FML020"); param.setValueParamter(1, slabNo); param.setValueParamter(2, fromAddr); param.setValueParamter(3, toAddr); dao.update("UIG040042_L1_TAKEOUT.insert", param); } } /* * */ public void CrLockUdt(String TCID,String msgFlag,String lockFlag,String linePosition) { String sqlLockL2 = "SELECT TBH06_L1_SEND_SLAB_LOCK_SEQ.NEXTVAL SEQ_NO FROM DUAL "; rowSet = dao.findByQueryStatement(sqlLockL2); row = rowSet.next(); Number SEQ_NO = (Number) row.getAttribute("SEQ_NO"); param = new PosParameter(); param.setWhereClauseParameter(0, msgFlag); param.setWhereClauseParameter(1, TCID); param.setWhereClauseParameter(2, lockFlag); param.setWhereClauseParameter(3, linePosition); param.setWhereClauseParameter(4, SEQ_NO); int cnt = dao.update("UIGCOMM_L1_LOCK.update", param); if(cnt == 0){ param = new PosParameter(); param.setValueParamter(0, msgFlag); param.setValueParamter(1, TCID); param.setValueParamter(2, lockFlag); param.setValueParamter(3, linePosition); dao.insert("UIGCOMM_L1_LOCK.insert", param); } } }