guoshilong
2023-04-24 fc030d197a869d5fecab582d36ff17be7e67cc3f
skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/impl/FlowBusinessServiceImpl.java
@@ -32,6 +32,7 @@
import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
@@ -42,6 +43,8 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
/**
 * 流程业务实现类
@@ -90,6 +93,29 @@
   @Override
   public IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow) {
      String taskUser = TaskUtil.getTaskUser();
      List<BladeFlow> flowList = new LinkedList<>();
      // 已签收的任务
      TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(taskUser).active()
         .includeProcessVariables().orderByTaskCreateTime().desc();
      // 构建列表数据
      buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO);
      // 计算总数
      long count = todoQuery.count();
      // 设置页数
      page.setSize(count);
      // 设置总数
      page.setTotal(count);
      // 设置数据
      page.setRecords(flowList);
      return page;
   }
   @Override
   public IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow,String currentUserId) {
      String taskUser = StringUtil.format("{}{}", TASK_USR_PREFIX, currentUserId);
      List<BladeFlow> flowList = new LinkedList<>();
      // 已签收的任务
@@ -268,6 +294,27 @@
      return true;
   }
   @Override
   public BladeFlow getBladeFlowByBusinessId(String businessId,String target) {
      String taskUser = StringUtil.format("{}{}", TASK_USR_PREFIX, target);
      List<BladeFlow> flowList = new LinkedList<>();
      // 已签收的任务
      TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(taskUser).active()
         .includeProcessVariables().orderByTaskCreateTime().desc();
      BladeFlow bladeFlow = new BladeFlow();
      // 构建列表数据
      buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO);
      BladeFlow flow = new BladeFlow();
      flowList.forEach(e->{
         if (Func.equals(e.getBusinessId(),businessId)){
            flow.setTaskId(e.getTaskId());
         }
      });
      return flow;
   }
   /**
    * 构建流程
    *