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

📄 rwglclrwbaseblh.java

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

import java.math.BigDecimal;
import java.util.ArrayList;
import gov.gdlt.ssgly.taxcore.comm.blh.BaseBizLogicHandler;
import gov.gdlt.ssgly.taxcore.comm.event.ResponseEvent;
import gov.gdlt.ssgly.taxcore.comm.log.LogWritter;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseSystemException;
import gov.gdlt.ssgly.taxcore.comm.exception.TaxBaseBizException;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.workflow.SsglyWorkFlow;
import gov.gdlt.ssgly.taxcore.taxevent.rwgl.*;
import gov.gdlt.ssgly.taxcore.comm.event.RequestEvent;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.RWGLrwjlDAO;
import gov.gdlt.ssgly.taxcore.taxevent.jkyj.JKYJckyjxxReqEvent;
import gov.gdlt.ssgly.taxcore.taxblh.jkyj.JKYJckyjxxBLH;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.RWGLspecialDAO;
import gov.gdlt.ssgly.taxcore.taxdao.flgl.FLGLflxxDAO;
import gov.gdlt.ssgly.taxcore.taxdao.xtfl.XTFLflDAO;
import gov.gdlt.ssgly.taxcore.comm.util.StringUtils;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.*;
import gov.gdlt.ssgly.taxcore.comm.config.ApplicationContext;
import gov.gdlt.ssgly.taxcore.taxblh.gzda.TaskManagerImpl;
import gov.gdlt.ssgly.taxcore.taxblh.wdsc.qtwdsc.WDSCqtwdscBLH;

/**
 * <p>Title: </p>
 *
 * <p>Description: 广东地税税收管理员工作平台</p>
 *
 * <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
 *
 * <p>Company: 广州地税</p>
 *
 * @author 王隽
 * @version 1.0
 */
public class RWGLclrwBaseBLH extends BaseBizLogicHandler {
    public RWGLclrwBaseBLH() {
    }

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

    /**
     * 此方法实现了业务逻辑的处理过程,处理具体业务逻辑的过程中,
     * 在出现异常的时侯, 必须向上抛出异常,异常的处理在
     * 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 resEvn = new ResponseEvent(); //创建ResponseEvent对象resEvn
        //强制造型转换
        RWGLclrwReqEvent reqEvent = (RWGLclrwReqEvent) req;
//        if ("getFsdx".equals(dealMethod)) {
//            resEvn = this.getFsdx(reqEvent);
//        }else
        if ("save".equals(dealMethod)){
            resEvn=this.save(reqEvent);
        }else
        if ("send".equals(dealMethod)){
            resEvn=this.send(reqEvent);
        }else
        if ("getRwmx".equals(dealMethod)){
            resEvn=this.getRwmxxx(reqEvent);
        }else
        if ("getRwmxAll".equals(dealMethod)){
            resEvn=this.getRwmxAll(reqEvent);
        }else
        if ("getSpecial".equals(dealMethod)){
            resEvn=this.getSpecial(reqEvent);
        }
        return resEvn;
    }

//    /**   已停用
//     * 获取可发送的对象列表
//     * @param req RWGLclrwReqEvent
//     * @return ResponseEvent
//     */
//    private ResponseEvent getFsdx(RWGLclrwReqEvent req){
//        RWGLclrwResEvent resEvn = new RWGLclrwResEvent(); //创建ResponseEvent对象resEvn
//        String blfs_dm=req.getBlfs_dm();
//        BigDecimal rw_xh=req.getRw_xh();
//        String swry_dm=req.getSwry_dm();
//        resEvn.setFsdxVO(SsglyWorkFlow.getFsdx(swry_dm,rw_xh,blfs_dm));
//        return resEvn;
//    }

    /**
     * 执行任务的保存功能
     * @param req RWGLclrwReqEvent
     * @return ResponseEvent
     */
    private ResponseEvent save(RWGLclrwReqEvent req){
        RWGLclrwResEvent resEvn = new RWGLclrwResEvent(); //创建ResponseEvent对象resEvn
        String swry_dm=req.getSwry_dm();
        RWGLrwmxVO rwmx=req.getRwmxVO();
        int rows=SsglyWorkFlow.save(swry_dm,rwmx);
        if (rows==1){
            resEvn.setRepCode("0");
        }else{
            resEvn.setRepCode("-1");
        }
        return resEvn;
    }

    /**
     * 发送任务给下一人
     * @param req RWGLclrwReqEvent
     * @return ResponseEvent
     */
    private ResponseEvent send(RWGLclrwReqEvent req) throws TaxBaseBizException,
            TaxBaseSystemException {
        RWGLclrwResEvent resEvn = (RWGLclrwResEvent)save(req); //创建ResponseEvent对象resEvn
        BigDecimal rw_xh=req.getRw_xh();
        String swry_dm=req.getSwry_dm();
        RWGLfsdxVO fsdx=req.getFsdx();
        String clfs=fsdx.getLzfs_dm();
        if (clfs.equals("16")){
            //如果是回退到上一人,则执行以下操作
            int rows=SsglyWorkFlow.turnBack(rw_xh,swry_dm);
            if (rows==1) resEvn.setRepCode("0");
            else resEvn.setRepCode("1");
        }else{
            //如果属于发送操作,则执行以下操作
            String jsz_dm = fsdx.getSwry_dm();
            String jsz_lx;
            LogWritter.sysDebug("BLH ready to send " + rw_xh + ". clfs=" + clfs +
                                "  jszdm=" + jsz_dm);
            if (jsz_dm == null) {
                jsz_lx = "2";
                jsz_dm = clfs;
            } else {
                jsz_lx = "1";
            }
            ArrayList list = SsglyWorkFlow.send(rw_xh, swry_dm, clfs, jsz_lx,
                                                jsz_dm);
            int errCode=1;
            LogWritter.sysDebug("需后续处理的任务共"+list.size()+"个");
            for (int i = 0; i < list.size(); i++) {
                rw_xh = (BigDecimal) list.get(i);
                RWGLrwmxVO rwmx = SsglyWorkFlow.getRwmx(rw_xh);
                errCode=bjRw(rw_xh, swry_dm, rwmx);
                if (errCode==-1) LogWritter.sysDebug("任务rwxh="+rw_xh+"处理失败!");
                else LogWritter.sysDebug("任务rwxh="+rw_xh+"处理完毕");
            }
            String xbzList=req.getXbzList();
            if (xbzList!=null && !xbzList.equals("")){
                list=StringUtils.convertStrToArrayList(xbzList,";;");
                rw_xh=req.getRw_xh();
                BigDecimal bz_xh=req.getRwmxVO().getBz_xh();
                for (int i=0;i<list.size();i++){
                    jsz_dm=(String)list.get(i);
                    if (jsz_dm==null || jsz_dm.length()<10) {
                        LogWritter.sysDebug("协办人代码"+jsz_dm+"异常,不创建协办步骤");
                        continue;
                    }
                    errCode=SsglyWorkFlow.createXbz(rw_xh,bz_xh,jsz_dm);
                    if (errCode==ApplicationContext.RET_FAIL) LogWritter.sysDebug("发送协办步骤失败:rwxh="+rw_xh);
                }
                LogWritter.sysDebug("协办步骤创建完毕!");
            }
        }
        if (req.isSms()){
            RWGLrwmxVO rwmx=req.getRwmxVO();
            SmsDao sd=new SmsDao();
            BigDecimal fl_xh=rwmx.getFl_xh();
            if(fl_xh!=null){
            //String content_fl="关于您的"+rwmx.getRwxl_mc()+"事项,我局的处理意见如下:"+rwmx.getBlyj()+"---"+req.getSwjg_mc();
            String content_fl=rwmx.getBlyj()+"--"+req.getSwjg_mc();

            sd.SendMsgByfldm(fl_xh,content_fl,req);
            }
            if(rwmx.getNsrList()!=null && rwmx.getNsrList().size()>0){
            //String content="关于您的"+rwmx.getRwxl_mc()+"事项,我局的处理意见如下:"+rwmx.getBlyj()+"---"+req.getSwjg_mc();
            String content=rwmx.getBlyj()+"--"+req.getSwjg_mc();
            sd.SendMsgByNsrnbm(rwmx.getNsrList(),content,req);
            }
        }
        return resEvn;
    }

    /**
     * 办结任务的操作,根据任务的不同,可重写此方法
     * @param rw_xh BigDecimal
     * @param swry_dm String
     * @return int
     */
    protected int bjRw(BigDecimal rw_xh,String swry_dm,RWGLrwmxVO rwmx) throws
            TaxBaseSystemException, TaxBaseBizException {
        if (rwmx.getRwlx_dm().equals("01")) { //任务是分户管理
            String from = rwmx.getProperty("from");
            String to = rwmx.getProperty("to");
            String rwxl=rwmx.getRwxl_dm();
            String nsrnbm=rwmx.getProperty("nsrnbm");
            LogWritter.sysDebug("准备执行任务"+rw_xh+"的分户管理,任务小类:"+rwxl+" 纳税人:"+nsrnbm+" 移出类:"+from+" 移入类:"+to);
            if (from.equals("") || to.equals("") || rwxl.equals("") || rwxl==null || nsrnbm.equals("")) return -1;
            //根据不同的任务小类,进行不同的操作
            if (rwxl.equals("0101") || rwxl.equals("0102") || rwxl.equals("0120")){
                String old_fldm, new_fldm, old_ryorjg, new_ryorjg;
                int p;
                p = from.indexOf("0");
                if (p < 0) { //not found
                    p = 4;
                }
                old_fldm = from.substring(0, p);
                old_ryorjg = from.substring(p);
                p = to.indexOf("0");
                if (p < 0) { //not found
                    p = 4;
                }
                new_fldm = to.substring(0, p);
                new_ryorjg = to.substring(p);
                //调分类管理接口
                FLGLflxxDAO flxxDAO = new FLGLflxxDAO();
                flxxDAO.setO_fldm(old_fldm);
                flxxDAO.setO_lyorjg(old_ryorjg);
                flxxDAO.setN_fldm(new_fldm);
                flxxDAO.setN_lyorjg(new_ryorjg);
                flxxDAO.setS_nsrnbm(nsrnbm);
                LogWritter.sysDebug("调用分类管理接口进行分户:old_fldm="+old_fldm+" old_jgrydm="+old_ryorjg+" new_fldm="+new_fldm+" new_jgrydm="+new_ryorjg+" nsrnbm="+nsrnbm);
                flxxDAO.p_flgl_movensr();
                RWGLspecialDAO specialDAO=new RWGLspecialDAO();
                RWGLspecialDataVO specialData=new RWGLspecialDataVO();
                specialData.setSpecialNumber2(new BigDecimal(nsrnbm));
                specialData.setSqlName("getNsrss");
                specialData.setSqlOperation("select");
                specialData=specialDAO.dealSpecialOperation(specialData);
                String nsrss=specialData.getSpecialString1();
                if (!nsrss.equals(to)){
                    LogWritter.sysDebug("业户转移失败,当前所在:"+nsrss);
                    return -1;
                }
                //如果属于移入任务,并且移入对象是机构,则生成下级机构的业户移入任务
                if (!(rwxl.equals("0101") || rwxl.equals("0120")) || new_ryorjg.substring(0,2).equals("02")){
                    LogWritter.sysDebug("业户转移成功");
                    return 1;
                }
                LogWritter.sysDebug("业户已经移入到相关机构,开始自动生成下级机构的移入任务");
                RWGLjhrwVO jhrw=new RWGLjhrwVO();
                jhrw.setCbbm_dm(new_ryorjg.substring(2));
                jhrw.setJhxdry_dm(swry_dm);
                jhrw.setNsrnbm(rwmx.getNsrnbm());
                jhrw.setRwlx_dm(rwmx.getRwlx_dm());
                jhrw.setRwxl_dm(rwmx.getRwxl_dm());
                jhrw.setRwms(rwmx.getRwms());
                rwmx.setProperty("from",to);
                rwmx.removeProperty("to");
                jhrw.setRwmxxx(rwmx.getRwmxxx());
                if (rwmx.getRwyxjb().equals("重要"))jhrw.setRwyxjb("1");
                else jhrw.setRwyxjb("2");
                jhrw.setYdqd_sj(rwmx.getJb_sj());
                jhrw.setZzyq(rwmx.getZzyq());
                BigDecimal jh_xh=SsglyWorkFlow.newJhap(jhrw);
                if (jh_xh==null){
                    LogWritter.sysDebug("自动生成下级机构的移入任务失败!");
                    return 1;
                }
                LogWritter.sysDebug("已生成下级机构移入计划,计划序号:"+jh_xh);
                BigDecimal newRwxh=SsglyWorkFlow.startWorkFlow(jh_xh);
                if (newRwxh==null) LogWritter.sysDebug("无法启动计划任务");

⌨️ 快捷键说明

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