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

import com.unis.base.common.vo.ImportConfigVO;
import com.unis.base.common.vo.ShouGouZiGeVO;
import com.unis.base.server.entity.ShouGouZiGeDO;
import com.unis.common.utils.ResponseWrapper;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;


/**
 * TY_SHOUGOUZIGE-真收购资格表
 * @author lipenghe at 
 */
public interface ShouGouZiGeService {
    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 选择性保存,包含新增和修改
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    public ResponseWrapper saveEntitySelectiveResult(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 插入全部字段
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper insertEntityResult(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 选择性插入字段
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper insertEntitySelectiveResult(ShouGouZiGeVO ziGeVO);

   /**
    * <TY_SHOUGOUZIGE-真收购资格表>批量插入全部字段
    * @param ziGeVOList    <真收购资格表>对象列表
    * @author lipenghe with LAPTOP-DPSC399A
    */
    public ResponseWrapper insertBatchEntityListResult(List<ShouGouZiGeVO> ziGeVOList);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 更改状态
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper updateStatusByEntityResult(ShouGouZiGeVO ziGeVO, String limit);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体某些属性更新全部字段
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper updateByEntityResult(ShouGouZiGeVO ziGeVO, String limit);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体不为空的属性,选择性更新字段
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper updateByEntitySelectiveResult(ShouGouZiGeVO ziGeVO, String limit);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体不为空的属性,选择性更新字段
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper updateByEntitySelectiveResult(ShouGouZiGeDO entity, String limit);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * [真删除]根据实体的某些属性进行单条或者批量删除
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper deleteByEntityResult(ShouGouZiGeVO ziGeVO, String limit);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体(唯一标示)查询一条数据
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper selectByIdResult(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体(唯一标示)查询一条数据
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper selectByIdResult(ShouGouZiGeDO entity);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体的某些属性查询分页数据,带限制条件
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper selectPageByEntityResult(int pageNo, int pageSize
            , ShouGouZiGeVO ziGeVO, String order);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体的某些属性查询列表
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper selectByEntityResult(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据实体的某些属性查询列表
     * @param entity    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper selectByEntityResult(ShouGouZiGeDO entity);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 查询初始化数据
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper selectInitDataResult(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 返回新的只有唯一标示的对象
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ShouGouZiGeVO getIdInstance(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据条件导出数据
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    List<ShouGouZiGeVO> exportByEntityResult(ShouGouZiGeVO ziGeVO);

    /**
     * <TY_SHOUGOUZIGE-真收购资格表>
     * 根据条件导入数据
     * @param ziGeVO    <真收购资格表>对象
     * @author lipenghe with LAPTOP-DPSC399A
     */
    ResponseWrapper importByEntityResult(ShouGouZiGeVO ziGeVO, List<MultipartFile> fileList, ImportConfigVO importConfigVO) throws IOException;


}