package com.engine.salary.service;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareFailListDTO;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareInfoDTO;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareListDTO;
import com.engine.salary.entity.employeedeclare.dto.EmployeeDeclareRateDTO;
import com.engine.salary.entity.employeedeclare.param.*;
import com.engine.salary.entity.employeedeclare.po.EmployeeDeclarePO;
import com.engine.salary.util.page.PageInfo;
import java.util.Collection;
import java.util.Date;
import java.util.List;
/**
* 人员报送(人员)
*
Copyright: Copyright (c) 2023
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public interface EmployeeDeclareService{
/**
* 查询人员报送信息
*
* @param id
* @return
*/
EmployeeDeclarePO getById(Long id);
/**
* 查询人员报送信息
*
* @param ids
* @return
*/
List listByIds(Collection ids);
/**
* 查询人员报送信息
*
* @param taxCycle
* @param taxAgentId
* @return
*/
List listByTaxCycleAndTaxAgentId(Date taxCycle, Long taxAgentId);
/**
* 查询人员报送信息
*
* @param taxCycle
* @param taxAgentId
* @param employeeIds
* @return
*/
List listByTaxCycleAndTaxAgentIdAndEmployeeIds(Date taxCycle, Long taxAgentId,
Collection employeeIds);
/**
* 查询人员报送信息
*
* @param queryParam
* @return
*/
List listByParam(EmployeeDeclareListQueryParam queryParam);
/**
* 查询人员报送-本月新增
* *
*
* @param queryParam
* @return
*/
List list4AddByParam(EmployeeDeclareAddListQueryParam queryParam);
/**
* 本月变动
*
* @param queryParam
* @return
*/
List list4UpdateByParam(EmployeeDeclareListQueryParam queryParam);
/**
* 本月信息变动
*
* @param queryParam
* @return
*/
PageInfo listPage4UpdateByParam(EmployeeDeclareListQueryParam queryParam);
/**
* 本月报送失败
*
* @param param
* @param tenantKey
* @return
*/
// List list4FailByParam(EmployeeDeclareFailListQueryParam param);
/**
* 本月报送失败
*
* @param param
* @return
*/
PageInfo listPage4FailByParam(EmployeeDeclareFailListQueryParam param);
/**
* 保存
*
* @param saveParam
*/
void save(EmployeeDeclareSaveParam saveParam);
/**
* 批量编辑
*
* @param batchUpdateParam
*/
void batchUpdate(EmployeeDeclareBatchUpdateParam batchUpdateParam);
/**
* 删除
*
* @param ids
*/
void deleteByIds(Collection ids);
/**
* 人员报送(人员)列表
*
* @param employeeDeclares
* @return
*/
List convert(List employeeDeclares);
/**
* 人员报送-失败列表
*
* @param employeeDeclares
* @return
*/
List convert2FailListDTO(List employeeDeclares);
/**
* 刷新数据
*
* @param refreshParam
* @param employeeId
*/
void refresh(EmployeeDeclareRefreshParam refreshParam, Long employeeId);
/**
* 获取人员报送的整体情况
*
* @param employeeDeclareParam
* @return
*/
EmployeeDeclareInfoDTO getDeclareInfo(EmployeeDeclareParam employeeDeclareParam);
/**
* 报送人员
*
* @param param
*/
void declare(EmployeeDeclareParam param);
/**
* 获取报送人员的反馈
*
* @param param
*/
void getDeclareFeedback(EmployeeDeclareParam param, EmployeeDeclareRateDTO employeeDeclareRate);
}