From a2f8803e76b3cbd4cc83a4dc3824a6486ecc33c2 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 8 Nov 2024 16:08:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=96=AA=E6=97=B6=E9=97=B4=20?= =?UTF-8?q?=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryArchiveQueryParam.java | 6 +++++ .../archive/SalaryArchiveItemMapper.java | 2 ++ .../archive/SalaryArchiveItemMapper.xml | 22 +++++++++++++++++++ .../service/SalaryArchiveItemService.java | 10 +++++++++ .../impl/SalaryArchiveItemServiceImpl.java | 13 +++++++++++ .../impl/SalaryArchiveServiceImpl.java | 10 +++++++++ 6 files changed, 63 insertions(+) diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java index fd36884d3..bbbd2cc80 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveQueryParam.java @@ -112,4 +112,10 @@ public class SalaryArchiveQueryParam extends BaseQueryParam { // 最后发薪日期止 private Date payEndDateEndDate; + // 调薪起始日期 + private Date adjustSalaryStartDate; + + // 调薪结束日期 + private Date adjustSalaryEndDate; + } diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java index 78e83be7b..f3105e794 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.archive; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemQueryParam; import com.engine.salary.entity.salaryarchive.param.SalaryItemAdjustRecordQueryParam; @@ -97,4 +98,5 @@ public interface SalaryArchiveItemMapper { int batchUpdate(@Param("collection") List pos); + List listByArchiveIdAndEffectiveTime(@Param("salaryArchivesIds")List salaryArchiveIds, @Param("effectiveRange")LocalDateRange dateRange); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml index ff6f3ee20..d0830bad3 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml @@ -1071,6 +1071,28 @@ ORDER BY t.effective_time DESC + + UPDATE hrsa_salary_archive_item diff --git a/src/com/engine/salary/service/SalaryArchiveItemService.java b/src/com/engine/salary/service/SalaryArchiveItemService.java index 9d9081bd8..6e22d49ba 100644 --- a/src/com/engine/salary/service/SalaryArchiveItemService.java +++ b/src/com/engine/salary/service/SalaryArchiveItemService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.entity.salaryarchive.config.ArchiveFieldConfig; import com.engine.salary.entity.salaryarchive.dto.SalaryItemAdjustRecordListDTO; import com.engine.salary.entity.salaryarchive.param.SalaryArchiveItemSaveParam; @@ -163,4 +164,13 @@ public interface SalaryArchiveItemService { ArchiveFieldConfig getConfig(); UploadConfigResponse.Result parseConfig(ArchiveFieldConfig config); + + /** + * 根据薪资档案id和生效日期范围获取数据 + * + * @param salaryArchiveIds + * @param dateRange + * @return + */ + List listByArchiveIdAndEffectiveTime(List salaryArchiveIds, LocalDateRange dateRange); } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java index 01b94c051..13e413ec7 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveItemServiceImpl.java @@ -7,6 +7,7 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.SalaryArchiveBiz; import com.engine.salary.biz.SalaryArchiveItemBiz; import com.engine.salary.biz.SalaryItemBiz; +import com.engine.salary.common.LocalDateRange; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -807,4 +808,16 @@ public class SalaryArchiveItemServiceImpl extends Service implements SalaryArchi return result; } + @Override + public List listByArchiveIdAndEffectiveTime(List salaryArchiveIds, LocalDateRange dateRange) { + if (CollectionUtils.isEmpty(salaryArchiveIds)) { + return Collections.emptyList(); + } + List resultList = new ArrayList<>(); + List> partition = Lists.partition(salaryArchiveIds, 1000); + partition.forEach(part -> { + resultList.addAll(getSalaryArchiveItemMapper().listByArchiveIdAndEffectiveTime(salaryArchiveIds, dateRange)); + }); + return resultList; + } } diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 5165b6c50..0220ea480 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -185,6 +185,16 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe } List list = getSalaryArchiveMapper().list(queryParam); + + // 过滤调薪日期 + if (queryParam.getAdjustSalaryStartDate() != null || queryParam.getAdjustSalaryEndDate() != null) { + List salaryArchiveIds = list.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()); + LocalDateRange dateRange = LocalDateRange.builder().fromDate(queryParam.getAdjustSalaryStartDate()).endDate(queryParam.getAdjustSalaryEndDate()).build(); + List salaryArchiveItemPOList = getSalaryArchiveItemService(user).listByArchiveIdAndEffectiveTime(salaryArchiveIds, dateRange); + List archiveIds = salaryArchiveItemPOList.stream().map(SalaryArchiveItemPO::getSalaryArchiveId).distinct().collect(Collectors.toList()); + list = list.stream().filter(dto -> archiveIds.contains(dto.getId())).collect(Collectors.toList()); + } + return SalaryI18nUtil.i18nList(list); } From 058e7dcb3c0f74c6c9d40487d58a5a02c11c507a Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 8 Nov 2024 16:29:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B0=83=E8=96=AA=E6=97=B6=E9=97=B4=20?= =?UTF-8?q?=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/web/SalaryArchiveController.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 0fbe3797c..8bb205be2 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -539,6 +539,30 @@ public class SalaryArchiveController { if (StringUtils.isNotBlank(extSalaryArchiveList)) { param.setExtSalaryArchiveList("true".equals(extSalaryArchiveList)); } + String payStartDateStartDateStr = request.getParameter("payStartDateStartDateStr"); + if (StringUtils.isNotBlank(payStartDateStartDateStr) && SalaryDateUtil.checkDay(payStartDateStartDateStr)) { + param.setPayStartDateStartDate(SalaryDateUtil.stringToDate(payStartDateStartDateStr)); + } + String payStartDateEndDateStr = request.getParameter("payStartDateEndDateStr"); + if (StringUtils.isNotBlank(payStartDateEndDateStr) && SalaryDateUtil.checkDay(payStartDateEndDateStr)) { + param.setPayStartDateEndDate(SalaryDateUtil.stringToDate(payStartDateEndDateStr)); + } + String payEndDateStartDateStr = request.getParameter("payEndDateStartDateStr"); + if (StringUtils.isNotBlank(payEndDateStartDateStr) && SalaryDateUtil.checkDay(payEndDateStartDateStr)) { + param.setPayEndDateStartDate(SalaryDateUtil.stringToDate(payEndDateStartDateStr)); + } + String payEndDateEndDateStr = request.getParameter("payEndDateEndDateStr"); + if (StringUtils.isNotBlank(payEndDateEndDateStr) && SalaryDateUtil.checkDay(payEndDateEndDateStr)) { + param.setPayEndDateEndDate(SalaryDateUtil.stringToDate(payEndDateEndDateStr)); + } + String adjustSalaryStartDateStr = request.getParameter("adjustSalaryStartDate"); + if (StringUtils.isNotBlank(adjustSalaryStartDateStr) && SalaryDateUtil.checkDay(adjustSalaryStartDateStr)) { + param.setAdjustSalaryStartDate(SalaryDateUtil.stringToDate(adjustSalaryStartDateStr)); + } + String adjustSalaryEndDate = request.getParameter("adjustSalaryEndDate"); + if (StringUtils.isNotBlank(adjustSalaryEndDate) && SalaryDateUtil.checkDay(adjustSalaryEndDate)) { + param.setAdjustSalaryEndDate(SalaryDateUtil.stringToDate(adjustSalaryEndDate)); + } return param; }