package com.highdatas.mdm.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.highdatas.mdm.entity.Maintain;
import org.apache.ibatis.annotations.Param;

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

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author kimi
 * @since 2019-12-16
 */
public interface MaintainMapper extends BaseMapper<Maintain> {

    long  countVersionOperator(@Param("tableTempName") String tableTempName, @Param("maintaInId")String maintaInId, @Param("where")String where);

    long countVersionOperatorByType(@Param("tableTempName") String tableTempName,@Param("where") String whereSegment, @Param("maintaInId")String maintaInId, @Param("operate")String operate);

    long countTempDataByVersionByFlow(@Param("tableTempName") String tableTempName,@Param("flowId")String flowId, @Param("where") String whereSegment);

    List<Map<String, Object>> tempDataByVersionByFlow(@Param("tableTempName") String tableTempName, @Param("flowId")String flowId, @Param("fields") String fields, @Param("where") String whereSegment, @Param("limit") String limit);

    List<Map<String, Object>>  selectVersionOperator(@Param("tableTempName") String tableTempName, @Param("where")String where, @Param("maintaInId")String maintaInId);

    List<Map<String, Object>> selectVersionOperatorByType(@Param("tableTempName") String tableTempName,  @Param("where")String where, @Param("maintaInId")String maintaInId, @Param("operate")String operate);

    List<Map<String, Object>>  selectVersionOperatorByPage(@Param("tableTempName") String tableTempName, @Param("where")String where, @Param("maintaInId")String maintaInId, @Param("limit")String limit);

    List<Map<String, Object>> selectVersionOperatorByTypeByPage(@Param("tableTempName") String tableTempName, @Param("where")String where, @Param("maintaInId")String maintaInId, @Param("operate")String operate, @Param("limit")String limit );

    List<Map<String, Object>> selectInvalidVersionData(@Param("tableTempName") String tableTempName, @Param("tempHFields") String tempHFields, @Param("where")String where, @Param("orderNo")Integer orderNo, @Param("limit")String limit );
    Long countInvalidVersionData(@Param("tableTempName") String tableTempName, @Param("where")String where, @Param("orderNo")Integer orderNo);

    List<Map<String, Object>> selectUnSubmitData(@Param("tableTempName") String tableTempName, @Param("fields") String fields, @Param("where")String where, @Param("maintainId")String maintainId, @Param("limit")String limit );
    Long countUnSubmitData(@Param("tableTempName") String tableTempName, @Param("where")String where, @Param("maintainId")String maintainId);


}