package org.security.trans.prevent.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.security.trans.common.service.FlowableService;
import org.security.trans.dataStatistics.dto.MaterialDataDTO;
import org.security.trans.dataStatistics.dto.StatisticsDataDTO;
import org.security.trans.dataStatistics.vo.MaterialDataVO;
import org.security.trans.prevent.dto.PreventMaterialDTO;
import org.security.trans.prevent.entity.PreventMaterial;
import org.security.trans.prevent.vo.PreventMaterialVO;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;

import java.util.Date;
import java.util.List;

/**
 * 案件材料报送表 服务类
 *
 * @author BladeX
 * @since 2022-07-07
 */
public interface IPreventMaterialService extends FlowableService<PreventMaterial> {

	IPage<PreventMaterialVO> getPage(PreventMaterialVO preventMaterialVO, Query query);

	PreventMaterialVO getDetail(PreventMaterial preventMaterial);

	R saveMaterial(PreventMaterialDTO preventMaterialDTO);

	/**
	 * 提交审批
	 * @param preventMaterialDTO
	 * @return
	 */
	boolean handin(PreventMaterialDTO preventMaterialDTO);

	/**
	 * 查询对应状态的记录
	 * @param status
	 * @return
	 */
	List<PreventMaterial> getPreventList(String status);

	/**
	 *定时任务获取案件防控任务信息
	 */
	PreventMaterial getPreventMaterialDatas(String id, String deptId, Date begin, Date end);

	/**
	 * 案件材料报送统计
	 * @param materialDataDTO
	 * @param aimDepts
	 * @return
	 */
	List<MaterialDataVO> getAimStatisticsData(MaterialDataDTO materialDataDTO, List<String> aimDepts);
}
