`
fourfire
  • 浏览: 407904 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

工作流设计---2

阅读更多
调用实例
1 建立一个流程模板
/**
     * 生成一个简单流程
     *
     * @return
     */

    public static FlowDefine loadSimpleFlow() {
        // 开始(所有人-张三)----申报人所在单位科长(王五)--法律事务处(李四)---结束
        // flow
        FlowDefine flowDefine = new FlowDefine();
        // flowDefine.setId("1");
        flowDefine.setName("合同申报流程");
        flowDefine.setStatus(FlowDefine.STATUS_RUN);
        flowDefine.setReturnType(FlowDefine.RETURN_TYPE_START);
        flowDefine.setFlowTypeName("1000");
        List list = new ArrayList();
        flowDefine.setActions(list);
        // 开始action
        ActionDefine actionDefine_start = new ActionDefine();
   
        actionDefine_start.setName("合同起草");
        actionDefine_start.setStatus(ActionDefine.STATUS_RUN);
        actionDefine_start.setActionType(ActionDefine.TYPE_START);
        actionDefine_start.setFlowDefine(flowDefine);
        actionDefine_start.setSortFlag(0);
        actionDefine_start.setModelClazz("com.longtop.workflow.model.TestBean");
//         活动归属
        ActionOwner actionOwner = new RoleOwner();
       
        actionOwner.setName("1");//科员都可以起草
        actionOwner.setActionDefine(actionDefine_start);
        actionDefine_start.getOwners().add(actionOwner);
       
        list.add(actionDefine_start);
        //活动监听器
        List exitListeners_start=new ArrayList();
        ExitActionListenerModel alm=new ExitActionListenerModel();
        alm.setClazzName("com.longtop.workflow.service.ContractSubmitListener");//当start退出时,需要执行的监听器
        alm.setListenActionDefine(actionDefine_start);
        alm.setSortFlag(new Integer(0));
        exitListeners_start.add(alm);
        actionDefine_start.setExitListeners(exitListeners_start);
       
        // 王五action
        ActionDefine actionDefine_wangwu = new ActionDefine();
   
        actionDefine_wangwu.setName("初审");
        actionDefine_wangwu.setStatus(ActionDefine.STATUS_RUN);
        actionDefine_wangwu.setFlowDefine(flowDefine);
        actionDefine_wangwu.setSortFlag(1);
        actionDefine_wangwu.setModelClazz("com.longtop.workflow.model.TestBean");
        list.add(actionDefine_wangwu);
        // 活动归属
        actionOwner = new UserOwner();
       
        actionOwner.setName("maker.parentNode.children.dutyCode='01'");//申报人所在单位的科长
        actionOwner.setActionDefine(actionDefine_wangwu);
        actionDefine_wangwu.getOwners().add(actionOwner);

        // 活动转换
        ActionTrans trans = new ActionTrans();
        // 设置start的转换对象

        // 设置转换的源
        List trans_list = new ArrayList();
        trans_list.add(actionDefine_start);
        trans.setActionDefines(trans_list);
        // 转换的目标
        TransCondition c = new TransCondition();

        trans.getTransConditions().add(c);
        c.getDescActions().add(actionDefine_wangwu);
        c.setActionTrans(trans);
        actionDefine_start.setTrans(trans);
        // 李四action
        ActionDefine actionDefine_lisi = new ActionDefine();
       
        actionDefine_lisi.setName("法律处");
        actionDefine_lisi.setStatus(ActionDefine.STATUS_RUN);
        actionDefine_lisi.setModelClazz("com.longtop.workflow.model.TestBean");
        actionDefine_lisi.setSortFlag(2);
        list.add(actionDefine_lisi);

        ActionOwner actionOwner_lisi = new CompanyOwner();
       
        actionOwner_lisi.setName("2c9038ac138a93cd01138a93e6490003");
        actionDefine_lisi.getOwners().add(actionOwner_lisi);
        actionDefine_lisi.setFlowDefine(flowDefine);
        actionOwner_lisi.setActionDefine(actionDefine_lisi);
        // 活动转换
        trans = new ActionTrans();
        // 设置start的转换对象
        actionDefine_wangwu.setTrans(trans);
        // 设置转换的源
        trans_list = new ArrayList();
        trans_list.add(actionDefine_wangwu);
        trans.setActionDefines(trans_list);
        // 转换的目标
        c = new TransCondition();

        trans.getTransConditions().add(c);
        c.setActionTrans(trans);
        c.getDescActions().add(actionDefine_lisi);

        // 结束action
        ActionDefine actionDefine_end = new ActionDefine();
       
        actionDefine_end.setName("结束");
        actionDefine_end.setSortFlag(3);
        actionDefine_end.setStatus(ActionDefine.STATUS_RUN);
        actionDefine_end.setActionType(ActionDefine.TYPE_END);
        actionDefine_end.setFlowDefine(flowDefine);
        actionDefine_end.setModelClazz("com.longtop.workflow.model.TestBean");
        list.add(actionDefine_end);
//        活动监听器
        List exitListeners_end=new ArrayList();
         alm=new ExitActionListenerModel();
        alm.setClazzName("com.longtop.workflow.service.ContractPrintListener");
        alm.setListenActionDefine(actionDefine_end);
        alm.setSortFlag(new Integer(0));
        exitListeners_end.add(alm);
        actionDefine_start.setExitListeners(exitListeners_end);
        // 活动转换
        trans = new ActionTrans();
        // 设置start的转换对象
        actionDefine_lisi.setTrans(trans);
        // 设置转换的源
        trans_list = new ArrayList();
        trans_list.add(actionDefine_lisi);
        trans.setActionDefines(trans_list);
        // 转换的目标
        c = new TransCondition();
        c.setActionTrans(trans);
        trans.getTransConditions().add(c);
        c.getDescActions().add(actionDefine_end);

        return flowDefine;
    }

   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics