package com.engine.salary.wrapper.proxy;

import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemFormDTO;
import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO;
import com.engine.salary.entity.salaryarchive.dto.SingleSalaryItemAdjustRecordListDTO;
import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam;
import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam;
import com.engine.salary.entity.salaryarchive.param.SingleSalaryItemAdjustRecordQueryParam;
import com.engine.salary.util.page.PageInfo;

public interface SalaryArchiveItemWrapperProxy {


    SalaryArchiveItemFormDTO getSalaryItemForm(Long salaryArchiveId);


    /**
     * 通过薪资档案的薪资项目id获取薪资项目调整表单
     *
     * @param salaryArchiveItemId
     * @return
     */
    SalaryArchiveItemFormDTO getSalaryItemFormBySalaryArchiveItemId(Long salaryArchiveItemId);

    /**
     * 保存薪资项目调整
     *
     * @param saveParam
     * @return
     */
    String saveSalaryItem(SalaryArchiveItemSaveParam saveParam);

    /**
     * 删除薪资项目调整
     *
     * @param salaryArchiveItemId
     * @return
     */
    String deleteSalaryItem(Long salaryArchiveItemId);

    /**
     * 薪资项目调整记录列表
     *
     * @param queryParam
     * @return
     */
    PageInfo<SalaryItemAdjustRecordListDTO> adjustRecordList(SalaryItemAdjustRecordQueryParam queryParam);

    /**
     * 单个档案的薪资项目调整记录列表
     *
     * @param queryParam
     * @return
     */
    PageInfo<SingleSalaryItemAdjustRecordListDTO> singleSalaryItemAdjustRecordList(SingleSalaryItemAdjustRecordQueryParam queryParam);


    SalaryArchiveItemFormDTO getSingleSalaryItemInfo(SingleSalaryItemAdjustRecordListDTO queryParam);

    /**
     * @description 单个档案的薪资项目调整的编辑
     * @return void
     * @author Harryxzy
     * @date 2022/11/14 11:45
     */
    String editSingleSalaryItem(SalaryArchiveItemSaveParam salaryArchiveItemSaveParam);
}
