activity工作流

<!-- activiti工作流依赖 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>5.17.0</version>
        </dependency>

        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring</artifactId>
            <version>5.17.0</version>
        </dependency>


配置工作流的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:beabs="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-3.2.xsd ">

    <!-- 加载activiti引擎 -->
    <bean id="activitiTransactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
        p:dataSource-ref="dataSource" />

    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
        <property name="dataSource" ref="dataSource" />
        <property name="transactionManager" ref="activitiTransactionManager" />
        <property name="databaseSchemaUpdate" value="false" />
        <property name="dbIdentityUsed" value="false" />
        <property name="jobExecutorActivate" value="false" />
    </bean>

    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
        <property name="processEngineConfiguration" ref="processEngineConfiguration" />
    </bean>

    <!-- activiti的各种服务接口 -->
    <bean id="repositoryService" factory-bean="processEngine"
        factory-method="getRepositoryService" />

    <bean id="runtimeService" factory-bean="processEngine"
        factory-method="getRuntimeService" />

    <bean id="formService" factory-bean="processEngine"
        factory-method="getFormService" />

    <bean id="identityService" factory-bean="processEngine"
        factory-method="getIdentityService" />

    <bean id="taskService" factory-bean="processEngine"
        factory-method="getTaskService" />

    <bean id="historyService" factory-bean="processEngine"
        factory-method="getHistoryService" />

    <bean id="managementService" factory-bean="processEngine"
        factory-method="getManagementService" />
</beans>

配置相关数据源,查看文章http://blog.csdn.net/u013421749/article/details/48160467


@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
    public Deployment saveNewDeploye(File file, String filename) throws Exception {
        ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file));
        Deployment deployment = repositoryService// 与流程定义和部署对象相关的Service
                .createDeployment()// 创建一个部署对象
                .name(filename)// 添加部署的名称
                .addZipInputStream(zipInputStream).deploy();// 完成部署
        return deployment;
    }

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
    public void complete(String taskId, Map<String, Object> variables, String userName, String message)
            throws Exception {
        Task task = taskService.createTaskQuery()//
                .taskId(taskId)// 使用任务ID查询
                .singleResult();
        // 获取流程实例ID
        String processInstanceId = task.getProcessInstanceId();
        Authentication.setAuthenticatedUserId(userName);////批注人的名称 一定要写,不然查看的时候不知道人物信息
        taskService.addComment(taskId, processInstanceId, message);//添加批注信息//message为批注内容
        taskService.complete(taskId, variables);
    }

获取批注内容

public List<Comment> getProcessComments(String taskId) {
  List<Comment> historyCommnets = new ArrayList<>();
//	 1) 获取流程实例的ID
  Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult();
  ProcessInstance pi =runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
//       2)通过流程实例查询所有的(用户任务类型)历史活动   
  List<HistoricActivityInstance> hais = historyService.createHistoricActivityInstanceQuery().processInstanceId(pi.getId()).activityType("userTask").list();
//       3)查询每个历史任务的批注
  for (HistoricActivityInstance hai : hais) {
      String historytaskId = hai.getTaskId();
      List<Comment> comments = taskService.getTaskComments(historytaskId);
      // 4)如果当前任务有批注信息,添加到集合中
      if(comments!=null && comments.size()>0){
    historyCommnets.addAll(comments);
      }
  }
//       5)返回
   return historyCommnets;
}  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值