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

📄 jkyjckyjxxblh.java

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

import gov.gdlt.ssgly.taxcore.comm.blh.BaseBizLogicHandler;
import gov.gdlt.ssgly.taxcore.comm.event.RequestEvent;
import gov.gdlt.ssgly.taxcore.comm.event.ResponseEvent;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseBizException;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseSystemException;
import gov.gdlt.ssgly.taxcore.taxevent.jkyj.*;
import gov.gdlt.ssgly.taxcore.comm.log.LogWritter;
import gov.gdlt.ssgly.taxcore.taxdao.jkyj.JKYJjkyjsjDAO;
import gov.gdlt.ssgly.taxcore.taxdao.zbgl.ZBGLzbsjDAO;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import gov.gdlt.ssgly.taxcore.taxevent.flgl.FLGLnsrflxxVO;

/**
 *
 * <p>Title: 查看预警信息BLH</p>
 *
 * <p>Description: 广东地税税收管理员工作平台</p>
 *
 * <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
 *
 * <p>Company: 广州地税</p>
 *
 * @author 郑毅晖
 * @version 1.0
 */

public class JKYJckyjxxBLH extends BaseBizLogicHandler {

    public JKYJckyjxxBLH() {
    }

    //////////////////    抽象方法实现    /////////////////////
    /**
     * 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,  客户端请求的数据对象实例
     *  返回:ResponseEvent  返回给客户端的数据对象实例
     */
    protected ResponseEvent performTask(RequestEvent req) throws
            TaxBaseSystemException, TaxBaseBizException {
//        String sessionID = req.getSessionID(); //获取用户ID
//        String channelType = req.getChannelType(); //获取请求来源
        String dealMethod = req.getDealMethod(); //业务处理标志
        ResponseEvent resEvn = new ResponseEvent(); //创建ResponseEvent对象resEvn
        //强制造型转换
        JKYJckyjxxReqEvent reqEvent = (JKYJckyjxxReqEvent) req;
        if ("getYjlb".equals(dealMethod)) {
            if(reqEvent.getCxtj()==null || "".equals(reqEvent.getCxtj())){
                resEvn = this.getYjlb(reqEvent);
            }
            else{
                resEvn = this.getYjlbByQuers(reqEvent);
            }
        } else
        if ("getYjmx".equals(dealMethod)) {
//            resEvn = this.getYjmx(reqEvent);
        } else
        if ("setTsbj".equals(dealMethod)) {
            resEvn = this.setTsbj(reqEvent);
        } else {
            throw new TaxBaseBizException("YCJKYJ01001:调用了不存在的 " + dealMethod + " 方法!");
        }

        return resEvn;
    }

    /**
     * 取得某个分类下所有纳税人的预警事件列表(以二维表形式返回)
     * 参数:
     *   fl_xh:BigDecimal  分类管理中使用的分类序号
     *   st_dm : String 监控台视图的视图代码
     * @param req:RWGLckrwReqEvent
     * @return ResponseEvent
     */
    private ResponseEvent getYjlb(JKYJckyjxxReqEvent req) throws
            TaxBaseBizException {
//        String sessionID = req.getSessionID(); //获取用户ID
//        String channelType = req.getChannelType(); //获取请求来源

        ArrayList jkyjsjList = null;
        ArrayList zbsjList = null;
        ArrayList zbxxList = null;
        ArrayList tsxxList = null;

        //LogWritter.sysDebug("test get userID=" + (String)WebUtil.eval("#{user.userID}")); //just for test
        BigDecimal fl_xh = req.getFl_xh();
        String st_dm = req.getSt_dm();
        //与DAO交互,得到监控预警事件的List和指标数据的List
        JKYJjkyjsjDAO jkyjsjDAO = new JKYJjkyjsjDAO();
        jkyjsjList = jkyjsjDAO.findAllByFlxhStdm(fl_xh, st_dm);
        if (jkyjsjList == null) {
            throw new TaxBaseBizException("YCJKYJ01002: 读取监控预警事件错误!");
        }
        ZBGLzbsjDAO zbsjDAO = new ZBGLzbsjDAO();
        zbsjList = zbsjDAO.findAllByFlxhStdm(fl_xh, st_dm);
        if (zbsjList == null) {
            throw new TaxBaseBizException("YCJKYJ01003: 读取指标数据错误!");
        }
        zbxxList = zbsjDAO.findZbxxByStdm(st_dm);
        if (zbxxList == null) {
            throw new TaxBaseBizException("YCJKYJ01004: 读取指标信息错误!");
        }
        tsxxList = zbsjDAO.findTsxxByFlxhStdm(fl_xh, st_dm);
        if (tsxxList == null) {
            throw new TaxBaseBizException("YCJKYJ01005: 读取提示信息错误!");
        }
        JKYJtsxxVO tsxxVO = null;
        //转换监控台预警指标列头
        ArrayList headerList = new ArrayList();
        JKYJzbxxVO zbxxVO = null;
        for (int i = 0; i < zbxxList.size(); i++) {
            zbxxVO = (JKYJzbxxVO) zbxxList.get(i);
            headerList.add(zbxxVO);
        }
        //转换监控台预警指标数据列表
        //必须之前已按照纳税人内部码、指标代码等对预警事件、指标数据等进行了排序
        ArrayList yjlbList = new ArrayList(); //按纳税人来排列的预警列表数据
        FLGLnsrflxxVO nsrflxxVO = null;
        JKYJyjlbVO yjlbVO = null; //预警列表VO
        JKYJyjjlVO yjjlVO = null; //预警记录VO
        ArrayList yjzbData = null; //预警指标数据Map
        ArrayList nsrflxxList = jkyjsjDAO.findAllNsrByFlxh(fl_xh); //找到某个分类下的纳税人列表
        if (nsrflxxList == null) {
            throw new TaxBaseBizException("YCJKYJ01006: 读取该分类下的纳税人列表错误!");
        }
        int p_zbsj = 0; //用于遍历预警指标数据的指针
        int p_yjsj = 0; //用于遍历预警事件数据的指针
        int p_tsxx = 0; //用于遍历提示信息数据的指针
        boolean found_flag; //找到数据的标志
        BigDecimal nsrnbm = null; //记录当前的行的纳税人内部码
        int colIdx = -1; //列序号
        String zb_dm = null; //指标代码
        String cfy_mc = null; //触发源名称
        LogWritter.sysDebug("nsrflxxList size=" + nsrflxxList.size());
        LogWritter.sysDebug("zbxxList size=" + zbxxList.size());
        LogWritter.sysDebug("zbsjList size=" + zbsjList.size());
        LogWritter.sysDebug("jkyjsjList size=" + jkyjsjList.size());
        for (int i = 0; i < nsrflxxList.size(); i++) {
            nsrflxxVO = (FLGLnsrflxxVO) nsrflxxList.get(i);
            nsrnbm = nsrflxxVO.getNsrnbm();
//            LogWritter.sysDebug("nsrnbm=" + nsrnbm + ", fl_xh=" + nsrflxxVO.getFl_xh()); //for debug
            yjlbVO = new JKYJyjlbVO();
            yjlbVO.setNsrnbm(nsrnbm);
            yjlbVO.setHasYjjl(false); //初始化为没有预警记录
//预警指标和异常记录统一存放版本,适用于一个指标仅对应一条预警记录(或多条预警记录合并存放)的做法
            //构造一行的预警指标数据
            yjzbData = new ArrayList();
            ////初始化所有指标值为"0"
            for (int j = 0; j < zbxxList.size(); j++) {
                zbxxVO = (JKYJzbxxVO) zbxxList.get(j);
                yjjlVO = new JKYJyjjlVO();
                yjjlVO.setZbz("0");
                yjjlVO.setDm_decode(zbxxVO.getDm_decode());
                yjzbData.add(yjjlVO);
            }
            ////把有数据的指标填入相应的列
//            p_zbsj = 0; //reset
//            found_flag = false; //reset
            while (p_zbsj < zbsjList.size()) {
                zbsjDAO = (ZBGLzbsjDAO) zbsjList.get(p_zbsj);
                if (zbsjDAO.getNsrnbm().equals(nsrnbm)) {
                    zb_dm = zbsjDAO.getZb_dm();
                    colIdx = findColIdxByZbdm(zb_dm, headerList);
                    if (colIdx >= 0) {
                        yjjlVO = (JKYJyjjlVO) yjzbData.get(colIdx);
                        yjjlVO.setZbz(zbsjDAO.getZbz());
                        yjzbData.set(colIdx, yjjlVO);
                    }
//                    found_flag = true; //已找到指标数据
                } else {
//                    if (found_flag) break; //已找到需填入的指标数据,跳出while循环
                        break;
                }
                p_zbsj++; //指针移到下一个记录
            }
            ////把提示信息填入相应的列
            found_flag = false; //reset
            while (p_tsxx < tsxxList.size()) {
                tsxxVO = (JKYJtsxxVO) tsxxList.get(p_tsxx);
                if (tsxxVO.getNsrnbm().equals(nsrnbm)) {
                    zb_dm = tsxxVO.getZb_dm();
                    colIdx = findColIdxByZbdm(zb_dm, headerList);
                    if (colIdx >= 0) {
                        yjjlVO = (JKYJyjjlVO) yjzbData.get(colIdx);
                        yjjlVO.setZb_tsxx(tsxxVO.getTsxx()); //把指标提示信息设到监控台每个单元数据里(没有指标数据的是否要显示提示?)
                        yjzbData.set(colIdx, yjjlVO);
                    }
                    found_flag = true; //已找到提示信息数据
                } else {
                    if (found_flag) break; //已找到需填入的提示信息数据,跳出while循环
                }
                p_tsxx++; //指针移到下一个记录
            }

⌨️ 快捷键说明

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