/*
 * QybgsqDao.java
 * 版权所有 © 2011-2017 北京神舟良实信息技术有限公司
 * Copyright © 2011-2017 All Rights Reserved    京ICP备13013562号
 *  created by lipenghe with LAPTOP-IJQ2SDFV
 */
package com.unis.base.server.dao;

import com.github.pagehelper.Page;
import com.unis.base.common.vo.QybgsqVO;
import com.unis.base.server.entity.QybgsqDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 * TY_QYBGSQ-企业变更申请表
 * @author lipenghe at 
 */
@Repository
public interface QybgsqDao extends Mapper<QybgsqDO> {
    /**
     * <TY_QYBGSQ-企业变更申请表>批量插入全部字段,会覆盖数据库默认值
     * @param list    <企业变更申请表>对象List
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int insertBatchEntityList(@Param("list") List<QybgsqDO> list);

    /**
     * <TY_QYBGSQ-企业变更申请表>更改状态
     * @param entity    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int updateStatusByEntity(QybgsqDO entity);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体批量更新全部字段
     * @param list    <企业变更申请表>对象List
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int updateBatchByEntityList(@Param("list") List<QybgsqDO> list);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体某些属性更新全部字段,会覆盖数据库默认值)
     * @param entity    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int updateByEntity(QybgsqDO entity);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体不为空的属性,选择性更新字段,只更新非空的属性对应的字段
     * @param entity    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int updateByEntitySelective(QybgsqDO entity);

    /**
     * <TY_QYBGSQ-企业变更申请表>[真删除]根据实体的某些属性进行单条或者批量删除
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int deleteByEntity(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>[真删除]根据实体的某些属性进行单条或者批量删除
     * @param entity    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int deleteByEntity(QybgsqDO entity);

    /**
     * <TY_QYBGSQ-企业变更申请表>[假删除]根据实体的某些属性进行单条或者批量删除,根据实体属性单条
     *      或批量删除只是改变了状态不在页面显示,数据仍存在
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int deleteShamByEntity(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体的某些属性查询数量
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int selectCountByEntity(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体的唯一属性查询数量
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int selectCountById(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体的业务唯一属性(且非指定主键数据)判断是否存在
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    int selectExistsByEntity(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体(唯一标示)查询一条数据
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    QybgsqVO selectById(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体(唯一标示)查询一条数据
     * @param entity    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    QybgsqVO selectById(QybgsqDO entity);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体的某些属性查询分页数据
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    Page<QybgsqVO> selectPageByEntity(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体的某些属性查询列表
     * @param qybgsqVO    <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    List<QybgsqVO> selectByEntity(QybgsqVO qybgsqVO);

    /**
     * <TY_QYBGSQ-企业变更申请表>根据实体的某些属性查询列表
     * @param entity     <企业变更申请表>对象
     * @author lipenghe with LAPTOP-IJQ2SDFV
     */
    List<QybgsqVO> selectByEntity(QybgsqDO entity);
}