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; /** * 客户参数信息保存(对应UIB010030界面) * @author 梅贵平 * @date 2008-10-14 */ public class SaveCustParameter extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); String INFID = "UIB010030"; String[]rowStuts0 = (String[])context.get("rowStuts0");//表1的删除、插入标记 String[]rowStuts = (String[])context.get("rowStuts");//表2、3、4、5的更新、删除、插入标记 String[]PROD_LINE = (String[])context.get("PROD_LINE");//产线 String[]CUST_CD = (String[])context.get("CUST_CD");//客户公司代码 String[]PRDNM_CD = (String[])context.get("PRDNM_CD"); //交货状态 String[]SEQ = (String[])context.get("SEQ"); //SEQ String CUSTSPECNO = CUST_CD[0]+PRDNM_CD[0]+SEQ[0]+PROD_LINE[0]; String[]NF_TP = (String[])context.get("NF_TP");//区分客户的内控和放行 String[]SPEC_STL_GRD = (String[])context.get("SPEC_STL_GRD"); String[]REG_NM = (String[])context.get("REG_NM"); String[]CHEM_CD = (String[])context.get("CHEM_CD");//成分代码 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");//复合元素区分 PosParameter param = null; PosRowSet rowset = null; if(rowStuts != null) { int len = rowStuts.length; for(int i = 0; i < len; i++) { //主键不允许为空! if("".equals(CUST_CD[0]) || "".equals(PRDNM_CD[0]) || "".equals(SEQ[0])) { break; } else if("u".equals(rowStuts[i])) { if("".equals(CHEM_MIN[i]) && "".equals(CHEM_MAX[i])) { param = new PosParameter(); param.setWhereClauseParameter(0, CUSTSPECNO); param.setWhereClauseParameter(1, NF_TP[0]); param.setWhereClauseParameter(2, CHEM_CD[i]); dao.delete("UIB010030_02.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010030_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); continue; } param = new PosParameter(); param.setWhereClauseParameter(0, CUSTSPECNO); param.setWhereClauseParameter(1, NF_TP[0]); param.setWhereClauseParameter(2, CHEM_CD[i]); rowset = dao.find("UIB010030_06.SELECT", param); if(rowset.count() == 0)//若无则插入 { param = new PosParameter(); param.setValueParamter(0, CUSTSPECNO); param.setValueParamter(1, CHEM_CD[i]); param.setValueParamter(2, CHEM_MIN[i]); param.setValueParamter(3, CHEM_MAX[i]); param.setValueParamter(4, COMP_YN[i]); param.setValueParamter(5, NF_TP[0]); param.setValueParamter(6, SPEC_STL_GRD[0]); param.setValueParamter(7, CHEM_DEC_CD[i]); param.setValueParamter(8, REG_NM[0]); dao.insert("UIB010030_01.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010030_01.INSERT", param.getValueParameters(), "", REG_NM[0]); } else//update { param = new PosParameter(); param.setWhereClauseParameter(0, CHEM_MIN[i]); param.setWhereClauseParameter(1, CHEM_MAX[i]); param.setWhereClauseParameter(2, REG_NM[0]); param.setWhereClauseParameter(3, CHEM_DEC_CD[i]); param.setWhereClauseParameter(4, CUSTSPECNO); param.setWhereClauseParameter(5, CHEM_CD[i]); param.setWhereClauseParameter(6, NF_TP[0]); dao.update("UIB010030_02.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010030_02.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]); } } } } if(rowStuts0 != null)//删除客户参数号 { if("d".equals(rowStuts0[0])) { param = new PosParameter(); param.setWhereClauseParameter(0, CUSTSPECNO); param.setWhereClauseParameter(1, NF_TP[0]); dao.delete("UIB010030_01.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010030_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } } return PosBizControlConstants.SUCCESS; } }