package com.engine.salary.service; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseHistoryDTO; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; import com.engine.salary.entity.siarchives.param.SIArchiveBaseHistoryListParam; import com.engine.salary.entity.siarchives.po.*; import com.engine.salary.util.page.PageInfo; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.util.*; /** * @Author weaver_cl * * @Date 2022/3/11 * @Version V1.0 **/ public interface SIArchivesService { Map getTips(Map params); Map getBaseForm(Map params); Map getPaymentForm(Map params); String insert(InsuranceArchivesSaveParam param); Map listPage(InsuranceArchivesListParam insuranceArchivesListParam); Map getSearchCondition(Map stringObjectMap); /** * 根据高级搜索框或者员工id集合导出档案 * * @param param 请求报文 * @return map */ XSSFWorkbook export(InsuranceArchivesListParam param); /** * 获取员工的基本信息 *

* 此处主要是一个公共接口,有多处引用。我们薪资系统只保存员工id(employeeId), * 但是页面上需要展示员工的更多信息(姓名,部门,状态。。。), * 所以这里主要是用于接收联表数据的一个接口 * * @param param 高级搜索条件,用于过滤数据 * @return list */ List listPageEmployeePOS(InsuranceArchivesListParam param); /** * 获取福利档案各tab总人数 */ Map queryInsuranceTabTotal(); /** * 批量变更档案列表的runStatus */ void updateRunStatus(InsuranceArchivesBaseInfoPO po); /** * 批量取消停缴 */ void cancelStopPayment(Collection ids); /** * 批量减员 */ Map stayDelToStop(Collection ids); /** * 批量减员,直接减员,并给予最后缴纳月 */ Map stopWithoutLimit(Collection ids, String yearMonth); /** * 全量减员 */ Map allStayDelToStop(); /** * 全量增员 */ Map allStayAddToPay(); /** * 批量增员 */ Map stayAddToPay(Collection ids); /** * 拷贝福利档案到新的个税扣缴义务人并置为在缴 * @param toCopyTaxAgentId 被拷贝的福利档案所属个税扣缴义务人id * @param toUpdateTaxAgentId 被更新的福利档案所属个税扣缴义务人id * @param employeeId 福利档案所属人员id * @return */ Map copyToPay(Long toCopyTaxAgentId, Long toUpdateTaxAgentId, Long employeeId, String payStartYearMonth); /** * 待减员页面的删除待办 */ void cancelStayDel(InsuranceArchivesBaseInfoPO insuranceArchivesBaseInfoPO); /** * 处理福利档案增量数据 */ void handleChangeData(long currentEmployeeId); /** * 删除档案 * @param longs */ void deleteArchive(Collection longs); void handleStayDelData(long currentEmployeeId); PageInfo getAdjustHistoryList(SIArchiveBaseHistoryListParam param); PageInfo historyListByEmployeeIdAndOperator(SIArchiveBaseHistoryListParam param); List> buildTableData(List insuranceArchivesEmployeePOS); List buildWeaTableColumns(List insuranceArchivesEmployeePOS); boolean isDiffWelBase(); List payInsuranceIds(Long socialSchemeId, Integer paymentScope); List payInsuranceIds(Long socialSchemeId); List getSocialByEmployeeIds(List employeeIds); List getFundByEmployeeIds(List employeeIds); List getOtherByEmployeeIds(List employeeIds); Map buildBatchAccount(List ids, Long paymentOrganization); Boolean checkWelBaseLimit(Long primaryId, String paymentBaseString, Integer paymentScope); String checkAndBuildWelBaseWithLimit(Long primaryId, String paymentBaseString, Integer paymentScope); List dealSocialBaseAdjustInfoList(List adjustList, Long creator); List dealFundBaseAdjustInfoList(List adjustList, Long creator); List dealOtherBaseAdjustInfoList(List adjustList, Long creator); void batchInsertAdjustHistory(List adjustHistoryList); List listEndDateIsNull(List employeeIds); List listStartDateIsNull(List employeeIds); List listInsuranceArchivesSocialSchemeByIds(List ids); List listInsuranceArchivesFundSchemeByIds(List ids); List listInsuranceArchivesOtherSchemeByIds(List ids); }