package xin.glue.nui.B.B02; import java.sql.CallableStatement; import java.sql.Types; 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.PosRowSet; import com.posdata.glue.msg.PosMessage; public class XinSaveL2QLTY extends PosActivity { private PosParameter param; private PosMessage message; private String QLTY_CD; private Number QLTY_VAL_WK; private String QLTY_UNIT_WK; private String QLTY_TYPE_WK; private PosRowSet rowset; private int changeRows; private CallableStatement cStmt; public XinSaveL2QLTY() { param = null; message = null; QLTY_CD = null; QLTY_VAL_WK = null; QLTY_UNIT_WK = null; QLTY_TYPE_WK = null; rowset = null; cStmt = null; changeRows = 0; } public String runActivity(PosContext context) { message = context.getMessage(); String SMP_NO = (String)message.get("SMP_NO"); String SMP_CUT_LOC = (String)message.get("SMP_CUT_LOC"); String COIL_NO = (String)message.get("COIL_NO"); String QLTY_RECE_DTIME = (String)message.get("QLTY_SEND_DTIME"); for(int i=1;i<=20;i++) { QLTY_CD = (String)message.get("QLTY_CD"+Integer.toString(i)); QLTY_VAL_WK = (Number)message.get("QLTY_VAL_WK"+Integer.toString(i)); QLTY_UNIT_WK = (String)message.get("QLTY_UNIT_WK"+Integer.toString(i)); QLTY_TYPE_WK = (String)message.get("QLTY_TYPE_WK"+Integer.toString(i)); if(null != QLTY_CD&&!"".equals(QLTY_CD)) { param = new PosParameter(); param.setWhereClauseParameter(0, SMP_NO); param.setWhereClauseParameter(1, SMP_CUT_LOC); param.setWhereClauseParameter(2, QLTY_CD); rowset = this.getDao("mesdao").find("NIB027070_01.select",param); if(rowset.hasNext()) { param = new PosParameter(); if(null != QLTY_VAL_WK&&!"".equals(QLTY_VAL_WK)) { param.setWhereClauseParameter(0, QLTY_VAL_WK.toString()); } else { param.setWhereClauseParameter(0, ""); } param.setWhereClauseParameter(1, QLTY_UNIT_WK); param.setWhereClauseParameter(2, QLTY_TYPE_WK); param.setWhereClauseParameter(3, SMP_NO); param.setWhereClauseParameter(4, SMP_CUT_LOC); param.setWhereClauseParameter(5, QLTY_CD); this.getDao("mesdao").update("NIB027070_01.update", param); } else { param = new PosParameter(); param.setValueParamter(0, SMP_NO); param.setValueParamter(1, SMP_CUT_LOC); param.setValueParamter(2, QLTY_CD); if(null != QLTY_VAL_WK&&!QLTY_VAL_WK.equals("")) { param.setValueParamter(3, QLTY_VAL_WK.toString()); } else { param.setValueParamter(3, ""); } param.setValueParamter(4, QLTY_UNIT_WK); param.setValueParamter(5, QLTY_TYPE_WK); this.getDao("mesdao").insert("NIB027070_01.insert", param); } changeRows++; } } if(changeRows>0) { try { cStmt = this.getDao("mesdao").getCallableStatement("NIB027071"); cStmt.setString(1, SMP_NO); cStmt.setString(2, SMP_CUT_LOC); cStmt.registerOutParameter(3, Types.VARCHAR); cStmt.registerOutParameter(4, Types.VARCHAR); cStmt.execute(); } catch (Exception ex) { logger.logFatal("Can not execute PL/SQL",ex); throw new PosException("Can not execute PL/SQL",ex); } finally { try { if(cStmt != null) { cStmt.close(); } } catch (Exception ex) { logger.logFatal("Can not Close CallableStatement Query ID [callTest]",ex); } } } return PosBizControlConstants.SUCCESS; } }