package com.engine.salary.service;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.dto.SalaryItemTopologyDTO;
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
import com.engine.salary.entity.salarysob.dto.SalarySobItemFormDTO;
import com.engine.salary.entity.salarysob.param.SalaryItemTopologyQueryParam;
import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import java.util.Collection;
import java.util.List;
/**
* 薪资账套的薪资项目副本
*
Copyright: Copyright (c) 2023
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public interface SalarySobItemService {
/**
* 查询所有薪资账套的薪资项目副本
*
* @return
*/
List list();
/**
* 根据薪资账套id查询薪资账套的薪资项目副本
*
* @param salarySobId 薪资账套的id
* @return
*/
List listBySalarySobId(Long salarySobId);
/**
* 根据薪资账套id查询薪资账套的薪资项目副本(不包括已隐藏的薪资项目列)
*
* @param salarySobId 薪资账套的id
* @return
*/
List listBySalarySobIdWithHideItem(Long salarySobId);
/**
* 根据薪资账套id和薪资项目分类查询薪资账套的薪资项目副本
*
*/
List listBySalarySobIdAndGroupId(Long salarySobId,Collection salarySobItemGroupIds);
/**
* 根据薪资账套id查询薪资账套的薪资项目副本
*
* @param salarySobIds 薪资账套的id
* @return
*/
List listBySalarySobIds(Collection salarySobIds);
/**
* 根据薪资账套id、薪资项目id查询薪资账套的薪资项目副本
*
* @param salarySobId 薪资账套id
* @param salaryItemIds 薪资项目id
* @return
*/
List listBySalarySobIdAndSalaryItemIdNotIn(Long salarySobId, Collection salaryItemIds);
/**
* 根据薪资项目id查询薪资账套的薪资项目副本
*
* @param salaryItemIds 薪资项目的主键id
* @return
*/
List listBySalaryItemIds(Collection salaryItemIds);
/**
* 根据薪资账套id查询薪资账套的薪资项目副本所关联的薪资项目
*
* @param salarySobId 薪资账套id
* @return
*/
List listBySalarySobId4SalaryItem(Long salarySobId);
/**
* 根据薪资账套id获取薪资账套的薪资项目聚合(员工信息、薪资项目副本、薪资项目分类)
*
* @param salarySobId
* @return
*/
SalarySobItemAggregateDTO getAggregateBySalarySobId(Long salarySobId);
/**
* 根据薪资账套id获取薪资账套的薪资项目聚合(员工信息、薪资项目副本、薪资项目分类)(不包含已设置为隐藏的)
* @param salarySobId
* @return
*/
SalarySobItemAggregateDTO getAggregateWithItemHideBySalarySobId(Long salarySobId, boolean isBackCalc);
/**
* 保存
*
* @param saveParam 保存参数
*/
void save(SalarySobItemSaveParam saveParam);
/**
* 批量保存
*
* @param salarySobItemPOS 薪资账套的薪资项目副本
*/
void batchSave(Collection salarySobItemPOS);
/**
* 根据薪资账套id删除薪资账套的薪资项目副本
*
*/
void deleteBySalarySobIds(Collection salarySobIds);
/**
* 根据薪资账套id删除薪资项目是否显示
*
*/
void deleteItemShowBySalarySobIds(Collection salarySobIds);
/**
* 薪资项目的详情
*/
SalarySobItemFormDTO getSalaryItemForm(SalarySobItemPO param);
/**
* 更新
* @param po
*/
void update(SalarySobItemPO po);
/**
* 拓扑图
* @param param
* @return
*/
SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param);
}