package xin.glue.ui.B.B01; import java.sql.CallableStatement; 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:UIB010270) * @author 梅贵平{meiguiping} * @date 2008-10-25 */ public class SaveSpecDelItem extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); PosParameter param= null; String INFID = "UIB010270"; //datagrid1 String[] DEV_SPEC_CD = (String[])context.get("DEV_SPEC_CD");//外形尺寸标准号 //datagrid2 String[] DEV_DGR_CD = (String[])context.get("DEV_DGR_CD");//等级代码 String[]DEL_TOL_CD = (String[])context.get("DEL_TOL_CD");//公差名 String[]THK_MIN = (String[])context.get("THK_MIN");//厚度最小 String[]THK_MAX = (String[])context.get("THK_MAX");//厚度最大 String[]WTH_MIN = (String[])context.get("WTH_MIN");//宽度最小 String[]WTH_MAX = (String[])context.get("WTH_MAX");//宽度最大 String[]TOL_MIN_SYM = (String[])context.get("TOL_MIN_SYM");//下限符号 String[]TOL_MIN = (String[])context.get("TOL_MIN");//下限值 String[]TOL_MAX_SYM = (String[])context.get("TOL_MAX_SYM");//上限符号 String[]TOL_MAX = (String[])context.get("TOL_MAX");//上限值 String[]TOL_UNIT = (String[])context.get("TOL_UNIT");//其他单位 String[]TOL_VAL = (String[])context.get("TOL_VAL");//其它值 String[]DEV_RMK = (String[])context.get("DEV_RMK");//备注 String[]EMEC_TP = (String[])context.get("EMEC_TP");//是否切边 //主键被修改时起作用 String[] DEV_DGR_CD1 = (String[])context.get("DEV_DGR_CD1");//等级代码 String[]DEL_TOL_CD1 = (String[])context.get("DEL_TOL_CD1");//公差名 String[]THK_MIN1 = (String[])context.get("THK_MIN1");//厚度最小 String[]THK_MAX1 = (String[])context.get("THK_MAX1");//厚度最大 String[]WTH_MIN1 = (String[])context.get("WTH_MIN1");//宽度最小 String[]WTH_MAX1 = (String[])context.get("WTH_MAX1");//宽度最大 String[]EMEC_TP1 = (String[])context.get("EMEC_TP1");//是否切边 String[] rowStuts1 = (String[])context.get("rowStuts1");//对应datagrid1 String[] REG_NM = (String[])context.get("REG_NM");//操作人 String[] CHK = (String[])context.get("CHK"); int j = 0; if(rowStuts1 != null)//grid2被变更后的操作 { int len = rowStuts1.length; for(int i = 0; i < len; i++) { j = 0; //不允许为空 if("".equals(DEV_SPEC_CD[0]) || "".equals(DEV_DGR_CD[0]) ) { break;//若为空则直接退出循环 } else if("".equals(DEL_TOL_CD[i])||"".equals(THK_MIN[i]) ||"".equals(THK_MAX[i]) || "".equals(WTH_MIN[i]) || "".equals(WTH_MAX[i]) ) { continue; } else if("u".equals(rowStuts1[i]) && "Y".equals(CHK[i])) { param = new PosParameter(); param.setWhereClauseParameter(j++, DEL_TOL_CD[i]); param.setWhereClauseParameter(j++, DEV_DGR_CD[i]); param.setWhereClauseParameter(j++, THK_MIN[i]); param.setWhereClauseParameter(j++, THK_MAX[i]); param.setWhereClauseParameter(j++, WTH_MIN[i]); param.setWhereClauseParameter(j++, WTH_MAX[i]); param.setWhereClauseParameter(j++, "T2".equals(DEL_TOL_CD[i])?EMEC_TP[i]:"EM"); param.setWhereClauseParameter(j++, TOL_MIN_SYM[i]); param.setWhereClauseParameter(j++, TOL_MIN[i]); param.setWhereClauseParameter(j++, TOL_MAX_SYM[i]); param.setWhereClauseParameter(j++, TOL_MAX[i]); param.setWhereClauseParameter(j++, TOL_UNIT[i]); param.setWhereClauseParameter(j++, TOL_VAL[i]); param.setWhereClauseParameter(j++, DEV_RMK[i]);//备注 param.setWhereClauseParameter(j++, REG_NM[0]); //下面是UPDATE的条件 param.setWhereClauseParameter(j++, DEV_SPEC_CD[0]); param.setWhereClauseParameter(j++, DEV_DGR_CD1[i]); param.setWhereClauseParameter(j++, DEL_TOL_CD1[i]); param.setWhereClauseParameter(j++, THK_MIN1[i]); param.setWhereClauseParameter(j++, THK_MAX1[i]); param.setWhereClauseParameter(j++, WTH_MIN1[i]); param.setWhereClauseParameter(j++, WTH_MAX1[i]); param.setWhereClauseParameter(j++, "T2".equals(DEL_TOL_CD1[i])?EMEC_TP1[i]:"EM"); dao.update("UIB010270_01.UPDATE", param); SaveModifyHistory.writeLog(dao, INFID, "U", "UIB010270_01.UPDATE", param.getWhereClauseParamters(), "", REG_NM[0]); } else if("i".equals(rowStuts1[i]) && "Y".equals(CHK[i])) { param = new PosParameter(); param.setValueParamter(j++, DEV_SPEC_CD[0]); param.setValueParamter(j++, DEV_DGR_CD[i]); param.setValueParamter(j++, DEL_TOL_CD[i]); param.setValueParamter(j++, THK_MIN[i]); param.setValueParamter(j++, THK_MAX[i]); param.setValueParamter(j++, WTH_MIN[i]); param.setValueParamter(j++, WTH_MAX[i]); param.setValueParamter(j++, "T2".equals(DEL_TOL_CD[i])?EMEC_TP[i]:"EM"); param.setValueParamter(j++, TOL_MIN_SYM[i]); param.setValueParamter(j++, TOL_MIN[i]); param.setValueParamter(j++, TOL_MAX_SYM[i]); param.setValueParamter(j++, TOL_MAX[i]); param.setValueParamter(j++, TOL_UNIT[i]); param.setValueParamter(j++, TOL_VAL[i]); param.setValueParamter(j++, DEV_RMK[i]); param.setValueParamter(j++, REG_NM[0]); dao.insert("UIB010270_01.INSERT", param); SaveModifyHistory.writeLog(dao, INFID, "I", "UIB010270_01.INSERT", param.getValueParameters(), "", REG_NM[0]); } else if("d".equals(rowStuts1[i]) && "Y".equals(CHK[i])) { param = new PosParameter(); param.setWhereClauseParameter(j++, DEV_SPEC_CD[0]); param.setWhereClauseParameter(j++, DEV_DGR_CD[i]); param.setWhereClauseParameter(j++, DEL_TOL_CD[i]); param.setWhereClauseParameter(j++, THK_MIN[i]); param.setWhereClauseParameter(j++, THK_MAX[i]); param.setWhereClauseParameter(j++, WTH_MIN[i]); param.setWhereClauseParameter(j++, WTH_MAX[i]); param.setWhereClauseParameter(j++, EMEC_TP[i]); dao.delete("UIB010270_02.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010270_02.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } } } String[]rowStatusD = (String[])context.get("rowStatusD"); if(rowStatusD != null)//针对grid1删除操作 { param = new PosParameter(); param.setWhereClauseParameter(0, DEV_SPEC_CD[0]); param.setWhereClauseParameter(1, DEV_DGR_CD[0]); dao.update("UIB010270_01.DELETE", param); SaveModifyHistory.writeLog(dao, INFID, "D", "UIB010270_01.DELETE", param.getWhereClauseParamters(), "", REG_NM[0]); } //复制 String[]CALL = (String[])context.get("CALL"); if(CALL != null) { String[]NeedGrd = (String[])context.get("NeedGrd");//等级代码 String[]delSpec = (String[])context.get("delSpec");//外形尺寸标准 CallableStatement cstm = null; cstm = dao.getCallableStatement("UIB010270_01.CALL"); try { cstm.setString(1, DEV_SPEC_CD[0]); cstm.setString(2, DEV_DGR_CD[0]); cstm.setString(3, delSpec[0]); cstm.setString(4, NeedGrd[0]); cstm.setString(6, REG_NM[0]); cstm.registerOutParameter(7, java.sql.Types.VARCHAR); cstm.execute(); }catch(Exception ex) { try { if(cstm != null) cstm.close(); }catch(Exception e) { e.printStackTrace(); } } } return PosBizControlConstants.SUCCESS; } }