package org.springblade.modules.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.app.common.dto.ApplicationInfoDTO;
import org.springblade.modules.app.common.query.ApplicationQuery;
import org.springblade.modules.app.entity.ApplicationInfoDO;

import java.util.List;

/**
 * <p>
 * 审批信息表 服务类
 * </p>
 *
 * @author fuxinsheng
 * @since 2021-11-05
 */
public interface IApplicationInfoService extends IService<ApplicationInfoDO> {

    /**
     * 新增审批记录
     *
     * @param applicationInfoDTO
     * @return java.lang.Long
     * @author FUXINSHENG
     */
    Long addApplicationInfo(ApplicationInfoDTO applicationInfoDTO);

    /**
     * 更新审批记录
     *
     * @param applicationInfoDTO
     * @return java.lang.Boolean
     * @author FUXINSHENG
     */
    Boolean updateApplicationInfo(ApplicationInfoDTO applicationInfoDTO);

    /**
     * 更新审批记录
     *
     * @param applicationInfoDTOList
     * @return java.lang.Boolean
     * @author FUXINSHENG
     */
    Boolean updateBatchApplicationInfo(List<ApplicationInfoDTO> applicationInfoDTOList);

    /**
     * 根据查询调价获取审批记录列表
     *
     * @param query
     * @return java.util.List<org.springblade.modules.app.common.dto.ApplicationInfoDTO>
     * @author FUXINSHENG
     * @date 2021/11/17 14:37
     * @describe
     */
    List<ApplicationInfoDTO> listApplicationInfo(ApplicationQuery query);

    /**
     * 根据查询条件获取审批记录
     *
     * @param query
     * @return org.springblade.modules.app.common.dto.ApplicationInfoDTO
     * @author FUXINSHENG
     */
    ApplicationInfoDTO getApplicationInfoByQuery(ApplicationQuery query);

    Boolean realDeleteById(Long id);
}
