package xin.glue.nui.B.B02; import java.sql.CallableStatement; 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; import com.posdata.glue.msg.PosMessage; public class XinSaveL2INGR extends PosActivity { private PosParameter param; private PosMessage message; private String CHEM_CD; private String CHEM_VAL_WK; private PosRowSet rowset; private PosRow row; private CallableStatement cstm; private String CHEM_SEQ; private String PROC_CD; private String TRAN_DTIME; public XinSaveL2INGR() { param = null; message = null; CHEM_CD = null; CHEM_VAL_WK = null; rowset = null; row = null; cstm = null; CHEM_SEQ = null; PROC_CD = null; TRAN_DTIME = null; } public String runActivity(PosContext context) { String CHARGE_NO = ""; try { message = context.getMessage(); cstm = this.getDao("mesdao").getCallableStatement("NIB027080_01.CALL"); CHARGE_NO = (String)message.get("CHARGE_NO"); //炉号,已带A PROC_CD = (String)message.get("PROC_CD");//工序 CHEM_SEQ = (String)message.get("CHEM_SEQ");//次数 TRAN_DTIME = (String)message.get("DATE");//日期 param = new PosParameter(); param.setWhereClauseParameter(0, TRAN_DTIME); rowset = this.getDao("mesdao").find("NIB027080_01.SELECT" , param); String EXTRA_INFO = "";//L2对应的工序,如CP,YCP if(rowset.hasNext()) { row = rowset.next(); EXTRA_INFO = (String)row.getAttribute("EXTRA_INFO"); if("YC".equals(EXTRA_INFO.substring(0, 2))) { CHARGE_NO = CHARGE_NO+EXTRA_INFO.substring(3, 6); PROC_CD = "SL"; } } int j = 1; for(int i=1;i<=35;i++) { CHEM_CD = (String)message.get("CHEM_CD"+Integer.toString(i)); CHEM_VAL_WK = message.get("CHEM_VAL_WK"+Integer.toString(i)).toString(); if("AlS".equals(CHEM_CD.trim()))//对应L2发送过来的是AlSol { CHEM_CD = "Als"; } else if("Al".equals(CHEM_CD.trim()))//L2发送过来的Al,转换成MES中的Alt { CHEM_CD = "Alt"; } j = 1; cstm.setString(j++, CHARGE_NO); cstm.setString(j++, PROC_CD); cstm.setString(j++, CHEM_SEQ); cstm.setString(j++, CHEM_CD); cstm.setString(j++, CHEM_VAL_WK); cstm.setString(j++, EXTRA_INFO);//L2发送过来的工序代码 cstm.setInt(j++, i); cstm.registerOutParameter(j++, java.sql.Types.VARCHAR); cstm.execute(); } } catch(Exception ex) { ex.printStackTrace(); } finally { try { if(cstm != null) { cstm.close(); } } catch (Exception ex) { logger.logFatal("Can not Close CallableStatement Query ID [callTest]",ex); } } return PosBizControlConstants.SUCCESS; } }