核三框架流程

1.流程定义
流程定义描述的是系统中有哪些种类的流程、每种流程包括哪几个步骤(即环节),每个步骤有哪些后续步骤。
流程定义的内容存储在数据库表中,需要使用数据库sql脚本完成流程定义的工作。数据库表为WF_ACTION_DEF(联合主键为流程定义(process_def_id)+ 环节定义(action_def_id))
2.流程权限菜单
配置
3.流程环节配置 表:WF_ACTION_DEF
流程环节配置
4.流程环节表 表:WF_WORK_ITEM
流程环节执行表
5.ER图
整体ER图
6.开启流程 在流程的开始页面中调用Service开启流程,返回业务流水号

 public String startWf(IDTO dto) throws AppException{
    	 //组装参数
//    	 Map<String,Object> paramsMap = dto.getData();
         StartWfParams startWfParams = new StartWfParams();
         startWfParams.setWfDefName("单位新登记");  	   //流程名称
         startWfParams.setKeyData("新增单位登记记录");  //业务关键信息
         startWfParams.setOperId(dto.getUserInfo().getOperID());       		   //操作员ID
         startWfParams.setBae006(dto.getUserInfo().getBAE001()); //经办机构
         startWfParams.setDoCusService(true);      	   //是否执行业务service
         //开启流程,并返回流水号
         String ywlsh = cn.sinobest.framework.util.WfUtil.startWf(startWfParams);
         System.out.println("这是新建的业务流水号:"+ywlsh);
         return ywlsh;
     }

7.生成环节 开启流程时框架会生成相应的环节,环节有对应的业务流水号,状态等信息
8.控制流程提交

     /* 新增单位信息提交后进入到审核环节;
      * 审核环节审核通过则开始"结束审核环节";
      * 审核环节审核不通过则回退到"单位信息在环节";
	  * @param dto
	  * @return 成功或失败
	  * @throws Exception
	  */
     public void commitWf(IDTO dto) throws Exception{
    	  Map<String,Object> paramsMap = dto.getData();
    	  //得到前台传入的当前环节标志
    	  String action_id = paramsMap.get("action_id").toString();
    	  System.out.println("action_id:"+action_id);
    	  IWorkflowCascade wfService = (IWorkflowCascade)Util.getBean("workflowCascadeService");
    	  SubmitWfParams wfParams = new SubmitWfParams();

    	  //业务流水号(WF_WORK_ITEM.BAE007)
    	  wfParams.setPid(paramsMap.get("ywlsh").toString()); 
    	  Map<String,Object> p = new HashMap<String, Object>();
    	  p.put("bae007", paramsMap.get("ywlsh").toString());
    	  p.put("action_id",action_id);
    	  Map<String,Object> params=commDAO.selectOne(DWGL + "ACTION_Q", p);
    	  String work_id=params.get("WORK_ITEM_ID").toString();
    
    	  //提交审核环节或回退到登记环节
    	  if(action_id.equals("dwxdj_sh")){
    		//得到当前审核结果
    		  String shjgStr = paramsMap.get("shjg").toString();
    		  if(shjgStr.equals("1")){
    			 wfParams.setSubmitType(SubmitType.NEXT);  //标识为提交下一环节,流程继续执行
    		  }else{
    			 wfParams.setSubmitType(SubmitType.BACK); //标识为回退上一环节,流程回退到上一环节
    		  }
        	  //提交当前的登记环节,进入审核环节
        	  wfParams.setWid(work_id);  	//环节号(WF_WORK_ITEM.WORK_ITEM_ID)
        	  wfParams.setAccepter("998"); 	//接收人
        	  wfParams.setJbr("998");       //经办人
        	  wfParams.setKeyData("提交单位信息审核");   //关键信息
        	  wfParams.setBae006(dto.getUserInfo().getBAE001()); //经办机构
        	  wfParams.setComment("提交单位信息进入审核环节"); //流程备注
        	  dto.setValue(IWorkflow.SUBMIT_PARAMS, wfParams);
        	  wfService.submitWf(dto);
        	  return ;
    	  }    	  
     }

执行一个流程时,当环节运行到结束环节,该流程的状态会被置为“结束”,表明整个流程已经结束。
9.小结:
9.1.编码之前弄清楚整个业务逻辑的流程到底是怎样的,这样编码的时候会事半功倍。
9.2.其实流程也不是很复杂,不要在心理上就抗拒它。
9.3.多练习多思考,理解最重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值