package xin.glue.nui.H.H02; import java.text.DateFormat; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.math.*; import java.text.*; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.biz.control.PosBizControlIF; import com.posdata.glue.biz.control.PosBizProvider; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.PosGenericDao; import com.posdata.glue.dao.vo.PosRowSet; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.msg.PosMESMessageImpl; import com.posdata.glue.msg.PosMessage; //import com.sun.org.apache.xpath.internal.operations.Number; public class XinCoilYardDecPos extends PosActivity { private String[] sSelYard = new String[10]; private int iIdx = 0; public String runActivity(PosContext context) { logger.logInfo("XinCoilYardDecPos runActivity START..."); PosMessage message = context.getMessage(); String MSG_COIL_NO = (String) message.get("COIL_NO" ); String MSG_CURR_POS = (String) message.get("CURR_POS" ); String RtnCrCmd = null; for ( int j = 0; j < 10 ; j++) { sSelYard[j] = ""; } try { // PosRowSet SlabSpecVo = (PosRowSet) context.get("SlabSpec"); PosRowSet RsltCoilCommVo = (PosRowSet) context.get("RsltCoilComm"); RsltCoilCommVo.reset(); // SlabSpecVo.reset(); if (RsltCoilCommVo.hasNext() ) { logger.logInfo("XinCoilYardDecPos---> SpecVo " ); PosRow RsltCoilCommRow = RsltCoilCommVo.next(); String R_SPM_YN = (String)RsltCoilCommRow.getAttribute("SPM_YN"); String R_STL_GRD = (String)RsltCoilCommRow.getAttribute("STL_GRD"); Number R_COIL_WTH = (Number)RsltCoilCommRow.getAttribute("COIL_WTH"); Number R_COIL_OUT_DIA = (Number)RsltCoilCommRow.getAttribute("COIL_OUTDIA"); String R_PRODNM_CD = (String)RsltCoilCommRow.getAttribute("PRODNM_CD"); String R_ORD_FL = (String)RsltCoilCommRow.getAttribute("ORD_FL"); String R_SCRAP_CAUSE_CD = (String)RsltCoilCommRow.getAttribute("SCRAP_CAUSE_CD"); String R_RTN_CAU_CD = (String)RsltCoilCommRow.getAttribute("RTN_CAU_CD"); if (R_SPM_YN != null && R_SPM_YN.equals("1") ) { sSelYard = YardSearch("D",R_STL_GRD); } else if (R_SPM_YN != null && R_SPM_YN.equals("2")) { sSelYard = YardSearch("E",R_STL_GRD); } else if (R_PRODNM_CD != null && R_PRODNM_CD.substring(0,1).equals("C")){ sSelYard = YardSearch("C",R_STL_GRD); } else if (R_RTN_CAU_CD != null && !R_RTN_CAU_CD.equals("") ){ sSelYard = YardSearch("B",R_STL_GRD); } else if (R_SCRAP_CAUSE_CD != null && !R_SCRAP_CAUSE_CD.equals("") ){ sSelYard = YardSearch("A",R_STL_GRD); } else if (R_ORD_FL != null && R_ORD_FL.equals("2") ){ sSelYard = YardSearch("F",R_STL_GRD); } else { sSelYard = YardSearch("G",R_STL_GRD); } logger.logInfo("XinCoilYardDecPos---> sSelYard:"+sSelYard ); String LoadAddress = null; String RtnChk = null; for (int i = 0; i < iIdx;i++ ) { logger.logInfo("XinCoilYardDecPos---> sSelYard["+i+"]:"+sSelYard[i] ); PosParameter param0 = new PosParameter(); param0.setWhereClauseParameter(0, sSelYard[i]); PosRowSet LoadYardVo = getDao("mesdao").find("NIH050010_LOAD_YARD.select", param0); while(LoadYardVo.hasNext()) { PosRow LoadYardROW = LoadYardVo.next(); LoadAddress = (String)LoadYardROW.getAttribute("YARD_ADDR"); logger.logInfo("XinCoilYardDecPos---> LoadAddress:"+LoadAddress ); String StoreLay = LoadAddress.substring(7,8); String StoreSeq = LoadAddress.substring(8,9); if (StoreLay.equals("2")) { RtnChk = chkLoadCom(LoadAddress,R_COIL_WTH ); } else { RtnChk = "1"; } logger.logInfo("XinCoilYardDecPos---> RtnChk:"+RtnChk ); if (RtnChk.equals("1") ) { String CurrPos = null; String route = null; if (MSG_CURR_POS.equals("B")) { if(LoadAddress.substring(0,2).equals("C1")) { CurrPos = "B0704"; route = "1"; } else if (LoadAddress.substring(0,2).equals("C2")) { CurrPos = "B0602"; route = "2"; } else if (LoadAddress.substring(0,2).equals("C3")) { CurrPos = "B0402"; route = "3"; } } else { CurrPos = MSG_CURR_POS; } RtnCrCmd = CreCrComand(CurrPos,LoadAddress,MSG_COIL_NO); routeUpdate(MSG_COIL_NO,route); break; } } if (RtnChk.equals("1") ) { break; } } if (RtnCrCmd == null ) { logger.logInfo("XinCoilYardDecPos:--> there have not Crane Command " ); } } } catch (Exception ex) { logger.logError(ex.getMessage(), ex); } // chemical decision call return PosBizControlConstants.SUCCESS; } public String[] YardSearch(String AreaKind,String R_STL_GRD ) { logger.logInfo("XinCoilYardDecPos compSlab start " ); String sYardAddr = null; String sFromStlGrd = null; String sToStlGrd = null; String sStlGrd1 = null; String sStlGrd2 = null; String sStlGrd3 = null; String sStlGrd4 = null; String sStlGrd5 = null; String sStlGrd6 = null; String sStlGrd7 = null; String[] SelAddr_G = new String[10]; iIdx = 0; for (int j=0;j < 10;j++) { SelAddr_G[j]= ""; } PosParameter param0 = new PosParameter(); param0.setWhereClauseParameter(0, AreaKind); PosRowSet StdYardVo = getDao("mesdao").find("NIH050010_STD_YARD.select", param0); while(StdYardVo.hasNext()){ PosRow StdYardROW = StdYardVo.next(); sYardAddr = (String)StdYardROW.getAttribute("YARD_ADDR"); sFromStlGrd = (String)StdYardROW.getAttribute("FROM_STL_GRD"); sToStlGrd = (String)StdYardROW.getAttribute("TO_STL_GRD"); sStlGrd1 = (String)StdYardROW.getAttribute("STL_GRD1"); sStlGrd2 = (String)StdYardROW.getAttribute("STL_GRD2"); sStlGrd3 = (String)StdYardROW.getAttribute("STL_GRD3"); sStlGrd4 = (String)StdYardROW.getAttribute("STL_GRD4"); sStlGrd5 = (String)StdYardROW.getAttribute("STL_GRD5"); sStlGrd6 = (String)StdYardROW.getAttribute("STL_GRD6"); sStlGrd7 = (String)StdYardROW.getAttribute("STL_GRD7"); logger.logInfo("XinCoilYardDecPos R_STL_GRD:"+R_STL_GRD ); logger.logInfo("XinCoilYardDecPos sFromStlGrd:("+sFromStlGrd+"),sToStlGrd:("+sToStlGrd+")" ); if (sFromStlGrd != null && !sFromStlGrd.equals("") ) { if (sFromStlGrd.compareTo(R_STL_GRD) <= 0 && sToStlGrd.compareTo(R_STL_GRD) >= 0 ) { SelAddr_G[iIdx] = sYardAddr; iIdx++; } } else if (sStlGrd1 != null && sStlGrd1.equals(R_STL_GRD)) { logger.logInfo("XinCoilYardDecPos sStlGrd1:("+sStlGrd1+")" ); SelAddr_G[iIdx] = sYardAddr; iIdx++; } else if (sStlGrd2 != null && sStlGrd2.equals(R_STL_GRD)) { logger.logInfo("XinCoilYardDecPos sStlGrd2:("+sStlGrd2+")" ); SelAddr_G[iIdx] = sYardAddr; iIdx++; } else if (sStlGrd3 != null && sStlGrd3.equals(R_STL_GRD)) { logger.logInfo("XinCoilYardDecPos sStlGrd3:("+sStlGrd3+")" ); SelAddr_G[iIdx] = sYardAddr; iIdx++; } else if (sStlGrd4 != null && sStlGrd4.equals(R_STL_GRD)) { logger.logInfo("XinCoilYardDecPos sStlGrd4:("+sStlGrd4+")" ); SelAddr_G[iIdx] = sYardAddr; iIdx++; } else if (sStlGrd5 != null && sStlGrd5.equals(R_STL_GRD)) { logger.logInfo("XinCoilYardDecPos sStlGrd5:("+sStlGrd5+")" ); SelAddr_G[iIdx] = sYardAddr; iIdx++; } else if (sStlGrd6 != null && sStlGrd6.equals(R_STL_GRD)) { logger.logInfo("XinCoilYardDecPos sStlGrd6:("+sStlGrd6+")" ); SelAddr_G[iIdx] = sYardAddr; iIdx++; } else if (sStlGrd7 != null && sStlGrd7.equals(R_STL_GRD)) { logger.logInfo("XinCoilYardDecPos sStlGrd7:("+sStlGrd7+")" ); SelAddr_G[iIdx] = sYardAddr; iIdx++; } } return SelAddr_G; } public String chkLoadCom(String LoadAddress,Number R_COIL_WTH ) { logger.logInfo("XinCoilYardDecPos chkLoadCom start " ); String StoreSeq = LoadAddress.substring(8,9); String ComAddr = null; String StepClf = null; String NewStepClf = null; String NewAddress = null; StepClf = LoadAddress.substring(5,7); logger.logInfo("XinCoilYardDecPos chkLoadCom StepClf:"+StepClf ); if (StoreSeq.equals("2") ) { int intStep = Integer.parseInt(StepClf); intStep++; if (intStep < 10) { NewStepClf = "0"+String.valueOf(intStep); } else { NewStepClf = String.valueOf(intStep); } NewAddress = LoadAddress.substring(0,5)+NewStepClf+"1"+"1"; logger.logInfo(" 2 NewAddress "+NewAddress ); } else { NewAddress = LoadAddress.substring(0,7)+"1"+"2";; logger.logInfo(" 1 NewAddress "+NewAddress ); } PosParameter param0 = new PosParameter(); param0.setWhereClauseParameter(0, NewAddress); PosRowSet NewYardVo = getDao("mesdao").find("NIH050010_NEW_ADDR.select", param0); if (NewYardVo.hasNext()) { return "1"; } else { return "2"; } } public String CreCrComand( String FromAddr,String ToAddr,String CoilNo) { logger.logInfo("XinCoilYardDecPos--->CreCrComand: start" ); Number nOrdSeq = null; String YardArea = ToAddr.substring(0,3); logger.logInfo("XinCoilYardDecPos--->YardArea:"+YardArea ); String CrNo = CranNoSel(YardArea); logger.logInfo("XinCoilYardDecPos--->CrNo:"+CrNo ); PosParameter param1 = new PosParameter(); PosParameter param2 = new PosParameter(); PosParameter param3 = new PosParameter(); param1.setWhereClauseParameter(0, FromAddr); param1.setWhereClauseParameter(1, ToAddr); param1.setWhereClauseParameter(2, CoilNo); PosRowSet YardVo = getDao("mesdao").find("NIH050010_CR_COMM.select", param1); if ( YardVo.hasNext() ) { PosRow YardROW = YardVo.next(); Number OrdSeq = (Number)YardROW.getAttribute("ORD_SEQ"); param2.setValueParamter(0, CrNo); param2.setValueParamter(1, CoilNo); param2.setValueParamter(2, FromAddr); param2.setValueParamter(3, ToAddr); param2.setValueParamter(4, OrdSeq); getDao("mesdao").update("NIH050010_CR_COMM.update",param2); } else { param2.setValueParamter(0, ToAddr.substring(0,2)); param2.setValueParamter(1, CrNo); param2.setValueParamter(2, FromAddr); param2.setValueParamter(3, ToAddr); param2.setValueParamter(4, CoilNo); getDao("mesdao").update("NIH050010_CR_COMM.insert",param2); param3.setValueParamter(0, "1"); param3.setValueParamter(1, ToAddr); getDao("mesdao").update("NIH050010_RES_YARD.update",param3); } return "1"; } public String CranNoSel( String Addr) { String CrNo = null; if ( Addr.equals("C31") ) { CrNo = "3-1"; } else if(Addr.equals("C32") || Addr.equals("C33")) { CrNo = "3-2"; } else if(Addr.equals("C34")) { CrNo = "3-3"; } else if(Addr.equals("C21") || Addr.equals("C22") ) { CrNo = "3-4"; } else if(Addr.equals("C23") || Addr.equals("C24") ) { CrNo = "3-5"; } else if(Addr.equals("C25") || Addr.equals("C26") ) { CrNo = "3-6"; } else if(Addr.equals("C11") || Addr.equals("C12") ) { CrNo = "3-7"; } else if(Addr.equals("C13") || Addr.equals("C14") ) { CrNo = "3-8"; } else if(Addr.equals("C15") || Addr.equals("C16") ) { CrNo = "3-9"; } return CrNo; } public void routeUpdate( String coilno,String route) { PosParameter param1 = new PosParameter(); param1.setValueParamter(0, route); param1.setValueParamter(1, coilno); getDao("mesdao").update("NIH050010_COIL_COMM.update",param1); } }