package xin.glue.ui.F.F02; import xin.glue.user.common.GlobalConstants; import com.posdata.glue.PosException; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.context.PosContext; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRow; import com.posdata.glue.dao.vo.PosRowSet; public class RHTL2Resend extends PosActivity implements GlobalConstants { public String runActivity(PosContext context) { long V_SLAB_EDT_SEQ_ST = 0 ; long V_SLAB_EDT_SEQ_EN = 0 ; long V_SEQ_ST = 0 ; long V_SEQ_EN = 0 ; long V_SEQ_TG = 0 ; long V_MOVE_HCR = 0 ; long V_STATUS_CNT = 0 ; long V_COIL_STAT_CNT = 0; String V_ROLL_MANA_ST = "" ; String V_ROLL_MANA_EN = "" ; //SLAB_NO FROM/TO/TARGET String[] P_ST = (String[])context.get("FROM"); String[] P_EN = (String[])context.get("TO"); String[] P_TYPE = (String[])context.get("TYPE"); // try { //START ROLL_MANA_NO, SLAB_EDT_SEQ, ROLL_SLAB_SEQ CHECK if (P_TYPE[0].equals("S")) { PosParameter paramA = new PosParameter(); paramA.setWhereClauseParameter(0, P_ST[0]); paramA.setWhereClauseParameter(1, P_EN[0]); PosRowSet RollManaNoSTVO = getDao("mesdao").find("UIF024040_RollManaNo.select",paramA); RollManaNoSTVO.reset(); if (RollManaNoSTVO.hasNext()) { PosRow RollManaNoSTRow = RollManaNoSTVO.next(); V_ROLL_MANA_ST = (String)RollManaNoSTRow.getAttribute("ROLL_MANA_ST"); V_ROLL_MANA_EN = (String)RollManaNoSTRow.getAttribute("ROLL_MANA_EN"); V_SLAB_EDT_SEQ_ST = Long.parseLong((RollManaNoSTRow.getAttribute("SLAB_EDT_SEQ_ST")==null? "0":RollManaNoSTRow.getAttribute("SLAB_EDT_SEQ_ST")).toString()); V_SLAB_EDT_SEQ_EN = Long.parseLong((RollManaNoSTRow.getAttribute("SLAB_EDT_SEQ_EN")==null? "0":RollManaNoSTRow.getAttribute("SLAB_EDT_SEQ_EN")).toString()); } else { V_ROLL_MANA_ST = ""; V_ROLL_MANA_EN = ""; V_SLAB_EDT_SEQ_ST = 0; V_SLAB_EDT_SEQ_EN = 0; } } if (P_ST[0].equals("") || P_EN[0].equals("")){ //MESSAGE ERROR --> PROGRAM EXIT logger.logError("MILLSlabSeqChange..ROLL_MANA ST/EN/TG IS NULL.."); context.put("errorMsg", "MILLSlabSeqChange..ROLL_MANA ST/EN/TG IS NULL.."); return PosBizControlConstants.FAILURE; //throw new PosException("MILLSlabSeqChange..ROLL_MANA ST/EN/TG IS NULL.."); } //START ROLL_MANA_NO, SLAB_EDT_SEQ, ROLL_SLAB_SEQ CHECK PosParameter paramD = new PosParameter(); paramD.setWhereClauseParameter(0, P_ST[0]); paramD.setWhereClauseParameter(1, P_EN[0]); PosRowSet RollSlabSeqFindVO = getDao("mesdao").find("UIF024040_RollSlabSeqFind.select",paramD); RollSlabSeqFindVO.reset(); if (RollSlabSeqFindVO.hasNext()) { PosRow RollSlabSeqFindRow = RollSlabSeqFindVO.next(); V_SEQ_ST = Long.parseLong((RollSlabSeqFindRow.getAttribute("ROLL_SLAB_SEQ_ST")==null? "0":RollSlabSeqFindRow.getAttribute("ROLL_SLAB_SEQ_ST")).toString()); V_SEQ_EN = Long.parseLong((RollSlabSeqFindRow.getAttribute("ROLL_SLAB_SEQ_EN")==null? "0":RollSlabSeqFindRow.getAttribute("ROLL_SLAB_SEQ_EN")).toString()); } else { V_SEQ_ST = 0; V_SEQ_EN = 0; } //ROLL_SLAB_SEQ CHECK 1 CASE if (V_SEQ_ST > V_SEQ_EN || (V_SEQ_ST < V_SEQ_TG && V_SEQ_EN > V_SEQ_TG)) { //MESSAGE ERROR --> PROGRAM EXIT logger.logError("MILLSlabSeqChange..ROLL_SLAB_SEQ EQ_ST > SEQ_EN OR EQ_ST < V_SEQ_TG < SEQ_EN.."); context.put("errorMsg", "MILLSlabSeqChange..ROLL_SLAB_SEQ EQ_ST > SEQ_EN OR EQ_ST < V_SEQ_TG < SEQ_EN.."); return PosBizControlConstants.FAILURE; //throw new PosException("MILLSlabSeqChange..ROLL_SLAB_SEQ EQ_ST > SEQ_EN OR EQ_ST < V_SEQ_TG < SEQ_EN.."); } //STATUS_CD = 'B', HCR SLAB CHECK (MOVE) PosParameter paramF = new PosParameter(); paramF.setWhereClauseParameter(0, V_ROLL_MANA_ST); paramF.setWhereClauseParameter(1, String.valueOf(V_SEQ_ST)); paramF.setWhereClauseParameter(2, String.valueOf(V_SEQ_EN)); PosRowSet MoveChkFindVO = getDao("mesdao").find("NIF024040_MoveChkFind.select",paramF); MoveChkFindVO.reset(); if (MoveChkFindVO.hasNext()) { PosRow MoveChkFindRow = MoveChkFindVO.next(); V_MOVE_HCR = Long.parseLong((MoveChkFindRow.getAttribute("HCR_CNT")==null? "0":MoveChkFindRow.getAttribute("HCR_CNT")).toString()); V_STATUS_CNT = Long.parseLong((MoveChkFindRow.getAttribute("STATUS_CNT")==null? "0":MoveChkFindRow.getAttribute("STATUS_CNT")).toString()); V_COIL_STAT_CNT = Long.parseLong((MoveChkFindRow.getAttribute("COIL_STAT_CNT")==null? "0":MoveChkFindRow.getAttribute("COIL_STAT_CNT")).toString()); } else { V_MOVE_HCR = 0; V_STATUS_CNT = 0; } //STATUS_CD = 'B' RHT START if (V_STATUS_CNT != 0) { //MESSAGE ERROR --> PROGRAM EXIT logger.logError("MILLSlabSeqChange..RHT WORK START.."); context.put("errorMsg", "MILLSlabSeqChange..RHT WORK START.."); return PosBizControlConstants.FAILURE; //throw new PosException("MILLSlabSeqChange..RHT WORK START.."); } //COIL_STAT = '0' RHT 已上料 if (V_COIL_STAT_CNT != 0){ //移动对象中含有轧制进行的板坯 //MESSAGE ERROR --> PROGRAM EXIT //throw new PosException("MILLRollSeqChange..STATUS_CD = 'B'.."); throw new PosException("移动对象已处于上料!"); } if (P_TYPE[0].equals("R")) { l2_rht_resend(P_TYPE[0],P_ST[0],P_EN[0],null); }else if(P_TYPE[0].equals("S")){ l2_rht_resend(P_TYPE[0],String.valueOf(V_SEQ_ST),String.valueOf(V_SEQ_EN),V_ROLL_MANA_ST); }else { throw new PosException("l2_rht_resend()...p_type is null... 选择对象类型..."); } return PosBizControlConstants.SUCCESS; } public void l2_rht_resend(String p_type,String p_st,String p_end,String p_roll_mana_no) { PosParameter param_resend = new PosParameter(); if (p_type.equals("R")) { param_resend.setWhereClauseParameter(0, p_st); param_resend.setWhereClauseParameter(1, p_end); this.getDao("mesdao").update("UIF024010.rht_l2_resend_by_R_update",param_resend); }else if(p_type.equals("S")){ param_resend.setWhereClauseParameter(0, p_st); param_resend.setWhereClauseParameter(1, p_end); param_resend.setWhereClauseParameter(2, p_roll_mana_no); this.getDao("mesdao").update("UIF024010.rht_l2_resend_by_S_update",param_resend); }else { throw new PosException("l2_rht_resend()...p_type is null... 选择对象类型..."); } } }