package xin.glue.ui.B.B02; 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; /** * * @Description 试样号实绩修改{界面ID:UIB020132} * @author 梅贵平{meiguiping} * @date 2009-1-19 下午03:10:42 * @JDK Version jdk1.4.2 */ public class SaveSmpQltyAchievement extends PosActivity { public String runActivity(PosContext context) { ///ready PosParameter param = null; PosGenericDao dao = this.getDao("mesdao"); PosRowSet rowset = null; ///get reqdata String[] SMPNO = (String[])context.get("SMPNO");//试样号 String[] SMPCUTLOC = (String[])context.get("SMPCUTLOC");//位置 String[] QLTYCD = (String[])context.get("QLTYCD"); //材质代码 String[] QLTY_SEQ = (String[])context.get("QLTY_SEQ");//次数 String[]QLTY_VAL_WK1 = (String[])context.get("QLTY_VAL_WK1");//实绩1 String[]QLTY_UNIT_WK1 = (String[])context.get("QLTY_UNIT_WK1");//单位1 String[]QLTY_VAL_WK2 = (String[])context.get("QLTY_VAL_WK2");//实绩2 String[]QLTY_UNIT_WK2 = (String[])context.get("QLTY_UNIT_WK2");//单位2 String[] rowStatus2 = (String[])context.get("rowStatus2");//对应表格2 String[][] SMP = new String[11][]; SMP[0] = (String[])context.get("SMP1"); SMP[1] = (String[])context.get("SMP2"); SMP[2] = (String[])context.get("SMP3"); SMP[3] = (String[])context.get("SMP4"); SMP[4] = (String[])context.get("SMP5"); SMP[5] = (String[])context.get("SMP6"); SMP[6] = (String[])context.get("SMP7"); SMP[7] = (String[])context.get("SMP8"); SMP[8] = (String[])context.get("SMP9"); SMP[9] = (String[])context.get("SMP10"); SMP[10] = (String[])context.get("SMP11"); if(rowStatus2 == null) return PosBizControlConstants.SUCCESS; int len = rowStatus2.length; int j = 0; for(int i = 0; i < len; i++) { ///若取样位置为W if("W".equals(SMPCUTLOC[i])) { if("".equals(QLTY_SEQ[i]))//若QLTY_SEQ不为空,说明更新的是REWORK表,否则是work表 { //位置T j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]);//材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i]);//试样号 param.setWhereClauseParameter(j++, "1");//试样位置,1表示T param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码 dao.update("UIB020132_02.UPDATE", param); //位置B j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i]); //试样号 param.setWhereClauseParameter(j++, "2"); //2,位置B param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码 dao.update("UIB020132_02.UPDATE", param); //更新对应的式样号的实绩 for(int m = 0; m < 11; m++) { System.out.println("########################################"+SMP[m][0]); if("".equals(SMP[m][0])) { break; } // System.out.println("#######################################################"); //位置T j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]);//材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]);//试样号 param.setWhereClauseParameter(j++, "1");//试样位置,1表示T param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码 dao.update("UIB020132_02.UPDATE", param); //位置B j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]); //试样号 param.setWhereClauseParameter(j++, "2"); //2,位置B param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码 dao.update("UIB020132_02.UPDATE", param); } } else//更新rework表示实绩 { //位置T j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]); //材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i]); //试样号 param.setWhereClauseParameter(j++, "1"); //试样位置,1表示T param.setWhereClauseParameter(j++, QLTYCD[i]); //材质代码 param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数 dao.update("UIB020132_03.UPDATE", param); //位置B j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i]); //试样号 param.setWhereClauseParameter(j++, "2"); //2,位置B param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码 param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数 dao.update("UIB020132_03.UPDATE", param); //更新对应的式样号的实绩 for(int m = 0; m < 11; m++) { if("".equals(SMP[m][0])) { break; } //位置T j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]); //材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]); //试样号 param.setWhereClauseParameter(j++, "1"); //试样位置,1表示T param.setWhereClauseParameter(j++, QLTYCD[i]); //材质代码 param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数 dao.update("UIB020132_03.UPDATE", param); //位置B j = 0; param = new PosParameter(); param.setWhereClauseParameter(j++, QLTY_VAL_WK2[i]); //材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK2[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i].substring(0, 10)+SMP[m][i]); //试样号 param.setWhereClauseParameter(j++, "2"); //2,位置B param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码 param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数 dao.update("UIB020132_03.UPDATE", param); } } } else///若取样位置非W { j = 0; param = new PosParameter(); if("".equals(QLTY_SEQ[i]))//更新的是work表 { param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]);//材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i]);//试样号 param.setWhereClauseParameter(j++, SMPCUTLOC[i]);//试样位置 param.setWhereClauseParameter(j++, QLTYCD[i]);//材质代码 dao.update("UIB020132_02.UPDATE", param); //更新对应的式样号的实绩 for(int m = 0; m < 11; m++) { if("".equals(SMP[m][0])) { break; } param = new PosParameter(); param.setWhereClauseParameter(0, QLTY_VAL_WK1[i]);//材质实绩值 param.setWhereClauseParameter(1, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(2, SMPNO[i].substring(0, 10)+SMP[m][i]);//和上面相比,只有这里不同(试样号) param.setWhereClauseParameter(3, SMPCUTLOC[i]);//试样位置 param.setWhereClauseParameter(4, QLTYCD[i]);//材质代码 dao.update("UIB020132_02.UPDATE", param); } } else//更新的是rework表 { param.setWhereClauseParameter(j++, QLTY_VAL_WK1[i]); //材质实绩值 param.setWhereClauseParameter(j++, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(j++, SMPNO[i]); //试样号 param.setWhereClauseParameter(j++, SMPCUTLOC[i]); //试样位置,1表示T param.setWhereClauseParameter(j++, QLTYCD[i]); //材质代码 param.setWhereClauseParameter(j++, QLTY_SEQ[i]);//实验次数 dao.update("UIB020132_03.UPDATE", param); for(int m = 0; m < 11; m++) { if("".equals(SMP[m][0])) { break; } param = new PosParameter(); param.setWhereClauseParameter(0, QLTY_VAL_WK1[i]); //材质实绩值 param.setWhereClauseParameter(1, QLTY_UNIT_WK1[i]);//材质单位 param.setWhereClauseParameter(2, SMPNO[i].substring(0, 10)+SMP[m][i]);//这里不同,试样号 param.setWhereClauseParameter(3, SMPCUTLOC[i]); //试样位置,1表示T param.setWhereClauseParameter(4, QLTYCD[i]); //材质代码 param.setWhereClauseParameter(5, QLTY_SEQ[i]);//实验次数 dao.update("UIB020132_03.UPDATE", param); }//for(int m = 0; m < 11; m++) }//if else end }//if else end for(int m = 0; m < 11; m++) { if("".equals(SMP[m][0])) { break; } //SELECT 1 FROM TBB02_WORK_QLTY WHERE SMP_NO = ? AND SMP_CUT_LOC = ? AND QLTY_VAL_WK|| QLTY_UNIT_WK IS NULL param = new PosParameter(); param.setWhereClauseParameter(0, SMPNO[i].substring(0, 10)+SMP[m][i]);//试样号 // param.setWhereClauseParameter(1, SMPCUTLOC[i]);//试样位置 rowset = dao.find("UIB020132_07.SELECT", param); if(rowset.count() ==0)//只有所有实绩都有以后,才能修改式样号状态到 判定待机状态“D” { param = new PosParameter(); param.setWhereClauseParameter(0, SMPNO[i].substring(0, 10)+SMP[m][i]);//试样号 param.setWhereClauseParameter(1, SMPCUTLOC[i]);//试样位置 dao.update("UIB020132_04.UPDATE", param); } } }//for rowStatus2 end //SELECT 1 FROM TBB02_WORK_QLTY WHERE SMP_NO = ? AND SMP_CUT_LOC = ? AND QLTY_VAL_WK|| QLTY_UNIT_WK IS NULL param = new PosParameter(); param.setWhereClauseParameter(0, SMPNO[0]);//试样号 // param.setWhereClauseParameter(1, SMPCUTLOC[0]);//位置 rowset = dao.find("UIB020132_07.SELECT", param); if(rowset.count() == 0)//只有所有实绩都有后,才能修改试样号的状态到D { param = new PosParameter(); param.setWhereClauseParameter(0, SMPNO[0]);//试样号 param.setWhereClauseParameter(1, SMPCUTLOC[0]);//试样位置 dao.update("UIB020132_04.UPDATE", param); } return PosBizControlConstants.SUCCESS; } }