package com.engine.salary.service;
import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionListDTO;
import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionRecordDTO;
import com.engine.salary.entity.datacollection.param.AddUpDeductionRecordDeleteParam;
import com.engine.salary.entity.datacollection.param.SpecialAddDeductionImportParam;
import com.engine.salary.entity.datacollection.param.SpecialAddDeductionParam;
import com.engine.salary.entity.datacollection.param.SpecialAddDeductionQueryParam;
import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO;
import com.engine.salary.util.page.PageInfo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.time.YearMonth;
import java.util.List;
import java.util.Map;
/**
* 数据采集-其他免税扣除
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author lfc
* @version 1.0
**/
public interface SpecialAddDeductionService {
/**
* 通过id获取单条专项扣除记录
*
* @param id
* @return
*/
SpecialAddDeductionPO getById(Long id);
/**
* 数据采集-其他免税扣除列表
*
* @param queryParam
* @return
*/
PageInfo listPage(SpecialAddDeductionQueryParam queryParam);
/**
* 获取数据采集-其他免税扣除详情
*
* @param queryParam
* @return
*/
PageInfo recordListPage(SpecialAddDeductionQueryParam queryParam);
/**
* 导出
*
*/
XSSFWorkbook export(SpecialAddDeductionQueryParam queryParam);
/**
* 导出详情
*
*/
XSSFWorkbook exportDetail(SpecialAddDeductionQueryParam queryParam);
/**
* 下载导入模板
*
* @param param
* @return
*/
XSSFWorkbook downloadTemplate(SpecialAddDeductionQueryParam param);
/**
* 预览
*/
Map preview(SpecialAddDeductionImportParam importParam);
/**
* 导入数据
*/
Map importData(SpecialAddDeductionImportParam importParam);
/**
* 获取其他免税扣除数据
*
* @param declareMonth
* @param employeeIds
* @return
*/
List getSpecialAddDeductionList(YearMonth declareMonth, List employeeIds, Long taxAgentId);
/**
* 编辑数据
*/
void editData(SpecialAddDeductionParam SpecialAddDeductionParam);
/**
* 新增数据
*/
void createData(SpecialAddDeductionParam SpecialAddDeductionParam);
/**
* 删除所选数据
*/
void deleteSelectData(AddUpDeductionRecordDeleteParam deleteParam);
/**
* 一键清空数据
*/
void deleteAllData(AddUpDeductionRecordDeleteParam deleteParam);
}