From be4998b62d2b5d5c9cc4b9758f7d20d0cf71ffcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 15 Sep 2025 11:33:51 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BA=BA=E5=91=98=E6=8A=A5=E9=80=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=A4=84=E5=8E=9F=E6=9C=89=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E6=98=AF=E6=A0=B9=E6=8D=AE=E5=91=98=E5=B7=A5=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E6=A1=A3=E6=A1=88=E6=97=B6=E9=97=B4=E4=BD=9C=E4=B8=BA=E5=8F=97?= =?UTF-8?q?=E9=9B=87=E4=BB=8E=E4=B8=9A=E6=97=A5=E6=9C=9F=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=A5=E6=9C=9F=EF=BC=8C=E7=8E=B0=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E4=B8=BA=E4=BB=A5=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=BE=80=E5=90=8E=E5=BB=B6=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=9C=88=E4=BD=9C=E4=B8=BA=E9=9B=87=E4=BB=8E=E4=B8=9A=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E4=BB=A5=E3=80=81=E7=BB=93=E6=9D=9F=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bo/EmployeeDeclareRefresh.java | 47 ++++++++++++++----- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java index 72191b404..4d7529208 100644 --- a/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java +++ b/src/com/engine/salary/entity/employeedeclare/bo/EmployeeDeclareRefresh.java @@ -1,5 +1,6 @@ package com.engine.salary.entity.employeedeclare.bo; +import cn.hutool.core.date.DateUtil; import com.api.formmode.page.util.Util; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; @@ -27,6 +28,7 @@ import java.util.*; public class EmployeeDeclareRefresh { public static Result refresh(EmployeeDeclareRefreshDTO dto, Long employeeId) { + Date taxCycle = dto.getTaxCycle(); Result result = new Result(); // 本月已有的需要报送的人员 Set employeeIds = SalaryEntityUtil.properties(dto.getEmployeeDeclares(), EmployeeDeclarePO::getEmployeeId); @@ -43,10 +45,16 @@ public class EmployeeDeclareRefresh { || Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()))) { if (Objects.equals(employeeDeclare.getEmploymentStatus(), EmploymentStatusEnum.ABNORMAL.getValue()) || Objects.equals(Util.null2String(employeeDeclare.getDismissDate()), Util.null2String(salaryArchive.getPayEndDate()))) { - employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue()); - employeeDeclare.setDismissDate(salaryArchive.getPayEndDate()); - employeeDeclare.setNewEmployeeInfo(1); - employeeDeclare.setUpdateTime(now); + Date payEndDate = salaryArchive.getPayEndDate(); + payEndDate = SalaryDateUtil.plusMonths(payEndDate, 1); + //过滤不在一个月且发薪日期在之后月份的 + if ((!DateUtil.isIn(payEndDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payEndDate.before(taxCycle)) { + employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue()); + employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue()); + employeeDeclare.setDismissDate(payEndDate); + employeeDeclare.setNewEmployeeInfo(1); + employeeDeclare.setUpdateTime(now); + } result.getEmployeeDeclares().add(employeeDeclare); } } @@ -76,10 +84,15 @@ public class EmployeeDeclareRefresh { SalaryArchivePO salaryArchive = salaryArchiveMap.get(employeeDeclare.getEmployeeId()); if (salaryArchive != null && (Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue()) || Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue()))) { - employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue()); - employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue()); - employeeDeclare.setDismissDate(salaryArchive.getPayEndDate()); - employeeDeclare.setNewEmployeeInfo(1); + Date payEndDate = salaryArchive.getPayEndDate(); + payEndDate = SalaryDateUtil.plusMonths(payEndDate, 1); + //过滤不在一个月且发薪日期在之后月份的 + if ((!DateUtil.isIn(payEndDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payEndDate.before(taxCycle)) { + employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue()); + employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue()); + employeeDeclare.setDismissDate(payEndDate); + employeeDeclare.setNewEmployeeInfo(1); + } } // if (salaryArchive != null && !Objects.equals(Util.null2String(employeeDeclare.getEmploymentType()), salaryArchive.getEmploymentType())) { // employeeDeclare.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue()); @@ -141,11 +154,23 @@ public class EmployeeDeclareRefresh { SalaryArchivePO salaryArchive = salaryArchiveMap.get(employeeDeclare.getEmployeeId()); if (salaryArchive != null) { // employeeDeclare.setEmploymentType(Util.getIntValue(salaryArchive.getEmploymentType())); - employeeDeclare.setEmploymentDate(salaryArchive.getPayStartDate()); + //钱智二开,薪资档案时间作为受雇从业日期以及结束日期,调整为以薪资档案时间往后延一个月作为雇从业日期以、结束日期。 + Date payStartDate = salaryArchive.getPayStartDate(); + payStartDate = SalaryDateUtil.plusMonths(payStartDate, 1); + //过滤不在一个月且发薪日期在之后月份的 + if ((!DateUtil.isIn(payStartDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payStartDate.after(taxCycle)) { + continue; + } + if (Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_PENDING.getValue()) || Objects.equals(salaryArchive.getRunStatus(), SalaryArchiveStatusEnum.STOP_FROM_SUSPEND.getValue())) { - employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue()); - employeeDeclare.setDismissDate(salaryArchive.getPayEndDate()); + Date payEndDate = salaryArchive.getPayEndDate(); + payEndDate = SalaryDateUtil.plusMonths(payEndDate, 1); + //过滤不在一个月且发薪日期在之后月份的 + if ((!DateUtil.isIn(payEndDate, taxCycle, DateUtil.endOfMonth(taxCycle))) && payEndDate.before(taxCycle)) { + employeeDeclare.setEmploymentStatus(EmploymentStatusEnum.ABNORMAL.getValue()); + employeeDeclare.setDismissDate(payEndDate); + } } } employeeIds.add(employeeDeclare.getEmployeeId());