yonge 5 years ago
parent
commit
afbcad3538

+ 3 - 3
mec-eureka/src/main/resources/application.yml

@@ -11,10 +11,10 @@ eureka:
     fetchRegistry: false
     serviceUrl:
       defaultZone: http://admin:admin123@localhost:8761/eureka/eureka/
-    ###因为自己是为注册中心,是否需要自己注册自己
+    ###是否向服务注册中心注册自己
     register-with-eureka: false
-    ###因为自己是为注册中心,是否需要检索服务
-    fetch-registry: false
+    ###是否需要检索服务
+    fetch-registry: true
     
 spring:
   application:

+ 1 - 1
mec-gateway/mec-gateway-web/src/main/resources/application.yml

@@ -71,7 +71,7 @@ hystrix:
       execution: 
         isolation: 
           thread: 
-            timeoutInMilliseconds: 6000
+            timeoutInMilliseconds: 60000
             
             
 #spring boot admin 相关配置

+ 8 - 8
mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/TaskController.java

@@ -46,7 +46,7 @@ public class TaskController extends BaseController {
 		SysUser user = SysUserFeignService.queryUserInfo();
 
 		List<String> list = new ArrayList<String>();
-		list.add(user.getUsername());
+		list.add(user.getId() + "");
 
 		String[] assignees = new String[list.size()];
 		list.toArray(assignees);
@@ -61,7 +61,7 @@ public class TaskController extends BaseController {
 		List<HistoryOrder> ccWorks = snakerEngine.query().getCCWorks(ccorderPage, new QueryFilter().setOperators(assignees).setState(1));
 
 		ModelMap model = new ModelMap();
-		
+
 		model.addAttribute("majorWorks", majorWorks);
 		model.addAttribute("majorTotal", majorPage.getTotalCount());
 		model.addAttribute("aidantWorks", aidantWorks);
@@ -80,7 +80,7 @@ public class TaskController extends BaseController {
 	public Object queryWaitList(Page<WorkItem> page) {
 		SysUser user = SysUserFeignService.queryUserInfo();
 
-		snakerEngine.query().getWorkItems(page, new QueryFilter().setOperator(user.getUsername()));
+		snakerEngine.query().getWorkItems(page, new QueryFilter().setOperator(user.getId() + ""));
 		return succeed(page);
 	}
 
@@ -128,7 +128,7 @@ public class TaskController extends BaseController {
 		SysUser user = SysUserFeignService.queryUserInfo();
 
 		List<String> list = new ArrayList<String>();
-		list.add(user.getUsername());
+		list.add(user.getId() + "");
 
 		String[] assignees = new String[list.size()];
 		list.toArray(assignees);
@@ -146,7 +146,7 @@ public class TaskController extends BaseController {
 		SysUser user = SysUserFeignService.queryUserInfo();
 
 		List<String> list = new ArrayList<String>();
-		list.add(user.getUsername());
+		list.add(user.getId() + "");
 
 		String[] assignees = new String[list.size()];
 		list.toArray(assignees);
@@ -165,7 +165,7 @@ public class TaskController extends BaseController {
 
 		SysUser user = SysUserFeignService.queryUserInfo();
 
-		snakerEngine.executeAndJumpTask(taskId, user.getUsername(), null, null);
+		snakerEngine.executeAndJumpTask(taskId, user.getId() + "", null, null);
 		return succeed();
 	}
 
@@ -177,7 +177,7 @@ public class TaskController extends BaseController {
 	@GetMapping(value = "history")
 	public Object historyTaskList(Page<WorkItem> page) {
 		SysUser user = SysUserFeignService.queryUserInfo();
-		snakerEngine.query().getHistoryWorkItems(page, new QueryFilter().setOperator(user.getUsername()));
+		snakerEngine.query().getHistoryWorkItems(page, new QueryFilter().setOperator(user.getId() + ""));
 		return succeed(page);
 	}
 
@@ -189,7 +189,7 @@ public class TaskController extends BaseController {
 	@PostMapping(value = "undo")
 	public Object historyTaskUndo(String orderId) {
 		SysUser user = SysUserFeignService.queryUserInfo();
-		snakerEngine.order().withdraw(orderId, user.getUsername());
+		snakerEngine.order().withdraw(orderId, user.getId() + "");
 		return succeed();
 	}
 }

+ 4 - 2
mec-workflow/src/main/java/com/ym/mec/workfow/controller/web/LeaveController.java

@@ -37,11 +37,12 @@ public class LeaveController extends BaseController {
 		Map<String, Object> params = new HashMap<String, Object>();
 		params.put("applyer", user.getId());
 		params.put("days", days);
-		params.put("deptManager", deptManager);
+		//params.put("deptManager", deptManager);
 		params.put("boss", boss);
+		params.put("operator", user.getUsername());
 
 		// 开启实例
-		Order order = snakerEngine.startInstanceById(processId, user.getUsername(), params);
+		Order order = snakerEngine.startInstanceById(processId, user.getId()+"", params);
 
 		// 获取当前任务
 		List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(order.getId()).setOperator(user.getId() + ""));
@@ -62,6 +63,7 @@ public class LeaveController extends BaseController {
 
 		params.put("status", isAgree);
 		params.put("remark", remark);
+		params.put("operator", user.getUsername());
 
 		List<Task> tasks = null;
 

+ 1 - 1
mec-workflow/src/main/resources/flows/leave.snaker

@@ -7,7 +7,7 @@
 <task assignee="applyer" displayName="请假申请" layout="117,122,-1,-1" name="apply" performType="ANY">
 <transition g="" name="transition2" offset="0,0" to="approveDept"/>
 </task>
-<task assignee="deptManager" displayName="部门经理审批" layout="272,122,-1,-1" name="approveDept" performType="ANY">
+<task assignee="ROLE_ADMIN" displayName="部门经理审批" layout="272,122,-1,-1" name="approveDept" performType="ANY">
 <transition g="" name="transition3" offset="0,0" to="decision1"/>
 </task>
 <decision displayName="decision1" layout="426,124,-1,-1" name="decision1">

+ 33 - 3
workflowy/src/main/java/org/snaker/engine/access/QueryFilter.java

@@ -15,9 +15,14 @@
 package org.snaker.engine.access;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
+import org.snaker.engine.Completion;
+import org.snaker.engine.core.ServiceContext;
 import org.snaker.engine.helper.AssertHelper;
+import org.snaker.engine.impl.GeneralAccessStrategy;
 
 /**
  * 通用查询过滤器
@@ -31,7 +36,9 @@ public class QueryFilter implements Serializable {
 	private static final long serialVersionUID = -8155136377911571881L;
     public static final String ASC = "asc";
     public static final String DESC = "desc";
-
+    
+    private GeneralAccessStrategy taskAccessStrategy;
+    
     //排序字段
     private String orderBy;
     //排序类型ASC/DESC
@@ -155,8 +162,16 @@ public class QueryFilter implements Serializable {
 	}
 	public QueryFilter setOperator(String operator) {
 		AssertHelper.notEmpty(operator);
-		this.operators = new String[1];
-		this.operators[0] = operator;
+		
+		List<String> groups = getTaskAccessStrategy().ensureGroup(operator);
+		if(groups == null){
+			groups = new ArrayList<String>();
+		}
+		if(!groups.contains(operator)){
+			groups.add(operator);
+		}
+		
+		this.operators = groups.toArray(new String[groups.size()]);
 		return this;
 	}
 	public String[] getNames() {
@@ -291,4 +306,19 @@ public class QueryFilter implements Serializable {
     public boolean isOrderBySetted() {
         return (StringUtils.isNotBlank(orderBy) && StringUtils.isNotBlank(order));
     }
+	public GeneralAccessStrategy getTaskAccessStrategy() {
+		if(taskAccessStrategy != null) {
+            return taskAccessStrategy;
+        }
+
+		taskAccessStrategy = ServiceContext.find(GeneralAccessStrategy.class);
+        if(taskAccessStrategy == null) {
+            ServiceContext.put(Completion.class.getName(), GeneralAccessStrategy.class);
+            taskAccessStrategy = ServiceContext.find(GeneralAccessStrategy.class);
+        }
+		return taskAccessStrategy;
+	}
+	public void setTaskAccessStrategy(GeneralAccessStrategy taskAccessStrategy) {
+		this.taskAccessStrategy = taskAccessStrategy;
+	}
 }

+ 1 - 1
workflowy/src/main/java/org/snaker/engine/impl/GeneralAccessStrategy.java

@@ -32,7 +32,7 @@ public class GeneralAccessStrategy implements TaskAccessStrategy {
 	 * @param operator 操作人id
 	 * @return List<String> 确定的组集合[如操作人属于多个部门、拥有多个角色]
 	 */
-	protected List<String> ensureGroup(String operator) {
+	public List<String> ensureGroup(String operator) {
 		return null;
 	}
 	

+ 1 - 1
workflowy/src/test/java/test/task/group/CustomAccessStrategy.java

@@ -25,7 +25,7 @@ import org.snaker.engine.impl.GeneralAccessStrategy;
  */
 public class CustomAccessStrategy extends GeneralAccessStrategy {
 	@Override
-	protected List<String> ensureGroup(String operator) {
+	public List<String> ensureGroup(String operator) {
 		List<String> groups = new ArrayList<String>();
 		if(operator.equals("test")) {
 			groups.add("test");