package com.boco.nbd.wios.flow; import cn.hutool.core.util.StrUtil; import com.boco.nbd.framework.common.ResponseMessage2; import com.boco.nbd.framework.workflow.entity.SubmitTypeEnum; import com.boco.nbd.framework.workflow.entity.exception.FlowException; import com.boco.nbd.framework.workflow.flow.AbstractFlow; import com.boco.nbd.framework.workflow.service.WorkflowService; import com.boco.nbd.wios.BaseTest; import com.boco.nbd.wios.flow.entity.FlowConstant; import com.boco.nbd.wios.flow.entity.bo.LocalSubmitFlowBO; import com.boco.nbd.wios.flow.entity.po.OrderPO; import com.boco.nbd.wios.flow.enums.FlowNodeEnum; import com.boco.nbd.wios.flow.service.IOrderService; import com.boco.nbd.wios.flow.util.ProcessUtil; import com.boco.nbd.wios.manage.util.NumberUtil; import lombok.extern.slf4j.Slf4j; import org.junit.Assert; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; /** * @author:cao hai * @date:2022/6/29 17:34 * @version:V1.0 * @description:ProcessTest * @modify: */ @Slf4j public class ProcessTest extends BaseTest { @Autowired private IOrderService orderService; @Autowired protected WorkflowService flowService; @Test public void testGetRegionQo() { System.out.println("结果:" + orderService.getRegionQo("159,170")); } /** * 测试流转 */ @Test public void testSubmitFlow() { ResponseMessage2<Boolean> responseMessage2 = orderService.submitFlow(getStartFlow()); Assert.assertTrue(responseMessage2.getStatus() == 0); } /** * 流程启动 * * @return */ private LocalSubmitFlowBO getStartFlow() { LocalSubmitFlowBO bo = new LocalSubmitFlowBO(); bo.setCurrentNode(FlowNodeEnum.NODE_START.getKey()); bo.setNextNode(FlowNodeEnum.NODE_101.getKey()); bo.setWorkId("CA20201204161327"); bo.setSubmitUserId("1"); bo.setLimitTime(new Date()); List<String> userNames = new ArrayList<>(1); userNames.add("13661371987"); bo.setUserNames(userNames); return bo; } /** * 测试启动 */ @Test public void testStartFlow() { LocalSubmitFlowBO bo = new LocalSubmitFlowBO(); bo.setCurrentNodeEnum(FlowNodeEnum.NODE_START); bo.setCurrentNode(FlowNodeEnum.NODE_START.getKey()); bo.setNextNode(FlowNodeEnum.NODE_101.getKey()); bo.setNextNodeEnum(FlowNodeEnum.NODE_101); bo.setFlowCode(FlowConstant.FLOW_CODE); bo.setIsFinished(false); bo.setSubmitType(SubmitTypeEnum.StartFlow); bo.setWorkId("CA" + NumberUtil.getRandomOrderId(7)); System.out.println(bo.getWorkId()); OrderPO orderPO = new OrderPO(); orderPO.setId(bo.getWorkId()); orderPO.setOemId(91); bo.setBusiness(orderPO); bo.setSubmitUserId("1"); List<String> userNames = new ArrayList<>(1); userNames.add("13661371987"); bo.setTaskParam(new HashMap<>(1)); bo.setUserNames(userNames); AbstractFlow processStart = ProcessUtil.getBaseProcess(bo.getCurrentNode()); try { processStart.run(bo); } catch (FlowException ex) { System.out.println(" submitFlow FlowException:" + ex.getMessage()); } catch (Exception ex) { System.out.println(" submitFlow Exception:" + ex.getMessage()); } Assert.assertTrue(StrUtil.isNotEmpty(bo.getProcessInsId())); } /** * 测试101转移 */ @Test public void test101Transfer() { LocalSubmitFlowBO bo = new LocalSubmitFlowBO(); bo.setCurrentNode(FlowNodeEnum.NODE_101.getKey()); bo.setNextNode(FlowNodeEnum.NODE_101.getKey()); bo.setSubmitUserId("13661371987"); bo.setTaskId("6f46cc1d-f985-11ec-b696-00ff07dc8107"); bo.setCommentMsg("测试工单转移"); List<String> userNames = new ArrayList<>(1); userNames.add("13809768415"); bo.setUserNames(userNames); AbstractFlow process = ProcessUtil.getBaseProcess(bo.getCurrentNode()); process.run(bo); Assert.assertTrue(bo.getNextNodeEnum() != null); } /** * 测试101流转102 */ @Test public void test101to102() { LocalSubmitFlowBO bo = new LocalSubmitFlowBO(); bo.setCurrentNode(FlowNodeEnum.NODE_101.getKey()); bo.setNextNode(FlowNodeEnum.NODE_102.getKey()); bo.setSubmitUserId("13809768415"); bo.setTaskId("6f46cc1d-f985-11ec-b696-00ff07dc8107"); List<String> userNames = new ArrayList<>(1); userNames.add("14700000001"); bo.setUserNames(userNames); AbstractFlow process = ProcessUtil.getBaseProcess(bo.getCurrentNode()); process.run(bo); Assert.assertTrue(bo.getNextNodeEnum() != null); } /** * 测试102归档 */ @Test public void test101toEnd() { LocalSubmitFlowBO bo = new LocalSubmitFlowBO(); bo.setCurrentNode(FlowNodeEnum.NODE_102.getKey()); bo.setNextNode(FlowNodeEnum.NODE_END.getKey()); bo.setSubmitUserId("14700000001"); bo.setTaskId("ff4eb7b6-f988-11ec-8946-00ff07dc8107"); AbstractFlow process = ProcessUtil.getBaseProcess(bo.getCurrentNode()); process.run(bo); Assert.assertTrue(bo.getNextNodeEnum() != null); } }