package xin.glue.ui.B.common; import java.lang.reflect.Array; import java.sql.CallableStatement; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; //import javax.print.DocFlavor.STRING; 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; //import com.sun.rsasign.al; /** * * @Description * @author 梅贵平{meiguiping} * @date 2009-1-4 下午04:23:13 * @JDK Version jdk1.4.2 */ public class CallProcedure extends PosActivity { public String runActivity(PosContext context) { PosGenericDao dao = this.getDao("mesdao"); CallableStatement cstm = null; PosParameter param = null; String[] XX = (String[])context.get("XX"); // System.out.println("--11-------------------------------------"+XX[0]); if(XX== null) return PosBizControlConstants.SUCCESS; //用于品质设计结果确定界面 String[] rowStuts = (String[])context.get("rowStuts");//“品质设计结果确定界面”标记被选中的项 String[] ORD_NO = (String[])context.get("ORD_NO"); //“品质设计结果确定界面”标记被选中的订单号 String[] ORD_SEQ = (String[])context.get("ORD_SEQ"); //“品质设计结果确定界面”标记被选中的订单序号 String[] ID = (String[])context.get("ID"); //“品质设计结果确定界面”记录确定人的ID try { if("UIB015100_1".equals(XX[0]))//对象编制 { cstm = dao.getCallableStatement("UIB015100_01.CALLSTATEMENT"); cstm.setString(1, "M");//注意,序号从1开始 cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); PosRowSet prs = dao.find("UIB015100_01.INITSELECT"); context.put("OrdConfirmResult", prs); } else if("UIB015100_2".equals(XX[0]))//品质设计 { cstm = dao.getCallableStatement("UIB015100_02.CALLSTATEMENT"); cstm.setString(1, "M");//注意,序号从1开始 cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); PosRowSet prs = dao.find("UIB015100_01.SELECT"); context.put("OrdConfirmResult", prs); } else if("UIB015100_3".equals(XX[0]))//设计确定 { if(rowStuts != null) { int len = rowStuts.length; for(int i = 0; i < len; i++) { param = new PosParameter(); param.setWhereClauseParameter(0, ORD_NO[i]);//订单号 param.setWhereClauseParameter(1, ORD_SEQ[i]);//订单序号 dao.update("UIB015100_01.UPDATE", param); // 保存登陆信息 param = new PosParameter(); param.setWhereClauseParameter(0, ID[0]);//登录人ID param.setWhereClauseParameter(1, ORD_NO[i]);//订单号 param.setWhereClauseParameter(2, ORD_SEQ[i]);//订单序号 dao.update("UIB015100_02.UPDATE", param); } } cstm = dao.getCallableStatement("UIB015100_03.CALLSTATEMENT"); cstm.setString(1, "M");//注意,序号从1开始 cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); PosRowSet prs = dao.find("UIB015100_02.SELECT"); context.put("OrdConfirmResult", prs); } else if("UIB020050".equals(XX[0]))//替代钢号分析 { String[] BEFSTLGRD = (String[])context.get("BEFSTLGRD");//厂内钢号 String[] CHARGE_NO = (String[])context.get("CHARGE_NO");//炉次号 String[] LST_INGR_CD = (String[])context.get("LST_INGR_CD");//最后的工序加次数 cstm = dao.getCallableStatement("UIB020050_05.CALLSTATEMENT"); cstm.setString(1, BEFSTLGRD[0]); cstm.setString(2, CHARGE_NO[0]); cstm.setString(3, LST_INGR_CD[0]); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); cstm.registerOutParameter(5, java.sql.Types.VARCHAR); cstm.execute(); String yy = cstm.getString(4); String stl = cstm.getString(5); Map map = new HashMap(); map.put("AN_STL", stl); context.put("TiDaiResult", map);//返回可替代钢号 } else if("UIB030202_DCS".equals(XX[0]))//成分判定 { String[]CHARGE_NO = (String[])context.get("CHARGE_NO"); String[]CHEM_SEQ = (String[])context.get("CHEM_SEQ"); String[]REG_NM = (String[])context.get("REG_NM"); String[]XIUYUE = (String[])context.get("XIUYUE"); cstm = dao.getCallableStatement("UIB030202_01.CALLSTATEMENT"); cstm.setString(1, CHARGE_NO[0]);//注意,序号从1开始 cstm.setString(2, "JJ"); cstm.setString(3, CHEM_SEQ[0]); cstm.setString(4, XIUYUE[0]); cstm.setString(5, REG_NM[0]); cstm.registerOutParameter(6, java.sql.Types.VARCHAR); cstm.registerOutParameter(7, java.sql.Types.VARCHAR); cstm.execute(); } else if("UIB020133".equals(XX[0]))//材质判定,并进行了综合判定,窗口被 { cstm = dao.getCallableStatement("UIB020132Child.CALLSTATEMENT"); //材质判定人记录 // String[] rowStatus = (String[])context.get("rowStatus"); // String[] SMP_NO = (String[])context.get("SMP_NO"); // String[] SMP_CUT_LOC= (String[])context.get("SMP_CUT_LOC"); String[] REG_NM = (String[])context.get("REG_NM"); cstm.setString(1, "X");//该存储过程(NIB028050)中的输入无任何意义,没有做自动判定 cstm.setString(2, REG_NM[0]); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); cstm.execute(); // // if(rowStatus != null) // { // int len = rowStatus.length; // for(int i = 0; i < len; i++) // { // // cstm = dao.getCallableStatement("UIB020132Child_A.CALLSTATEMENT"); // cstm.setString(1, REG_NM[0]); // cstm.setString(2, SMP_NO[i]); // cstm.setString(3, SMP_CUT_LOC[i]); // cstm.registerOutParameter(4, java.sql.Types.VARCHAR); // cstm.execute(); // } // } } else if("UIB020160".equals(XX[0]))//不合格钢卷号手工材质判定时调用 { String[] manDcs = (String[])context.get("rowStatus1"); String[]SMP_NO = (String[])context.get("SMP_NO");//试样号 String[]SMP_CUT_LOC = (String[])context.get("SMP_CUT_LOC");//取样位置 if(manDcs != null) { int length = manDcs.length; for(int i = 0; i < length; i++) { cstm = dao.getCallableStatement("UIB020160_01.CALLSTATEMENT"); cstm.setString(1, SMP_NO[i]); cstm.setString(2, SMP_CUT_LOC[i]); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); cstm.execute(); } } } else if("UIB010052".equals(XX[0]))//厂内牌号信息发生修改,则发送到TBB02_L2INS_INGR { String[] rowStuts0 = (String[])context.get("rowStuts0");//对应于grid1 String[] rowStutss = (String[])context.get("rowStuts");//对应于grid2、3、4、5 String[] L2Flag = (String[])context.get("L2Flag");//发送给L2级系统 String[] FAC_STL_GRD = (String[])context.get("FAC_STL_GRD");//grid1变动时使用 String[] FACPARAM = (String[])context.get("FACPARAM");//grid2、3、4、5更新时候使用 cstm = dao.getCallableStatement("UIB010052_02.CALL"); cstm.setString(1, FAC_STL_GRD[0]); cstm.setString(2, L2Flag[0]);//i、u、d cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); cstm.execute(); /* if(rowStuts0 != null) { int len = rowStuts0.length; for(int i = 0; i < len; i++) { cstm = dao.getCallableStatement("UIB010050_01.CALLSTATEMENT"); cstm.setString(1, FAC_STL_GRD[i]); cstm.setString(2, rowStuts0[i]);//i、u、d cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); cstm.execute(); // System.out.println("##################### grid1 ######################### "+rowStuts0[i]); } } else if(rowStutss != null)//若grid1有变动则不再考虑grid2、3、4、5的变动情况 { cstm = dao.getCallableStatement("UIB010050_01.CALLSTATEMENT"); cstm.setString(1, FACPARAM[0]);//厂内牌号 cstm.setString(2, "u");//固定为u cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); // System.out.println("##################### grid2\3\4\5 ######################### u "); cstm.execute(); }*/ } else if("UIB020235".equals(XX[0]))//综合判定确定 { String[] rowStatus = (String[])context.get("rowStatus"); String[] COIL_NO = (String[])context.get("COIL_NO");//钢卷号 String[] V_REG_NM = (String[])context.get("REG_NM");//判定人 // System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ "+ V_REG_ID[0]); if(rowStatus != null) { int len = rowStatus.length; for (int i = 0; i< len; i++) { cstm = dao.getCallableStatement("UIB020235_01.CALL"); cstm.setString(1, COIL_NO[i]); cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); param = new PosParameter(); param.setWhereClauseParameter(0, V_REG_NM[0]);//判定人 param.setWhereClauseParameter(1, COIL_NO[i]); dao.update("UIB020235_01.UPDATE", param); // System.out.println("------------ UIB020235 --------------------->"+cstm.getString(2)); } } } else if("UIB020235_1".equals(XX[0])) { String[]CHARGENO = (String[])context.get("CHARGENO");//炉号 cstm = dao.getCallableStatement("UIB020235_02.CALL"); // System.out.println("##############################"+CHARGENO[0]); cstm.setString(1, CHARGENO[0]); cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.execute(); } else if("UIB020035".equals(XX[0]))//板坯成分判定 NIB020061 { String[] SLABNO = (String[])context.get("SLABNO");//板坯号 cstm = dao.getCallableStatement("UIB020035_01.CALLSTATEMENT"); cstm.setString(1, SLABNO[0]); cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); cstm.execute(); // System.out.println("------------- UIB020035-------------------->"+cstm.getString(3)); } else if("NIB020251".equals(XX[0]))//综合判定确定,第三方认证时使用 { cstm = dao.getCallableStatement("NIB020251.CALL"); cstm.setString(1, "E"); cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); } else if("UIB020230".equals(XX[0]))//取样钢卷变更 NIB020231 { String[] COIL = (String[])context.get("COIL");//钢卷号 cstm = dao.getCallableStatement("UIB020230_01.CALL");//NIB020231 cstm.setString(1, COIL[0]);//钢卷号 cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); } else if("UIB020236".equals(XX[0]))//取消判定 { String[]COIL_NO = (String[])context.get("COIL_NO");//流水号 String[]rowStatus = (String[])context.get("rowStatus"); String[]REG_NM = (String[])context.get("REG_NM"); String[]TOT_OVER = (String[])context.get("TOT_OVER"); // System.out.println("#######################"+REG_NM[0]); // String[] int len = rowStatus.length; for(int i =0; i < len; i++) { if("Y".equals(TOT_OVER[i])) { cstm = dao.getCallableStatement("UIB020236_01.CALL"); cstm.setString(1, COIL_NO[i]); cstm.setString(2, REG_NM[0]); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); } } } else if("UIB020172".equals(XX[0]))//复样手工判定 { String[] rowStatus1 = (String[])context.get("rowStatus2"); if(rowStatus1 != null) { cstm = dao.getCallableStatement("UIB020172_01.CALL"); int len = rowStatus1.length; String[]MATLQLTY_DEC_GRD = (String[])context.get("MATLQLTY_DEC_GRD"); String[]COIL_NO = (String[])context.get("COILNO"); String[]SMP_NO = (String[])context.get("SMPNO"); String[]REG_ID = (String[])context.get("REG_NM"); // for(int i = 0; i < len; i++) // { // cstm.setString(1, COIL_NO[i]); // cstm.setString(2, SMP_NO[i]); // cstm.setString(3, MATLQLTY_DEC_GRD[i]); // cstm.setString(4, "111"); // cstm.registerOutParameter(5, java.sql.Types.VARCHAR); // cstm.execute(); // } cstm.setString(1, COIL_NO[0]);//系统流水号 cstm.setString(2, SMP_NO[0]);//取样的卷号 cstm.setString(3, ""); //无意义 cstm.setString(4, REG_ID[0]); cstm.registerOutParameter(5, java.sql.Types.VARCHAR); cstm.execute(); } } else if("UIB030202".equals(XX[0]))//判断改判是否合格 { cstm = dao.getCallableStatement("UIB030202_04.CALLSTATEMENT"); String[]CHARGENO = (String[])context.get("CHARGENO");//炉号 String[]STLGRD = (String[])context.get("STLGRD");//牌号 String[]CHEMSEQ = (String[])context.get("CHEM_SEQ");//序号 cstm.setString(1, STLGRD[0]); cstm.setString(2, CHARGENO[0]); cstm.setString(3, CHEMSEQ[0]); cstm.registerOutParameter(4, java.sql.Types.VARCHAR); cstm.execute(); ArrayList al = new ArrayList(); String re = cstm.getString(4); al.add(re); context.put("AYY", al); } else if("UIB020250_01".equals(XX[0]))//改判后生成检验项目 { String[] COIL_NO = (String[])context.get("COIL_NO"); String[] status = (String[])context.get("status"); String[] CHK = (String[])context.get("CHK"); int len = status.length; cstm = dao.getCallableStatement("NIB020251_01.CALL"); for(int i = 0; i < len ; i++) { if("Y".equals(CHK[i])) { cstm.setString(1, COIL_NO[i]); cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.registerOutParameter(3, java.sql.Types.VARCHAR); cstm.execute(); } } } else if("UIB020250_02".equals(XX[0]))//发送指示 { cstm = dao.getCallableStatement("NIB020251_02.CALL"); cstm.registerOutParameter(1, java.sql.Types.VARCHAR); cstm.execute(); } else if("UIB020250_03".equals(XX[0]))//项目值替换 { String[]COIL_NO = (String[])context.get("COIL_NO"); String[]ORG_QLTY_CD = (String[])context.get("ORG_QLTY_CD"); String[]QLTY_CD = (String[])context.get("QLTY_CD"); cstm = dao.getCallableStatement("NIB020251_04.CALL"); cstm.setString(1, COIL_NO[0]); cstm.setString(2, QLTY_CD[0]); cstm.setString(3, ORG_QLTY_CD[0]); cstm.registerOutParameter(4 , java.sql.Types.VARCHAR); cstm.execute(); String[]SMP_NO = (String[])context.get("SMP_NO"); cstm = dao.getCallableStatement("NIB020251_03.CALL"); cstm.setString(1, SMP_NO[0]); cstm.execute(); } else if("UIB020237".equals(XX[0]))//不合格品判定 { String[] rowStatus = (String[])context.get("rowStatus"); String[] COIL_NO = (String[])context.get("COIL_NO"); if(rowStatus == null) return PosBizControlConstants.SUCCESS; int len = rowStatus.length; cstm = dao.getCallableStatement("UIB020237_01.CALL"); for(int i = 0; i < len ; i++) { cstm.setString(1, COIL_NO[i]); cstm.registerOutParameter(2, java.sql.Types.VARCHAR); cstm.execute(); } } else if("UIB020236_02".equals(XX[0])) { cstm = dao.getCallableStatement("UIB020236_02.CALL"); cstm.registerOutParameter(1, java.sql.Types.VARCHAR); cstm.execute(); } else if("UIB020221".equals(XX[0]))//炼钢综合判定 { String[]rowStatus = (String[])context.get("rowStatus"); String[]CHK = (String[])context.get("CHK"); String[]SLAB_NO = (String[])context.get("SLAB_NO"); String[]SLAB_INGR_DEC_GRD = (String[])context.get("SLAB_INGR_DEC_GRD"); String[]SLAB_INGR_DEC_GRD_EXT = (String[])context.get("SLAB_INGR_DEC_GRD_EXT"); String[]EXTSHAPE_GRD = (String[])context.get("EXTSHAPE_GRD"); String[]EXTSHAPE_GRD_EXT = (String[])context.get("EXTSHAPE_GRD_EXT"); String[]SLAB_TOT_DEC_GRD = (String[])context.get("SLAB_TOT_DEC_GRD"); String[]REG_NM = (String[])context.get("REG_NM"); String[]POPORD_YN = (String[])context.get("POPORD_YN");//是否解除合同 String[]SLAB_OUT_TP = (String[])context.get("SLAB_OUT_TP"); String[]a = (String[])context.get("NO_HOT_STEELNAME"); String[]b = (String[])context.get("NO_CRAFT_STEELNAME"); String[]c = (String[])context.get("NO_HOT_REASON");// Ƿ ͬ String[]d = (String[])context.get("NO_DIRECT_REASON"); String[]e = (String[])context.get("SLAB_DCS_DETAIL"); cstm = dao.getCallableStatement("UIB020221_01.CALL"); if(rowStatus != null) { int len = rowStatus.length; for(int i = 0 ; i < len; i++) { if("Y".equals(CHK[i])) { cstm.setString(1, SLAB_NO[i]); cstm.setString(2, SLAB_INGR_DEC_GRD[i]); cstm.setString(3, EXTSHAPE_GRD[i]); cstm.setString(4, SLAB_INGR_DEC_GRD_EXT[i]); cstm.setString(5, EXTSHAPE_GRD_EXT[i]); cstm.setString(6, SLAB_TOT_DEC_GRD[i]); cstm.setString(7, POPORD_YN[i]); cstm.setString(8, REG_NM[0]); cstm.setString(9, SLAB_OUT_TP[i]); cstm.setString(10, a[i]); cstm.setString(11, b[i]); cstm.setString(12, c[i]); cstm.setString(13, d[i]); cstm.setString(14, e[i]); cstm.registerOutParameter(15, java.sql.Types.VARCHAR); cstm.execute(); } } } } // cstm = dao.getCallableStatement("UIB020221_01.CALL"); // if(rowStatus != null) // { // int len = rowStatus.length; // for(int i = 0 ; i < len; i++) // { // if("Y".equals(CHK[i])) // { // cstm.setString(1, SLAB_NO[i]); // cstm.setString(2, SLAB_INGR_DEC_GRD[i]); // cstm.setString(3, EXTSHAPE_GRD[i]); // cstm.setString(4, SLAB_INGR_DEC_GRD_EXT[i]); // cstm.setString(5, EXTSHAPE_GRD_EXT[i]); // cstm.setString(6, SLAB_TOT_DEC_GRD[i]); // cstm.setString(7, POPORD_YN[i]); // cstm.setString(8, REG_NM[0]); // cstm.setString(9, SLAB_OUT_TP[i]); // cstm.registerOutParameter(10, java.sql.Types.VARCHAR); // cstm.execute(); // } // } // } else if("UIB010030".equals(XX[0]))//客户成分拷贝 { String[]CUST_CD = (String[])context.get("CUST_CD"); String[]PRDNM_CD = (String[])context.get("PRDNM_CD"); String[]SEQ = (String[])context.get("SEQ"); String[]PROD_LINE = (String[])context.get("PROD_LINE"); String[]NF_TP = (String[])context.get("NF_TP");//原 String[]COPY_TP = (String[])context.get("COPY_TP");//目标 String[]REG_NM = (String[])context.get("REG_NM"); cstm = dao.getCallableStatement("UIB010030_01.CALL"); cstm.setString(1, CUST_CD[0]+PRDNM_CD[0]+SEQ[0]+PROD_LINE[0]); cstm.setString(2, NF_TP[0]); cstm.setString(3, COPY_TP[0]); cstm.setString(4, REG_NM[0]); cstm.registerOutParameter(5, java.sql.Types.VARCHAR); cstm.execute(); } else if("UIB020230_SPM".equals(XX[0]))//平整分卷 { String[]COIL_NO = (String[])context.get("COIL_NO"); String[]SMP_TP = (String[])context.get("SMP_TP"); String[]REG_NM = (String[])context.get("REG_NM"); String[]ZZ = (String[])context.get("ZZ"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~"+ZZ[0]); Object obj = ZZ[0]; ArrayList al = (ArrayList)obj; // System.out.println("======================>>"+al.get(0)); // cstm = dao.getCallableStatement("UIB020230_02.CALL"); // cstm.setString(1, COIL_NO[0]); // cstm.setString(2, SMP_TP[0]); // cstm.setString(3, REG_NM[0]); // cstm.registerOutParameter(4, java.sql.Types.VARCHAR); // cstm.execute(); } }catch(Exception ex) { logger.logError(ex.getMessage(), ex); }finally { if (cstm != null) { try { cstm.close(); // cstm.getConnection().close(); } catch (SQLException e) { logger.logWarn(e.getMessage(), e); } } } return PosBizControlConstants.SUCCESS; } }