yangys
2025-09-17 1e2b04fabbbc4b1ae37d7951068d7ab235f5b5f9
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
@@ -6,6 +6,7 @@
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
@@ -160,7 +161,6 @@
            //驳回,查询实际编程人员 驳回
            variables.put(FlowVariableContants.ASSIGNEE, getActualProgrammer(processInstanceId));
         }
         //approveRecordService.saveApproveRecords(task,FlowContants.Y,batchDispatchVO.getComment());
         taskService.complete(taskId, variables);
      }
@@ -198,4 +198,37 @@
         throw new ServiceException("任务id与流程实例id数量不一致");
      }
   }
   /**
    * 排练通过现场编制
    * @param batchDispatchVO
    */
    public void batchProgramOnMachine(BatchDispatchVO batchDispatchVO) {
      checkBatchParameter(batchDispatchVO);
      String[] taskIds = batchDispatchVO.getTaskIds();
      String taskId;
      String processInstanceId;
      //审批结果和处理人都一样的
      Map<String, Object> variables = Kv.create();
      variables.put(FlowVariableContants.APPROVE, FlowContants.Y);
      variables.put(FlowVariableContants.COMMENT, batchDispatchVO.getComment());
      variables.put(FlowVariableContants.PROGRAM_ON_MACHINE, FlowContants.Y);//现场编制:是
      variables.put(FlowVariableContants.ACT_PROGRAMMER, AuthUtil.getUserId()+"");//实际编制
      variables.put(FlowVariableContants.ASSIGNEE,batchDispatchVO.getAssignee());
      for(int i=0;i<taskIds.length;i++) {
         taskId = taskIds[i];
         processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
         Task task = getTask(taskId);
         if(!task.getTaskDefinitionKey().equals("programmingTask")){
            throw new ServiceException("非编制任务,不能指定现场编制");
         }
         if (StringUtil.isNoneBlank(processInstanceId, batchDispatchVO.getComment())) {
            taskService.addComment(taskId, processInstanceId, batchDispatchVO.getComment());
         }
         taskService.complete(taskId, variables);
      }
    }
}