package com.qunzhixinxi.hnqz.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeConfig;
import com.qunzhixinxi.hnqz.admin.entity.WmTask;
import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigDTO;

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

/**
 * 部门任务类型配置服务
 *
 * @author lixuesong
 * @date 2021年12月03日 10:13
 */
public interface WmDeptTaskTypeConfigService extends IService<WmDeptTaskTypeConfig> {

	/**
	 * 保存任务类型配置
	 *
	 * @param wmDeptTaskTypeConfigDTO
	 */
	void saveDeptTaskTypeConfig(WmDeptTaskTypeConfigDTO wmDeptTaskTypeConfigDTO);

	/**
	 * 查询任务类型配置
	 *
	 * @param deptId
	 * @return
	 */
	WmDeptTaskTypeConfigDTO getDeptTaskTypeConfig(Integer deptId);

	/**
	 * 查询任务类型树
	 *
	 * @param taskTypeName
	 * @return
	 */
	List<Map<String, Object>> listConfigedTaskTypeTree(String taskTypeName);

	/**
	 * 根据企业的任务类型配置查询任务列表
	 *
	 * @param page 分页参数
	 * @param taskTypeName 任务类型名称
	 * @param taskStatus 任务状态
	 * @return
	 */
	IPage<WmTask> listTaskByConfig(Page<WmTask> page, String taskTypeName, String[] taskStatus);

	/**
	 * 根据企业的任务类型配置查询任务列表
	 *
	 * @param page 分页参数
	 * @param taskTypeName 任务类型名称
	 * @param taskStatus 任务状态
	 * @return
	 */
	IPage<WmTask> listTaskByDeptTaskType(Page<WmTask> page, String taskTypeName, String[] taskStatus);

}
