yonge 5 år sedan
förälder
incheckning
20a13427d7

+ 16 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/WorkflowApplication.java

@@ -1,12 +1,18 @@
 package com.ym.mec.workfow;
 
+import javax.sql.DataSource;
+
 import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
 
 import com.spring4all.swagger.EnableSwagger2Doc;
 
@@ -18,7 +24,17 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 @Configuration
 @EnableSwagger2Doc
 public class WorkflowApplication {
+
+	@Autowired
+	private DataSource dataSource;
+	
 	public static void main(String[] args) {
 		SpringApplication.run(WorkflowApplication.class, args);
 	}
+
+	@Bean
+	public DataSourceTransactionManager transactionManager(DataSourceProperties properties) {
+		DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(this.dataSource);
+		return transactionManager;
+	}
 }

+ 0 - 6
workflowy/src/main/java/org/snaker/SnakerFlowyApplication.java

@@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
-import org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -21,8 +20,6 @@ public class SnakerFlowyApplication {
 	@Autowired
 	private DataSource dataSource;
 	
-	private TransactionManagerCustomizers transactionManagerCustomizers;
-
 	public static void main(String[] args) {
 		SpringApplication.run(SnakerFlowyApplication.class, args);
 	}
@@ -35,9 +32,6 @@ public class SnakerFlowyApplication {
 	@Bean
 	public DataSourceTransactionManager transactionManager(DataSourceProperties properties) {
 		DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(this.dataSource);
-		if (this.transactionManagerCustomizers != null) {
-			this.transactionManagerCustomizers.customize(transactionManager);
-		}
 		return transactionManager;
 	}
 }

+ 1 - 1
workflowy/src/main/java/org/snaker/engine/core/ManagerService.java

@@ -45,7 +45,7 @@ public class ManagerService extends AccessService implements IManagerService {
 		}
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void deleteSurrogate(String id) {
 		Surrogate surrogate = getSurrogate(id);
 		AssertHelper.notNull(surrogate);

+ 13 - 13
workflowy/src/main/java/org/snaker/engine/core/OrderService.java

@@ -44,7 +44,7 @@ public class OrderService extends AccessService implements IOrderService {
 	 * 创建活动实例
 	 * @see org.snaker.engine.core.OrderService#createOrder(Process, String, Map, String, String)
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order createOrder(Process process, String operator, Map<String, Object> args) {
 		return createOrder(process, operator, args, null, null);
 	}
@@ -52,7 +52,7 @@ public class OrderService extends AccessService implements IOrderService {
 	/**
 	 * 创建活动实例
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order createOrder(Process process, String operator, Map<String, Object> args, 
 			String parentId, String parentNodeName) {
 		Order order = new Order();
@@ -88,7 +88,7 @@ public class OrderService extends AccessService implements IOrderService {
      * @param orderId 实例id
      * @param args 变量数据
      */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public void addVariable(String orderId, Map<String, Object> args) {
         Order order = access().getOrder(orderId);
         Map<String, Object> data = order.getVariableMap();
@@ -100,7 +100,7 @@ public class OrderService extends AccessService implements IOrderService {
     /**
 	 * 创建实例的抄送
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void createCCOrder(String orderId, String creator, String... actorIds) {
 		for(String actorId : actorIds) {
 			CCOrder ccorder = new CCOrder();
@@ -116,7 +116,7 @@ public class OrderService extends AccessService implements IOrderService {
 	/**
 	 * 流程实例数据会保存至活动实例表、历史实例表
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void saveOrder(Order order) {
 		HistoryOrder history = new HistoryOrder(order);
 		history.setOrderState(STATE_ACTIVE);
@@ -127,7 +127,7 @@ public class OrderService extends AccessService implements IOrderService {
 	/**
 	 * 更新活动实例的last_Updator、last_Update_Time、expire_Time、version、variable
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void updateOrder(Order order) {
 		access().updateOrder(order);
 	}
@@ -135,7 +135,7 @@ public class OrderService extends AccessService implements IOrderService {
 	/**
 	 * 更新抄送记录状态为已阅
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void updateCCStatus(String orderId, String... actorIds) {
         List<CCOrder> ccorders = access().getCCOrder(orderId, actorIds);
         AssertHelper.notNull(ccorders);
@@ -149,7 +149,7 @@ public class OrderService extends AccessService implements IOrderService {
 	/**
 	 * 删除指定的抄送记录
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void deleteCCOrder(String orderId, String actorId) {
         List<CCOrder> ccorders = access().getCCOrder(orderId, actorId);
 		AssertHelper.notNull(ccorders);
@@ -161,7 +161,7 @@ public class OrderService extends AccessService implements IOrderService {
 	/**
 	 * 删除活动流程实例数据,更新历史流程实例的状态、结束时间
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void complete(String orderId) {
 		Order order = access().getOrder(orderId);
 		HistoryOrder history = access().getHistOrder(orderId);
@@ -180,7 +180,7 @@ public class OrderService extends AccessService implements IOrderService {
 	 * 强制中止流程实例
 	 * @see org.snaker.engine.core.OrderService#terminate(String, String)
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void terminate(String orderId) {
 		terminate(orderId, null);
 	}
@@ -188,7 +188,7 @@ public class OrderService extends AccessService implements IOrderService {
 	/**
 	 * 强制中止活动实例,并强制完成活动任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void terminate(String orderId, String operator) {
 		SnakerEngine engine = ServiceContext.getEngine();
 		List<Task> tasks = engine
@@ -215,7 +215,7 @@ public class OrderService extends AccessService implements IOrderService {
      * @param orderId 实例id
      * @return 活动实例对象
      */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public Order resume(String orderId) {
         HistoryOrder historyOrder = access().getHistOrder(orderId);
         Order order = historyOrder.undo();
@@ -241,7 +241,7 @@ public class OrderService extends AccessService implements IOrderService {
 	 * 4.wf_cc_order
 	 * @param id 实例id
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void cascadeRemove(String id) {
 		HistoryOrder historyOrder = access().getHistOrder(id);
 		AssertHelper.notNull(historyOrder);

+ 7 - 7
workflowy/src/main/java/org/snaker/engine/core/ProcessService.java

@@ -81,7 +81,7 @@ public class ProcessService extends AccessService implements IProcessService, Ca
 	/**
 	 * 保存process实体对象
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void saveProcess(Process process) {
 		access().saveProcess(process);
 	}
@@ -89,7 +89,7 @@ public class ProcessService extends AccessService implements IProcessService, Ca
 	/**
 	 * 更新process的类别
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void updateType(String id, String type) {
         Process entity = getProcessById(id);
         entity.setType(type);
@@ -177,7 +177,7 @@ public class ProcessService extends AccessService implements IProcessService, Ca
 	 * 根据流程定义xml的输入流解析为字节数组,保存至数据库中,并且put到缓存中
 	 * @param input 定义输入流
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public String deploy(InputStream input) {
 		return deploy(input, null);
 	}
@@ -187,7 +187,7 @@ public class ProcessService extends AccessService implements IProcessService, Ca
 	 * @param input 定义输入流
 	 * @param creator 创建人
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public String deploy(InputStream input, String creator) {
 		AssertHelper.notNull(input);
 		try {
@@ -219,7 +219,7 @@ public class ProcessService extends AccessService implements IProcessService, Ca
 	 * 根据流程定义id、xml的输入流解析为字节数组,保存至数据库中,并且重新put到缓存中
 	 * @param input 定义输入流
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void redeploy(String id, InputStream input) {
 		AssertHelper.notNull(input);
 		Process entity = access().getProcess(id);
@@ -248,7 +248,7 @@ public class ProcessService extends AccessService implements IProcessService, Ca
 	/**
 	 * 根据processId卸载流程
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void undeploy(String id) {
 		Process entity = access().getProcess(id);
 		entity.setState(STATE_FINISH);
@@ -259,7 +259,7 @@ public class ProcessService extends AccessService implements IProcessService, Ca
 	/**
 	 * 级联删除指定流程定义的所有数据
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void cascadeRemove(String id) {
 		Process entity = access().getProcess(id);
 		List<HistoryOrder> historyOrders = access().getHistoryOrders(null, new QueryFilter().setProcessId(id));

+ 16 - 16
workflowy/src/main/java/org/snaker/engine/core/SnakerEngineImpl.java

@@ -124,7 +124,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据流程定义ID启动流程实例
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceById(String id) {
 		return startInstanceById(id, null, null);
 	}
@@ -132,7 +132,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据流程定义ID,操作人ID启动流程实例
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceById(String id, String operator) {
 		return startInstanceById(id, operator, null);
 	}
@@ -140,7 +140,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据流程定义ID,操作人ID,参数列表启动流程实例
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceById(String id, String operator, Map<String, Object> args) {
 		if(args == null) args = new HashMap<String, Object>();
 		Process process = process().getProcessById(id);
@@ -152,7 +152,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	 * 根据流程名称启动流程实例
 	 * @since 1.3
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceByName(String name) {
 		return startInstanceByName(name, null, null, null);
 	}
@@ -161,7 +161,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	 * 根据流程名称、版本号启动流程实例
 	 * @since 1.3
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceByName(String name, Integer version) {
 		return startInstanceByName(name, version, null, null);
 	}
@@ -170,7 +170,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	 * 根据流程名称、版本号、操作人启动流程实例
 	 * @since 1.3
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceByName(String name, Integer version,
 			String operator) {
 		return startInstanceByName(name, version, operator, null);
@@ -180,7 +180,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	 * 根据流程名称、版本号、操作人、参数列表启动流程实例
 	 * @since 1.3
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceByName(String name, Integer version,
 			String operator, Map<String, Object> args) {
 		if(args == null) args = new HashMap<String, Object>();
@@ -189,7 +189,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 		return startProcess(process, operator, args);
 	}
 
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	private Order startProcess(Process process, String operator, Map<String, Object> args) {
 		Execution execution = execute(process, operator, args, null, null);
 		if(process.getModel() != null) {
@@ -204,7 +204,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据父执行对象启动子流程实例(用于启动子流程)
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Order startInstanceByExecution(Execution execution) {
 		Process process = execution.getProcess();
 		StartModel start = process.getModel().getStart();
@@ -225,7 +225,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	 * @param parentNodeName 启动子流程的父流程节点名称
 	 * @return Execution
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	private Execution execute(Process process, String operator, Map<String, Object> args, 
 			String parentId, String parentNodeName) {
 		Order order = order().createOrder(process, operator, args, parentId, parentNodeName);
@@ -240,7 +240,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据任务主键ID执行任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public List<Task> executeTask(String taskId) {
 		return executeTask(taskId, null);
 	}
@@ -248,7 +248,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据任务主键ID,操作人ID执行任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public List<Task> executeTask(String taskId, String operator) {
 		return executeTask(taskId, operator, null);
 	}
@@ -256,7 +256,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据任务主键ID,操作人ID,参数列表执行任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public List<Task> executeTask(String taskId, String operator, Map<String, Object> args) {
 		//完成任务,并且构造执行对象
 		Execution execution = execute(taskId, operator, args);
@@ -275,7 +275,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	 * 1、nodeName为null时,则驳回至上一步处理
 	 * 2、nodeName不为null时,则任意跳转,即动态创建转移
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public List<Task> executeAndJumpTask(String taskId, String operator, Map<String, Object> args, String nodeName) {
 		Execution execution = execute(taskId, operator, args);
 		if(execution == null) return Collections.emptyList();
@@ -300,7 +300,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	/**
 	 * 根据流程实例ID,操作人ID,参数列表按照节点模型model创建新的自由任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public List<Task> createFreeTask(String orderId, String operator, Map<String, Object> args, TaskModel model) {
 		Order order = query().getOrder(orderId);
 		AssertHelper.notNull(order, "指定的流程实例[id=" + orderId + "]已完成或不存在");
@@ -319,7 +319,7 @@ public class SnakerEngineImpl implements SnakerEngine {
 	 * @param args 参数列表
 	 * @return Execution
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	private Execution execute(String taskId, String operator, Map<String, Object> args) {
 		if(args == null) args = new HashMap<String, Object>();
 		Task task = task().complete(taskId, operator, args);

+ 17 - 17
workflowy/src/main/java/org/snaker/engine/core/TaskService.java

@@ -48,7 +48,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 完成指定任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Task complete(String taskId) {
 		return complete(taskId, null, null);
 	}
@@ -56,7 +56,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 完成指定任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Task complete(String taskId, String operator) {
 		return complete(taskId, operator, null);
 	}
@@ -66,7 +66,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * 该方法仅仅结束活动任务,并不能驱动流程继续执行
 	 * @see SnakerEngineImpl#executeTask(String, String, java.util.Map)
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Task complete(String taskId, String operator, Map<String, Object> args) {
 		Task task = access().getTask(taskId);
 		AssertHelper.notNull(task, "指定的任务[id=" + taskId + "]不存在");
@@ -99,7 +99,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * 更新任务对象的finish_Time、operator、expire_Time、version、variable
 	 * @param task 任务对象
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void updateTask(Task task) {
 		access().updateTask(task);
 	}
@@ -110,7 +110,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * @param model 自定义节点模型
 	 * @return 历史任务对象
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public HistoryTask history(Execution execution, CustomModel model) {
 		HistoryTask historyTask = new HistoryTask();
 		historyTask.setId(StringHelper.getPrimaryKey());
@@ -132,7 +132,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 提取指定任务,设置完成时间及操作人,状态不改变
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Task take(String taskId, String operator) {
 		Task task = access().getTask(taskId);
 		AssertHelper.notNull(task, "指定的任务[id=" + taskId + "]不存在");
@@ -148,7 +148,7 @@ public class TaskService extends AccessService implements ITaskService {
     /**
      * 唤醒指定的历史任务
      */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public Task resume(String taskId, String operator) {
         HistoryTask histTask = access().getHistTask(taskId);
         AssertHelper.notNull(histTask, "指定的历史任务[id=" + taskId + "]不存在");
@@ -171,7 +171,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 向指定任务添加参与者
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void addTaskActor(String taskId, String... actors) {
 		addTaskActor(taskId, null, actors);
 	}
@@ -180,7 +180,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * 向指定任务添加参与者
 	 * 该方法根据performType类型判断是否需要创建新的活动任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void addTaskActor(String taskId, Integer performType, String... actors) {
 		Task task = access().getTask(taskId);
 		AssertHelper.notNull(task, "指定的任务[id=" + taskId + "]不存在");
@@ -221,7 +221,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 向指定任务移除参与者
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public void removeTaskActor(String taskId, String... actors) {
 		Task task = access().getTask(taskId);
 		AssertHelper.notNull(task, "指定的任务[id=" + taskId + "]不存在");
@@ -257,7 +257,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 撤回指定的任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Task withdrawTask(String taskId, String operator) {
 		HistoryTask hist = access().getHistTask(taskId);
 		AssertHelper.notNull(hist, "指定的历史任务[id=" + taskId + "]不存在");
@@ -286,7 +286,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 驳回任务
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Task rejectTask(ProcessModel model, Task currentTask) {
 		String parentTaskId = currentTask.getParentTaskId();
 		if(StringHelper.isEmpty(parentTaskId) || parentTaskId.equals(START)) {
@@ -313,7 +313,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * @param taskId 任务id
 	 * @param actorIds 参与者id集合
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	private void assignTask(String taskId, String... actorIds) {
 		if(actorIds == null || actorIds.length == 0) return;
 		for(String actorId : actorIds) {
@@ -330,7 +330,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * 根据已有任务、任务类型、参与者创建新的任务
 	 * 适用于转派,动态协办处理
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public List<Task> createNewTask(String taskId, int taskType, String... actors) {
 		Task task = access().getTask(taskId);
 		AssertHelper.notNull(task, "指定的任务[id=" + taskId + "]不存在");
@@ -374,7 +374,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * @param execution 执行对象
 	 * @return List<Task> 任务列表
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public List<Task> createTask(TaskModel taskModel, Execution execution) {
 		List<Task> tasks = new ArrayList<Task>();
 		
@@ -421,7 +421,7 @@ public class TaskService extends AccessService implements ITaskService {
 	 * @param execution 执行对象
 	 * @return Task任务对象
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	private Task createTaskBase(TaskModel model, Execution execution) {
 		Task task = new Task();
 		task.setOrderId(execution.getOrder().getId());
@@ -442,7 +442,7 @@ public class TaskService extends AccessService implements ITaskService {
 	/**
 	 * 由DBAccess实现类持久化task对象
 	 */
-	@Transactional(propagation = Propagation.REQUIRED, noRollbackFor = Exception.class)
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	private Task saveTask(Task task, String... actors) {
 		task.setId(StringHelper.getPrimaryKey());
 		task.setPerformType(PerformType.ANY.ordinal());