|  | @@ -1,23 +1,17 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.teacher.controller;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import java.util.ArrayList;
 | 
	
		
			
				|  |  | -import java.util.HashMap;
 | 
	
		
			
				|  |  | -import java.util.List;
 | 
	
		
			
				|  |  | -import java.util.Map;
 | 
	
		
			
				|  |  | +import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | +import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import org.apache.commons.lang.StringUtils;
 | 
	
		
			
				|  |  |  import org.snaker.engine.SnakerEngine;
 | 
	
		
			
				|  |  |  import org.snaker.engine.access.Page;
 | 
	
		
			
				|  |  |  import org.snaker.engine.access.QueryFilter;
 | 
	
		
			
				|  |  |  import org.snaker.engine.core.AccessService;
 | 
	
		
			
				|  |  |  import org.snaker.engine.entity.HistoryOrder;
 | 
	
		
			
				|  |  | -import org.snaker.engine.entity.Task;
 | 
	
		
			
				|  |  |  import org.snaker.engine.entity.WorkItem;
 | 
	
		
			
				|  |  | -import org.snaker.engine.model.TaskModel.TaskType;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | -import org.springframework.ui.ModelMap;
 | 
	
		
			
				|  |  | +import org.springframework.http.HttpStatus;
 | 
	
		
			
				|  |  |  import org.springframework.web.bind.annotation.GetMapping;
 | 
	
		
			
				|  |  | -import org.springframework.web.bind.annotation.PostMapping;
 | 
	
		
			
				|  |  |  import org.springframework.web.bind.annotation.RequestMapping;
 | 
	
		
			
				|  |  |  import org.springframework.web.bind.annotation.RestController;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -32,6 +26,7 @@ import com.ym.mec.common.controller.BaseController;
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  @RestController
 | 
	
		
			
				|  |  |  @RequestMapping(value = "/snaker/task")
 | 
	
		
			
				|  |  | +@Api(tags = "流程任务")
 | 
	
		
			
				|  |  |  public class TaskController extends BaseController {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
	
		
			
				|  | @@ -40,170 +35,89 @@ public class TaskController extends BaseController {
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private SysUserFeignService SysUserFeignService;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	@GetMapping(value = "home")
 | 
	
		
			
				|  |  | -	public Object homeTaskList() {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		List<String> list = new ArrayList<String>();
 | 
	
		
			
				|  |  | -		list.add(user.getUsername());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		String[] assignees = new String[list.size()];
 | 
	
		
			
				|  |  | -		list.toArray(assignees);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		Page<WorkItem> majorPage = new Page<WorkItem>(5);
 | 
	
		
			
				|  |  | -		Page<WorkItem> aidantPage = new Page<WorkItem>(3);
 | 
	
		
			
				|  |  | -		Page<HistoryOrder> ccorderPage = new Page<HistoryOrder>(3);
 | 
	
		
			
				|  |  | -		List<WorkItem> majorWorks = snakerEngine.query().getWorkItems(majorPage,
 | 
	
		
			
				|  |  | -				new QueryFilter().setOperators(assignees).setTaskType(TaskType.Major.ordinal()));
 | 
	
		
			
				|  |  | -		List<WorkItem> aidantWorks = snakerEngine.query().getWorkItems(aidantPage,
 | 
	
		
			
				|  |  | -				new QueryFilter().setOperators(assignees).setTaskType(TaskType.Aidant.ordinal()));
 | 
	
		
			
				|  |  | -		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);
 | 
	
		
			
				|  |  | -		model.addAttribute("aidantTotal", aidantPage.getTotalCount());
 | 
	
		
			
				|  |  | -		model.addAttribute("ccorderWorks", ccWorks);
 | 
	
		
			
				|  |  | -		model.addAttribute("ccorderTotal", ccorderPage.getTotalCount());
 | 
	
		
			
				|  |  | -		return succeed(model);
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  	/**
 | 
	
		
			
				|  |  | -	 * 根据当前用户查询我发起的任务列表
 | 
	
		
			
				|  |  | +	 * 查询我发起的任务列表
 | 
	
		
			
				|  |  |  	 * @param model
 | 
	
		
			
				|  |  |  	 * @return
 | 
	
		
			
				|  |  |  	 */
 | 
	
		
			
				|  |  | -	@GetMapping(value = "queryCreatedList")
 | 
	
		
			
				|  |  | -	public Object queryCreatedList(Page<HistoryOrder> page) {
 | 
	
		
			
				|  |  | +	@GetMapping(value = "queryMyCreatedList")
 | 
	
		
			
				|  |  | +	@ApiOperation("查询我发起的任务列表")
 | 
	
		
			
				|  |  | +	public Object queryMyCreatedList(Page<HistoryOrder> page) {
 | 
	
		
			
				|  |  |  		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +		if (user == null) {
 | 
	
		
			
				|  |  | +			return failed(HttpStatus.FORBIDDEN, "请登录");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		snakerEngine.query().getHistoryOrders(page, new QueryFilter().setOperator(user.getUsername()));
 | 
	
		
			
				|  |  | +		snakerEngine.query().getHistoryOrders(page, new QueryFilter().setOperator(user.getId()+""));
 | 
	
		
			
				|  |  |  		return succeed(page);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/**
 | 
	
		
			
				|  |  | -	 * 根据当前用户查询待办任务列表
 | 
	
		
			
				|  |  | +	 * 查询我待办任务列表
 | 
	
		
			
				|  |  |  	 * @param model
 | 
	
		
			
				|  |  |  	 * @return
 | 
	
		
			
				|  |  |  	 */
 | 
	
		
			
				|  |  |  	@GetMapping(value = "queryWaitList")
 | 
	
		
			
				|  |  | +	@ApiOperation("查询我待办任务列表")
 | 
	
		
			
				|  |  |  	public Object queryWaitList(Page<WorkItem> page) {
 | 
	
		
			
				|  |  |  		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +		if (user == null) {
 | 
	
		
			
				|  |  | +			return failed(HttpStatus.FORBIDDEN, "请登录");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		snakerEngine.query().getWorkItems(page, new QueryFilter().setOperator(user.getUsername()));
 | 
	
		
			
				|  |  |  		return succeed(page);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/**
 | 
	
		
			
				|  |  | -	 * 根据当前用户查询已办任务列表
 | 
	
		
			
				|  |  | +	 * 查询我已办任务列表
 | 
	
		
			
				|  |  |  	 * @param model
 | 
	
		
			
				|  |  |  	 * @return
 | 
	
		
			
				|  |  |  	 */
 | 
	
		
			
				|  |  | -	@GetMapping(value = "querypProcessedList")
 | 
	
		
			
				|  |  | -	public Object querypProcessedList(Page<WorkItem> page) {
 | 
	
		
			
				|  |  | +	@GetMapping(value = "queryProcessedList")
 | 
	
		
			
				|  |  | +	@ApiOperation("查询我已办任务列表")
 | 
	
		
			
				|  |  | +	public Object queryProcessedList(Page<WorkItem> page) {
 | 
	
		
			
				|  |  |  		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		snakerEngine.query().getHistoryWorkItems(page, new QueryFilter().setOperator(user.getUsername()));
 | 
	
		
			
				|  |  | -		return succeed(page);
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	@PostMapping(value = "actor/add")
 | 
	
		
			
				|  |  | -	public Object addTaskActor(String orderId, String taskName, String operator) {
 | 
	
		
			
				|  |  | -		List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(orderId));
 | 
	
		
			
				|  |  | -		for (Task task : tasks) {
 | 
	
		
			
				|  |  | -			if (task.getTaskName().equalsIgnoreCase(taskName) && StringUtils.isNotEmpty(operator)) {
 | 
	
		
			
				|  |  | -				snakerEngine.task().addTaskActor(task.getId(), operator);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		return succeed();
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	@GetMapping(value = "tip")
 | 
	
		
			
				|  |  | -	public Object addTaskActor(String orderId, String taskName) {
 | 
	
		
			
				|  |  | -		List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(orderId));
 | 
	
		
			
				|  |  | -		StringBuilder builder = new StringBuilder();
 | 
	
		
			
				|  |  | -		String createTime = "";
 | 
	
		
			
				|  |  | -		for (Task task : tasks) {
 | 
	
		
			
				|  |  | -			if (task.getTaskName().equalsIgnoreCase(taskName)) {
 | 
	
		
			
				|  |  | -				String[] actors = snakerEngine.query().getTaskActorsByTaskId(task.getId());
 | 
	
		
			
				|  |  | -				for (String actor : actors) {
 | 
	
		
			
				|  |  | -					builder.append(actor).append(",");
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -				createTime = task.getCreateTime();
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -		if (builder.length() > 0) {
 | 
	
		
			
				|  |  | -			builder.deleteCharAt(builder.length() - 1);
 | 
	
		
			
				|  |  | +		if (user == null) {
 | 
	
		
			
				|  |  | +			return failed(HttpStatus.FORBIDDEN, "请登录");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		Map<String, String> data = new HashMap<String, String>();
 | 
	
		
			
				|  |  | -		data.put("actors", builder.toString());
 | 
	
		
			
				|  |  | -		data.put("createTime", createTime);
 | 
	
		
			
				|  |  | -		return succeed(data);
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	/**
 | 
	
		
			
				|  |  | -	 * 活动任务查询列表
 | 
	
		
			
				|  |  | -	 * @param model
 | 
	
		
			
				|  |  | -	 * @return
 | 
	
		
			
				|  |  | -	 */
 | 
	
		
			
				|  |  | -	@GetMapping(value = "active/more")
 | 
	
		
			
				|  |  | -	public Object activeTaskList(Page<WorkItem> page, Integer taskType) {
 | 
	
		
			
				|  |  | -		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		List<String> list = new ArrayList<String>();
 | 
	
		
			
				|  |  | -		list.add(user.getUsername());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		String[] assignees = new String[list.size()];
 | 
	
		
			
				|  |  | -		list.toArray(assignees);
 | 
	
		
			
				|  |  | -		snakerEngine.query().getWorkItems(page, new QueryFilter().setOperators(assignees).setTaskType(taskType));
 | 
	
		
			
				|  |  | +		snakerEngine.query().getHistoryWorkItems(page, new QueryFilter().setOperator(user.getId()+""));
 | 
	
		
			
				|  |  |  		return succeed(page);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/**
 | 
	
		
			
				|  |  | -	 * 活动任务查询列表
 | 
	
		
			
				|  |  | +	 * 抄送我的已读列表
 | 
	
		
			
				|  |  |  	 * @param model
 | 
	
		
			
				|  |  |  	 * @return
 | 
	
		
			
				|  |  |  	 */
 | 
	
		
			
				|  |  | -	@GetMapping(value = "active/ccmore")
 | 
	
		
			
				|  |  | -	public Object activeCCList(Page<HistoryOrder> page) {
 | 
	
		
			
				|  |  | +	@GetMapping(value = "queryCCReadList")
 | 
	
		
			
				|  |  | +	@ApiOperation("抄送我的已读列表")
 | 
	
		
			
				|  |  | +	public Object queryCCReadList(Page<HistoryOrder> page) {
 | 
	
		
			
				|  |  |  		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +		if (user == null) {
 | 
	
		
			
				|  |  | +			return failed(HttpStatus.FORBIDDEN, "请登录");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		List<String> list = new ArrayList<String>();
 | 
	
		
			
				|  |  | -		list.add(user.getUsername());
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		String[] assignees = new String[list.size()];
 | 
	
		
			
				|  |  | -		list.toArray(assignees);
 | 
	
		
			
				|  |  | -		snakerEngine.query().getCCWorks(page, new QueryFilter().setOperators(assignees).setState(AccessService.STATE_ACTIVE));
 | 
	
		
			
				|  |  | +		snakerEngine.query().getCCWorks(page, new QueryFilter().setOperator(user.getId()+"").setState(AccessService.STATE_FINISH));
 | 
	
		
			
				|  |  |  		return succeed(page);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/**
 | 
	
		
			
				|  |  | -	 * 活动任务的驳回
 | 
	
		
			
				|  |  | +	 * 抄送我的未读列表
 | 
	
		
			
				|  |  |  	 * @param model
 | 
	
		
			
				|  |  | -	 * @param taskId
 | 
	
		
			
				|  |  |  	 * @return
 | 
	
		
			
				|  |  |  	 */
 | 
	
		
			
				|  |  | -	@PostMapping(value = "reject")
 | 
	
		
			
				|  |  | -	public Object activeTaskReject(String taskId) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +	@GetMapping(value = "queryCCUnReadList")
 | 
	
		
			
				|  |  | +	@ApiOperation("抄送我的未读列表")
 | 
	
		
			
				|  |  | +	public Object queryCCUnReadList(Page<HistoryOrder> page) {
 | 
	
		
			
				|  |  |  		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +		if (user == null) {
 | 
	
		
			
				|  |  | +			return failed(HttpStatus.FORBIDDEN, "请登录");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		snakerEngine.executeAndJumpTask(taskId, user.getUsername(), null, null);
 | 
	
		
			
				|  |  | -		return succeed();
 | 
	
		
			
				|  |  | +		snakerEngine.query().getCCWorks(page, new QueryFilter().setOperator(user.getUsername()).setState(AccessService.STATE_ACTIVE));
 | 
	
		
			
				|  |  | +		return succeed(page);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	/**
 | 
	
		
			
				|  |  | -	 * 历史任务撤回
 | 
	
		
			
				|  |  | -	 * @param orderId
 | 
	
		
			
				|  |  | -	 * @return
 | 
	
		
			
				|  |  | -	 */
 | 
	
		
			
				|  |  | -	@PostMapping(value = "undo")
 | 
	
		
			
				|  |  | -	public Object historyTaskUndo(String orderId) {
 | 
	
		
			
				|  |  | -		SysUser user = SysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | -		snakerEngine.order().withdraw(orderId, user.getUsername());
 | 
	
		
			
				|  |  | -		return succeed();
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  |  }
 |