話不多說,直接上代碼,這是項目目錄結構,DDD領域驅動模型,流程實例單獨一個package
發起流程的代碼如下,如要傳入流程定義的key,流程實例名稱,和發起人id
@ApiOperation(value = "發起流程", httpMethod = "POST") @PostMapping("start") public ResultDTO<ProcessInstanceDTO> start(String processDefinitionKey, String processInstanceName, String userId){ ResultDTO<ProcessInstanceDTO> resultDTO = new ResultDTO<>(ReturnCode.SUCCESS, "啟動成功"); ProcessInstance processInstance = processInstanceApplicationService.start(processDefinitionKey, processInstanceName, userId); if(Objects.isNull(processInstance)){ return new ResultDTO<>(ReturnCode.FAIL, "啟動失敗"); } resultDTO.setData(ProcessInstanceAssembler.convertToProcessInstanceDTO(processInstance)); return resultDTO; }
流程發起后還需要查詢我發我的流程列表,代碼如下,需要傳入發起人id即可
@ApiOperation(value = "我發起的流程列表", httpMethod = "POST") @PostMapping("list") public ResultDTO<ProcessInstanceDTO> list(String userId){ ResultDTO<ProcessInstanceDTO> resultDTO = new ResultDTO<>(ReturnCode.SUCCESS, "查詢成功"); List<HistoricProcessInstance> historicProcessInstanceList = processInstanceApplicationService.list(userId); if(CollUtil.isEmpty(historicProcessInstanceList)){ return new ResultDTO<>(ReturnCode.FAIL, "查詢無數據"); } resultDTO.setDataList(ProcessInstanceAssembler.convertToProcessInstanceDTO(historicProcessInstanceList)); return resultDTO; }
下面是swagger接口測試:
填入發起流程的參數,點擊execute,頁面顯示發起成功
下面查詢我發起的流程,填入參數,點擊execute
返回的數據就是我們剛剛發起的流程,測試成功