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

📄 ssglyworkflow.java

📁 以前做的一个j2ee的项目
💻 JAVA
字号:
package gov.gdlt.ssgly.taxcore.taxdao.rwgl.workflow;

import java.math.BigDecimal;
import java.util.ArrayList;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.RWGLrwjlDAO;
import gov.gdlt.ssgly.taxcore.comm.log.LogWritter;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.RWGLrwlzxxDAO;
import gov.gdlt.ssgly.taxcore.comm.config.ApplicationContext;
import gov.gdlt.ssgly.taxcore.taxevent.rwgl.RWGLfsdxVO;
import gov.gdlt.ssgly.taxcore.taxevent.rwgl.RWGLrwmxVO;
import gov.gdlt.ssgly.taxcore.taxevent.rwgl.RWGLjhrwVO;
import gov.gdlt.ssgly.taxcore.taxdao.rwgl.RWGLjhapDAO;




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


    /**
     * 得到指定操作人员的任务列表
     * @param swry_dm String \u2014\u2014操作人员代码<br>
     * @param lb_lx String \u2014\u2014列表类型,取值为"dblb"待办列表、"zblb"在办列表、"yblb"已办列表<br>
     * @return ArrayList \u2014\u2014返回的列表元素是封装了任务列表的 RWGLrwlbVO 类
     */
    public static ArrayList getWorkList(String swry_dm,String lb_lx){
        RWGLrwjlDAO lbDAO=new RWGLrwjlDAO();
        LogWritter.sysDebug("DAO for "+lb_lx+" created");
        ArrayList list=null;
        if (lb_lx.equals("dblb")){
            LogWritter.sysDebug("calling DAO for "+lb_lx);
            list=lbDAO.getDblb(swry_dm);
        }
        else if (lb_lx.equals("zblb")){
            LogWritter.sysDebug("calling DAO for "+lb_lx);
            list=lbDAO.getZblb(swry_dm);
        }
        else if (lb_lx.equals("yblb")){
            LogWritter.sysDebug("calling DAO for "+lb_lx);
            list=lbDAO.getYblb(swry_dm);
        }
        else if (lb_lx.equals("qblb")){
            LogWritter.sysDebug("calling DAO for "+lb_lx);
            list=lbDAO.getQblb(swry_dm);
        }else{
            LogWritter.sysDebug("wrong lb_lx:"+lb_lx);
        }
        return list;
    }

    /**
     * 签收任务,被签收的任务必须已经存在于签收者的待办列表中
     * @param swry_dm String \u2014\u2014签收者的人员代码
     * @param rw_xh BigDecimal \u2014\u2014任务编号
     * @return int \u2014\u2014返回修改了的数据行数,如果为1表示签收成功,如果为0表示签收失败
     */
    public static int sign(String swry_dm,BigDecimal rw_xh,BigDecimal bz_xh){
        RWGLrwlzxxDAO rwDAO=new RWGLrwlzxxDAO();
        rwDAO.setSwry_dm(swry_dm);
        rwDAO.setRw_xh(rw_xh);
        rwDAO.setBz_xh(bz_xh);
        int errCode=rwDAO.querySqz();
        if (errCode==ApplicationContext.ROWS_NOT_FOUND) return 0;
        int rows=rwDAO.sign();
        return rows;
    }

    /**
     * 撤销签收任务,被撤销签收的任务必须已经被操作者签收,即已经存在于操作员的在办列表中
     * @param swry_dm String \u2014\u2014操作人员代码
     * @param rw_xh BigDecimal \u2014\u2014任务编号
     * @return int \u2014\u2014返回修改了的数据行数,如果为1表示签收成功,如果为0表示签收失败
     */
    public static int unsign(String swry_dm,BigDecimal rw_xh,BigDecimal bz_xh,String lzfs_dm){
        RWGLrwlzxxDAO rwDAO=new RWGLrwlzxxDAO();
        rwDAO.setSwry_dm(swry_dm);
        rwDAO.setRw_xh(rw_xh);
        rwDAO.setBz_xh(bz_xh);
        rwDAO.setLzfs_dm(lzfs_dm);
        return rwDAO.unsign();
    }

//    /**  已停用
//     * 获取发送对象,在办理任务的时候将任务的基本情况传入,可以得到允许发送的人员列表
//     * @param swry_dm String \u2014\u2014当前办理此任务的人员代码
//     * @param rw_xh BigDecimal \u2014\u2014任务编号
//     * @param blfs_dm String \u2014\u2014当前的办理方式,根据办理方式的不同,可以返回的列表也不同
//     * @return ArrayList \u2014\u2014返回的列表元素为封装了发送对象的 RWGLfsdxVO 类
//     */
//    public static ArrayList getFsdx(String swry_dm,BigDecimal rw_xh,String blfs_dm){
//        int errCode=ApplicationContext.ROWS_NOT_FOUND;
//        ArrayList list=null;
//        //设置DAO对象
//        RWGLrwjlDAO rwDAO=new RWGLrwjlDAO();
//        rwDAO.setSwry_dm(swry_dm);
//        rwDAO.setRw_xh(rw_xh);
//        LogWritter.sysDebug("DAO for getting Fsdx ready!");
//        //获取当前任务信息
//        errCode=rwDAO.getNextRy1();
//        if ((errCode==ApplicationContext.ROWS_FOUND) && (!rwDAO.getClfs_dm().equals("07"))){
//            //如果任务没有流转完成,则开始获取下一人员列表
//            LogWritter.sysDebug("next clfs found!");
//            list=rwDAO.getNextRy2();
//        }else{
//            //如果任务已经完成流转,则返回“办结”
//            LogWritter.sysDebug("next clfs not found!");
//            RWGLfsdxVO fsdxAdd=new RWGLfsdxVO();
//            fsdxAdd.setLzfs_dm("07");
//            fsdxAdd.setLzfs_mc("办结");
//            list=new ArrayList();
//            LogWritter.sysDebug("begin to add 07");
//            list.add(0,fsdxAdd);
//        }
//        //以上是对所有人均可进行的正常流转操作
//        LogWritter.sysDebug("got list");
//        for (int i=0;i<list.size();i++) {
//            ((RWGLfsdxVO) (list.get(i))).setBljg_dm("1");
//        }
//        //以下是针对审核人才有的中断、回退操作
//        //略
//        return list;
//    }

    /**
     * 获取任务明细信息
     * @param rw_xh BigDecimal \u2014\u2014任务序号
     * @return RWGLrwmxVO \u2014\u2014返回一个封装了任务明细的 RWGLrwmxVO
     */
    public static RWGLrwmxVO getRwmx(BigDecimal rw_xh){
        RWGLrwjlDAO wfDAO=new RWGLrwjlDAO();
        wfDAO.setRw_xh(rw_xh);
        RWGLrwmxVO rwmx=wfDAO.getRwmx();
        return rwmx;
    }

    /**
     * 保存任务信息,包括任务处理意见,以及审核人修改过的任务明细信息
     * @param rw_xh BigDecimal \u2014\u2014任务序号
     * @param swry_dm String \u2014\u2014当前税务人员的代码
     * @param clyj String \u2014\u2014处理意见
     * @param blfs_dm String \u2014\u2014当前办理方式,如果是“05”审核的话,可以保存修改后的任务明细信息
     * @param rwmx RWGLrwmxVO \u2014\u2014封装了修改后的任务明细信息的值对象
     * @return int \u2014\u2014返回修改了的数据行数,如果为“1”表示保存成功,否则不成功
     */
    public static int save(String swry_dm,RWGLrwmxVO rwmx){
        BigDecimal rw_xh=rwmx.getRw_xh();
        String clyj=rwmx.getBlyj();
        String blfs_dm=rwmx.getClfs_dm();
        BigDecimal bz_xh=rwmx.getBz_xh();
        int rows=1;
        if ((!blfs_dm.equals("07")) && (rwmx.getRwmxxx() !=null)){
            LogWritter.sysDebug("begin update rwmxxx");
            RWGLrwjlDAO rwjl=new RWGLrwjlDAO();
            rwjl.setRw_xh(rw_xh);
            rwjl.setClfs_dm(rwmx.getClfs_dm());
            rwjl.setRwms(rwmx.getRwms());
            rwjl.setRwmxxx(rwmx.getRwmxxx());
            rwjl.setSwry_dm(swry_dm);
            rows=rwjl.save1();
            LogWritter.sysDebug(""+rows+" updated");
        }
        if (rows==1){
            LogWritter.sysDebug("begin update clyj");
            RWGLrwlzxxDAO lzxx=new RWGLrwlzxxDAO();
            lzxx.setBlyj(clyj);
            lzxx.setRw_xh(rw_xh);
            lzxx.setSwry_dm(swry_dm);
            lzxx.setLzfs_dm(blfs_dm);
            lzxx.setBz_xh(bz_xh);
            rows=lzxx.save2();
            LogWritter.sysDebug(""+rows+" updated");
        }
        return rows;
    }

    /**
     * 发送任务给下一人
     * @param rw_xh BigDecimal \u2014\u2014任务序号
     * @param swry_dm String \u2014\u2014当前操作人员代码
     * @param clfs_dm String \u2014\u2014下一步的办理方式
     * @param jsz_lx String \u2014\u2014接收者类型
     * @param jsz_dm String \u2014\u2014接受者代码
     * @return ArrayList \u2014\u2014返回一个列表,每一个元素都是一个本类的实例,表示本次发送后,执行了办结的任务列表及其内容
     */
    public static ArrayList send(BigDecimal rw_xh,String swry_dm,String clfs_dm,String jsz_lx,String jsz_dm){
        RWGLrwjlDAO rwjl=new RWGLrwjlDAO();
        RWGLrwlzxxDAO lzxx=new RWGLrwlzxxDAO();
        int errCode=ApplicationContext.ROWS_NOT_FOUND;
        int rows=0;
        ArrayList list=new ArrayList();
        rwjl.setRw_xh(rw_xh);
        rwjl.setSwry_dm(swry_dm);
        rwjl.setClfs_dm(clfs_dm);
        rwjl.setJsz_lx(jsz_lx);
        if (jsz_lx.equals("1")){
            jsz_dm=jsz_dm + ";;";
            rwjl.setJsz_dm(jsz_dm);
        }else if(clfs_dm.equals("07")){
            jsz_dm="";
            rwjl.setJsz_dm(jsz_dm);
        }else{
            rwjl.send6();
            jsz_dm=rwjl.getJsz_dm();
        }
        //属于递归调用的,需要检查是否父任务,确定是否需要办结
        if (clfs_dm==null || jsz_lx==null){
            LogWritter.sysDebug("父任务"+rw_xh+"被唤醒,准备发送。");
            errCode=rwjl.send1();
            if (errCode==ApplicationContext.ROWS_FOUND){
                LogWritter.sysDebug("获取父任务记录成功。");
            }
        }else{
            LogWritter.sysDebug("准备发送任务"+rw_xh+"。");
        }
        lzxx.setRw_xh(rw_xh);
        lzxx.setSwry_dm(swry_dm);
        lzxx.setJsz_dm(jsz_dm);
        lzxx.setJsz_lx(jsz_lx);
        lzxx.setLzfs_dm(clfs_dm);
        rows=lzxx.send234();
        if (rows==1){
            LogWritter.sysDebug("成功更新流转信息");
            if (clfs_dm.equals("07")){
                LogWritter.sysDebug("准备办结任务"+rw_xh);
                BigDecimal frwxh=rwjl.bj();
                if (!frwxh.equals(new BigDecimal(0))){
                    list=send(frwxh,swry_dm,null,null,null);
                }
                //将已办结的任务整个DAO添加到列表中,返回给blh,以便调用对应特殊任务的办结方法
                list.add(rw_xh);
                LogWritter.sysDebug("任务"+rw_xh+"需要后续处理,已添加到列表");
            }else{
                rwjl.setBz_xh(lzxx.getBz_xh());
                rows=rwjl.send5();
            }
        }else{
            LogWritter.sysDebug("更新流转信息失败,更新数据"+rows+"行");
        }
        return list;
    }

    /**
     * 获取任务的流转信息
     * @param rw_xh BigDecimal \u2014\u2014任务序号
     * @return ArrayList \u2014\u2014流转信息的列表,表中的元素为RWGLlzxxVO
     */
    public static ArrayList getLzxx(BigDecimal rw_xh){
        RWGLrwlzxxDAO lzxx=new RWGLrwlzxxDAO(rw_xh);
        ArrayList list=lzxx.getLzxx();
        return list;
    }

    /**
     * 收回已发送的任务
     * @param rw_xh BigDecimal \u2014\u2014任务序号
     * @param swry_dm String \u2014\u2014操作者的人员代码
     * @return int \u2014\u2014如果成功,返回1
     */
    public static int pullBack(BigDecimal rw_xh,String swry_dm){
        RWGLrwlzxxDAO lzxx=new RWGLrwlzxxDAO(rw_xh);
        lzxx.setSwry_dm(swry_dm);
        return lzxx.pullBack("pullBack");
    }

    /**
     * 回退任务到上一人
     * @param rw_xh BigDecimal \u2014\u2014任务序号
     * @param swry_dm String \u2014\u2014操作者的人员代码
     * @return int \u2014\u2014如果成功,返回1
     */
    public static int turnBack(BigDecimal rw_xh,String swry_dm){
        RWGLrwlzxxDAO lzxx=new RWGLrwlzxxDAO(rw_xh);
        lzxx.setSwry_dm(swry_dm);
        return lzxx.pullBack("turnBack");//借用收回的方法来实现回退
    }

    /**
     * 增加附件
     * @param rwmx RWGLrwmxVO \u2014\u2014将附件的url作为任务明细信息传入,实际处理的时候把该内容附加在数据库该字段之后
     * @return int \u2014\u2014如果成功,返回1
     */
    public static int addFile(RWGLrwmxVO rwmx){
        RWGLrwjlDAO rwjl=new RWGLrwjlDAO();
        return rwjl.addFile(rwmx);
    }

    /**
     * 新建任务计划,将计划的内容保存到数据库
     * @param jhrw RWGLjhrwVO \u2014\u2014新任务计划的内容
     * @return BigDecimal \u2014\u2014新计划的计划序号,保存失败,则返回空值
     */
    public static BigDecimal newJhap(RWGLjhrwVO jhrw){
        RWGLjhapDAO jhap=new RWGLjhapDAO();
        //将VO的内容写入DAO中
        jhap.setSwry_dm(jhrw.getJhxdry_dm());
        jhap.setRwlx_dm(jhrw.getRwlx_dm());
        jhap.setRwxl_dm(jhrw.getRwxl_dm());
        jhap.setRwms(jhrw.getRwms());
        jhap.setRwmxxx(jhrw.getRwmxxx());
        jhap.setNsrnbm(jhrw.getNsrnbm());
        jhap.setZzyq(jhrw.getZzyq());
        jhap.setCbbm_dm(jhrw.getCbbm_dm());
        jhap.setCbry_dm(jhrw.getCbry_dm());
        jhap.setYdqd_sj(jhrw.getYdqd_sj());
        jhap.setCfzq_lx(jhrw.getCfzq_lx());
        jhap.setRwyx_jb(jhrw.getRwyxjb());
        //保存计划内容
        BigDecimal jh_xh=jhap.newJhap();
        if (jh_xh!=null) return jh_xh;
        else return null;
    }

    /**
     * 启动工作流
     * @param jh_xh BigDecimal \u2014\u2014输入计划序号
     * @return int \u2014\u2014成功返回1,不成功返回-1
     */
    public static BigDecimal startWorkFlow(BigDecimal jh_xh) {
        RWGLjhapDAO jhap=new RWGLjhapDAO();
        jhap.setJh_xh(jh_xh);
        return startWorkFlow(jhap);
    }

    /**
     * 重载启动工作流的方法
     * @param jhap RWGLjhapDAO \u2014\u2014传入已经定义好计划序号的DAO
     * @return int \u2014\u2014不成功返回-1
     */
    public static BigDecimal startWorkFlow(RWGLjhapDAO jhap){
    if (jhap.getJh_xh()!=null) return jhap.jhsx();
        else return null;
    }

    /**
     * 创建协办步骤
     * @param rw_xh BigDecimal \u2014\u2014任务序号
     * @param bz_xh BigDecimal \u2014\u2014创建协办所依据的步骤序号
     * @param swry_dm String \u2014\u2014协办人员代码
     * @return int 成功返回1,不成功返回-1
     */
    public static int createXbz(BigDecimal rw_xh,BigDecimal bz_xh,String swry_dm){
    RWGLrwlzxxDAO dao=new RWGLrwlzxxDAO(rw_xh);
        dao.setBz_xh(bz_xh);
        dao.setSwry_dm(swry_dm);
        return dao.addXbz();
    }

//以下main方法仅用于测试与ibatis的连接
public static void main(String[] args){
    LogWritter.sysDebug("Debug begin...");
    ArrayList list=getWorkList("24401020322","dblb");
    LogWritter.sysDebug("got "+list.size()+" rows");
}
}

⌨️ 快捷键说明

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