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

📄 wdscyhswdscblh.java

📁 以前做的一个j2ee的项目
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                                                repStr = "&nbsp";
                                            }
                                            loopTempBuffer.replace(lP,
                                                    lP +
                                                    (WDSCconstant.flagLeft.
                                                    length() +
                                                    tempmbzb.getOPER_KEY().
                                                    length() +
                                                    WDSCconstant.flagRight.
                                                    length()) +
                                                    zb.length(), repStr);
                                        } else {
                                            repStr = "&nbsp";
                                            loopTempBuffer.replace(lP,
                                                    lP +
                                                    (WDSCconstant.flagLeft.
                                                    length() +
                                                    tempmbzb.getOPER_KEY().
                                                    length() +
                                                    WDSCconstant.flagRight.
                                                    length()) +
                                                    zb.length(), repStr);
                                        }
                                    } else {
                                        repStr = "&nbsp";
                                            loopTempBuffer.replace(lP,
                                                    lP +
                                                    (WDSCconstant.flagLeft.
                                                    length() +
                                                    tempmbzb.getOPER_KEY().
                                                    length() +
                                                    WDSCconstant.flagRight.
                                                    length()) +
                                                    zb.length(), repStr);

                                    }
                                    lP = lP + repStr.length();

                                    lP++;
                                    if (lP > loopTempBuffer.length()) {
                                        break;
                                    }
                                } //end  elseif (zb.indexOf...
                            } //end while
                            lP = 0;
                        } //end if vTemp
                        loopResultBuffer.append(loopTempBuffer);
                    } //end loop
                    iLenResult = loopResultBuffer.length();
                    break;
                }

                buffer = buffer.replace(loopLeftPos,
                                        loopRightPos + rightKey.length(),
                                        loopResultBuffer.toString());

                loopLeftPos += iLenResult;
                loopLeftPos++;
                loopRightPos = loopLeftPos;
                if (loopLeftPos > buffer.length()) {
                    break;
                }
            }
        } catch (Exception e) {
            String err = e.getMessage();
            System.out.println("replaceLoopStringByKey()=" + err);
            if (err != null) {
                if (err.length() != 11) {
                    err = "YCWDSC21305";
                } else {
                    if (err.indexOf("YCWDSC2") == -1) {
                        err = "YCWDSC21305";
                    }
                }
            } else {
                err = "YCWDSC21305";
            }
            throw new Exception(err); //替换指标失败e.getMessage());
        }
        list.add(buffer);
        list.add(vvNewTempZb);
        return list;
    }

/*
    //将buffer中的loop标记置换msg中的内容,不实现loop嵌套
    //return:size()>=2 ,first=StringBuffer, second=vvNewTempZb
    //public StringBuffer replaceLoopString(StringBuffer buffer, Vector vZb) throws
    public List replaceLoopString(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(WDSCconstant.loopLeft, loopLeftPos)) >= 0) {
                while ((loopRightPos = buffer.indexOf(WDSCconstant.loopRight, loopLeftPos)) >=
                                       0) {
                    loopString = buffer.toString().substring(loopLeftPos,
                            loopRightPos);
                    loopString = loopString.substring(WDSCconstant.loopLeft.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();


                            //查找指标,并更换
                            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) {
                                                repStr = "&nbsp";
                                            }
                                            loopTempBuffer.replace(lP,
                                                    lP +
                                                    (WDSCconstant.flagLeft.
                                                    length() +
                                                    tempmbzb.getOPER_KEY().
                                                    length() +
                                                    WDSCconstant.flagRight.
                                                    length()) +
                                                    zb.length(), repStr);
                                        } else {
                                            repStr = "&nbsp";
                                            loopTempBuffer.replace(lP,
                                                    lP +
                                                    (WDSCconstant.flagLeft.
                                                    length() +
                                                    tempmbzb.getOPER_KEY().
                                                    length() +
                                                    WDSCconstant.flagRight.
                                                    length()) +
                                                    zb.length(), repStr);
                                        }
                                    } else {
                                        repStr = "&nbsp";
                                            loopTempBuffer.replace(lP,
                                                    lP +
                                                    (WDSCconstant.flagLeft.
                                                    length() +
                                                    tempmbzb.getOPER_KEY().
                                                    length() +
                                                    WDSCconstant.flagRight.
                                                    length()) +
                                                    zb.length(), repStr);

                                    }
                                    lP = lP + repStr.length();

                                    lP++;
                                    if (lP > loopTempBuffer.length()) {
                                        break;
                                    }
                                } //end  elseif (zb.indexOf...
                            } //end while

                        } //end if vTemp
                        loopResultBuffer.append(loopTempBuffer);
                    } //end loop
                    iLenResult = loopResultBuffer.length();
                    break;
                }

                buffer = buffer.replace(loopLeftPos,
                                        loopRightPos + WDSCconstant.loopRight.length(),
                                        loopResultBuffer.toString());

                loopLeftPos += iLenResult;
                loopLeftPos++;
                loopRightPos = loopLeftPos;
                if (loopLeftPos > buffer.length()) {
                    break;
                }
            }
        } catch (Exception e) {
            String err = e.getMessage();
            if (err != null) {
                if (err.length() != 11) {
                    err = "YCWDSC21305";
                } else {
                    if (err.indexOf("YCWDSC2") == -1) {
                        err = "YCWDSC21305";
                    }
                }
            } else {
                err = "YCWDSC21305";
            }
            throw new Exception(err); //替换指标失败e.getMessage());
        }
        list.add(buffer);
        list.add(vvNewTempZb);
        return list;
    }
*/

    //vTemp:循环部分的指标
    //vZbMsg:整个指标信息
    //返回:List, 其中:list第一个存放最大循环次数,第二个存放循环部分指标数据, 第三个存放所有指标信息
    public List getLoopZbMsg(Vector vTemp, Vector vZbMsg) throws Exception {
        int loop = 0, ii=0;
        List list = new ArrayList();
        WDSCwdmbzbDAO wdzb = null, tempWdzb = null, newWdzb = null;
        String zb = "", zbRes = "";
        Vector vCurrZb = null, vLoopZb = new Vector(), vNewZbMsg = new Vector(), vT = null;
        int iZb = 0, iTemp = 0;
        try {
            iTemp = vTemp.size();
            for (int i = 0; i < iTemp; i++) {
                tempWdzb = (WDSCwdmbzbDAO)vTemp.get(i);
                zb = tempWdzb.getZB_DM();
                iZb = vZbMsg.size();
                for (int z = 0; z < iZb; z++) {
                    wdzb = (WDSCwdmbzbDAO) vZbMsg.get(z);
                    if (wdzb.getZB_DM().equals(zb)) {
                        vCurrZb = (Vector) wdzb.getZB_NR();

                        double sum = 0.0, tempSum = 0.00;
                        StringBuffer sb = new StringBuffer("");
                        if (vCurrZb != null) {
                            ii = vCurrZb.size();
                            loop = java.lang.Math.max(ii, loop);
                            if (tempWdzb.getOPER_TYPE().equals(constant.
                                    OPER_TYPE_SUM)) {

                                newWdzb = new WDSCwdmbzbDAO();
                                vT = new Vector();

⌨️ 快捷键说明

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