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

📄 wdscyhswdscblh.java

📁 以前做的一个j2ee的项目
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
//Source file: D:\\OLLA\\DS_WORK\\gzds-uml\\gov\\gdlt\\taxcore\\taxblh\\ssgly\\wdsc\\yhswdsc\\WDSCyhswdscBLH.java

package gov.gdlt.ssgly.taxcore.taxblh.wdsc.yhswdsc;

import java.io.*;
import java.math.*;
import java.sql.*;
import java.text.*;
import java.util.*;
import java.util.Date;

import com.ibatis.common.resources.*;
import com.ibatis.sqlmap.client.*;
import gov.gdlt.ssgly.taxcore.comm.blh.*;
import gov.gdlt.ssgly.taxcore.comm.event.*;
import gov.gdlt.ssgly.taxcore.comm.exception.*;
import gov.gdlt.ssgly.taxcore.comm.log.*;
import gov.gdlt.ssgly.taxcore.comm.servicelocator.*;
import gov.gdlt.ssgly.taxcore.comm.util.*;
import gov.gdlt.ssgly.taxcore.taxblh.wdsc.*;
import gov.gdlt.ssgly.taxcore.taxblh.wdsc.zipwdsc.*;
import gov.gdlt.ssgly.taxcore.taxdao.wdsc.*;
import gov.gdlt.ssgly.taxcore.taxevent.htdl.*;
import gov.gdlt.ssgly.taxcore.taxevent.wdsc.*;
import oracle.sql.*;


/**
 * <p>Title: </p>
 *
 * <p>Description: 广东地税税收管理员工作平台</p>
 *
 * <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
 *
 * <p>Company: 广州地税</p>
 * 一户式信息
 * @author 张承华
 * @version 1.0
 */



/**
 * 一户式文档生成控制类
 */
public class WDSCyhswdscBLH extends BaseBizLogicHandler {

    private int SKIP = 1000; //一户式文档生成成批取数的频度
    private String MBBM = "0001"; //模板编码
    private int m_begin = -1, m_end = -1;//生成一户式文档时取数范围
    private WDSCconstant constant = null;
    private String CurrYearMonthDay = ""; //当前年月日
    private String CurrYearMonthDayHMS = ""; //当前年月日时分秒


    LogWritter log = new LogWritter();

    public WDSCyhswdscBLH() throws Exception {
        constant = new WDSCconstant();
    }


    //USED
    //参数说明:
    //type:分为single, list两类
    //swjg:模板的税务机关
    //nsrbm:一户式文档对应的纳税人编码(非内部码),只有当type=single时有效
    //skip:成批生成一户式文档资料时的取数频度,默认1000,只有当type=list时有效
    public String makeYhsWd(String type, String swjg, String nsrbm, int skip) throws
            SQLException, FileNotFoundException,
            Exception {
        try {
            if (skip > 0) {
                SKIP = skip;
            }
            return makeYhsWd(type, swjg, nsrbm, MBBM);
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        }
    }

    //USED
    //参数说明:
    //type:分为single, list两类
    //swjg:模板的税务机关
    //nsrbm:一户式文档对应的纳税人编码(非内部码),只有当type=single时有效
    //skip:成批生成一户式文档资料时的取数频度,默认1000,只有当type=list时有效
    //mbbm:模板编码,指定的模板编码,默认为0001
    public String makeYhsWd(String type, String swjg, String nsrbm, int skip,
                            String mbbm) throws SQLException,
            FileNotFoundException,
            Exception {
        try {
            if (skip > 0) {
                SKIP = skip;
            }
            if (!mbbm.equals("")) {
                MBBM = mbbm;
            }
            return makeYhsWd(type, swjg, nsrbm, MBBM);
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        }
    }

    //USED
    public String makeYhsWd(String type, String swjg, String nsrbm) throws
            SQLException, FileNotFoundException,
            Exception {
        try {
            return makeYhsWd(type, swjg, nsrbm, MBBM);
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        }
    }

    //参数说明:
    //type:生成类型:all, list, single
    //swjg:税务机关
    //nsrbm:纳税人编码\u2014\u2014在type 为 single时有效
    //mbbm:模板编码
    //mblb:模板类别
    //USED
    public String makeYhsWd(String type, String swjg, String nsrbm, String mbbm) throws
            SQLException, FileNotFoundException,
            Exception {

        String yhsWdName = "", nsrnbm = "", mblb = "", tempStr = "", wdNr = "";
        StringBuffer sBuffer = null, sInfo = new StringBuffer();
        Connection conn = null;
        int totalNsr = 0, iLen = 0;

        WDSCwdDAO wd = new WDSCwdDAO();
        WDSCwdmbDAO wdmb = new WDSCwdmbDAO();
        WDSCwdmbzbDAO mbzb = null;

        try {
            //得到一户式信息
            if (mbbm == null || mbbm.equals("")) {
                mbbm = "";
            }
            if (swjg == null || swjg.equals("")) {
                swjg = "%";
            }

            long t_begin = 0, t_run = 0, t_end = 0, t_total = 0;
            //更新当前的年月日字符串,以便产生当前的一户式文档名称
            getCurrNYR();

            //取得文档模板并将其存入临时文件中
            //ADD BY ZCH 2005-10-26 添加模板类别,故模板有多个
            t_run = Calendar.getInstance().getTimeInMillis();
            Vector vWdmb = wdmb.getWdMbByBm(mbbm, swjg); //取得文档模板
            if (vWdmb == null || vWdmb.size() < 1) {
                tempStr = "没有提取到文档模板!文档模板编码:" + mbbm + ", 税务机关" + swjg;
                log.sysError(tempStr);
                throw new Exception(tempStr);
            }
            HashMap hWdmb = new HashMap();
            HashMap hBufferMap = new HashMap();
            for (int i = 0; i < vWdmb.size(); i++) {
                WDSCwdmbDAO wdmbTemp = (WDSCwdmbDAO) vWdmb.get(i);
                hWdmb.put(wdmbTemp.getMB_LB(), wdmbTemp);

                sBuffer = outputWdMb2TempFile(wdmbTemp); //将模板存入到临时内存
                sBuffer = new StringBuffer(StringUtils.isoToGBK(sBuffer.
                        toString()));
                hBufferMap.put(wdmbTemp.getMB_LB(), sBuffer);
            }
            t_end = Calendar.getInstance().getTimeInMillis();
            tempStr = "文档模板提取完毕,模板数:" + String.valueOf(vWdmb.size()) +
                      ",耗时:" + String.valueOf(t_end - t_run);
            log.sysInfo(tempStr);
            System.out.println(tempStr);

            //定义对应模板的指标信息
            Vector vZbMsg = null, vNewZbMsg = null, vt = null;
            Hashtable hashTable = null;

            //处理一户式用户的指标信息到文档
            tempStr = "开始生成一户式文档....";
            log.sysInfo(tempStr);

            int begin = 0, end = 0;
            Vector vYhsMsg = null, vTemp = null;

            conn = JDBCLocator.getInstance().getJDBCConnection();
            wd.setM_conn(conn);
            wd.setM_strWdscsj(this.CurrYearMonthDayHMS);
            wd.setM_swjg("%");


            begin = 1;
            if (m_begin > 0) begin = m_begin;

            end = begin + SKIP - 1;
            if (m_end >= m_begin) { // && (m_end < end)) {
                if (m_end <= end) {
                    end = m_end;
                } else {
                    end = end;
                }
            } else {
                if (m_end <= 0) {
                    end = end;
                } else {
                    return "参入参数有误!(end < begin)";
                }
            }
            t_begin = Calendar.getInstance().getTimeInMillis();
            while ((vYhsMsg = getYhsMsg(type, nsrbm, begin, end)).size() > 0) {
                //begin = begin + SKIP;
                begin = end + 1;
                end = begin + SKIP - 1;
                if (m_end > 0) {
                    if (end < m_end) { // && (m_end < end)) {
                        end = end;
                    } else {
                        end = m_end;
                    }
                }
                iLen = vYhsMsg.size();
                for (int i = 0; i < iLen; i++) {
                    totalNsr++;
                    try {
                        hashTable = (Hashtable) vYhsMsg.get(i);
                        if (hashTable.containsKey(WDSCconstant.NSRNBM)) {
                            nsrnbm = (String) hashTable.get(WDSCconstant.NSRNBM);
                        } else {
                            continue;
                        }

                        //得到该一户式文档的文档类别 user_wdlx
                        if (hashTable.containsKey(WDSCconstant.USER_WDLX.toUpperCase())) {
                            vTemp = (Vector) hashTable.get(WDSCconstant.USER_WDLX.
                                    toUpperCase());
                            if (vTemp != null) {
                                mblb = (String) vTemp.get(0);
                            } else {
                                mblb = "1";
                            }
                        } else if (hashTable.containsKey(WDSCconstant.USER_WDLX.toLowerCase())) {
                            vTemp = (Vector) hashTable.get(WDSCconstant.USER_WDLX.
                                    toLowerCase());
                            if (vTemp != null) {
                                mblb = (String) vTemp.get(0);
                            } else {
                                mblb = "1";
                            }
                        } else {
                            mblb = "1";
                        }
                        mblb = ((mblb == null) ? "" : mblb.trim());

                        wdmb = new WDSCwdmbDAO();
                        wdmb.setMB_DM(mbbm);
                        wdmb.setMB_LB(mblb);
                        wdmb.setMB_SWJG(swjg);
                        wdmb.setMB_NR_BUFFER((StringBuffer) hBufferMap.get(mblb));
                        vZbMsg = (Vector) ((WDSCwdmbDAO) hWdmb.get(mblb)).
                                 getMB_ZB_MSG();

                        //将指标值与指标对应,并放到模板中
                        vNewZbMsg = new Vector();
                        int ivZbMsg = vZbMsg.size();
                        for (int j = 0; j < ivZbMsg; j++) {
                            mbzb = (WDSCwdmbzbDAO) vZbMsg.get(j);
                            if (hashTable.containsKey(mbzb.getZB_DM())) {
                                vt = (Vector) hashTable.get(mbzb.
                                        getZB_DM());
                                if (vt == null) {
                                    mbzb.setZB_NR(new Vector());
                                } else {
                                    mbzb.setZB_NR(vt);
                                }
                            } else {
                                //否则会把上一个纳税人的指标写下
                                mbzb.setZB_NR(new Vector());
                            }
                            vNewZbMsg.add(mbzb);
                        }
                        if ((vNewZbMsg == null) || (vNewZbMsg.size() <= 0)) {
                            log.sysInfo("纳税人内部码:" + nsrnbm + " 没有指标信息!");
                            continue; //如果没有指标信息,则不生成文档
                        }
                        wdmb.setMB_ZB_MSG(vNewZbMsg);
                        //wdmb中包括一个纳税人的指标信息,文档模板的模板内容
                        //生成文档到临时文件
                        try {
                            wdNr = StringUtils.gbkToISO(makeWd(wdmb));

⌨️ 快捷键说明

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