package xin.glue.ui.B.B01; import java.sql.CallableStatement; import xin.glue.ui.B.common.SaveModifyHistory; 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.PosGenericDao; import com.posdata.glue.dao.vo.PosParameter; import com.posdata.glue.dao.vo.PosRowSet; /** * * @Description 内控成分录入{界面ID:UIB010052} * @author 梅贵平{meiguiping} * @date 2009-12-3 下午12:01:20 * @JDK Version jdk1.4.2 */ public class SaveNewFacChemParameter extends PosActivity { public String runActivity(PosContext context) { String INFID = "UIB010052"; String[] FAC_STL_GRD = (String[])context.get("FAC_STL_GRD");//牌号 String[] FAC_CODE = (String[])context.get("FAC_CODE");//产线 String[] CHEM_CD = (String[])context.get("CHEM_CD");//元素代码 String[] CHEM_AIM = (String[])context.get("CHEM_AIM");//目标值 String[] CHEM_MIN = (String[])context.get("CHEM_MIN");//最小值 String[] CHEM_MAX = (String[])context.get("CHEM_MAX");//最大值 String[] COMP_YN = (String[])context.get("COMP_YN");//是否为复合元素 String[] rowStatus = (String[])context.get("rowStatus");//标记 String[] REG_NM = (String[])context.get("REG_NM");//用户 PosParameter param = null; PosGenericDao dao = this.getDao("mesdao"); PosRowSet rowset = null; //主要是UPDATE 操作,若某元素不存在则进行INSERT操作 if(rowStatus != null) { int len = rowStatus.length; for(int i = 0 ; i < len; i++) { rowset = null;//重新初始化 if("u".equals(rowStatus[i])) { if("".equals(CHEM_MIN[i]) && "".equals(CHEM_MAX[i]) ) { param = new PosParameter(); param.setWhereClauseParameter(0, FAC_STL_GRD[0]); param.setWhereClauseParameter(1, FAC_CODE[0]); param.setWhereClauseParameter(2, CHEM_CD[i]); dao.delete("UIB010052_01.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010052_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); continue;//进行下一次循环 } param = new PosParameter(); param.setWhereClauseParameter(0, FAC_STL_GRD[0]); param.setWhereClauseParameter(1, FAC_CODE[0]); param.setWhereClauseParameter(2, CHEM_CD[i]); rowset = dao.find("UIB010052_05.SELECT", param); if(rowset.count() == 0)//无该元素,进行INSERT { param = new PosParameter(); param.setValueParamter(0, FAC_STL_GRD[0]); param.setValueParamter(1, FAC_CODE[0]); param.setValueParamter(2, CHEM_CD[i]); param.setValueParamter(3, COMP_YN[i]); param.setValueParamter(4, CHEM_AIM[i]); param.setValueParamter(5, CHEM_MIN[i]); param.setValueParamter(6, CHEM_MAX[i]); param.setValueParamter(7, REG_NM[0]); dao.insert("UIB010052_01.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010052_01.INSERT", param.getValueParameters(), "", REG_NM[0]); } else//含有该元素,执行UPDATE { param = new PosParameter(); param.setWhereClauseParameter(0, CHEM_AIM[i]); param.setWhereClauseParameter(1, CHEM_MIN[i]); param.setWhereClauseParameter(2, CHEM_MAX[i]); param.setWhereClauseParameter(3, REG_NM[0]); param.setWhereClauseParameter(4, FAC_STL_GRD[0]); param.setWhereClauseParameter(5, FAC_CODE[0]); param.setWhereClauseParameter(6, CHEM_CD[i]); dao.update("UIB010052_01.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010052_01.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]); } } } } String[] CALL = (String[])context.get("CALL"); if(CALL != null) { String[]stlGrd = (String[])context.get("stlGrd");//需要复制到的内控牌号 // String[]facCode = (String[])context.get("facCode");//产线 CallableStatement cstm = null; cstm = dao.getCallableStatement("UIB010052_01.CALL"); try { cstm.setString(1, FAC_STL_GRD[0]);//原牌号 cstm.setString(2, FAC_CODE[0]); cstm.setString(3, stlGrd[0]);//目标牌号 // cstm.setString(4, facCode[0]); cstm.setString(4, CALL[0]); cstm.setString(5, REG_NM[0]); cstm.registerOutParameter(6, java.sql.Types.VARCHAR); cstm.execute(); }catch(Exception ex) { ex.printStackTrace(); } finally { if(cstm != null) try { cstm.close(); }catch(Exception e) { e.printStackTrace(); } } } //增加备注 String[] DETAIL = (String[])context.get("DETAIL");//注释 String[]ADD_REMARK = (String[])context.get("ADD_REMARK");//是否增加备注 if(ADD_REMARK != null) { CallableStatement cstm = null; cstm = dao.getCallableStatement("UIB010052_03.CALL"); try { cstm.setString(1, FAC_STL_GRD[0]);//原牌号 cstm.setString(2, FAC_CODE[0]); cstm.setString(3, DETAIL[0]);//备注信息 cstm.setString(4, REG_NM[0]); cstm.registerOutParameter(5, java.sql.Types.VARCHAR); cstm.execute(); }catch(Exception ex) { ex.printStackTrace(); } finally { if(cstm != null) try { cstm.close(); }catch(Exception e) { e.printStackTrace(); } } } //删除牌号操作 String[]L2Flag = (String[])context.get("L2Flag");//删除 if(L2Flag != null && L2Flag[0].equals("D")) { param = new PosParameter(); param.setWhereClauseParameter(0, FAC_STL_GRD[0]);//牌号 param.setWhereClauseParameter(1, FAC_CODE[0]); dao.delete("UIB010052_02.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010052_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } return PosBizControlConstants.SUCCESS; } }