您好,欢迎来到微智科技网。
搜索
您的当前位置:首页工作流案列(一)

工作流案列(一)

来源:微智科技网

根据activiti官方提供的 编写 
      1.财务部门填写月财务报告
      2.股东审核月财务审计报告

 

流程图:

 

 

流程配置:

 

Xml代码  

 

编码如下:

Java代码  
  1. package com.easyway.spring.activiti;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.activiti.engine.HistoryService;  
  6. import org.activiti.engine.ProcessEngine;  
  7. import org.activiti.engine.ProcessEngineConfiguration;  
  8. import org.activiti.engine.RepositoryService;  
  9. import org.activiti.engine.RuntimeService;  
  10. import org.activiti.engine.TaskService;  
  11. import org.activiti.engine.history.HistoricProcessInstance;  
  12. import org.activiti.engine.task.Task;  
  13. /** 
  14.  * 根据activiti官方提供的 编写  
  15.  *     1.财务部门填写月财务报告 
  16.  *     2.股东审核月财务审计报告 
  17.  *      
  18.  *      
  19.  * activiti提供的财务报告审核 
  20.  * <!-- 采用用户组为accountancy编写财务报告  --> 
  21.  *   <userTask id="usertask1" name="财务编写月财务报告" activiti:candidateGroups="accountancy"></userTask> 
  22.  * <!-- 采用用户组为management编写财务报告  --> 
  23.  *   <userTask id="usertask2" name="股东审核月财务审计报告" activiti:candidateGroups="management"></userTask> 
  24.  *  
  25.  * 备注: 
  26.  *    默认的两个用户: 
  27.  *    <pre> 
  28.  *       用户名   密码         用户组  
  29.         Table 2.1. The demo users 
  30.         UserId Password Security roles  
  31.         kermit kermit admin  
  32.         gonzo gonzo manager  
  33.         fozzie fozzie user  
  34.  *    </pre> 
  35.  *  
  36.  * @author longgangbai 
  37.  *  
  38.  * 2011-12-18  下午04:08:46 
  39.  */  
  40. public class CustomFinancialReportActiviti {  
  41.       
  42.         public static void main(String[] args) {  
  43.             // Create Activiti process engine   
  44.             //创建一个流程引擎对象  
  45. //          ProcessEngine processEngine = ProcessEngineConfiguration   
  46. //            .createStandaloneProcessEngineConfiguration()   
  47. //            .buildProcessEngine();   
  48.               
  49.           //创建一个流程引擎对象(为了便于多册测试,修改 name="databaseSchemaUpdate" value="create-drop"  默认为ture)  
  50.             ProcessEngine processEngine=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml").buildProcessEngine();  
  51.               
  52.                
  53.             // Get Activiti services   
  54.             //获取流程相关的服务  
  55.             RepositoryService repositoryService = processEngine.getRepositoryService();   
  56.             RuntimeService runtimeService = processEngine.getRuntimeService();   
  57.                
  58.             // Deploy the process definition   
  59.             //部署相关的流程配置  
  60.             repositoryService.createDeployment()   
  61.               .addClasspathResource("diagrams/financialReport.bpmn20.xml")   
  62.               .deploy();   
  63.                
  64.             // Start a process instance   
  65.             //获取流程实例  
  66.             String procId = runtimeService.startProcessInstanceByKey("financialReport").getId();   
  67.                
  68.             // Get the first task   
  69.             TaskService taskService = processEngine.getTaskService();   
  70.             //获取accountancy组可能要操作的任务  
  71.             List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup("accountancy").list();   
  72.             for (Task task : tasks) {   
  73.               System.out.println("Following task is available for accountancy group: " + task.getName());   
  74.                  
  75.               //设置fozzie代办 claim it   
  76.               taskService.claim(task.getId(), "fozzie");   
  77.             }   
  78.                
  79.             // Verify Fozzie can now retrieve the task   
  80.             //审核fozzie当前的获取的任务数量  
  81.             tasks = taskService.createTaskQuery().taskAssignee("fozzie").list();   
  82.             for (Task task : tasks) {   
  83.               System.out.println("Task for fozzie: " + task.getName());   
  84.                  
  85.               // Complete the task   
  86.               //设置forzze完毕  
  87.               taskService.complete(task.getId());   
  88.             }   
  89.                
  90.             System.out.println("Number of tasks for fozzie: "    
  91.                     + taskService.createTaskQuery().taskAssignee("fozzie").count());   
  92.                
  93.             // Retrieve and claim the second task   
  94.             //管理者审核报告并让kermit代办  
  95.             tasks = taskService.createTaskQuery().taskCandidateGroup("management").list();   
  96.             for (Task task : tasks) {   
  97.               System.out.println("Following task is available for accountancy group: " + task.getName());   
  98.               taskService.claim(task.getId(), "kermit");   
  99.             }   
  100.               
  101.             // Completing the second task ends the process   
  102.             //完成报告  
  103.             for (Task task : tasks) {   
  104.               taskService.complete(task.getId());   
  105.             }   
  106.                
  107.             // verify that the process is actually finished   
  108.             //查询流程实例完成事件  
  109.             HistoryService historyService = processEngine.getHistoryService();   
  110.             HistoricProcessInstance historicProcessInstance =    
  111.               historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();   
  112.             System.out.println("Process instance end time: " + historicProcessInstance.getEndTime());   
  113.           }   
  114.            
  115.         }  

 

 

运行结果如下:

Java代码  
  1. 信息: ProcessEngine default created  
  2. 2011-12-18 17:06:00 org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run  
  3. 信息: JobAcquisitionThread starting to acquire jobs  
  4. 2011-12-18 17:06:00 org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy  
  5. 信息: Processing resource diagrams/financialReport.bpmn20.xml  
  6. 2011-12-18 17:06:01 org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes  
  7. 信息: XMLSchema currently not supported as typeLanguage  
  8. 2011-12-18 17:06:01 org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes  
  9. 信息: XPath currently not supported as expressionLanguage  
  10. Following task is available for accountancy group:<span style="color: #ff0000;"> 财务编写月财务报告</span>  
  11. <span style="color: #ff0000;">Task for fozzie: 财务编写月财务报告</span>  
  12. <span style="color: #ff0000;">Number of tasks for fozzie: 0</span>  
  13. <span style="color: #ff0000;">Following task is available for accountancy group: 股东审核月财务审计报告</span>  
  14. <span style="color: #ff0000;">Process instance end time: Sun Dec 18 17:06:01 CST 2011  
  15. </span>  

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务