package xin.glue.ui.H.H02; import java.sql.CallableStatement; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import xin.glue.ui.common.ProduceFactory; import com.posdata.glue.PosException; import com.posdata.glue.biz.activity.PosActivity; import com.posdata.glue.biz.constants.PosBizControlConstants; import com.posdata.glue.component.layout.PosMessageLayoutIF; 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; import com.posdata.glue.msg.PosMESMessageImpl; import com.posdata.glue.msg.PosMessageAttributeDefinition; import com.posdata.glue.msg.PosMessageDefinition; import com.posdata.glue.util.log.PosLog; import com.posdata.glue.util.log.PosLogFactory; /************ * 唐亮添加,为了处理电文发送错误的情况。比如实际没有轧回加回,二级给出电文。或者轧回加回电文给反了 * 这里只是把钢卷拉到出炉待机的情况,具体是轧回还是加回还是轧制完成由操作人员在界面上完成。 * ***************/ public class PosCoilReturn extends PosActivity{ public String runActivity(PosContext context) { String[] OLD_SAMPL_NO = (String[])context.get("OLD_SAMPL_NO"); String[] REG_ID = (String[])context.get("REG_ID"); //这里必须判断此卷是否判定、下计划、发货。出于这些状态的卷是不能回拉的 PosParameter param1 = new PosParameter(); param1.setWhereClauseParameter(0, OLD_SAMPL_NO[0]); PosRowSet curVo = getDao("mesdao").find("UIH020220_02.select", param1); String CUR_PROG_CD = null; String slab_no = null; String coil_no = null; String coil_stat = null; String MISSNO_CLF_CD = null; if(curVo.hasNext()){ PosRow curRow = curVo.next(); CUR_PROG_CD = (String) curRow.getAttribute("CUR_PROG_CD"); slab_no = (String) curRow.getAttribute("SLAB_NO"); coil_no = (String) curRow.getAttribute("COIL_NO"); coil_stat = (String) curRow.getAttribute("COIL_STAT"); MISSNO_CLF_CD = (String) curRow.getAttribute("MISSNO_CLF_CD"); //此方法用来传送异动点数据 ProduceFactory PD= new ProduceFactory(); PD.ErpDataCover("HSLAB",slab_no,"41A","0","O","轧制电文回退","热轧轧制"); //做一步非空判断 if(CUR_PROG_CD == null){ //这里必须判断是炉前取消还是炉后加回以及轧回,并进行相应的处理 PosParameter param2 = new PosParameter(); param2.setWhereClauseParameter(0, slab_no); param2.setWhereClauseParameter(1, coil_no); PosRowSet missnoVo = getDao("mesdao").find("UIH020220_03.select", param2); String MISSNO_CLF = null; if(missnoVo.hasNext()){ PosRow missnoRow = missnoVo.next(); MISSNO_CLF = (String) missnoRow.getAttribute("MISSNO_CLF"); if(MISSNO_CLF.equals("1")){ //炉前加回 logger.logDebug("PosCoilReturn 炉前取消处理。"+MISSNO_CLF); //这里需要清空轧制吊销表 PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, slab_no); param3.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_01.delete", param3); //入炉出炉表 PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "1"); param4.setWhereClauseParameter(1, slab_no); param4.setWhereClauseParameter(2, coil_no); getDao("mesdao").update("UIH020220_01.update", param4); //这里板坯公共表不动,吊销的时候只是写入原因代码 //钢卷公共表,这里要记录修改人和修改时间 PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, "0"); param5.setWhereClauseParameter(1, REG_ID[0]); param5.setWhereClauseParameter(2, slab_no); param5.setWhereClauseParameter(3, coil_no); getDao("mesdao").update("UIH020220_02.update", param5); //更新轧制计划表 PosParameter param33 = new PosParameter(); param33.setWhereClauseParameter(0,slab_no); param33.setWhereClauseParameter(1,coil_no); PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param33); if (specMillVo.hasNext()) { PosRow specMillROW = specMillVo.next(); Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ"); PosParameter param55 = new PosParameter(); param55.setWhereClauseParameter(0, "B" ); param55.setWhereClauseParameter(1, slab_no ); param55.setWhereClauseParameter(2, coil_no ); getDao("mesdao").update("NIH020020_SPEC_MILL.update", param55); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "B" ); param6.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param6); PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, "B" ); param7.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_MILL_IDX.update", param7); } //回退电文,需要调用品质的存储过程 logger.logInfo("PosCoilReturn---> NIB027010 TC sql call" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("UIH020220_NIB02701X"); logger.logInfo("PosCoilReturn---> NIB027010 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no); //新增加一个字段,为了废弃的时候使用 PlRtn.setString(2,"T"); PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR); PlRtn.execute(); String sRetCode = PlRtn.getString(3); String sRetMsg = PlRtn.getString(4); logger.logInfo("PosCoilReturn---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg); } else { logger.logInfo("PosCoilReturn---> NIB027010 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("PosCoilReturn---> NIB027010 SQLException:"+e ); } } } }else if(MISSNO_CLF.equals("2")){ //炉后加回 logger.logDebug("PosCoilReturn 炉后加回处理。"+MISSNO_CLF); //这里需要清空轧制吊销表 PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, slab_no); param3.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_01.delete", param3); //入炉出炉表 PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "2"); param4.setWhereClauseParameter(1, slab_no); param4.setWhereClauseParameter(2, coil_no); getDao("mesdao").update("UIH020220_01.update", param4); //这里板坯公共表不动,吊销的时候只是写入原因代码 //钢卷公共表,这里要记录修改人和修改时间 PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, "1"); param5.setWhereClauseParameter(1, REG_ID[0]); param5.setWhereClauseParameter(2, slab_no); param5.setWhereClauseParameter(3, coil_no); getDao("mesdao").update("UIH020220_02.update", param5); //更新轧制计划表 PosParameter param33 = new PosParameter(); param33.setWhereClauseParameter(0,slab_no); param33.setWhereClauseParameter(1,coil_no); PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param33); if (specMillVo.hasNext()) { PosRow specMillROW = specMillVo.next(); Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ"); PosParameter param55 = new PosParameter(); param55.setWhereClauseParameter(0, "B" ); param55.setWhereClauseParameter(1, slab_no ); param55.setWhereClauseParameter(2, coil_no ); getDao("mesdao").update("NIH020020_SPEC_MILL.update", param55); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "B" ); param6.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param6); PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, "B" ); param7.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_MILL_IDX.update", param7); } //回退电文,需要调用品质的存储过程 logger.logInfo("PosCoilReturn---> NIB027010 TC sql call" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("UIH020220_NIB02701X"); logger.logInfo("PosCoilReturn---> NIB027010 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no); //新增加一个字段,为了废弃的时候使用 PlRtn.setString(2,"T"); PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR); PlRtn.execute(); String sRetCode = PlRtn.getString(3); String sRetMsg = PlRtn.getString(4); logger.logInfo("PosCoilReturn---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg); } else { logger.logInfo("PosCoilReturn---> NIB027010 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("PosCoilReturn---> NIB027010 SQLException:"+e ); } } } }else if(MISSNO_CLF.equals("3")){ //轧回 logger.logDebug("PosCoilReturn 轧回处理。"+MISSNO_CLF); //这里需要清空轧制吊销表 PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, slab_no); param3.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_01.delete", param3); //入炉出炉表 PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "2"); param4.setWhereClauseParameter(1, slab_no); param4.setWhereClauseParameter(2, coil_no); getDao("mesdao").update("UIH020220_01.update", param4); //这里板坯公共表不动,吊销的时候只是写入原因代码 //钢卷公共表,这里要记录修改人和修改时间 PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, "1"); param5.setWhereClauseParameter(1, REG_ID[0]); param5.setWhereClauseParameter(2, slab_no); param5.setWhereClauseParameter(3, coil_no); getDao("mesdao").update("UIH020220_02.update", param5); //更新轧制计划表 PosParameter param33 = new PosParameter(); param33.setWhereClauseParameter(0,slab_no); param33.setWhereClauseParameter(1,coil_no); PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param33); if (specMillVo.hasNext()) { PosRow specMillROW = specMillVo.next(); Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ"); PosParameter param55 = new PosParameter(); param55.setWhereClauseParameter(0, "B" ); param55.setWhereClauseParameter(1, slab_no ); param55.setWhereClauseParameter(2, coil_no ); getDao("mesdao").update("NIH020020_SPEC_MILL.update", param55); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "B" ); param6.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param6); PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, "B" ); param7.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_MILL_IDX.update", param7); } //回退电文,需要调用品质的存储过程 logger.logInfo("PosCoilReturn---> NIB027010 TC sql call" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("UIH020220_NIB02701X"); logger.logInfo("PosCoilReturn---> NIB027010 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no); //新增加一个字段,为了废弃的时候使用 PlRtn.setString(2,"T"); PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR); PlRtn.execute(); String sRetCode = PlRtn.getString(3); String sRetMsg = PlRtn.getString(4); logger.logInfo("PosCoilReturn---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg); } else { logger.logInfo("PosCoilReturn---> NIB027010 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("PosCoilReturn---> NIB027010 SQLException:"+e ); } } } }else{ //轧废 logger.logDebug("PosCoilReturn 轧废处理。"+MISSNO_CLF); //这里需要清空轧制吊销表 PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, slab_no); param3.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_01.delete", param3); //入炉出炉表 PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "2"); param4.setWhereClauseParameter(1, slab_no); param4.setWhereClauseParameter(2, coil_no); getDao("mesdao").update("UIH020220_01.update", param4); //这里板坯公共表不动,吊销的时候只是写入原因代码 //钢卷公共表,这里要记录修改人和修改时间 PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, "1"); param5.setWhereClauseParameter(1, REG_ID[0]); param5.setWhereClauseParameter(2, slab_no); param5.setWhereClauseParameter(3, coil_no); getDao("mesdao").update("UIH020220_02.update", param5); //更新轧制计划表 PosParameter param33 = new PosParameter(); param33.setWhereClauseParameter(0,slab_no); param33.setWhereClauseParameter(1,coil_no); PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param33); if (specMillVo.hasNext()) { PosRow specMillROW = specMillVo.next(); Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ"); PosParameter param55 = new PosParameter(); param55.setWhereClauseParameter(0, "B" ); param55.setWhereClauseParameter(1, slab_no ); param55.setWhereClauseParameter(2, coil_no ); getDao("mesdao").update("NIH020020_SPEC_MILL.update", param55); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "B" ); param6.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param6); PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, "B" ); param7.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_MILL_IDX.update", param7); } // 这里还要更新轧制实际表的废弃宽度、厚度、重量信息 PosParameter param8 = new PosParameter(); param8.setWhereClauseParameter(0, slab_no); param8.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_03.update", param8); //回退电文,需要调用品质的存储过程 logger.logInfo("PosCoilReturn---> NIB027010 TC sql call" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("UIH020220_NIB02701X"); logger.logInfo("PosCoilReturn---> NIB027010 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no); //新增加一个字段,为了废弃的时候使用 PlRtn.setString(2,"T"); PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR); PlRtn.execute(); String sRetCode = PlRtn.getString(3); String sRetMsg = PlRtn.getString(4); logger.logInfo("PosCoilReturn---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg); } else { logger.logInfo("PosCoilReturn---> NIB027010 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("PosCoilReturn---> NIB027010 SQLException:"+e ); } } } } }else{ //轧废或者中板的情况,在没有收到实际的情况下。进行相应的回退操作 if(MISSNO_CLF_CD != null){ //轧废,需要清除轧废的宽度、厚度、重量、时间等信息 //这里在轧制实际表中 logger.logDebug("PosCoilReturn 轧废处理,这里进程代码为SED.废弃代码存在"); //这里需要清空轧制吊销表 // PosParameter param3 = new PosParameter(); // // param3.setWhereClauseParameter(0, slab_no); // param3.setWhereClauseParameter(1, coil_no); // // getDao("mesdao").update("UIH020220_01.delete", param3); //入炉出炉表 PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "2"); param4.setWhereClauseParameter(1, slab_no); param4.setWhereClauseParameter(2, coil_no); getDao("mesdao").update("UIH020220_01.update", param4); //这里板坯公共表不动,吊销的时候只是写入原因代码 //钢卷公共表,这里要记录修改人和修改时间 PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, "1"); param5.setWhereClauseParameter(1, REG_ID[0]); param5.setWhereClauseParameter(2, slab_no); param5.setWhereClauseParameter(3, coil_no); getDao("mesdao").update("UIH020220_02.update", param5); //更新轧制计划表 PosParameter param33 = new PosParameter(); param33.setWhereClauseParameter(0,slab_no); param33.setWhereClauseParameter(1,coil_no); PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param33); if (specMillVo.hasNext()) { PosRow specMillROW = specMillVo.next(); Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ"); PosParameter param55 = new PosParameter(); param55.setWhereClauseParameter(0, "B" ); param55.setWhereClauseParameter(1, slab_no ); param55.setWhereClauseParameter(2, coil_no ); getDao("mesdao").update("NIH020020_SPEC_MILL.update", param55); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "B" ); param6.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param6); PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, "B" ); param7.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_MILL_IDX.update", param7); } //这里还要更新轧制实际表的废弃宽度、厚度、重量信息 PosParameter param8 = new PosParameter(); param8.setWhereClauseParameter(0, slab_no); param8.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_03.update", param8); //回退电文,需要调用品质的存储过程 logger.logInfo("PosCoilReturn---> NIB027010 TC sql call" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("UIH020220_NIB02701X"); logger.logInfo("PosCoilReturn---> NIB027010 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no); //新增加一个字段,为了废弃的时候使用 PlRtn.setString(2,"T"); PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR); PlRtn.execute(); String sRetCode = PlRtn.getString(3); String sRetMsg = PlRtn.getString(4); logger.logInfo("PosCoilReturn---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg); } else { logger.logInfo("PosCoilReturn---> NIB027010 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("PosCoilReturn---> NIB027010 SQLException:"+e ); } } } }else{ //已经收到轧制实际的情况下,不能进行回退操作。 logger.logDebug("PosCoilReturn 钢卷状态存在.不能进行回退操作。"+CUR_PROG_CD); String vtemp="CUR_PROG_CD"; context.put("rs", vtemp); } } }else{ if(CUR_PROG_CD.equals("SED") && MISSNO_CLF_CD != null){ //轧废,需要清除轧废的宽度、厚度、重量、时间等信息 //这里在轧制实际表中 logger.logDebug("PosCoilReturn 轧废处理,这里进程代码为SED.废弃代码存在"); //这里需要清空轧制吊销表 PosParameter param3 = new PosParameter(); param3.setWhereClauseParameter(0, slab_no); param3.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_01.delete", param3); //入炉出炉表 PosParameter param4 = new PosParameter(); param4.setWhereClauseParameter(0, "2"); param4.setWhereClauseParameter(1, slab_no); param4.setWhereClauseParameter(2, coil_no); getDao("mesdao").update("UIH020220_01.update", param4); //这里板坯公共表不动,吊销的时候只是写入原因代码 //钢卷公共表,这里要记录修改人和修改时间 PosParameter param5 = new PosParameter(); param5.setWhereClauseParameter(0, "1"); param5.setWhereClauseParameter(1, REG_ID[0]); param5.setWhereClauseParameter(2, slab_no); param5.setWhereClauseParameter(3, coil_no); getDao("mesdao").update("UIH020220_02.update", param5); //更新轧制计划表 PosParameter param33 = new PosParameter(); param33.setWhereClauseParameter(0,slab_no); param33.setWhereClauseParameter(1,coil_no); PosRowSet specMillVo = getDao("mesdao").find("NIH020020_SPEC_MILL.select", param33); if (specMillVo.hasNext()) { PosRow specMillROW = specMillVo.next(); Number SLAB_EDT_SEQ = (Number)specMillROW.getAttribute("SLAB_EDT_SEQ"); PosParameter param55 = new PosParameter(); param55.setWhereClauseParameter(0, "B" ); param55.setWhereClauseParameter(1, slab_no ); param55.setWhereClauseParameter(2, coil_no ); getDao("mesdao").update("NIH020020_SPEC_MILL.update", param55); PosParameter param6 = new PosParameter(); param6.setWhereClauseParameter(0, "B" ); param6.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_SPEC_MILL_D.update", param6); PosParameter param7 = new PosParameter(); param7.setWhereClauseParameter(0, "B" ); param7.setWhereClauseParameter(1, SLAB_EDT_SEQ ); getDao("mesdao").update("NIH020020_MILL_IDX.update", param7); } //这里还要更新轧制实际表的废弃宽度、厚度、重量信息 PosParameter param8 = new PosParameter(); param8.setWhereClauseParameter(0, slab_no); param8.setWhereClauseParameter(1, coil_no); getDao("mesdao").update("UIH020220_03.update", param8); //回退电文,需要调用品质的存储过程 logger.logInfo("PosCoilReturn---> NIB027010 TC sql call" ); CallableStatement PlRtn = getDao("mesdao").getCallableStatement("UIH020220_NIB02701X"); logger.logInfo("PosCoilReturn---> NIB027010 TC try" ); try { if(PlRtn != null) { PlRtn.setString(1,coil_no); //新增加一个字段,为了废弃的时候使用 PlRtn.setString(2,"T"); PlRtn.registerOutParameter(3, java.sql.Types.VARCHAR); PlRtn.registerOutParameter(4, java.sql.Types.VARCHAR); PlRtn.execute(); String sRetCode = PlRtn.getString(3); String sRetMsg = PlRtn.getString(4); logger.logInfo("PosCoilReturn---> NIB027010 TC PlRtn1:["+sRetCode+"]:"+ sRetMsg); } else { logger.logInfo("PosCoilReturn---> NIB027010 PlRtn2:"+PlRtn ); } } catch (SQLException e) { throw new PosException(e.getMessage()); }finally { if (PlRtn != null) { try { PlRtn.close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); logger.logInfo("PosCoilReturn---> NIB027010 SQLException:"+e ); } } } }else{ //已经收到轧制实际的情况下,不能进行回退操作。 logger.logDebug("PosCoilReturn 钢卷状态存在.不能进行回退操作。"+CUR_PROG_CD); String vtemp="CUR_PROG_CD"; context.put("rs", vtemp); } } }else{ // 钢卷信息不存在 logger.logDebug("PosCoilReturn 钢卷号在公共表中不存在。"+OLD_SAMPL_NO[0]); String vtemp="OLD_SAMPL_NO"; context.put("rs", vtemp); } return PosBizControlConstants.SUCCESS; } }