package xin.glue.ui.B.B01; import org.apache.commons.lang.StringUtils; 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:UIB010140) */ public class SaveSpecQltyParameter extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); String INFID = "UIB010140"; String[] rowStuts1 = (String[])context.get("rowStuts1");//表2的更新、删除、插入标记 String[] rowStuts2 = (String[])context.get("rowStuts2");//表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[] ORD_USE_TP = (String[])context.get("ORD_USE_TP");//产品名称 String[] THK_MIN = (String[])context.get("THK_MIN");//最小厚度 String[] THK_MAX = (String[])context.get("THK_MAX");//最大厚度 String[] QLTY_CD = (String[])context.get("QLTY_CD"); String[] QLTY_MIN = (String[])context.get("QLTY_MIN"); String[] QLTY_MAX = (String[])context.get("QLTY_MAX"); String[] QLTY_UNIT = (String[])context.get("QLTY_UNIT"); String[] QLTY_TYPE = (String[])context.get("QLTY_TYPE"); String[] QLTY_DETAIL = (String[])context.get("QLTY_DETAIL"); String[] QLTY_SIZE = (String[])context.get("QLTY_SIZE"); String[] QLTY_DEC_CD = (String[])context.get("QLTY_DEC_CD");//检验类型 String[] QLTY_CD_CFNM = (String[])context.get("QLTY_CD_CFNM"); //材质项目名称 String[] SMP_LOT_CD = (String[])context.get("SMP_LOT_CD"); String[] SMP_LEN_LOC = (String[])context.get("SMP_LEN_LOC"); String[] SMP_WTH_LOC = (String[])context.get("SMP_WTH_LOC"); String[] REG_NM = (String[])context.get("REG_NM");//登陆ID //主键不允许为空 if("".equals(PRDNM_CD[0]) || "".equals(SPEC_ABBSYM[0]) || "".equals(SPEC_STL_GRD[0]) || "".equals(ORD_USE_TP[0]) || "".equals(THK_MIN[0]) || "".equals(THK_MAX[0])) { return PosBizControlConstants.SUCCESS; } PosParameter param = null; PosRowSet rowset = null; PosRowSet jhyRowset = null; //检化验材质项目编码表结果集 StringBuffer returnInfo = new StringBuffer(""); if(rowStuts1 != null)//针对grid2的操作 { if(!"".equals(SMP_LOT_CD[0])) { 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, ORD_USE_TP[0]); param.setWhereClauseParameter(4, THK_MIN[0]); param.setWhereClauseParameter(5, THK_MAX[0]); param.setWhereClauseParameter(6, "SAMP"); rowset = dao.find("UIB010140_11.SELECT", param); if(rowset.count() == 0)//insert { param = new PosParameter(); param.setValueParamter(0, PRDNM_CD[0]); param.setValueParamter(1, SPEC_ABBSYM[0]); param.setValueParamter(2, SPEC_STL_GRD[0]); param.setValueParamter(3, ORD_USE_TP[0]); param.setValueParamter(4, THK_MIN[0]); param.setValueParamter(5, THK_MAX[0]); param.setValueParamter(6, "SAMP"); param.setValueParamter(7, SMP_LOT_CD[0]); param.setValueParamter(8, SMP_LEN_LOC[0]); param.setValueParamter(9, SMP_WTH_LOC[0]); param.setValueParamter(10, REG_NM[0]); dao.insert("UIB010140_01.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010140_01.INSERT", param.getValueParameters(), "", REG_NM[0]); } else//update { param = new PosParameter(); param.setWhereClauseParameter(0, SMP_LOT_CD[0]); param.setWhereClauseParameter(1, SMP_LEN_LOC[0]); param.setWhereClauseParameter(2, SMP_WTH_LOC[0]); param.setWhereClauseParameter(3, REG_NM[0]); param.setWhereClauseParameter(4, PRDNM_CD[0]); param.setWhereClauseParameter(5, SPEC_ABBSYM[0]); param.setWhereClauseParameter(6, SPEC_STL_GRD[0]); param.setWhereClauseParameter(7, ORD_USE_TP[0]); param.setWhereClauseParameter(8, THK_MIN[0]); param.setWhereClauseParameter(9, THK_MAX[0]); param.setWhereClauseParameter(10, "SAMP"); dao.update("UIB010140_01.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010140_01.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]); } } } if(rowStuts2 != null)//针对grid3的操作 { int len = rowStuts2.length; for(int i =0; i < len; i++) { if("".equals(QLTY_MIN[i]) && "".equals(QLTY_MAX[i]) && "".equals(QLTY_UNIT[i]))//最大、最小、单位没有的话直接删除 { 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, ORD_USE_TP[0]); param.setWhereClauseParameter(4, THK_MIN[0]); param.setWhereClauseParameter(5, THK_MAX[0]); param.setWhereClauseParameter(6, QLTY_CD[i]); dao.delete("UIB010140_02.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010140_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); continue; } 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, ORD_USE_TP[0]); param.setWhereClauseParameter(4, THK_MIN[0]); param.setWhereClauseParameter(5, THK_MAX[0]); param.setWhereClauseParameter(6, QLTY_CD[i]); rowset = dao.find("UIB010140_11.SELECT", param); if(rowset.count() == 0)//insert { //查询该项目在检化验项目编码表中是否存在,若不存在则不插入该项目 param = new PosParameter(); param.setWhereClauseParameter(0, QLTY_CD[i]); jhyRowset = dao.find("UIB010140_jhyqlty.SELECT", param); if(jhyRowset.count() > 0) { param = new PosParameter(); param.setValueParamter(0, PRDNM_CD[0]); param.setValueParamter(1, SPEC_ABBSYM[0]); param.setValueParamter(2, SPEC_STL_GRD[0]); param.setValueParamter(3, ORD_USE_TP[0]); param.setValueParamter(4, THK_MIN[0]); param.setValueParamter(5, THK_MAX[0]); param.setValueParamter(6, QLTY_CD[i]); param.setValueParamter(7, QLTY_MIN[i]); param.setValueParamter(8, QLTY_MAX[i]); param.setValueParamter(9, QLTY_UNIT[i]); param.setValueParamter(10, QLTY_TYPE[i]); param.setValueParamter(11, QLTY_DETAIL[i]); param.setValueParamter(12, QLTY_SIZE[i]); param.setValueParamter(13, REG_NM[0]); param.setValueParamter(14, QLTY_DEC_CD[i]); dao.insert("UIB010140_02.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010140_02.INSERT", param.getValueParameters(), "", REG_NM[0]); } else { returnInfo.append(QLTY_CD_CFNM[i]+";"); } } else//update { param = new PosParameter(); param.setWhereClauseParameter(0, QLTY_MIN[i]); param.setWhereClauseParameter(1, QLTY_MAX[i]); param.setWhereClauseParameter(2, QLTY_UNIT[i]); param.setWhereClauseParameter(3, QLTY_TYPE[i]); param.setWhereClauseParameter(4, QLTY_DETAIL[i]); param.setWhereClauseParameter(5, QLTY_SIZE[i]); param.setWhereClauseParameter(6, REG_NM[0]); param.setWhereClauseParameter(7, QLTY_DEC_CD[i]); param.setWhereClauseParameter(8, PRDNM_CD[0]); param.setWhereClauseParameter(9, SPEC_ABBSYM[0]); param.setWhereClauseParameter(10, SPEC_STL_GRD[0]); param.setWhereClauseParameter(11, ORD_USE_TP[0]); param.setWhereClauseParameter(12, THK_MIN[0]); param.setWhereClauseParameter(13, THK_MAX[0]); param.setWhereClauseParameter(14, QLTY_CD[i]); dao.update("UIB010140_02.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010140_02.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]); } } } String[]rowStatus0 = (String[])context.get("rowStatus0"); if(rowStatus0 != null) { 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, ORD_USE_TP[0]); param.setWhereClauseParameter(4, THK_MIN[0]); param.setWhereClauseParameter(5, THK_MAX[0]); dao.delete("UIB010140_01.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010140_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } if(!StringUtils.isEmpty(returnInfo.toString())) returnInfo.append("在检化验项目编码表中不存在该项目,不能录入!\n请联系技术中心在检化验项目编码表中添加该项目!"); context.put("returnInfoMsg", returnInfo); return PosBizControlConstants.SUCCESS; } }