package com.goafanti.weChat.service;

import com.goafanti.common.model.PublicConfig;
import com.goafanti.weChat.bo.*;

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

public interface PublicReleaseService {

	Map<String, Object> addPublicRelease(InputPublicRelease in);

	Object listPublicRelease(InputPublicReleaseList in);


	/**
	 *
	 * @param id 公出编号
	 * @param status 公出状态
	 * @param remarks 公出说明
	 * @param examineType 0上级审核 1营销员审核 2技术审核
	 * @param evaluateType 0不存指导意见 1存指导意见
	 */
	int pushExaminePublicRelease(Integer id, Integer status, String remarks,Integer examineType,Integer evaluateType);


	List<outPublicReleaseLog> listPublicReleaseLog(Integer id,String ufid);

	int updatePublicRelease(InputPublicRelease in);

	int pushPublicReleaseClockIn(Integer id,String photoUrl,Integer clockIn ,String clockInRemarks ,String uid);

	OutPublicRelease dtails(Integer id);

	Object publicReleaseStatistics(InputPublicStatistics in);

	Object publicReleaseListDtails(InputPublicDtails in);


	OutPublicReleaseAndDetails followDtails(String id);

	int checkTime(InputPublicRelease in);

	List<OutPublicStatistics> publicReleaseStatisticsList(InputPublicStatistics in);

	List<OutPublicDtails> publicReleaseListDtailsList(InputPublicDtails in);

    int addSupplement(Integer id, String supplement, String nextPlan);

    List<Map<String,Object>> selectOrderByUid(String uid);

	List<OutPublicRelease> publicByOrder(String orderNo);

    Object getMyNewPublic();

	int pushTechReject(Integer id, String remarks);

    int addAssistant(Integer id,String aid);

	int deleteAssistant(Integer id, String aid);

    boolean checkdeleteAssistant(Integer id, String aid);

	boolean checkaddAssistant(Integer id, String aid);

    int updateLocation(InputPublicRelease in);

	Object publicReleaseAndCount(InputPublicDtails in);

    Map checkOrderNoDuration( InputPublicRelease in);


	void pushOutPublicDtails(List<OutPublicDtails> outList);

	Object pushDateClock();

	List<releaseAndExpenseCountOut> releaseAndExpenseCount(InputreleaseAndExpenseCount in);

	Object releaseAndExpenseCountClear();

	Object updateAssistExamine(Integer id, Integer status, String remarks,Integer evaluateType);

	Object assistUnaudited();

    boolean checkPublicReviewer(InputPublicRelease in);

	int pushLimitUser(String uid,Integer hours);

	boolean checkUserArchives(String uid);

	Object updateMaxDuration(String orderNo, Double maxDuration,String remarks);

	Object pushExamineMaxDuration(String orderNo,Integer status, String remarks);

	Object maxDurationLog(String orderNo);

	Object updatePublicConfig(PublicConfig in);

	Object getPublicConfig();
}
