package com.yunyan.business.service;

import java.util.List;

import com.yunyan.business.document.y22.pojo.finalExcelY22.FinalP1Vo;
import com.yunyan.business.document.y22.pojo.finalExcelY22.FinalP4T1TermVo;
import com.yunyan.business.domain.ReportDept;
import com.baomidou.mybatisplus.extension.service.IService;

import com.yunyan.business.pojo.admin.dto.SysDeptReportEditDto;
import com.yunyan.common.core.domain.AjaxResultVo;
import com.yunyan.common.core.domain.entity.SysDept;

/**
 * 报告-部门概况数据Service接口
 *
 * @author yunyan
 * @date 2023-12-07
 */
public interface IReportDeptService extends IService<ReportDept>
{

    /**
     * 查询报告-部门概况数据列表
     *
     * @param reportDept 报告-部门概况数据
     * @return 报告-部门概况数据集合
     */
    public List<ReportDept> selectReportDeptList(ReportDept reportDept);

    /**
    * 新增
    * @param
    * @return
    */
    AjaxResultVo add(ReportDept dto);

    /**
     * 编辑
     * @param
     * @return
     */
    AjaxResultVo edit(ReportDept dto);

    /**
     * 详情
     * @param id
     * @return
     */
    AjaxResultVo info(Long id);

    /**
     * 报告 -部门信息的保存或者修改
     * @param
     * @param year
     * @param type
     * @param existRead 存在就只读, 不生成
     * @return
     */
    FinalP1Vo saveForUpdateNewDept(SysDept sysDept, String year, Integer type, boolean existRead);

    /**
     * 报告 -部门信息的查询
     * @param deptId
     * @param year
     * @param type
     * @return
     */
    FinalP1Vo getDeptInfo(Long deptId, String year, Integer type);

    /**
     * 预算报告 -部门信息的保存或者修改
     * @param dto
     * @return
     */
    AjaxResultVo changeDeptOverview(SysDeptReportEditDto dto);

    /**
     * 决算报告 - 部门信息的保存或修改
     * @param
     * @return
     */
    AjaxResultVo changeDeptOverview(FinalP1Vo finalP1Vo, Long deptId, String year, Integer type);
}
