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

📄 htdlglblh.java

📁 以前做的一个j2ee的项目
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package gov.gdlt.ssgly.taxcore.taxblh.htdl;

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.LogWritter;
import gov.gdlt.ssgly.taxcore.comm.config.ApplicationContext;
import gov.gdlt.ssgly.taxcore.taxevent.htdl.*;
//import gov.gdlt.ssgly.taxcore.taxblh.htdl.*;
import gov.gdlt.ssgly.taxcore.taxdao.htdl.*;

import java.util.ArrayList;
import java.sql.*;
import javax.servlet.ServletContext.*;
import java.util.Calendar;
import java.util.List;
import java.util.Timer;


/**
 *
 * <p>Title: </p>
 *
 * <p>Description: 广东地税税收管理员工作平台</p>
 *
 * <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
 *
 * <p>Company: 广州地税</p>
 *
 * @author 肖雪莲
 * @version 1.0
 */

public class HTDLglBLH extends BaseBizLogicHandler {

//    public static final String HTDL_SXLX_PROC = "0";
//    public static final String HTDL_SXLX_JAVA = "1";

    static final int HTDL_RWZT_SCHEDULING = 0; //任务状态,调度中
    static final int HTDL_RWZT_PAUSE = 1; //任务状态,停止调度

    public HTDLglBLH() {
    }

    //////////////////    抽象方法实现    /////////////////////
    /**
     * validateData 实现具体的业务数据规则校验
     * req : RequestEvent,   客户端请求数具
     * conn : Connection   数据库连结
     * 返回:boolean   true:数据校验成功   false:数据校验不成功
     */
    protected ResponseEvent validateData(RequestEvent req) throws
            Exception {
        return null;
    }

    /**
     * 此方法实现了业务逻辑的处理过程,处理具体业务逻辑的过程中,
     * 在出现异常的时侯, 必须向上抛出异常,异常的处理在
     * BaseBizLogicHandler实现异常的处理,事务处理和日志的记录;具体要的异常的定义根据
     * 具体的业务来确定。返回的参数的对象类型必须是ResponseEvent类型的对象实例,
     * 如果捕捉到业务上的异常,并对具体的业务的异常进行处理,如根据TaxBaseBizException
     * 以及它的扩展类的异常,写应用日志信息,异常捕获后,相应地要向上抛以下几种异常
     *  1.TaxBaseSystemException
     *  2.TaxBaseBizException
     *  3.Throwable
     *  输入参数:
     *  req : RequestEvent,  客户端请求的数据对象实例
     *  conn : Connection   数据库的连接句柄
     *  返回:ResponseEvent  返回给客户端的数据对象实例
     */
    protected ResponseEvent performTask(RequestEvent req) throws
            TaxBaseSystemException, TaxBaseBizException {

        String dealMethod = req.getDealMethod();
        ResponseEvent res = new ResponseEvent();

        //for test
//       LogWritter.testDebug("dealMethod: "+ dealMethod);
        //end for test

        HTDLglddrwReqEvent reqEvent = (HTDLglddrwReqEvent) req;
        try {
            if ("getZxqkLog".equals(dealMethod)) { //查看任务的执行日志
                /*在此调用具体的查看定时任务执行情况的方法,并把返回结果赋值给res*/
                res = this.getZxqkLog(reqEvent);
            } else if ("addDdrw".equals(dealMethod)) { //添加新的调度任务
                res = this.addDdrw(reqEvent);
            } else if ("delDdrw".equals(dealMethod)) { //删除一项已有的调度任务
                res = this.delDdrw(reqEvent);
            } else if ("getYbsrwlb".equals(dealMethod)) { //查看已部署任务列表
                res = this.getYbsrwlb(reqEvent);
            } else if ("addZxlog".equals(dealMethod)) { //插入任务执行情况日志
                res = this.addZxlog(reqEvent);
            } else if ("getDsrwlb".equals(dealMethod)) { //得到任务代码表
                res = this.getDsrwlb(reqEvent);
            } else if ("modRwzt".equals(dealMethod)) { //修改任务状态 调度中<-->停止调度
                res = this.modRwzt(reqEvent);
            } else if ("getRwlb&Ybsrwlb".equals(dealMethod)) { //一次获得任务代码表和已部署任务列表
                res = this.getRwlbandYbsrw(reqEvent);
            } else if ("startSchedule".equals(dealMethod)) { //启动调度管理进程,实现自动定时调度
                res = this.startSchedule(reqEvent);
            } else if ("stopSchedule".equals(dealMethod)) { //停止调度管理进程
                res = this.stopSchedule(reqEvent);
            } else if ("getZxlogFuzzy".equals(dealMethod)) { //用模糊查询得到执行日志
                res = this.getZxlogFuzzy(reqEvent);
            } else if ("getAllDtrw".equals(dealMethod)) { //得到当天任务列表中的所有任务
                res = this.getAllDtrw(reqEvent);
            } else if ("createDtrw".equals(dealMethod)) { //生成当天任务列表
                res = this.createDtrw(reqEvent);
            } else if ("executeDtrw".equals(dealMethod)) { //执行当天任务列表中的内容
                res = this.executeDtrw(reqEvent);
            } else if ("deleteDtrw".equals(dealMethod)) { //删除当天任务列表中指定的任务
                res = this.deleteDtrw(reqEvent);
            } else if ("countDtrwbyZt".equals(dealMethod)) { //计算当天任务列表中指定状态的记录数
                res = this.countDtrwbyZt(reqEvent);
            } else if ("modRwCs".equals(dealMethod)) { //修改指定任务的参数值
                res = this.modRwCs(reqEvent);
            } else if ("executeRw".equals(dealMethod)) { //用传入参数执行指定的任务
                res = this.executeRw(reqEvent);
            } else if ("editDdrw".equals(dealMethod)) { //修改指定的任务的属性
                res = this.editDdrw(reqEvent);
            } else if ("resetRwZt".equals(dealMethod)) { //重置指定任务的状态为空闲中
                res = this.resetRwZt(reqEvent);
            } else {
                TaxBaseSystemException e = new TaxBaseSystemException(
                        "YCHTDL02304"); //在HTDLglBLH中没有找到匹配的dealMethod
                LogWritter.sysError("YCHTDL02304:在HTDLglBLH中没有找到匹配的dealMethod");
                throw e;
            }
        } catch (TaxBaseSystemException ex) {
            LogWritter.sysError(ex.getMessage());
            throw ex;
        }
        return res;
    }

    /**
     * 具体实现查看定时任务执行情况的方法。根据reqEvent传进来的参数,查找T_HTDL_DSRWZXLOG表
     * 得到结果
     */
    private ResponseEvent getZxqkLog(HTDLglddrwReqEvent reqEvent) throws
            TaxBaseSystemException {

        // 与DAO交互,得到定时任务执行情况列表的VO
        HTDLzxlogDAO zxlogDAO = new HTDLzxlogDAO();
//        LogWritter.sysDebug("HTDL,------" + sessionID +
//                            "开始查询任务执行情况日志.....------");
        HTDLglddrwResEvent resEvent = new HTDLglddrwResEvent();
        try {
            ArrayList zxlogVOList = (ArrayList) zxlogDAO.selectAllZxlog(
                    reqEvent.
                    getHtdlCxzxqkVO());
            resEvent.setZxqkVOList(zxlogVOList);
            resEvent.setRepCode("0");
        } catch (TaxBaseSystemException e) {
            resEvent.setRepCode("-1");
            LogWritter.sysError(e.getMessage());
            throw e;
        } catch (Exception e) {
            resEvent.setRepCode("YCHTDL02301");
            LogWritter.sysError("YCHTDL02301:BLH中查看任务执行日志时出现异常!" + e.getMessage());
            throw new TaxBaseSystemException("YCHTDL02301"); //mod encode
        }
//        LogWritter.sysDebug("HTDL,------完成查询任务执行情况日志,共有记录" + zxlogVOList.size() +
//                            "条。------");

        return resEvent;
    }

    //添加新的调度任务
    private ResponseEvent addDdrw(HTDLglddrwReqEvent reqEvent) throws
            TaxBaseSystemException {

//        LogWritter.sysDebug("HTDL,------" + sessionID +
//                            "加入一项新的调度任务开始......------");
        HTDLybsdsrwVO ybsdsrwVO = reqEvent.getHtdlYbsdsrwVO(); //要插入的任务的相关参数
//        LogWritter.sysDebug("HTDL,新调度任务的内容: " + ybsdsrwVO);
        //把参数设置到对应的DAO中
        HTDLybsdsrwDAO ybsdsrwDAO = new HTDLybsdsrwDAO();
        //任务序号由sequence产生
        ybsdsrwDAO.setRw_mc(ybsdsrwVO.getRw_mc()); //任务名称
        ybsdsrwDAO.setBlh_mc(ybsdsrwVO.getBlh_mc()); //业务逻辑名称
        ybsdsrwDAO.setDq_zt(ybsdsrwVO.getDq_zt()); //当前的状态
        //任务部署时间取数据库系统时间,任务停止时间为空
        ybsdsrwDAO.setZxpl(ybsdsrwVO.getZxpl()); //执行的频率
        ybsdsrwDAO.setZlsj(ybsdsrwVO.getZlsj()); //增量时间
        ybsdsrwDAO.setZxyxj(ybsdsrwVO.getZxyxj()); //执行优先级
        ybsdsrwDAO.setLrry_dm(ybsdsrwVO.getLrry_dm()); //录入人员代码
        ybsdsrwDAO.setZb(ybsdsrwVO.getZb()); //所属组别

        //参数, added by xxl 2005-9-19
        ybsdsrwDAO.setCsl(ybsdsrwVO.getCsl());

        HTDLglddrwResEvent resEvent = new HTDLglddrwResEvent();

        //调用DAO提供的方法操作数据库,插入记录
        try {
            if (ybsdsrwDAO.saveDsrw()) {
                resEvent.setRepCode("0");
            } else {
                resEvent.setRepCode("YCHTDL02302");
                LogWritter.sysError("YCHTDL02302:插入新任务操作失败!");
                throw new TaxBaseSystemException("YCHTDL02302:插入新任务操作失败!"); //编码mod
            }
        } catch (TaxBaseSystemException e) {
            resEvent.setRepCode("-1");
            LogWritter.sysError(e.getMessage());
            //需要统一编码 mod
            throw new TaxBaseSystemException(e.getMessage());
        }
//        LogWritter.sysDebug("HTDL,------结束新调度任务的插入!-------");
        return resEvent;
    }

    //删除指定的调度任务记录,
    private ResponseEvent delDdrw(HTDLglddrwReqEvent reqEvent) throws
            TaxBaseSystemException {

//        LogWritter.sysDebug("HTDL,-----" + sessionID + "删除任务开始.....------");
        //把参数设置到对应的DAO中

        ArrayList listRwxh = reqEvent.getListRwxh();
        StringBuffer rwxh = new StringBuffer();
        for (int i = 0; i < listRwxh.size(); i++) {
            rwxh.append("'");
            rwxh.append(listRwxh.get(i));
            rwxh.append("'");
            if (i != listRwxh.size() - 1) {
                rwxh.append(",");
            }
        }

//        LogWritter.sysDebug("HTDL,----要删除的任务序号列表:" + listRwxh);
        HTDLglddrwResEvent resEvent = new HTDLglddrwResEvent();
        HTDLybsdsrwDAO ybsdsrwDAO = new HTDLybsdsrwDAO();
        try {
            int account = ybsdsrwDAO.deleteYbsrwBatch(new String(rwxh));
            if (account != listRwxh.size()) {
                if (account == ApplicationContext.RET_FAIL) {
                    resEvent.setRepCode("YCHTDL02302");
                    resEvent.setRetMsg("YCHTDL02302:删除指定的已部署任务失败!"); //需要统一编码 mod
                    LogWritter.sysError("YCHTDL02302:删除指定的已部署任务失败!!");
                    throw new TaxBaseSystemException(
                            "YCHTDL02302");
                } else {
                    resEvent.setRepCode("-1");
                    resEvent.setRetMsg("部分记录被删除:" + account); //需要统一编码 mod
                }
            } else { //全部删除成功
                resEvent.setRepCode("0");
                resEvent.setRetMsg("成功删除" + account + "条记录!");
            }
        } catch (TaxBaseSystemException ex) {
            resEvent.setRepCode("-1");
            LogWritter.sysError(ex.getMessage());
            throw ex;
        }

//        LogWritter.sysDebug("HTDL,------" + sessionID + "完成批量删除任务状态,操作结果: " +
//                            resEvent.getRepCode());
        return resEvent;
    }

//删除当天任务列表中指定的任务List
    private ResponseEvent deleteDtrw(HTDLglddrwReqEvent reqEvent) throws
            TaxBaseSystemException {

//        LogWritter.sysDebug("HTDL删除任务开始.....------");
        //把参数设置到对应的DAO中

        ArrayList listRwxh = reqEvent.getListRwxh();
//        LogWritter.sysDebug("HTDL,----要删除的任务序号列表:" + listRwxh);
        HTDLglddrwResEvent resEvent = new HTDLglddrwResEvent();
        HTDLdtrwlbDAO dtrwDAO = new HTDLdtrwlbDAO();
        try {
            int account = dtrwDAO.deleteDtrwBatch(listRwxh);
            if (account != listRwxh.size()) {
                if (account == ApplicationContext.RET_FAIL) {
                    resEvent.setRepCode("YCHTDL02303");
                    resEvent.setRetMsg("YCHTDL02303:删除指定的当天任务失败!"); //需要统一编码 mod
                    LogWritter.sysError("YCHTDL02303:删除指定的当天任务失败!!");
                    throw new TaxBaseSystemException("YCHTDL02303");
                } else {
                    resEvent.setRepCode("-1");
                    resEvent.setRetMsg("部分记录被删除:" + account); //需要统一编码 mod
                }
            } else { //全部删除成功
                resEvent.setRepCode("0");
                resEvent.setRetMsg("成功删除" + account + "条记录!");
            }
        } catch (TaxBaseSystemException ex) {
            resEvent.setRepCode("-1");
            LogWritter.sysError(ex.getMessage());
            //需要统一编码 mod
            throw ex;
        }

//        LogWritter.sysDebug("HTDL,------完成批量删除任务状态,操作结果: " +
//                            resEvent.getRepCode());
        return resEvent;
    }


    //查询已部署任务列表的内容
    private ResponseEvent getYbsrwlb(HTDLglddrwReqEvent reqEvent) throws
            TaxBaseSystemException {

        //         与DAO交互,得到已部署定时任务列表的VO
        HTDLybsdsrwDAO ybsdsrwDAO = new HTDLybsdsrwDAO();
//        LogWritter.sysDebug("HTDL,------" + sessionID +
//                            "开始查询已部署任务列表中的内容.....------");
        ArrayList ybsrwlbVOList = (ArrayList) ybsdsrwDAO.selectAllYbsrw(
                reqEvent.getBlh());
//        LogWritter.sysDebug("HTDL,------完成查询已部署任务列表的查询,共有记录" +
//                            ybsrwlbVOList.size() + "条------");

        HTDLglddrwResEvent resEvent = new HTDLglddrwResEvent();
        resEvent.setYbsrwlbVOList(ybsrwlbVOList);
        resEvent.setRepCode("0");

        return resEvent;
    }

    private ResponseEvent addZxlog(HTDLglddrwReqEvent reqEvent) throws
            TaxBaseSystemException {

⌨️ 快捷键说明

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