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; /** * 成分参数插入、删除、修改(对应界面ID:UIB010070) * @author 梅贵平 * @date 2008-10-13 */ public class SaveSeqIngredient extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); String INFID = "UIB010070"; String[]DISPLAY_SEQ = (String[])context.get("DISPLAY_SEQ");//标识序列 String[]CHEM_CD = (String[])context.get("CHEM_CD"); //成分项目(更改后,主键被更新时候) String[]INGR = (String[])context.get("INGR"); //成分项目(修改前、或者未修改的成分项目) //元素详细内容,非复合内容时插入的为“-” String[]COMP_DETAIL = (String[])context.get("COMP_DETAIL"); String[]DISPLAY_LEN = (String[])context.get("DISPLAY_LEN");//标识格式 String[]COMP_CAL = (String[])context.get("COMP_CAL"); //复合内容 String[]ID = (String[])context.get("ID"); //记录,修改人 String[]DTIME = (String[])context.get("DTIME"); //记录,修改时间 String[]rowStuts = (String[])context.get("rowStuts"); String[]REG_NM = (String[])context.get("REG_NM"); if(rowStuts != null) { int len = rowStuts.length; int j = 0; PosParameter param = null; String[]COMP_YN = new String[len]; //复合区分 for(int i=0; i < len; i++) { j = 0; if("".equals(CHEM_CD[i]))//CHEM_CD(成分)为空的话,由于是主键,则进入下一个循环 { continue; } /* * 以复合内容是否为空或者为“-”判断: * 若非复合元素的话,则字段COMP_DETAIL的值设为“-”,COMP_YN值设为"N" * 若是复合元素的话,则字段COMP_YN的值设为“Y” * */ if("".equals(COMP_DETAIL[i])||"-".equals(COMP_DETAIL[i])) { COMP_DETAIL[i] = "-"; COMP_YN[i] = "N"; } else { COMP_YN[i] = "Y"; } if("u".equals(rowStuts[i])) { param = new PosParameter(); param.setWhereClauseParameter(j++, DISPLAY_SEQ[i]);//表示序号 param.setWhereClauseParameter(j++, CHEM_CD[i]);//成分 param.setWhereClauseParameter(j++, DISPLAY_LEN[i]);//保留位数 param.setWhereClauseParameter(j++, COMP_YN[i]);//复合区分 param.setWhereClauseParameter(j++, COMP_CAL[i]);//详细内容 param.setWhereClauseParameter(j++, REG_NM[0]);//录入者或者修改者 param.setWhereClauseParameter(j++, COMP_DETAIL[i]);//详细内容 param.setWhereClauseParameter(j++, INGR[i]);//成分 dao.update("UIB010070_01.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010070_01.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]); } if("i".equals(rowStuts[i])) { param = new PosParameter(); param.setValueParamter(j++, DISPLAY_SEQ[i]);//表示序号 param.setValueParamter(j++, CHEM_CD[i]);//成分 param.setValueParamter(j++, DISPLAY_LEN[i]);//保留位数 param.setValueParamter(j++, COMP_YN[i]);//复合区分 param.setValueParamter(j++, COMP_CAL[i]);//详细内容 param.setValueParamter(j++, REG_NM[0]);//录入者 param.setValueParamter(j++, COMP_DETAIL[i]);//详细内容 dao.insert("UIB010070_01.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010070_01.INSERT", param.getValueParameters(), "", REG_NM[0]); } if("d".equals(rowStuts[i])) { param = new PosParameter(); param.setWhereClauseParameter(j++, CHEM_CD[i]); dao.delete("UIB010070_01.DELETE", param); //记录删除信息 SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010070_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } } } return PosBizControlConstants.SUCCESS; } }