|
@@ -16,18 +16,21 @@
|
|
*/
|
|
*/
|
|
package org.springblade.business.controller;
|
|
package org.springblade.business.controller;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
-import io.swagger.annotations.ApiImplicitParam;
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
-import io.swagger.annotations.ApiParam;
|
|
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
-import javax.validation.Valid;
|
|
|
|
|
|
|
|
|
|
+import org.springblade.business.entity.TaskParallel;
|
|
|
|
+import org.springblade.business.service.ITaskParallelService;
|
|
|
|
+import org.springblade.business.vo.TaskApprovalVO;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Query;
|
|
import org.springblade.core.mp.support.Query;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
-import org.springblade.core.tool.utils.Func;
|
|
|
|
|
|
+import org.springblade.flow.core.entity.BladeFlow;
|
|
|
|
+import org.springblade.flow.core.feign.IFlowClient;
|
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -36,6 +39,9 @@ import org.springblade.business.vo.TaskVO;
|
|
import org.springblade.business.service.ITaskService;
|
|
import org.springblade.business.service.ITaskService;
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 任务审核主表 控制器
|
|
* 任务审核主表 控制器
|
|
*
|
|
*
|
|
@@ -50,20 +56,85 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
private final ITaskService taskService;
|
|
private final ITaskService taskService;
|
|
|
|
|
|
|
|
+ private final ITaskParallelService taskParallelService;
|
|
|
|
+
|
|
|
|
+ private final IFlowClient flowClient;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 审批页详情
|
|
|
|
+ */
|
|
|
|
+ @GetMapping("/query-approval-parameter")
|
|
|
|
+ @ApiOperationSupport(order = 4)
|
|
|
|
+ @ApiOperation(value = "审批页详情")
|
|
|
|
+ public R<TaskApprovalVO> getApprovalTaskParameter(String parallelProcessInstanceId){
|
|
|
|
+
|
|
|
|
+ return R.data(null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取当前用户待办流程
|
|
|
|
+ */
|
|
|
|
+ @GetMapping("/user-to-do-task-list")
|
|
|
|
+ @ApiOperationSupport(order = 3)
|
|
|
|
+ @ApiOperation(value = "获取当前用户待办流程")
|
|
|
|
+ public R<IPage<TaskVO>> todoUserApprovalTask(@RequestParam Integer current, @RequestParam Integer size){
|
|
|
|
+ //最终集合
|
|
|
|
+ List<TaskVO> finalResult = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ //获取待办(基于原生待办)
|
|
|
|
+ IPage<BladeFlow> flowIPage = this.flowClient.selectTodoPage(current, size).getData();
|
|
|
|
+ if(flowIPage != null){
|
|
|
|
+ List<BladeFlow> result = flowIPage.getRecords();
|
|
|
|
+ //获取相关信息
|
|
|
|
+ result.forEach(flow -> {
|
|
|
|
+ TaskParallel taskParallel = this.taskParallelService.getOne(Wrappers.<TaskParallel>lambdaQuery().eq(TaskParallel::getParallelProcessInstanceId, flow.getProcessDefinitionId()).eq(TaskParallel::getIsDeleted, 0));
|
|
|
|
+ if(taskParallel != null){
|
|
|
|
+ //查询主表信息
|
|
|
|
+ Task task = this.taskService.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getProcessInstanceId, taskParallel.getProcessInstanceId()).eq(Task::getIsDeleted, 0));
|
|
|
|
+ //复制数据
|
|
|
|
+ TaskVO vo = new TaskVO();
|
|
|
|
+ BeanUtils.copyProperties(task, vo);
|
|
|
|
+ //设置关键信息
|
|
|
|
+ vo.setTypeValue(new Integer("1").equals(vo.getType()) ? "普通任务" : new Integer("2").equals(vo.getType()) ? "验收任务" : "移交任务");
|
|
|
|
+ vo.setParallelProcessInstanceId(flow.getProcessInstanceId());
|
|
|
|
+ vo.setTaskId(flow.getTaskId());
|
|
|
|
+ vo.setWaitingUserList(taskParallel.getTaskUserName(), new Integer("999").equals(taskParallel.getEVisaStatus()) ? 999 : new Integer("2").equals(taskParallel.getStatus()) ? 2 : 1);
|
|
|
|
+ //设置最终集合
|
|
|
|
+ finalResult.add(vo);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ Query query = new Query();
|
|
|
|
+ query.setCurrent(current);
|
|
|
|
+ query.setSize(size);
|
|
|
|
+
|
|
|
|
+ //最终分页数据
|
|
|
|
+ IPage<TaskVO> finalPage = Condition.getPage(query);
|
|
|
|
+ finalPage.setTotal(flowIPage.getTotal());
|
|
|
|
+ finalPage.setSize(flowIPage.getSize());
|
|
|
|
+ finalPage.setCurrent(flowIPage.getCurrent());
|
|
|
|
+ finalPage.setRecords(finalResult);
|
|
|
|
+
|
|
|
|
+ return R.data(finalPage);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return R.data(null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 完成/审批任务
|
|
* 完成/审批任务
|
|
*/
|
|
*/
|
|
- @PostMapping("complete-approval-task")
|
|
|
|
|
|
+ @PostMapping("/complete-approval-task")
|
|
@ApiOperationSupport(order = 2)
|
|
@ApiOperationSupport(order = 2)
|
|
- @ApiOperation(value = "完成任务")
|
|
|
|
- public R<Boolean> completeApprovalTask(){
|
|
|
|
- return null;
|
|
|
|
|
|
+ @ApiOperation(value = "完成/审批任务")
|
|
|
|
+ public R<Boolean> completeApprovalTask(@RequestBody TaskApprovalVO taskApprovalVO){
|
|
|
|
+ return R.data(this.taskService.completeApprovalTask(taskApprovalVO));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 上报
|
|
* 上报
|
|
*/
|
|
*/
|
|
- @PostMapping("start-approval")
|
|
|
|
|
|
+ @PostMapping("/start-approval")
|
|
@ApiOperationSupport(order = 1)
|
|
@ApiOperationSupport(order = 1)
|
|
@ApiOperation(value = "上报", notes = "taskVO对象")
|
|
@ApiOperation(value = "上报", notes = "taskVO对象")
|
|
public R<Boolean> startApproval(@RequestBody TaskVO taskVO){
|
|
public R<Boolean> startApproval(@RequestBody TaskVO taskVO){
|