wangbo 4 лет назад
Родитель
Сommit
5ea2ffb1a3

+ 30 - 3
operation_manager/src/main/java/com/huaxu/order/controller/WorkOrderManageController.java

@@ -438,9 +438,36 @@ public class WorkOrderManageController {
         args.put("工单编号",workOrderManage.getTaskNo());
         args.put("url",String.format("?id=%s",workOrderManage.getId().toString()));
         List<TaskPorcessResult> handleResult = workFlowService.handleTask(Action.ACTION_AUDIT,workOrderManage.getCurrentTaskId(), args, null);
-        workOrderManage.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
-        workOrderManage.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
-        workOrderManage.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
+        if(workOrderManage.getOrderTypeId() == orderTypeId){
+            workOrderManage.setCurrentTaskId(handleResult.size()>0?handleResult.get(0).getCurrentTaskId():null);
+            workOrderManage.setCurrentUsers(handleResult.size()>0?handleResult.get(0).getCurrentTaskUsers():null);
+            workOrderManage.setCurrentTaskName(handleResult.size()>0?handleResult.get(0).getCurrentTaskName():null);
+        }
+        else{
+            workFlowService.stopProcessInstance(workOrderManage.getProcessInstanceId());
+            ProcessDefinition processDefinition = workFlowService.findProcessDefinition(
+                    loginUser.getTenantId(),
+                    loginUser.getCompanyId(),
+                    orderTypeId);
+            if(processDefinition == null){
+                return new AjaxMessage(ResultStatus.ERROR,"没有创建流程,不能派单!");
+            }
+            args.put("templateId",7);
+            args.put("msgType",7);
+            String startProcess = workFlowService.startProcess(processDefinition,args);
+            Task task = workFlowService.getProcessRuntimeTask(startProcess).get(0);
+            Set<String> taskParticipator = workFlowService.getTaskParticipator(task.getId(),false,null);
+            String currentUsers = "";
+            for (String str : taskParticipator) {
+                currentUsers += String.format("%s,",str);
+            }
+            workOrderManage.setProcessInstanceId(task.getProcessInstanceId());
+            workOrderManage.setProcessDefId(task.getProcessDefinitionId());
+            workOrderManage.setCurrentTaskId(task.getId());
+            workOrderManage.setCurrentUsers(currentUsers);
+            workOrderManage.setCurrentTaskName(task.getName());
+        }
+
         workOrderManage.setUpdateBy(loginUser.getId().toString());
         workOrderManage.setDateUpdate(new Date());
         workOrderManage.setOrderStatus(1);//已执行