1、档案导入初始化修复

2、核算档案
3、取消入职、离职日期作为核算人员的筛选条件
This commit is contained in:
钱涛 2022-07-28 15:42:25 +08:00
parent 36e2f96ae5
commit b6f8e857d2
7 changed files with 93 additions and 32 deletions

View File

@ -74,4 +74,6 @@ public class SalaryArchiveBiz {
sqlSession.close();
}
}
}

View File

@ -115,6 +115,12 @@ public class SalaryArchiveImportHandleParam {
*/
List<SalaryArchivePO> salaryArchiveSaves;
/**
* 待修改薪资档案
*/
List<SalaryArchivePO> salaryArchiveUpdates;
/**
* 待保存薪资档案-个税扣缴义务人
*/

View File

@ -15,6 +15,14 @@ public interface SalaryArchiveMapper {
* @return 返回集合没有返回空List
*/
List<SalaryArchivePO> listAll();
/**
* 修改修改所有字段
*
* @param salaryArchive 修改的记录
* @return 返回影响行数
*/
int update(SalaryArchivePO salaryArchive);
/**

View File

@ -38,6 +38,22 @@
WHERE delete_type = 0
</select>
<update id="update" parameterType="com.engine.salary.entity.salaryarchive.po.SalaryArchivePO">
UPDATE hrsa_salary_archive
<set>
employee_id=#{employeeId},
create_time=#{createTime},
update_time=#{updateTime},
creator=#{creator},
delete_type=#{deleteType},
tenant_key=#{tenantKey},
tax_agent_id=#{taxAgentId},
pay_start_date=#{payStartDate},
pay_end_date=#{payEndDate},
</set>
WHERE id = #{id}
</update>
<!-- 根据主键获取单条记录 -->
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
SELECT

View File

@ -39,6 +39,8 @@ public interface SalaryArchiveService {
*/
SalaryArchivePO getById(Long salaryArchiveId);
List<SalaryArchivePO> listSome(SalaryArchivePO po);
/**
* 薪资档案列表分页
*

View File

@ -66,7 +66,7 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
// private SalaryComparisonResultService salaryComparisonResultService;
private SalarySobService getSalarySobService(User user) {
return (SalarySobService) ServiceUtil.getService(SalarySobServiceImpl.class, user);
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
}
private SalaryEmployeeService getSalaryEmployeeService(User user) {
@ -391,13 +391,12 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct
// 根据薪资账套查询薪资周期
SalarySobCycleDTO salarySobCycleDTO = getSalarySobService(user).getSalarySobCycle(salaryAcctRecordPO.getSalarySobId(), SalaryDateUtil.localDate2YearMonth(salaryAcctRecordPO.getSalaryMonth()));
List<DataCollectionEmployee> finalSalaryEmployees = new ArrayList<>();
// 根据薪资账套的"核算人员范围"过滤入职日期大于薪资周期止的人员
salaryEmployees = salaryEmployees.stream().filter(salaryEmployee -> StringUtils.isBlank(salaryEmployee.getCompanystartdate()) || (SalaryDateUtil.stringToDate(salaryEmployee.getCompanystartdate()) != null && SalaryDateUtil.stringToDate(salaryEmployee.getCompanystartdate()).compareTo(salarySobCycleDTO.getSalaryCycle().getEndDate()) <= 0)).collect(Collectors.toList());
// 根据薪资账套的"核算人员范围"过滤离职日期小于薪资周期起的人员
salaryEmployees = salaryEmployees.stream().filter(salaryEmployee -> StringUtils.isBlank(salaryEmployee.getDismissdate()) || (SalaryDateUtil.stringToDate(salaryEmployee.getCompanystartdate()) != null && SalaryDateUtil.stringToDate(salaryEmployee.getDismissdate()).compareTo(salarySobCycleDTO.getSalaryCycle().getEndDate()) > 0)).collect(Collectors.toList());
// // 根据薪资账套的"核算人员范围"过滤入职日期大于薪资周期止的人员
// salaryEmployees = salaryEmployees.stream().filter(salaryEmployee -> StringUtils.isBlank(salaryEmployee.getCompanystartdate()) || (SalaryDateUtil.stringToDate(salaryEmployee.getCompanystartdate()) != null && SalaryDateUtil.stringToDate(salaryEmployee.getCompanystartdate()).compareTo(salarySobCycleDTO.getSalaryCycle().getEndDate()) <= 0)).collect(Collectors.toList());
//
//
// // 根据薪资账套的"核算人员范围"过滤离职日期小于薪资周期起的人员
// salaryEmployees = salaryEmployees.stream().filter(salaryEmployee -> StringUtils.isBlank(salaryEmployee.getDismissdate()) || (SalaryDateUtil.stringToDate(salaryEmployee.getCompanystartdate()) != null && SalaryDateUtil.stringToDate(salaryEmployee.getDismissdate()).compareTo(salarySobCycleDTO.getSalaryCycle().getEndDate()) > 0)).collect(Collectors.toList());
//查询账套对应的扣缴义务人

View File

@ -102,6 +102,12 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
return salaryArchiveMapper.getById(salaryArchiveId);
}
@Override
public List<SalaryArchivePO> listSome(SalaryArchivePO po) {
// 获取薪资档案数据
return getSalaryArchiveMapper().listSome(po);
}
@Override
public PageInfo<SalaryArchiveListDTO> listPage(SalaryArchiveQueryParam queryParam) {
long currentEmployeeId = user.getUID();
@ -657,13 +663,6 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
Map<String, Object> map = data.get(i);
List<String> headers = Lists.newArrayList();
map.keySet().forEach(headers::add);
int effectiveTimeIndex = 0;
for (int j = 0; j < headers.size(); j++) {
if (headers.get(j).equals(SalaryI18nUtil.getI18nLabel(85904, "生效日期"))) {
effectiveTimeIndex = j;
break;
}
}
map.put("index", i + 2);
// 3.校验行内容
boolean isError = singleRowCheck(importType, Lists.newArrayList(), map, headers, excelComments, errorCount, importHandleParam);
@ -766,6 +765,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
.today(now)
// 待保存薪资档案
.salaryArchiveSaves(Lists.newArrayList())
// 待修改薪资档案-
.salaryArchiveUpdates(Lists.newArrayList())
// 待保存薪资档案-个税扣缴义务人
.salaryArchiveTaxAgentSaves(Lists.newArrayList())
// 待保存薪资档案-薪资项目
@ -1055,21 +1056,51 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
return isError;
}
/**
* 构建薪资档案
* @param isInit
* @param payStartDate
* @param payEndDate
* @param employeeId
* @param taxAgentId
* @param importHandleParam
* @return
*/
private SalaryArchivePO buildSalaryArchive(boolean isInit, Date payStartDate, Date payEndDate, Long employeeId, Long taxAgentId, SalaryArchiveImportHandleParam importHandleParam) {
Optional<SalaryArchiveListDTO> optionalSA = importHandleParam.getSalaryArchives().stream().filter(p -> p.getEmployeeId().equals(employeeId) && p.getTaxAgentId().equals(taxAgentId)).findFirst();
Optional<SalaryArchiveListDTO> optionalSA = importHandleParam.getSalaryArchives().stream()
.filter(p -> p.getEmployeeId().equals(employeeId) && p.getTaxAgentId().equals(taxAgentId))
.findFirst();
SalaryArchivePO salaryArchive = null;
if (optionalSA.isPresent()) {
// 修改档案
SalaryArchiveListDTO sa = optionalSA.get();
salaryArchive = new SalaryArchivePO();
salaryArchive.setId(sa.getId());
salaryArchive.setEmployeeId(sa.getEmployeeId());
salaryArchive.setTaxAgentId(sa.getTaxAgentId());
salaryArchive.setPayStartDate(payStartDate);
salaryArchive.setPayEndDate(payEndDate);
salaryArchive = SalaryArchivePO.builder()
.id(sa.getId())
.employeeId(sa.getEmployeeId())
.taxAgentId(sa.getTaxAgentId())
.payStartDate(payStartDate)
.payEndDate(payEndDate)
.createTime(importHandleParam.getNowTime())
.updateTime(importHandleParam.getNowTime())
.creator((long) user.getUID())
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
importHandleParam.getSalaryArchiveUpdates().add(salaryArchive);
} else if (employeeId != null && isInit) {
// 新增档案
salaryArchive = SalaryArchivePO.builder().id(IdGenerator.generate()).employeeId(employeeId).taxAgentId(taxAgentId).payStartDate(payStartDate).payEndDate(payEndDate).createTime(importHandleParam.getNowTime()).updateTime(importHandleParam.getNowTime()).creator((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build();
salaryArchive = SalaryArchivePO.builder()
.id(IdGenerator.generate())
.employeeId(employeeId)
.taxAgentId(taxAgentId)
.payStartDate(payStartDate)
.payEndDate(payEndDate)
.createTime(importHandleParam.getNowTime())
.updateTime(importHandleParam.getNowTime())
.creator((long) user.getUID())
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.deleteType(0)
.build();
importHandleParam.getSalaryArchiveSaves().add(salaryArchive);
}
@ -1452,9 +1483,8 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
private void handleImportData(boolean isInit, SalaryArchiveImportHandleParam importHandleParam) {
List<SalaryArchivePO> salaryArchiveSaves = importHandleParam.getSalaryArchiveSaves();
List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgentSaves = importHandleParam.getSalaryArchiveTaxAgentSaves();
List<SalaryArchivePO> salaryArchiveUpdates = importHandleParam.getSalaryArchiveUpdates();
List<SalaryArchiveItemPO> salaryArchiveItemSaves = importHandleParam.getSalaryArchiveItemSaves();
List<Long> salaryArchiveTaxAgentDelTaxAgentIds = importHandleParam.getSalaryArchiveTaxAgentDelTaxAgentIds();
List<Long> salaryArchiveItemDelSalaryItemIds = importHandleParam.getSalaryArchiveItemDelSalaryItemIds();
// 初始化导入
if (isInit) {
@ -1470,23 +1500,21 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
}
}
} else {
if (CollectionUtils.isNotEmpty(salaryArchiveTaxAgentDelTaxAgentIds)) {
salaryArchiveTaxAgentMapper.deleteBatchIds(salaryArchiveTaxAgentDelTaxAgentIds);
}
if (CollectionUtils.isNotEmpty(salaryArchiveItemDelSalaryItemIds)) {
salaryArchiveItemMapper.deleteBatchIds(salaryArchiveItemDelSalaryItemIds);
}
}
// 修改薪资档案
if (CollectionUtils.isNotEmpty(salaryArchiveUpdates)) {
salaryArchiveUpdates.forEach(getSalaryArchiveMapper()::update);
}
// 新增薪资档案
if (CollectionUtils.isNotEmpty(salaryArchiveSaves)) {
// 薪资档案
salaryArchiveMapper.batchInsert(salaryArchiveSaves);
}
// 薪资档案-个税扣缴义务人
if (CollectionUtils.isNotEmpty(salaryArchiveTaxAgentSaves)) {
salaryArchiveTaxAgentMapper.batchInsert(salaryArchiveTaxAgentSaves);
}
// 薪资档案-薪资项目
if (CollectionUtils.isNotEmpty(salaryArchiveItemSaves)) {
salaryArchiveItemMapper.batchInsert(salaryArchiveItemSaves);