WfSubscriptionNodeTest.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.xjrsoft.module.liteflow.node;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.xjrsoft.XjrSoftApplication;
  4. import com.xjrsoft.module.workflow.entity.WorkflowFormRelation;
  5. import com.xjrsoft.module.workflow.service.IWorkflowExecuteService;
  6. import com.xjrsoft.module.workflow.service.IWorkflowFormRelationService;
  7. import org.camunda.bpm.engine.history.HistoricProcessInstance;
  8. import org.junit.jupiter.api.Test;
  9. import org.junit.runner.RunWith;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.boot.test.context.SpringBootTest;
  12. import org.springframework.test.context.junit4.SpringRunner;
  13. import java.util.List;
  14. import java.util.Optional;
  15. import static org.junit.jupiter.api.Assertions.*;
  16. /**
  17. * @author dzx
  18. * @date 2024/9/24
  19. */
  20. @RunWith(SpringRunner.class)
  21. @SpringBootTest(classes = XjrSoftApplication.class)
  22. class WfSubscriptionNodeTest {
  23. @Autowired
  24. private IWorkflowExecuteService workflowExecuteService;
  25. @Autowired
  26. private IWorkflowFormRelationService relationService;
  27. @Test
  28. void test(){
  29. List<WorkflowFormRelation> list = relationService.list(
  30. new QueryWrapper<WorkflowFormRelation>().lambda()
  31. .isNull(WorkflowFormRelation::getCurrentState)
  32. );
  33. for (WorkflowFormRelation workflowFormRelation : list) {
  34. Optional<HistoricProcessInstance> historicProcessInstanceOptional = workflowExecuteService.getHistoricProcessInstance(workflowFormRelation.getProcessId());
  35. if (historicProcessInstanceOptional.isEmpty()) {
  36. continue;
  37. }
  38. HistoricProcessInstance historicProcessInstance = historicProcessInstanceOptional.get();
  39. workflowFormRelation.setStartTime(historicProcessInstance.getStartTime());
  40. workflowFormRelation.setEndTime(historicProcessInstance.getEndTime());
  41. workflowFormRelation.setCurrentState(historicProcessInstance.getState());
  42. relationService.updateCurrentState(workflowFormRelation);
  43. }
  44. }
  45. }