package cn.superdesk.uniorder.dubbo.facade.organisation;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.common.security.dto.LoginSysUser;
import cn.superdesk.uniorder.dao.entity.organisation.UnifiedSupplier;
import cn.superdesk.uniorder.dto.param.organisation.SysSupplierQueryParam;
import cn.superdesk.uniorder.dto.param.organisation.UnifiedSupplierQueryCriteria;
import cn.superdesk.uniorder.dto.param.organisation.UnifiedSupplierParam;
import cn.superdesk.uniorder.dto.vo.organisation.UnifiedSupplierVo;
import cn.superdesk.uniorder.dto.vo.sys.SysSelectVo;
import cn.superdesk.uniorder.dto.vo.sys.SysSupplierVo;
import com.github.pagehelper.PageInfo;

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

public interface DubboSysSupplierService {

	/****************************************** extends BaseService 部分 start ******************************************/

	@Deprecated
	void addObj(UnifiedSupplierParam param);

	@Deprecated
	void updateObj(UnifiedSupplierParam param);

	@Deprecated
	void deleteObj(Long id);

	@Deprecated
	UnifiedSupplier findById(Long id);

	@Deprecated
	PageInfo<UnifiedSupplier> entityPageQuery(Map<String, Object> conditions, Integer pageNun, Integer pageSize);

	@Deprecated
	List<UnifiedSupplier> findAll(Map<String, Object> queryMap);

	/****************************************** extends BaseService 部分   end
     * @return******************************************/


	int addUnifiedSupplier(UnifiedSupplierParam param, LoginSysUser loginSysUser);

	int updateUnifiedSupplier(UnifiedSupplierParam param, LoginSysUser loginSysUser);

	int deleteUnifiedSupplier(Long id, LoginSysUser loginSysUser);

	UnifiedSupplier findUnifiedSupplierById(Long id);

	R<List<UnifiedSupplier>> pageQuery(Map<String, Object> conditions, int pageNun, int pageSize);

	R<List<UnifiedSupplierVo>> pageQuery(UnifiedSupplierQueryCriteria queryCriteria, LoginSysUser loginSysUser);
	
	
	/******************************************  start ******************************************/



	void updateObj(UnifiedSupplier oe);

	void addObj(UnifiedSupplier oe);



	/****************************************** kafka 超级前台 企业采购 企业福利 start ******************************************/

	void kafkaMergeReceiveMerchant4SuperdeskMall(String message);

	/**
	 * 20200707 林志鹏说是没删除
	 *
	 * @param message
	 */
	@Deprecated
	void kafkaDeleteReceiveMerchant4SuperdeskMall(String message);
	/****************************************** kafka 超级前台 企业采购 企业福利   end ******************************************/


	/****************************************** kafka 侨城汇专用 start ******************************************/

	void kafkaMergeReceiveMerchant4SuperdeskMallFLSC_QCH(String message);

	/**
	 * 20200707 林志鹏说是没删除
	 *
	 * @param message
	 */
	@Deprecated
	void kafkaDeleteReceiveMerchant4SuperdeskMallFLSC_QCH(String message);
    /****************************************** kafka 侨城汇专用   end ******************************************/

	/**
	 * 同步集采供应商数据
	 * @param toJSONString
	 */
	void mergeReceiveSupplier4Qchjc(String toJSONString);

	R<List<SysSupplierVo>> findSupplierList(SysSupplierQueryParam param);

	List<SysSelectVo> selectList(Map<String,Object> params);
}
