package com.palmnest.service.estateserve.release;

import com.palmnest.application.bean.Page;
import com.palmnest.application.dto.input.GoodsReleaseBillInputDto;
import com.palmnest.model.estateserve.WxUser;
import com.palmnest.model.release.GoodsRelease;
import com.palmnest.service.GenericManager;

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

public interface GoodsReleaseManager extends GenericManager<GoodsRelease, Long> {


	public Page findPageBy(Map<String, Object> params, int pageSize, int pageNo);

	public Page findRecordPageBy(Map<String, Object> params, int pageSize, int pageNo);

	public Page findStatisticsPageBy(Map<String, Object> params, int pageSize, int pageNo);

	public List<Map<String, Object>> reportExcel(Map<String, Object> params);

	public List<Map<String, Object>> reportStatistics(Map<String, Object> params);

	public List<Map<String, Object>> reportRecord(Map<String, Object> params);

	public List<Map<String, Object>> getStatisticsData(Map<String, Object> params);

	public Integer findCountBy(Map<String, Object> params);

	public List<GoodsRelease> getGoodsReleaseByParams(Map<String, Object> params);

	public void sendWechat(GoodsReleaseBillInputDto dto);

	public void sendNextAgreeWechat(GoodsRelease bill, WxUser wxUser);

	public void sendAgreeWechat(GoodsRelease bill, String remark);

	public void sendRefuseWechat(GoodsRelease bill, String remark);

	/**
	 * 查询当前用户 是那个企业的负责人 且有物品放行审批权限
	 *
	 * @param openId
	 * @param isReleasePower
	 * @return
	 */
	public List<Map<String, Object>> getVirIdsByOpenId(String openId, Integer isReleasePower);

	void sendReleaseWechat(GoodsRelease bill, String remark);
}
