package com.goafanti.common.dao;

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

import org.apache.ibatis.annotations.Param;

import com.goafanti.common.model.PatentInfo;
import com.goafanti.patent.bo.PatentAnnualFeeTaskBo;
import com.goafanti.patent.bo.PatentContractListBo;
import com.goafanti.patent.bo.PatentExpireBo;
import com.goafanti.patent.bo.PatentInfoDetailBo;
import com.goafanti.patent.bo.PatentRecieveSendBo;

public interface PatentInfoMapper {
    int deleteByPrimaryKey(String id);

    int insert(PatentInfo record);

    int insertSelective(PatentInfo record);

    PatentInfo selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(PatentInfo record);

    int updateByPrimaryKey(PatentInfo record);
    
    PatentInfo selectPatentInfoByUserId(String uid);
	
    List<PatentInfo> findClientApplyListByPage(Map<String, Object> params);
	
	int findClentApplyCount(Map<String, Object> params);

	List<PatentRecieveSendBo> getPatentRecieveSendList();

	int batchDeleteByPrimaryKey(List<String> id);

	PatentInfoDetailBo selectPatentInfoDetail(String id);

	List<PatentInfo> selectByPrimaryKeys(List<String> id);

	Integer countPatentDone(@Param("uid")String uid, @Param("year")Integer year);

	Integer countPatentUndone(@Param("uid")String uid, @Param("year")Integer year);

	List<PatentExpireBo> selectExpireRecord();

	List<PatentContractListBo> listContractPatentByContractId(String contractId);

	void batchInsert(List<PatentInfo> pi);

	int batchDeleteByContractId(List<String> id);

	Integer findPatentInfoNumByUid(String uid);

	List<PatentAnnualFeeTaskBo> findAnnualFeeTaskBo();
	
}