/**
 * Copyright (c) 2018 人人开源 All rights reserved.
 * 
 * https://www.renren.io
 * 
 * 版权所有,侵权必究!
 */
package com.zt.modules.workflow.dao;
import com.zt.common.dao.BaseDao;
import com.zt.common.entity.FlowInfo;
import com.zt.core.sys.model.SysUser;
import com.zt.modules.workflow.model.WfRunTask;
import com.zt.modules.workflow.dto.BizInfoDto;
import com.zt.modules.workflowconfig.model.WfDefStep;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * 工作流运行-log
 *
 * @author Alex
 * @since 1.0.0
 */
@Mapper
public interface WfRunTaskDao extends BaseDao {
    List getTaskUser(@Param("roleId") String roleId, @Param("deptIds") String deptIds);
    List getAssignUser(String code, String stepMarker, Long bizId);
    SysUser getUserById(Long userId);
    void setTaskStatus(@Param("bizId") Long bizId, @Param("stepId") Long stepId,
                       @Param("status") Integer status, @Param("userId") Long userId,
                       @Param("realName") String realName, @Param("taskGroup") String taskGroup,
                       @Param("option") Integer option
                       );
    List getSqlResult(@Param(value = "script") String script);
    void exeSql(@Param(value = "script") String script);
    void deleteFlowTask(String wfIdCodes, Long bizId);
    List getFlowFinish(@Param("wfDefIdCode") String wfDefIdCode, @Param("bizId") Long bizId);
    List getSingleFlowStatus(String wfIdCodes, Long bizId);
    List getFlowStatus(@Param("wfIdCodes") String wfIdCodes, @Param("bizId") Long bizId);
    List getFlowStatus2(String wfIdCodes, Long bizGroupId);
    List getFlowStatus3(String wfIdCodes, Long biz_group_id);
    List getFlowStepStatus(@Param("wfIdCodes") String wfIdCodes, @Param("bizId") Long bizId);
    Integer isMyStep(String wfIdCode, Long bizId, String stepMarker, Long userId);
    Integer isMyStepFinish(String wfIdCode, Long bizId, String stepMarker, Long userId);
    List getStepCount(String wfIdCode, Long bizId);
    Integer getBizTaskCount(String wfIdCode, Long bizId);
    // 按 0,1 检查
    Integer getFlowStepFinish(String wfIdCode, Long bizId, String stepIdMark);
    // an 20,21,100检查
    Integer getFlowStepFinish2(String wfIdCode, Long bizId, String stepIdMark);
    void setTaskPartFinish(Long bizId, Long currentStepId, Integer status);
    void setTaskRefuse(Long bizId, Long currentStepId, Integer status);
    void setTaskRecall(Long taskId, String wfIdCode);
    List queryCurrentTaskStep(@Param("wfDefIdCode") String wfDefIdCode, @Param("bizId") Long bizId);
    List queryCurrentTaskStep100(@Param("wfDefIdCode") String wfDefIdCode, @Param("bizId") Long bizId);
    int getPlanStatus(Long bizId);
    int getRoleCount(Long userId, String code);
    List getPhaseFlowStatus(String flowCode,Long bizId);
    List getConnectInformation(String oldShipTeam);
    void updateConnect(String oldShipTeam);
    int isExistsStep(String stepMarker, Long currentStepId, Long bizId);
    int isExistsRunningStep(String stepMarker, Long currentStepId, Long bizId);
    void setReStartStatus(String wfIdCode, Long bizId);
    List getFlowTrack(String flowCode, Long bizId);
    String getFlowStepName(@Param("wfIdCodes") String wfIdCodes, @Param("bizId") Long bizId);
    void setTaskPartFinish2(@Param("bizId") Long bizId, @Param("receiveId") Long receiveId, @Param("status") Integer status);
    void setTaskPartFinish3(Long bizId, Long receiveDeptId, Integer status);
    void deleteFlowStep(@Param("wfIdCode") String wfIdCode, @Param("stepIdMark") String stepIdMark, @Param("bizId") Long bizId);
    List getRunFlow(Map params);
}