FlowUtil.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.jy.flow.utils;
  2. import cn.hutool.extra.spring.SpringUtil;
  3. import com.jy.flow.controller.ExecuteController;
  4. import com.jy.flow.model.dto.WarmFlowHandleDto;
  5. import com.jy.flow.model.enums.FlowStatusEnum;
  6. import com.jy.framework.satoken.LoginContext;
  7. import com.jy.framework.utils.AssertUtil;
  8. import com.warm.flow.core.dto.FlowParams;
  9. import com.warm.flow.core.entity.Instance;
  10. import com.warm.flow.core.entity.Task;
  11. import com.warm.flow.core.service.InsService;
  12. import com.warm.flow.core.service.TaskService;
  13. import com.warm.flow.orm.entity.FlowInstance;
  14. import com.warm.flow.orm.entity.FlowTask;
  15. import java.util.Map;
  16. public class FlowUtil {
  17. private final static InsService insService = SpringUtil.getBean(InsService.class);
  18. private final static TaskService taskService = SpringUtil.getBean(TaskService.class);
  19. private final static ExecuteController executeController = SpringUtil.getBean(ExecuteController.class);
  20. /**
  21. * 发起流程
  22. */
  23. public static void start(String flowCode, Long businessId) {
  24. FlowParams flowParams = FlowParams.build()
  25. .flowCode(flowCode)
  26. .handler(LoginContext.getUserId().toString())
  27. .flowStatus(FlowStatusEnum.UNDER_WAY.getKeyStr());
  28. insService.start(businessId.toString(), flowParams);
  29. }
  30. /**
  31. * 发起流程
  32. */
  33. public static void start(String flowCode, Long businessId, Map<String, Object> variable) {
  34. FlowParams flowParams = FlowParams.build()
  35. .flowCode(flowCode)
  36. .handler(LoginContext.getUserId().toString())
  37. .variable(variable)
  38. .flowStatus(FlowStatusEnum.UNDER_WAY.getKeyStr());
  39. insService.start(businessId.toString(), flowParams);
  40. }
  41. public static void next(Long businessId) {
  42. Instance instance = insService.getOne(new FlowInstance().setBusinessId(businessId.toString()));
  43. AssertUtil.notNull(instance, "未知流程实例");
  44. Task task = taskService.getOne(new FlowTask().setInstanceId(instance.getId()));
  45. AssertUtil.notNull(task, "未知流程任务");
  46. WarmFlowHandleDto dto = new WarmFlowHandleDto();
  47. dto.setTaskId(task.getId());
  48. dto.setHandleType(1);
  49. executeController.handle(dto);
  50. }
  51. }