package com.mortals.xhx.module.task.service;

import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.common.pdu.flow.FlowNextPdu;
import com.mortals.xhx.common.pdu.flow.FlowTaskPdu;
import com.mortals.xhx.common.pdu.flow.FlowViewerPdu;
import com.mortals.xhx.module.task.model.TaskProcessEntity;
import com.mortals.xhx.module.task.model.TaskProcessQuery;

import java.util.List;
import java.util.Map;

/**
 * <p>Title: 流程实例表</p>
 * <p>Description: TaskProcessService service接口 </p>
 * <p>Copyright: Copyright &reg;  </p>
 *
 * @version 1.0.0
 */

public interface TaskProcessService extends ICRUDService<TaskProcessEntity,Long> {

    Result<TaskProcessEntity> getProcessList(TaskProcessQuery query, PageInfo pageInfo, Context context);

    List<FlowViewerPdu> getFlowViewer(String procInsId);

    Map<String, Object> getProcessVariables(String taskId);

    FlowNextPdu getNextFlowNode(String data, Context context);

    Result<FlowTaskPdu> getFinishList(TaskProcessQuery query, PageInfo pageInfo, Context context);

    Map<String, Object> flowRecord(String procInsId, String deployId, Context context);


}