package com.zcloud.service.hiddenDangerCheckStandard;

import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;

import java.util.List;

/**
 * 说明：清单检查记录
 * 作者：luoxiaobao
 * 时间：2021-01-04
 * 官网：www.zcloudchina.com
 */
public interface CustomCheckRecordService {

	/**新增
	 * @param pd
	 * @throws Exception
	 */
	void save(PageData pd)throws Exception;

	/**删除
	 * @param pd
	 * @throws Exception
	 */
	void delete(PageData pd)throws Exception;

	/**修改
	 * @param pd
	 * @throws Exception
	 */
	void edit(PageData pd)throws Exception;

	/**清单逾期检查记录数
	 * @param pd
	 * @throws Exception
	 */
	int countOverTime(PageData pd)throws Exception;

	/**列表
	 * @param page
	 * @throws Exception
	 */
	List<PageData> list(Page page)throws Exception;




	/**节假日分页
	 * @param page
	 * @throws Exception
	 */
	List<PageData> listAllList(Page page)throws Exception;

	/**列表(全部)
	 * @param pd
	 * @throws Exception
	 */
	List<PageData> listAll(PageData pd)throws Exception;

	/**列表(全部未完成的)
	 * @param pd
	 * @throws Exception
	 */
	List<PageData> listAllUnfinished(PageData pd)throws Exception;
	/**通过清单ID获取风险点数据
	 * @param pd
	 * @throws Exception
	 */
	List<PageData> findRiskPointByLId(PageData pd)throws Exception;

	/**通过id获取数据
	 * @param pd
	 * @throws Exception
	 */
	PageData findById(PageData pd)throws Exception;

	/**批量删除
	 * @param ArrayDATA_IDS
	 * @throws Exception
	 */
	void deleteAll(String[] ArrayDATA_IDS)throws Exception;


	/* 统计功能 */
	List<PageData> listCountDay(PageData pd)throws Exception;/* 统计日 */
	List<PageData> listCountWeek(PageData pd)throws Exception;/* 统计周 */
	List<PageData> listCountTenDays(PageData pd)throws Exception;/* 统计旬 */
	List<PageData> listCountMonth(PageData pd)throws Exception;/* 统计功月 */
	List<PageData> listCountQuarter(PageData pd)throws Exception;/* 统计季 */
	List<PageData> listCountHalfYear(PageData pd)throws Exception;/* 统计半年 */
	List<PageData> listCountYear(PageData pd)throws Exception;/* 统计年 */
	Integer listCountJjr(PageData pd)throws Exception;/* 统计节假日 */

	/**修改统计状态
	 * @param pd
	 * @throws Exception
	 */
	void editStatistics(PageData pd)throws Exception;

	/**
	 * 查询辨识部位检查记录
	 * @param pd
	 * @return
	 */
	List<PageData> listLogByIde(PageData pd)throws Exception;

	/**
	 * 指定辨识部位检查记录
	 * @param pd
	 * @return
	 */
	List<PageData> recordByIde(PageData pd)throws Exception;

	/**补录
	 * @param pd
	 * @throws Exception
	 */
	void recording(PageData pd)throws Exception;

	/**
	 * APP清单检查记录
	 * @param pd
	 * @return
	 */
	List<PageData> appdatalist(PageData pd)throws Exception;
	/**
	 * 统计各用户各类型检查数据
	 * @param pd
	 * @return
	 */
	List<PageData> countByPeriodUser(PageData pd)throws Exception;

	/**
	 * 查询公司检查过清单的员工总数
	 * @param pd
	 * @return
	 */
	int getWorkedUserCount(PageData pd) throws Exception;

	/**
	 * 查询公司检查过清单的部门总数
	 * @param pd
	 * @return
	 */
	int getWorkedDepCount(PageData pd)throws Exception;

	List<PageData> listTypeBi(PageData pd)throws Exception;

	/**
	 * 查询检查记录(按ids)
	 * @param pd
	 * @return
	 */
	List<PageData> listForIdsAndMonth(PageData pd)throws Exception;

	/**
	 * 清单检查记录（日检）统计(按清单ID统计指定年内检查情况)
	 * @param pd
	 * @return
	 */
	List<PageData> listAllYearForDay(PageData pd)throws Exception;

	/**
	 * 清单检查记录（周检）统计(按清单ID统计指定年内检查情况)
	 * @param pd
	 * @return
	 */
	List<PageData> listAllYearForWeek(PageData pd)throws Exception;

	/**
	 * 清单检查记录（旬检）统计(按清单ID统计指定年内检查情况)
	 * @param pd
	 * @return
	 */
	List<PageData> statisticsListCheckTenday(PageData pd)throws Exception;
}

