package xin.glue.ui.B.B01; 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; /** * 标准成分信息录入、删除、更新(界面ID:UIB010040) * @author 梅贵平 * @date 2008-9-15 */ public class SaveSpecChemParameter extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); String INFID = "UIB010040"; String[] rowStuts0 = (String[])context.get("rowStuts0");//表1的删除、插入标记 String[] rowStuts = (String[])context.get("rowStuts");//表2、3、4、5的更新、删除、插入标记 //datagrid1中可能被更新的信息 String[] PRDNM_CD = (String[])context.get("PRDNM_CD");//品名 String[] SPEC_ABBSYM = (String[])context.get("SPEC_ABBSYM");//标准号 String[] SPEC_STL_GRD= (String[])context.get("SPEC_STL_GRD"); //可能被更新的标准钢号 String[] THK_MIN = (String[])context.get("THK_MIN");//厚度min String[] THK_MAX = (String[])context.get("THK_MAX");//厚度max String[] CHEM_CD = (String[])context.get("CHEM_CD");//成分ID String[] CHEM_MIN = (String[])context.get("CHEM_MIN");//成分最小值 String[] CHEM_MAX = (String[])context.get("CHEM_MAX");//成分最大值 String[] CHEM_DEC_CD = (String[])context.get("CHEM_DEC_CD"); //检验类型 String[] COMP_YN = (String[])context.get("COMP_YN");//是否为复合元素 String[] REG_NM = (String[])context.get("REG_NM");//登陆ID PosParameter param = null; PosRowSet rowset = null; int j = 0; if(rowStuts != null)//表2、3、4、5的更新、删除、插入标记 { int len = rowStuts.length; for(int i = 0 ; i < len ; i++) { //主键不允许为空 if("".equals(PRDNM_CD[0]) || "".equals(SPEC_ABBSYM[0]) || "".equals(SPEC_STL_GRD[0]) ||"".equals(THK_MIN[0]) || "".equals(THK_MAX[0]) ) { break; } j = 0; if("".equals(CHEM_MIN[i]) && "".equals(CHEM_MAX[i]))//删除某元素 { param = new PosParameter(); param.setWhereClauseParameter(j++, PRDNM_CD[0]); param.setWhereClauseParameter(j++, SPEC_ABBSYM[0]); param.setWhereClauseParameter(j++, SPEC_STL_GRD[0]); param.setWhereClauseParameter(j++, THK_MIN[0]); param.setWhereClauseParameter(j++, THK_MAX[0]); param.setWhereClauseParameter(j++, CHEM_CD[i]); dao.delete("UIB010040_02.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010040_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); continue; } //判断某元素是否存在 param = new PosParameter(); param.setWhereClauseParameter(j++, PRDNM_CD[0]); param.setWhereClauseParameter(j++, SPEC_ABBSYM[0]); param.setWhereClauseParameter(j++, SPEC_STL_GRD[0]); param.setWhereClauseParameter(j++, THK_MIN[0]); param.setWhereClauseParameter(j++, THK_MAX[0]); param.setWhereClauseParameter(j++, CHEM_CD[i]); rowset = dao.find("UIB010040_05.SELECT", param); j = 0; if(rowset.count() == 0)//insert { param = new PosParameter(); param.setValueParamter(j++, PRDNM_CD[0]); param.setValueParamter(j++, SPEC_ABBSYM[0]); param.setValueParamter(j++, SPEC_STL_GRD[0]); param.setValueParamter(j++, THK_MIN[0]); param.setValueParamter(j++, THK_MAX[0]); param.setValueParamter(j++, CHEM_CD[i]); param.setValueParamter(j++, CHEM_MIN[i]); param.setValueParamter(j++, CHEM_MAX[i]); param.setValueParamter(j++, COMP_YN[i]); param.setValueParamter(j++, CHEM_DEC_CD[i]); param.setValueParamter(j++, REG_NM[0]); dao.insert("UIB010040_01.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010040_01.INSERT", param.getValueParameters(), "", REG_NM[0]); } else//update { param = new PosParameter(); param.setWhereClauseParameter(j++, CHEM_MIN[i]); param.setWhereClauseParameter(j++, CHEM_MAX[i]); param.setWhereClauseParameter(j++, CHEM_DEC_CD[i]); param.setWhereClauseParameter(j++, REG_NM[0]); param.setWhereClauseParameter(j++, PRDNM_CD[0]); param.setWhereClauseParameter(j++, SPEC_ABBSYM[0]); param.setWhereClauseParameter(j++, SPEC_STL_GRD[0]); param.setWhereClauseParameter(j++, THK_MIN[0]); param.setWhereClauseParameter(j++, THK_MAX[0]); param.setWhereClauseParameter(j++, CHEM_CD[i]); dao.update("UIB010040_02.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010040_02.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]); } } } if(rowStuts0 != null)//针对grid1的删除 { param = new PosParameter(); param.setWhereClauseParameter(0, PRDNM_CD[0]); param.setWhereClauseParameter(1, SPEC_ABBSYM[0]); param.setWhereClauseParameter(2, SPEC_STL_GRD[0]); param.setWhereClauseParameter(3, THK_MIN[0]); param.setWhereClauseParameter(4, THK_MAX[0]); dao.delete("UIB010040_01.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010040_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } return PosBizControlConstants.SUCCESS; } }