⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdscyhswdscblh.java

📁 以前做的一个j2ee的项目
💻 JAVA
📖 第 1 页 / 共 5 页
字号:

        String nsrnbm = "";
        try {
            List list = null;
            Hashtable map = null;

            WDSCyhsxxDAO yhsxx = new WDSCyhsxxDAO(), tempYhsxx = null;

            //此种方法是将取出所有信息然后处理一户式信息
            type = type.toLowerCase();

            if (type.equals("all")) {
                //将生成所有一户式文档屏蔽 //del by zch 2005-11-01
                //list = yhsxx.getYhsxxByAll();
            } else if (type.equals("list")) {
                //2005-11-15优化直接返回数据集
                //list = yhsxx.getYhsxxByList(begin, end);
                if (WDSCconstant.boolMultiThread) {
                    yhsxx.setM_mbbm(MBBM);
                    yhsxx.setM_swjg("%");
                    yhsxx.setM_wdsm("一户式文档");
                    yhsxx.setM_czybm("000000");
                    return yhsxx.getYhsxxByList(begin, end,
                                                this.CurrYearMonthDay);
                } else {
                    return yhsxx.getYhsxxByList(begin, end, null);
                }
            } else if (type.equals("single")) {
                HashMap nsrMap = yhsxx.nsrbm2Nsrnbm(nsrbm);
                nsrnbm = (String) nsrMap.get(WDSCconstant.NSRNBM);
                if (WDSCconstant.boolBatchProcess) {
                    yhsxx.setM_mbbm(MBBM);
                    yhsxx.setM_swjg("%");
                    yhsxx.setM_wdsm("一户式文档");
                    yhsxx.setM_czybm("000000");
                }
                list = yhsxx.getYhsxxBySingle(nsrnbm, this.CurrYearMonthDay);
            } else {
                throw new Exception("生成一户式文档中指定了未知的操作类型,操作类型为:" + type);
            }
            //long t_s = Calendar.getInstance().getTimeInMillis();
            return processYhsMsg(list);
        } catch (Exception e) {
            //e.printStackTrace();
            throw new Exception(e.getMessage());
        }
    }

    //将文档模板生成文件,然后读取字符流,返回一个字符串缓冲区
    //USED
    public StringBuffer outputWdMb2TempFile(WDSCwdmbDAO wdmb) throws
            FileNotFoundException, SQLException, Exception {
        //二进制流的一户式文档模板保存为 文件
        java.sql.Blob mbnr = null;
        //java.sql.Blob javaBlob = null;
        StringBuffer sBuffer = null;
        try {
            if (wdmb != null) {
                //System.out.println("**********************mbnr.length=" + String.valueOf(((java.sql.Blob)wdmb.getMB_NR()).length()));
                mbnr = (java.sql.Blob) wdmb.getMB_NR();
                //System.out.println("**********************mbnr.length=" + String.valueOf(mbnr.length()));
                /*//javaBlob = (java.sql.Blob)wdmb.getMB_NR();
                             if (javaBlob instanceof oracle.sql.BLOB){
                  mbnr = (oracle.sql.BLOB)wdmb.getMB_NR();
                  System.out.println("********************oracle.sql.BLOB");
                } else if(javaBlob instanceof weblogic.jdbc.vendor.oracle.OracleThinBlob){
                mbnr = (weblogic.jdbc.vendor.oracle.OracleThinBlob)wdmb.getMB_NR();
                  System.out.println("********************weblogic.jdbc.vendor.oracle.OracleThinBlob");
                             }
                             javaBlob.getBinaryStream();*/
               if (mbnr != null) {
                   StringWriter sw = new StringWriter();
                   BufferedInputStream in = new BufferedInputStream(mbnr.
                           getBinaryStream());
                   int c;
                   while ((c = in.read()) != -1) {
                       sw.write(c);
                   }

                   in.close();
                   sBuffer = sw.getBuffer();
                   sw.flush();
                   sw.close();
               }
               /*//old version below
               BufferedOutputStream out = new BufferedOutputStream(new
                     FileOutputStream(TempModelFileName));
               BufferedInputStream in = new BufferedInputStream(mbnr.getBinaryStream());
                             int c;
                             while ((c = in.read()) != -1) {
                 out.write(c);
                             }
                             in.close();
                             out.close();

                             //通过取 文件得到字符流进行处理,替换
               FileReader fReader = new FileReader(TempModelFileName);
               BufferedReader inReader = new BufferedReader(fReader);

                             char cData[] = new char[1024];
                             sBuffer = new StringBuffer();
                             while ((inReader.read(cData)) != -1) {
                 sBuffer.append(cData);
                             }

                             inReader.close();
                             fReader.close();
               */
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new TaxBaseSystemException(e.getMessage());
        }
        return sBuffer;
    }

    //得到当前时期的:年+月+日
    //USED
    private String getCurrNYR() throws Exception {
        try {
            CurrYearMonthDay = makeCurrNYR();
            CurrYearMonthDayHMS = makeCurrNYRSFM();
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception(e.getMessage());
        }

        return CurrYearMonthDay;
    }

    //return: FORMAT : YYYYMMDDhhmmss
    //USED
    public String makeCurrNYR() throws Exception {
        java.util.Calendar cal = java.util.Calendar.getInstance();
        cal.setTime(new Date());
        String year = null, month = null, day = null;

        try {
            cal.add(Calendar.DATE, -1);
            year = String.valueOf(cal.get(cal.YEAR));
            month = String.valueOf(cal.get(cal.MONTH) + 1);
            if (Integer.parseInt(month) <= 9) {
                month = "0" + month;
            }
            day = String.valueOf(cal.get(cal.DATE));
            if (Integer.parseInt(day) <= 9) {
                day = "0" + day;
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception(e.getMessage());
        }
        return year + month + day;
    }

    //年月日时分秒
    //return format YYYY-MM-DD HH-MI-SS
    public String makeCurrNYRSFM() throws Exception {
        java.util.Calendar cal = java.util.Calendar.getInstance();
        cal.setTime(new Date());
        String year = null, month = null, day = null, hour = "", minute = "",
                second = "";
        int h, m, s;
        try {
            year = String.valueOf(cal.get(cal.YEAR));
            month = String.valueOf(cal.get(cal.MONTH) + 1);
            if (Integer.parseInt(month) <= 9) {
                month = "0" + month;
            }
            day = String.valueOf(cal.get(cal.DATE));
            if (Integer.parseInt(day) <= 9) {
                day = "0" + day;
            }

            h = cal.get(cal.HOUR_OF_DAY);
            m = cal.get(cal.MINUTE);
            s = cal.get(cal.SECOND);
            hour = String.valueOf(h);
            minute = String.valueOf(m);
            second = String.valueOf(s);

            if (h <= 9) {
                hour = "0" + hour;
            }
            if (m <= 9) {
                minute = "0" + minute;
            }
            if (s <= 9) {
                second = "0" + second;
            }

        } catch (Exception e) {
            e.printStackTrace();
            throw new Exception(e.getMessage());
        }

        return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" +
                second;
    }

    //将buffer中的loop标记置换msg中的内容,不实现loop嵌套
    //return:size()>=2 ,first=StringBuffer, second=vvNewTempZb
    //public StringBuffer replaceLoopString(StringBuffer buffer, Vector vZb) throws
    public List replaceLoopStringByKey(String leftKey, String rightKey, StringBuffer buffer, Vector vZb) throws
            Exception {
        List list = new ArrayList();
        StringBuffer loopBuffer = new StringBuffer(),
                                  loopResultBuffer = new StringBuffer(),
                loopTempBuffer = null;

        Vector vvNewTempZb = new Vector();//存放求和结果构造成的指标
        if (vZb == null) {
            return null;
        }
        String loopString = "";
        Vector vCurrZb = null, vTemp = null;
        int loopLeftPos = 0, loopRightPos = 0, loop = 0, iCurrZb = 0;
        int iLenResult = 0;

        int lP = 0, ivTemp = 0;
        String repStr = "", zb = "";

        try {
            WDSCwdmbzbDAO wdzb = null, tempmbzb = null;//存放循环部分指标
            while ((loopLeftPos = buffer.indexOf(leftKey, loopLeftPos)) >= 0) {
                while ((loopRightPos = buffer.indexOf(rightKey, loopLeftPos)) >=
                                       0) {
                    loopString = buffer.toString().substring(loopLeftPos,
                            loopRightPos);
                    loopString = loopString.substring(leftKey.length(),
                            loopRightPos - loopLeftPos);

                    loopResultBuffer.delete(0, loopResultBuffer.length());
                    loopBuffer.delete(0, loopBuffer.length());
                    loopBuffer.append(loopString);
                    //System.out.println("getLoopZb(loopBuffer) begin");
                    //得到循环部分中的指标
                    vTemp = getLoopZb(loopBuffer);

                    //得到:1.最大循环数,即行数 2. 循环指标 3.系统指标(求和)
                    List listLoopZbMsg = getLoopZbMsg(vTemp, vZb);

                    Integer integer = (Integer)listLoopZbMsg.get(0);//注该函数不允许返回空,并且size()至少为3
                    loop = integer.intValue();
                    vTemp = (Vector)listLoopZbMsg.get(1);
                    ivTemp = vTemp.size();
                    vvNewTempZb.add((Vector)listLoopZbMsg.get(2));
                    //开始替换
                    loopTempBuffer = new StringBuffer();

                    for (int i = 0; i < loop; i++) {
                        loopTempBuffer.delete(0, loopTempBuffer.length());
                        loopTempBuffer.append(loopBuffer);

                        if (ivTemp <= 0) {
                            break;
                        }

                        for (int j = 0; j < ivTemp; j++) {
                            //modify by zch 2005-11-22
                            //增加对指标的求和(纵向)
                            //求和:在需要求和的指标前有sum:标记,文档指标应为{sum:xxx},其中xxx为指标
                            tempmbzb = (WDSCwdmbzbDAO)vTemp.get(j);
                            zb = tempmbzb.getZB_DM();
                            //System.out.println(tempmbzb.getOPER_KEY() + "**********" + zb);
                            //System.out.println(loopTempBuffer);
                            //查找指标,并更换
                            while ((lP = loopTempBuffer.indexOf(WDSCconstant.flagLeft + tempmbzb.getOPER_KEY() + zb +
                                    WDSCconstant.flagRight, lP)) >= 0) {
                                if (zb.indexOf(WDSCconstant.sysflag) >= 0) {
                                    //当指标为系统参数时进行替换
                                    //@todo 查找指标字段为 zb.substring(zb.indexOf(sysflag) + sysflag.length() + flagLeft.length())
                                    repStr = "当指标为系统参数时进行替换(loop中带有sys:标记)";
                                    loopTempBuffer.replace(lP,
                                            lP +
                                            (WDSCconstant.flagLeft.length() +
                                             WDSCconstant.flagRight.length()) +
                                            zb.length(), repStr);

                                    //处理完毕后,置换下一个指标
                                    lP = lP + repStr.length();
                                    lP++;
                                    if (lP > loopTempBuffer.length()) {
                                        break;
                                    }
                                } else {
                                    vCurrZb = tempmbzb.getZB_NR();
                                    if (vCurrZb != null) {
                                        if (vCurrZb.size() > i) {
                                            repStr = (String) vCurrZb.get(i);
                                            if (repStr == null) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -