package com.unis.base.server.dao;

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

import com.unis.base.common.vo.*;
import com.unis.base.server.entity.DKdxxsjyDO;
import com.unis.base.server.entity.TzQylxDO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.unis.base.server.entity.TzQyjgDO;
import com.unis.base.server.entity.TzSlqyDO;

import tk.mybatis.mapper.common.Mapper;

/**
 *
 * @ClassName: TzSlqyDao
 * @Description: TzSlqyDao
 * @author huangxing
 * @date 2019年7月22日 下午5:22:22
 *
 * @version v1.0
 */
@Transactional(rollbackFor = Exception.class)
@org.apache.ibatis.annotations.Mapper
@Repository
public interface TzSlqyDao  extends Mapper<TzSlqyDO> {

	/**
	 * 获取企业列表
	 * @param companyQueryVO
	 * @return
	 */
	List<TzSlqyDO> getCompanyList(CompanyQueryVO companyQueryVO);

	/**
	 * 添加企业信息
	 * @param tzSlqyDO
	 * @return
	 */
	int insert(TzSlqyDO tzSlqyDO);

	/**
	 * 更新企业信息
	 * @param tzSlqyDO
	 * @return
	 */
	int update(TzSlqyDO tzSlqyDO);

	/**
	 * 根据同意行政编码获取企业信息
	 * @param tyshxydm
	 * @return
	 */
	TzSlqyDO getCompanyBytyshxydm(@Param("tyshxydm")String tyshxydm);
	TzSlqyDO getCompanyByqymc(@Param("qymc")String qymc);

	/**
	 * 查询Id最大值
	 * @return
	 */
	Integer selectMaxId();

	List<TzSlqyDO> selectByEntity(CompanyQueryVO companyQueryVO);

	/**
	 * <TZ_SLQY-企业信息表>根据实体的某些属性查询列表
	 * @param companyVO    <企业信息表>对象
	 * @author lipenghe with LAPTOP-DPSC399A
	 */
	List<CompanyVO> selectByEntity(CompanyVO companyVO);

	TzSlqyDO selectById(CompanyQueryVO companyQueryVO);

	/**
	 * 查询企业结构的Id最大值
	 * @return
	 */
	Integer selectMaxIdFormQyjg();

	/**
	 * 查询企业
	 * @param qyjgdm
	 * @return
	 */
	TzSlqyDO getSlqy(@Param("qyjgdm")String qyjgdm);

	/**
	 * 判断是否存在
	 * @param tyshxydm
	 * @return
	 */
	Integer getQyjgDm(@Param("tyshxydm")String tyshxydm);


	/**
	 * 添加企业结构信息
	 * @param tzQyjgDO
	 * @return
	 */
	int insertQyjg(TzQyjgDO tzQyjgDO);


	List<TzQyjgVO> selectQyjg(TzQyjgDO tzQyjgDO);

	/**
	 * 查询带企业机构代码的库存信息
	 * @param dKdxxsjyDO
	 * @return
	 */
	List<DKdxxsjyVO> selectKdxx(DKdxxsjyDO dKdxxsjyDO);

	/**
	 * 查询符合条件的企业列表
	 * @param randomCompanyQuery
	 * @return
	 */
	List<TzSlqyDO> randomCompany(RandomCompanyQuery randomCompanyQuery);

	/**
	 * 更新企业状态
	 * @param selectMap
	 * @return
	 */
    Integer updateQyzt(Map<String, Object> selectMap);

    TzSlqyDO getqyxxBytyshxydm(@Param("kddm")String kddm);

	int updateQyjg(TzQyjgVO tzQyjgVO);

	/**
	 * 更改备案状态
	 * @param companyVO
	 * @return
	 */
	int updateFilingStatus(CompanyVO companyVO);

	/**
	 * @param companyQueryVO
	 * @return 获取信息
	 */
	List<TzSlqyDO> getCompanyListByLaLo(CompanyQueryVO companyQueryVO);

	Integer updateById(TzSlqyDO tzSlqyDO);

	/**
	 * 获取企业列表-应急
	 * @param companyQueryVO
	 * @return
	 */
	List<TzSlqyDO> getYjCompanyList(CompanyQueryVO companyQueryVO);

    String getMaxById(String qybm);

	Integer updateCompanySfba(TzSlqyDO tzSlqyDO);

	/**
	 * 获取承储库企业
	 * @return
	 */
    List<CompanyKdVO> getCompanyKdList();

    CompanyVO getCompanyByQymc(String qymc);

	List<TzSlqyDO> getQyxxByXydm(@Param("kddm")String kddm);

	TzSlqyDO getSlqyByQybm(@Param("qybm")String qybm);

	List<TzSlqyDO> getSlqyByQybmAll();

	List<TzSlqyDO> getSlqyByKddm(@Param("kddm")String kddm);

	List<TzQylxDO> companyType(@Param("qyjgdm")String qyjgdm);

	List<DKdxxsjyVO> selectKdxxLgd(DKdxxsjyDO dKdxxsjyDO);
	List<DKdxxsjyVO> selectKdxxLgdForQc(DKdxxsjyDO dKdxxsjyDO);

	List<SimpeCompanyBarVO> sgzgBar(SgzgBarVO sgzgBarVO);

	List<CompanyLineVO > sgzgLine(SgzgLineVO sgzgLineVO);

	/**
	 * <TZ_SLQY-企业信息表>根据实体的唯一属性查询数量
	 * @param companyVO    <企业信息表>对象
	 * @author lipenghe with LAPTOP-DPSC399A
	 */
	int selectCountById(CompanyVO companyVO);

	int updateByEntitySelective(TzSlqyDO entity);

	int updateTimeAndQyCr(TzSlqyDO tzSlqyDO);
}
