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:UIB010302) * * @author KangMiao * @Date 2015-4-22 上午11:34:54 * */ public class SaveSpecTechParameter extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); String INFID = "UIB010302"; String[] rowStuts1 = (String[]) context.get("rowStatus0");// 页面主键表1的更新、删除、插入标记 String[] rowStuts = (String[]) context.get("rowStatus2");// 规范代码表3的更新、删除、插入标记 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[] PROD_CD = (String[]) context.get("PROD_CD"); // 规范代码 String[] PROD_TYPE = (String[]) context.get("PROD_TYPE"); // 代码类型 String[] DCS_SYM = (String[]) context.get("DCS_SYM"); // 判定符号 String[] PROD_VAL = (String[]) context.get("PROD_VAL"); // 值 String[] MEMO = (String[]) context.get("MEMO");// 备注 String[] REG_NM = (String[]) context.get("REG_NM");// 登陆ID // 主键不允许为空 if ("".equals(PRDNM_CD[0]) || "".equals(SPEC_ABBSYM[0]) || "".equals(SPEC_STL_GRD[0])) { return PosBizControlConstants.SUCCESS; } PosParameter param = null; PosRowSet rowset = null; int j = 0; if (rowStuts != null)// 表3的更新、删除、插入标记 { int len = rowStuts.length; for (int i = 0; i < len; i++) { j = 0; // 删除某规范代码 if (null == PROD_VAL[i] || "".equals(PROD_VAL[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++, PROD_CD[i]); dao.delete("UIB010302_02.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010302_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++, PROD_CD[i]); rowset = dao.find("UIB010302_11.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++, PROD_CD[i]); param.setValueParamter(j++, PROD_TYPE[i]); param.setValueParamter(j++, DCS_SYM[i]); param.setValueParamter(j++, PROD_VAL[i]); param.setValueParamter(j++, MEMO[i]); param.setValueParamter(j++, REG_NM[0]); dao.insert("UIB010302_01.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010302_01.INSERT", param.getValueParameters(), "", REG_NM[0]); } else// update 基础代码不能修改 { param = new PosParameter(); param.setWhereClauseParameter(j++, PROD_VAL[i]); param.setWhereClauseParameter(j++, MEMO[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++, PROD_CD[i]); dao.update("UIB010302_02.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010302_02.UPDATE", param .getWhereClauseParamters(), "", REG_NM[0]); } } } // 针对整个标准的删除 if (null != rowStuts1 && "d".equals(rowStuts1[0])) { param = new PosParameter(); param.setWhereClauseParameter(0, PRDNM_CD[0]); param.setWhereClauseParameter(1, SPEC_ABBSYM[0]); param.setWhereClauseParameter(2, SPEC_STL_GRD[0]); dao.delete("UIB010302_01.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010302_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } return PosBizControlConstants.SUCCESS; } }