kd.bos.servicehelper.workflow

## 类 WorkflowServiceHelper

- java.lang.Object
- - kd.bos.servicehelper.workflow.WorkflowServiceHelper

-     @KSObject
      public class WorkflowServiceHelper
      extends java.lang.Object

  开发者门户业务应用的服务类

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static java.lang.String` | `APPLYED`
    `static java.lang.String` | `HANDLED`
    `static java.lang.String` | `NOT_IN_PROCESS`
    `static java.lang.String` | `TOAPPLY`
    `static java.lang.String` | `TOHANDLE`
    `static java.lang.String` | `WF_CAN_WITHDRAW`

  - ### 构造器概要

    构造器
    构造器和说明
    `WorkflowServiceHelper()`

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `static void` | `addComment(kd.bos.workflow.engine.task.Comment comment)` 描述:记录审批意见 comment对外允许设置属性：
    `static void` | `applyWorkflowMultiLanguageWords(java.util.Map<java.lang.String,java.lang.Object> mutiLangDatas)` 把翻译平台翻译好的词条应用回去
    `static java.util.Map<java.lang.String,java.util.List<java.lang.String>>` | `canWithdraw(kd.bos.dataentity.entity.DynamicObject[] objs)` 描述：过滤哪些objs可以撤回
    `static void` | `completeTask(java.lang.Long taskId, java.lang.Long userId, java.lang.String decOptionNumber, java.lang.String auditMessage)` 完成任务，并记录审批意见
    `static kd.bos.workflow.engine.task.Comment` | `createNewComment()` 描述：创建一个新的Comment实体
    `static void` | `deployModel(java.lang.String deployModelString)` 部署流程模型
    `static kd.bos.workflow.engine.task.TaskInfo` | `findTaskById(java.lang.Long taskId)` 描述:根据id查找task
    `static java.util.List<kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup>` | `getAllApprovalRecord(java.lang.String businessKey)` 返回单据的整个审批记录
    `static kd.bos.dataentity.entity.DynamicObject[]` | `getAllProcessCategory()` 获取所有的流程类别信息
    `static java.util.Map<java.lang.String,java.lang.String>` | `getApprovalRecordMeta()` 获取审批记录的元数据，（字段和属性）
    `static java.util.List<java.lang.Long>` | `getApproverByBusinessKey(java.lang.String businessKey)` 描述:获取当前节点的审批人
    `static java.util.Map<java.lang.String,java.util.List<java.lang.Long>>` | `getApproversMapByBusinessKeys(java.lang.String[] businessKeyArr)` 描述:获取给定单据集合的当前审批人集合
    `static java.util.Map<java.lang.String,java.util.List<kd.bos.workflow.api.BizProcessStatus>>` | `getBizProcessStatus(java.lang.String[] businessKeys)` 根据单据id集合查询在流程中的状态
    `static java.util.List<java.util.Map<java.lang.String,java.lang.String>>` | `getCommentForPrint(java.lang.String businessKey)` 根据businessKey获取当前审批意见。
    `static java.lang.String` | `getDeployModel(long modelId)` 根据流程模型获取流程部署文件
    `static ExtendedDataEntity[]` | `getInProcessDataEntity(ExtendedDataEntity[] dataEntities)` 描述：过滤出那些单据在工作里中
    `static java.util.List<kd.bos.workflow.engine.task.Comment>` | `getLastNodesComment(java.lang.String businessKey)` 描述:获取上几点的审批内容
    `static kd.bos.dataentity.entity.DynamicObject[]` | `getModelByAppId(java.lang.String appId)` 根据应用ID（开发者门户的应用）获取其所对应的流程
    `static kd.bos.dataentity.entity.DynamicObject[]` | `getModelByProcessCategoryId(java.lang.Long processCategoryId)` 获取指定类别下的流程信息
    `java.lang.Object` | `getNodeProp(java.lang.Long processInstanceId, java.lang.String nodeId, java.lang.String propName)` 获取单据id返回某个节点配置的属性
    `static java.lang.Long` | `getProcessInstanceIdByBusinessKey(java.lang.String businessKey)` 根据业务单据ID查对应的流程实例ID
    `static java.lang.Long` | `getTaskCountByType(java.lang.String uid, java.lang.String type)` 获取待办任务，已办任务，在办申请，已办申请的数量
    `static java.lang.Long` | `getTaskIdByBusinessKeyAndUserId(java.lang.String businessKey, java.lang.Long userId)` 根据businessKey,userId获取任务id
    `static kd.bos.dataentity.entity.DynamicObjectCollection` | `getToHandleTasksByUserId(int start, int limit, java.lang.String uid)` 描述:获取当前人的所有任务
    `static java.util.List<java.util.Map<java.lang.String,java.lang.Object>>` | `getToHandleTasksMessage(java.lang.Long userId, java.lang.Integer topCount)` 获取单板任务消息
    `static java.util.List<java.lang.Long>` | `getWorkflowMultiLanguageIdsByAppId(java.lang.String applicationId)` 根据应用Id(applicationId)获取一个应用下全部工作流的资源Id(resourceId)
    `static java.util.Map<java.lang.String,java.lang.Object>` | `getWorkflowMultiLanguageWords(java.lang.Long resourceId)` 根据工作流的资源Id(resourceId)获取所有的多语言词条
    `static boolean` | `inProcess(java.lang.String businessKey)` 描述：判断单据是否进入工作流
    `static boolean` | `isUserBelongToRole(java.lang.Long userId, java.lang.String roleNumber)` 判定人员是否属指定的工作流角色
    `static java.util.Map<java.lang.String,java.lang.Object>` | `makeWorkflowMultiLanguagePackage(java.util.Map<java.lang.String,java.lang.Object> mutiLangDatas)` 工作流服务制作多语言安装包
    `static void` | `refreshMessageConfig()` 暂时提供接口，供消息渠道配置信息保存时，及时更新正在使用的参数配置，待任务模型迁移之后即可删除
    `static void` | `taskTransfer(java.lang.Long taskId, java.lang.Long transfererId, java.lang.String transferOpinion, java.lang.Boolean transferSubscribe)` 任务转交
    `static void` | `tryTriggerProcess(java.lang.String businessKey, java.lang.String operation, java.lang.String entityNumber, java.util.Map<java.lang.String,java.lang.Object> variables)` 描述：触发工作流
    `static void` | `updateParticipant(java.lang.Long taskId, java.util.List<java.lang.Long> userIds)` 修改对应任务的参与人
    `static void` | `updateTaskInfoAndParticipant(kd.bos.workflow.engine.task.TaskInfo task, java.util.List<java.lang.Long> userIds)` 描述:更新任务节点名称
    `static void` | `viewFlowchart(java.lang.String pageId, java.lang.Object billId)` 查看流程图，调用方式：例如：WorkflowServiceHelper.viewFlowchart(getView(), 347562958684947456L);
    `static void` | `withdraw(kd.bos.dataentity.entity.DynamicObject obj)` 描述：工作流撤回
    `static void` | `withdraw(kd.bos.dataentity.entity.DynamicObject obj, java.lang.String operationName)` 描述：工作流撤回

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### TOHANDLE

          public static final java.lang.String TOHANDLE

      另请参阅:
        常量字段值

    - #### HANDLED

          public static final java.lang.String HANDLED

      另请参阅:
        常量字段值

    - #### APPLYED

          public static final java.lang.String APPLYED

      另请参阅:
        常量字段值

    - #### TOAPPLY

          public static final java.lang.String TOAPPLY

      另请参阅:
        常量字段值

    - #### NOT_IN_PROCESS

          public static final java.lang.String NOT_IN_PROCESS

      另请参阅:
        常量字段值

    - #### WF_CAN_WITHDRAW

          public static final java.lang.String WF_CAN_WITHDRAW

      另请参阅:
        常量字段值

  - ### 构造器详细资料

    - #### WorkflowServiceHelper

          public WorkflowServiceHelper()

  - ### 方法详细资料

    - #### tryTriggerProcess

          @KSMethod
          public static void tryTriggerProcess(java.lang.String businessKey,
                                                          java.lang.String operation,
                                                          java.lang.String entityNumber,
                                                          java.util.Map<java.lang.String,java.lang.Object> variables)

      描述：触发工作流
      参数:
        `businessKey` -
        `operation` -
        `entityNumber` -

    - #### updateParticipant

          @KSMethod
          public static void updateParticipant(java.lang.Long taskId,
                                                          java.util.List<java.lang.Long> userIds)

      修改对应任务的参与人
      参数:
        `taskId` - 任务ID
        `userIds` - 新参与人ID

    - #### completeTask

          @KSMethod
          public static void completeTask(java.lang.Long taskId,
                                                     java.lang.Long userId,
                                                     java.lang.String decOptionNumber,
                                                     java.lang.String auditMessage)

      完成任务，并记录审批意见
      参数:
        `taskId` - 任务ID
        `userId` - 处理人ID
        `decOptionNumber` - 决策项编码
        `auditMessage` - 审批意见

    - #### canWithdraw

          @KSMethod
          public static java.util.Map<java.lang.String,java.util.List<java.lang.String>> canWithdraw(kd.bos.dataentity.entity.DynamicObject[] objs)

      描述：过滤哪些objs可以撤回
      参数:
        `objs` -
      返回:
        可以撤回的objs 返回结果：1.非反操作但未流入工作流。2.非反操作且流入工作流，且已经走到人工节点 任务提交但未走到人工节点。

    - #### withdraw

          @KSMethod
          public static void withdraw(kd.bos.dataentity.entity.DynamicObject obj)

      描述：工作流撤回
      参数:
        `businessKey` - 单据id 仅支持单据上提交节点的撤回； 当单据已经进入工作，并且任务已经有人处理，撤回会抛出异常 集成时，先调用流程撤回，然后调用业务撤回

    - #### withdraw

          @KSMethod
          public static void withdraw(kd.bos.dataentity.entity.DynamicObject obj,
                                                 java.lang.String operationName)

      描述：工作流撤回
      参数:
        `businessKey` - 单据id
        `operationName` - 操作名称 仅支持单据上提交节点的撤回； 当单据已经进入工作，并且任务已经有人处理，撤回会抛出异常 集成时，先调用流程撤回，然后调用业务撤回

    - #### inProcess

          @KSMethod
          public static boolean inProcess(java.lang.String businessKey)

      描述：判断单据是否进入工作流
      参数:
        `businessKey` - 单据id
      返回:

    - #### getInProcessDataEntity

          public static ExtendedDataEntity[] getInProcessDataEntity(ExtendedDataEntity[] dataEntities)

      描述：过滤出那些单据在工作里中
      参数:
        `businessKey` - 单据id
      返回:
        在工作流中的单据

    - #### getApproverByBusinessKey

          @KSMethod
          public static java.util.List<java.lang.Long> getApproverByBusinessKey(java.lang.String businessKey)

      描述:获取当前节点的审批人
      参数:
        `businessKey` - 单据id
      返回:
        参与人集合

    - #### getLastNodesComment

          @KSMethod
          public static java.util.List<kd.bos.workflow.engine.task.Comment> getLastNodesComment(java.lang.String businessKey)

      描述:获取上几点的审批内容
      参数:
        `businessKey` -
      返回:
        审批意见集合

    - #### updateTaskInfoAndParticipant

          @KSMethod
          public static void updateTaskInfoAndParticipant(kd.bos.workflow.engine.task.TaskInfo task,
                                                                     java.util.List<java.lang.Long> userIds)

      描述:更新任务节点名称
      参数:
        `taskId` -
        `taskName` -

    - #### addComment

          @KSMethod
          public static void addComment(kd.bos.workflow.engine.task.Comment comment)

      描述:记录审批意见 comment对外允许设置属性：
      参数:
        `comment` -

    - #### createNewComment

          @KSMethod
          public static kd.bos.workflow.engine.task.Comment createNewComment()

      描述：创建一个新的Comment实体
      返回:

    - #### findTaskById

          @KSMethod
          public static kd.bos.workflow.engine.task.TaskInfo findTaskById(java.lang.Long taskId)

      描述:根据id查找task
      参数:
        `taskId` -
      返回:

    - #### getToHandleTasksByUserId

          @KSMethod
          public static kd.bos.dataentity.entity.DynamicObjectCollection getToHandleTasksByUserId(int start,
                                                                                                             int limit,
                                                                                                             java.lang.String uid)

      描述:获取当前人的所有任务
      参数:
        `start` -
        `limit` -
        `uid` -
      返回:

    - #### getApproversMapByBusinessKeys

          @KSMethod
          public static java.util.Map<java.lang.String,java.util.List<java.lang.Long>> getApproversMapByBusinessKeys(java.lang.String[] businessKeyArr)

      描述:获取给定单据集合的当前审批人集合
      参数:
        `businessKeyArr` -
      返回:
        以businessKey为key当前审批人集合为value

    - #### viewFlowchart

          @KSMethod
          public static void viewFlowchart(java.lang.String pageId,
                                                      java.lang.Object billId)

      查看流程图，调用方式：例如：WorkflowServiceHelper.viewFlowchart(getView(), 347562958684947456L);
      参数:
        `pageId` -
        `billId` -

    - #### isUserBelongToRole

          @KSMethod
          public static boolean isUserBelongToRole(java.lang.Long userId,
                                                              java.lang.String roleNumber)

      判定人员是否属指定的工作流角色
      参数:
        `userId` - 人员Id
        `roleNumber` - 工作流角色编码
      返回:
        属于返回true，不属于返回false

    - #### getModelByAppId

          public static kd.bos.dataentity.entity.DynamicObject[] getModelByAppId(java.lang.String appId)

      根据应用ID（开发者门户的应用）获取其所对应的流程

    - #### getDeployModel

          public static java.lang.String getDeployModel(long modelId)

      根据流程模型获取流程部署文件

    - #### deployModel

          public static void deployModel(java.lang.String deployModelString)

      部署流程模型

    - #### getAllProcessCategory

          public static kd.bos.dataentity.entity.DynamicObject[] getAllProcessCategory()

      获取所有的流程类别信息

    - #### getModelByProcessCategoryId

          public static kd.bos.dataentity.entity.DynamicObject[] getModelByProcessCategoryId(java.lang.Long processCategoryId)

      获取指定类别下的流程信息

    - #### getAllApprovalRecord

          @KSMethod
          public static java.util.List<kd.bos.workflow.component.approvalrecord.IApprovalRecordGroup> getAllApprovalRecord(java.lang.String businessKey)

      返回单据的整个审批记录

    - #### getTaskCountByType

          @KSMethod
          public static java.lang.Long getTaskCountByType(java.lang.String uid,
                                                                     java.lang.String type)

      获取待办任务，已办任务，在办申请，已办申请的数量
      参数:
        `uid` -
        `type` -
      返回:

    - #### getToHandleTasksMessage

          @KSMethod
          public static java.util.List<java.util.Map<java.lang.String,java.lang.Object>> getToHandleTasksMessage(java.lang.Long userId,
                                                                                                                            java.lang.Integer topCount)

      获取单板任务消息
      参数:
        `userId` - 当前用户id
        `topCount` - 前topCount条数据
      返回:

    - #### getTaskIdByBusinessKeyAndUserId

          @KSMethod
          public static java.lang.Long getTaskIdByBusinessKeyAndUserId(java.lang.String businessKey,
                                                                                  java.lang.Long userId)

      根据businessKey,userId获取任务id
      参数:
        `businessKey` -
      返回:

    - #### taskTransfer

          @KSMethod
          public static void taskTransfer(java.lang.Long taskId,
                                                     java.lang.Long transfererId,
                                                     java.lang.String transferOpinion,
                                                     java.lang.Boolean transferSubscribe)

      任务转交
      参数:
        `taskId` - 任务id
        `transfererId` - 转交用户id
        `transferOpinion` - 转交意见
        `transferSubscribe` - 是否订阅转交结果 如果成功，无异常信息；否则请捕获异常信息

    - #### getApprovalRecordMeta

          @KSMethod
          public static java.util.Map<java.lang.String,java.lang.String> getApprovalRecordMeta()

      获取审批记录的元数据，（字段和属性）
      返回:

    - #### getCommentForPrint

          @KSMethod
          public static java.util.List<java.util.Map<java.lang.String,java.lang.String>> getCommentForPrint(java.lang.String businessKey)

      根据businessKey获取当前审批意见。注释：驳回没有，人工没有，当前节点没有
      参数:
        `businessKey` -
      返回:

    - #### getNodeProp

          public java.lang.Object getNodeProp(java.lang.Long processInstanceId,
                                              java.lang.String nodeId,
                                              java.lang.String propName)

      获取单据id返回某个节点配置的属性
      参数:
        `processInstanceId` -
        `propName` -
      返回:

    - #### getWorkflowMultiLanguageIdsByAppId

          public static java.util.List<java.lang.Long> getWorkflowMultiLanguageIdsByAppId(java.lang.String applicationId)

      根据应用Id(applicationId)获取一个应用下全部工作流的资源Id(resourceId)
      参数:
        `applicationId` -
      返回:

    - #### getWorkflowMultiLanguageWords

          public static java.util.Map<java.lang.String,java.lang.Object> getWorkflowMultiLanguageWords(java.lang.Long resourceId)

      根据工作流的资源Id(resourceId)获取所有的多语言词条
      参数:
        `resourceId` -
      返回:

    - #### applyWorkflowMultiLanguageWords

          public static void applyWorkflowMultiLanguageWords(java.util.Map<java.lang.String,java.lang.Object> mutiLangDatas)

      把翻译平台翻译好的词条应用回去
      参数:
        `datas` -

    - #### makeWorkflowMultiLanguagePackage

          public static java.util.Map<java.lang.String,java.lang.Object> makeWorkflowMultiLanguagePackage(java.util.Map<java.lang.String,java.lang.Object> mutiLangDatas)

      工作流服务制作多语言安装包
      参数:
        `resourceId` -

    - #### refreshMessageConfig

          public static void refreshMessageConfig()

      暂时提供接口，供消息渠道配置信息保存时，及时更新正在使用的参数配置，待任务模型迁移之后即可删除

    - #### getProcessInstanceIdByBusinessKey

          public static java.lang.Long getProcessInstanceIdByBusinessKey(java.lang.String businessKey)

      根据业务单据ID查对应的流程实例ID
      参数:
        `businessKey` -
      返回:

    - #### getBizProcessStatus

          @KSMethod
          public static java.util.Map<java.lang.String,java.util.List<kd.bos.workflow.api.BizProcessStatus>> getBizProcessStatus(java.lang.String[] businessKeys)

      根据单据id集合查询在流程中的状态
      参数:
        `businessKeys` -
      返回: