package com.norteksoft.task.webservice; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; import com.norteksoft.product.orm.Page; import com.norteksoft.task.base.enumeration.TaskProcessingMode; import com.norteksoft.task.base.enumeration.TaskProcessingResult; import com.norteksoft.task.entity.Task; import com.norteksoft.task.entity.WorkflowTask; import com.norteksoft.wf.engine.client.FormFlowable; //@WebService(name="WorkflowTaskService") public interface WorkflowTaskService { /** * 保存任务 * @param task */ public void saveTask(WorkflowTask workflowTask); public void saveTasks(List<WorkflowTask> workflowTasks); /** * 查询代理的任务 * @param companyId * @param loginName * @param page * @return */ Page<WorkflowTask> getDelegateTasks(Long companyId, String loginName, Page<WorkflowTask> page); Page<WorkflowTask> getDelegateTasksByActive(Long companyId, String loginName, Page<WorkflowTask> page, boolean isEnd); Page<WorkflowTask> getTaskAsTrustee(Long companyId, String loginName, Page<WorkflowTask> page, boolean isEnd); Integer getDelegateTasksNum(Long companyId, String loginName); Integer getDelegateTasksNumByActive(Long companyId, String loginName, Boolean isCompleted); Integer getTrusteeTasksNum(Long companyId, String loginName, Boolean isCompleted); List<WorkflowTask> getAllTasksByInstance(Long companyId, String instanceId); void getAllTasksByUser(Long companyId, String loginName, Page<WorkflowTask> page); List<WorkflowTask> getAllTasksByUser(Long companyId, String loginName); List<WorkflowTask> getTasksByActivity(Long companyId, String executionId, String taskName); List<WorkflowTask> getTasksByName(Long companyId, String instanceId, String taskName); List<WorkflowTask> getNoAssignTasksByName(Long companyId, String instanceId, String taskName,Integer groupNum); /** * 查询流程执行过程中所有有效的参与人员 * @param companyId * @param instanceId * @return */ List<String> getParticipantsTransactor(Long companyId, String instanceId); void deleteTasksByName(Long companyId, String instanceId, String[] taskName); void deleteTask(WorkflowTask task); /** * 根据任务ID查询任务 * @param id * @return */ public WorkflowTask getTask(Long id); /** * 根据流程实例ID查询任务 * @param instanceId * @return */ public WorkflowTask getFirstTaskByInstance(Long companyId, String instanceId, String transactor); /** * 根据流程名字和实例id查询workflowTask * @param instanceId * @param taskName * @return */ public List<WorkflowTask> getWorkflowTasks(String instanceId, String taskName); /** * 根据实例查询所有的任务名称 * @param companyId * @param instanceId * @return */ public List<String> getTaskNamesByInstance(Long companyId, String instanceId); /** * 根据流程实例ID删除任务 * @param processId * @param companyId */ public void deleteTaskByProcessId(String processId,Long companyId); /** * 流程被手动结束时,强制结束流程实例的当前任务 */ public void endTasks(String instanceId,Long companyId); /** * 流程被强制结束时,强制结束流程实例的当前任务 */ public void compelEndTasks(String instanceId,Long companyId); /** * 活动该流程实例的当前任务 */ public List<WorkflowTask> getActivityTasks(String instanceId,Long companyId); /** * 活动该流程实例的当前任务 */ public List<WorkflowTask> getActivitySignTasks(String instanceId,Long companyId); /** * 查询办理人的当前环节 */ public WorkflowTask getMyTask(String instanceId,Long companyId,String loginName); /** * 返回对应办理模式的所有环节 * @param processInstanceId * @param processingMode * @return */ public List<String> getCountersignByProcessInstanceId(String processInstanceId,TaskProcessingMode processingMode); public List<String> getSignByProcessInstanceId(String processInstanceId,TaskProcessingMode processingMode); /** * 根据办理结果查询环节 */ public List<WorkflowTask> getCountersignByProcessInstanceIdResult(String processInstanceId,String taskName,TaskProcessingResult result); /** * 获得审批任务组数 * @param processInstanceId * @param taskName * @param result * @return */ public List<Integer> getGroupNumByTaskName(String processInstanceId,String taskName); /** * 获得与该任务是同一环节的所有未办理任务 */ public List<WorkflowTask> getCountersigns(Long id); /** * 获得与该任务是同一环节的所有未办理任务 */ public List<WorkflowTask> getProcessCountersigns(Long id); /** * 获得同一会签环节下的所有办理人 * @param processInstanceId * @param taskName * @return */ public List<String> getCountersignsHandler(Long id,Integer handlingState); /** * 删除同一会签环节下的办理人 * @param taskId * @param users 需要删除的办理人 */ public void deleteCountersignHandler(Long taskId, Collection<String> users); /** * 删除任务 */ public void deleteWorkflowTask(List<Long> ids); /** * 领取任务 * @param taskId * @return */ public String receive(Long taskId); /** * 放弃领取的任务 * @param taskId * @return */ public String abandonReceive(Long taskId); /** * 获得已办理人 */ public Set<String> getHandledTransactors(String workflowId); /** * 获得所有办理人 */ public Set<String> getAllHandleTransactors(String workflowId); /** * 获得所有未办理任务 */ public List<WorkflowTask> getNeedReminderTasks(); /** * 获得 已完成的任务 */ public List<WorkflowTask> getCompletedTasks(String workflowId,Long companyId); /** * 查询实例下的任务 * @param definitionName 定义名称 * @param loginName 登录名 * @return 任务集合 */ public List<WorkflowTask> getTasksOrderByWdfName(String definitionName,String loginName); /** * 根据已完成的任务名,获得 已完成的任务 */ public List<WorkflowTask> getCompletedTasksByTaskName(String workflowId, Long companyId,String taskName); /** * 根据当前用户查询未完成任务总数 * @param companyId 公司id * @param loginName 当前用户登录名 * @return 未完成任务总数 */ public Integer getTasksNumByTransactor(Long companyId, String loginName); /** * 查找公司中所有的超期任务 * @param companyId * @return */ public List<WorkflowTask> getOverdueTasks(Long companyId) ; /** * 查找当前办理人所有的超期任务的总数 * @param companyId * @param transactorName * @return map :key为办理人登录名,value为超期次数 */ public Map<String,Integer> getOverdueTasksNumByTransactor(Long companyId) ; /** * 查找公司中所有的超期任务,包括已完成的任务 * @param companyId * @return */ public List<WorkflowTask> getTotalOverdueTasks(Long companyId) ; /** * 查找当前办理人所有的超期任务的总数,包括已完成的任务 * @param companyId * @param transactorName * @return */ public Map<String,Integer> getTotalOverdueTasksNumByTransactor(Long companyId); /** * 获得所有办理人除当前任务名称的办理人 * @param task * @return 办理人列表集合 */ public List<String> getTransactorsExceptTask(Long taskId); /** * 根据“任务组”查询任务列表 * @param companyId * @param instanceId * @param taskName * @return */ public List<WorkflowTask> getTaskOrderByGroupNum(Long companyId,String instanceId,String taskName); /** * 活动该流程实例的已taskName为名称的当前任务 */ public List<WorkflowTask> getActivityTasksByName(String instanceId,Long companyId,String taskName); /** * 获得当前实例中所有当前办理人 * @param instanceId * @param companyId * @return 办理人列表 */ public List<String[]> getActivityTaskTransactors(String instanceId,Long companyId); /** * 获得当前实例中所有当前委托人 * @param instanceId * @param companyId * @return 办理人列表 */ public List<String> getActivityTaskPrincipals(String instanceId,Long companyId); public List<String> getCompletedTaskNames(String workflowId, Long companyId); /** * 流程被暂停时,强制暂停流程实例的当前任务 */ public void pauseTasks(String instanceId,Long companyId); /** * 继续被暂停的任务 */ public void continueTasks(String instanceId,Long companyId); /** * 批量移除任务中根据办理人查询当前任务列表 * @param tasks * @param transactorName * @param typeId * @param defCode * @param wfdId */ public void getActivityTasksByTransactorName(Page<WorkflowTask> tasks,Long typeId, String defCode,Long wfdId); /** * 根据实例获得任务 * @param instanceIds * @param taskName * @param recieveUser * @param consignor * @param companyId * @return */ public List<WorkflowTask> getTasksByInstance(List<String> instanceIds,String taskName,String recieveUser,String consignor,Long companyId); /** * 获得当前任务名称,除特事特办任务 * @param instanceId * @return */ public List<String> getActiveTaskNameWithoutSpecial(String instanceId); /** * 指派 * @param taskId * @param transactor */ public void assign(Long taskId, String transactor); public String getTaskUrl(Task task); public WorkflowTask getLastCompletedTaskByTaskName(String workflowId, Long companyId,String taskName); /** * 获得委托人集合[loginName,name] * @param workflowId * @return */ public List<String[]> getActivityTaskPrincipalsDetail(String instanceId,Long companyId); /** * 查询当前环节其它的待办理的任务集合,除当前传过来的任务 * @param workflowId 实例id * @param taskId 任务id * @param taskName 任务名称 * @return 任务列表 */ public List<WorkflowTask> getActivityTasksByNameWithout(String workflowId,Long taskId,String taskName); /** * 根据办理人查找待办理的委托任务 * @param workflowId * @param transactor * @return */ public List<WorkflowTask> getActivityTrustorTasksByTransactor(String workflowId,String transactor,Long taskId); }