package com.engine.salary.service.impl;
import com.engine.core.impl.Service;
import com.engine.salary.encrypt.AESEncryptUtil;
import com.engine.salary.encrypt.report.SalaryAcctResultReportPOEncrypt;
import com.engine.salary.entity.report.po.SalaryAcctResultReportPO;
import com.engine.salary.mapper.report.SalaryAcctResultReportMapper;
import com.engine.salary.service.SalaryAcctReportService;
import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/**
* 薪资报表
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public class SalaryAcctReportServiceImpl extends Service implements SalaryAcctReportService {
private SalaryAcctResultReportMapper getSalaryAcctResultReportMapper() {
return MapperProxyFactory.getProxy(SalaryAcctResultReportMapper.class);
}
/**
* 薪酬解密方法
*
* @param s 待解密字符串
* @return
*/
@Override
public List decrypt(List s) {
if (s != null) {
return s.stream().map(AESEncryptUtil::decrypt).collect(Collectors.toList());
}
return Lists.newArrayList();
}
/**
* 薪酬解密方法
*
* @param s 待解密字符串
* @return
*/
@Override
public String decrypt(String s) {
return AESEncryptUtil.decrypt(s);
}
/**
* 保存核算报表数据
*
* @param pos
*/
@Override
public void batchSave(Collection pos) {
if (CollectionUtils.isNotEmpty(pos)) {
SalaryAcctResultReportPOEncrypt.encryptList(pos);
List> partition = Lists.partition((List) pos, 100);
partition.forEach(getSalaryAcctResultReportMapper()::batchInsert);
}
}
@Override
public void deleteBySalaryAcctRecordIds(Collection salaryAcctRecordIds) {
if (CollectionUtils.isNotEmpty(salaryAcctRecordIds)) {
List> partition = Lists.partition((List) salaryAcctRecordIds, 100);
partition.forEach(getSalaryAcctResultReportMapper()::deleteBySalaryAcctRecordIds);
}
}
@Override
public void deleteBySalaryAcctRecordId(Long salaryAcctRecordId) {
getSalaryAcctResultReportMapper().deleteBySalaryAcctRecordId(salaryAcctRecordId);
}
@Override
public void deleteBySalaryAcctEmpIds(Collection salaryAcctEmpIds) {
if (CollectionUtils.isNotEmpty(salaryAcctEmpIds)) {
List collect = salaryAcctEmpIds.stream().map(e -> AESEncryptUtil.encrypt(e.toString())).collect(Collectors.toList());
getSalaryAcctResultReportMapper().deleteBySalaryAcctEmpIds(collect);
}
}
@Override
public void deleteByAcctEmployeeIdsAndSalaryItemIds(Collection salaryAcctEmployeeIds, Collection salaryItemIds) {
if (CollectionUtils.isNotEmpty(salaryAcctEmployeeIds) && CollectionUtils.isNotEmpty(salaryItemIds)) {
List salaryAcctEmployeeIdsStr = salaryAcctEmployeeIds.stream().map(e -> AESEncryptUtil.encrypt(e.toString())).collect(Collectors.toList());
getSalaryAcctResultReportMapper().deleteByAcctEmpIdsAndSalaryItemIds(salaryAcctEmployeeIdsStr, salaryItemIds);
}
}
}