From 1a061aa3460b917a777c89542c8cced822ffccdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 5 Dec 2023 17:08:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=89=80=E6=9C=89=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E6=8A=A5=E9=80=81=E5=8F=91=E8=96=AA=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E4=B8=BA=E5=85=A5=E8=81=8C=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmployeeDeclareSyncStartDateParam.java | 31 +++++++++++++ .../EmployeeDeclareManager.java | 44 +++++++++++++++++++ .../maintainer/MaintainerController.java | 36 +++++++++++++++ .../salaryarchive/SalaryArchiveManager.java | 11 +++++ .../service/EmployeeDeclareService.java | 7 +++ .../impl/EmployeeDeclareServiceImpl.java | 20 +++++++++ .../salary/web/SalaryArchiveController.java | 12 ----- 7 files changed, 149 insertions(+), 12 deletions(-) create mode 100644 src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSyncStartDateParam.java create mode 100644 src/com/engine/salary/maintainer/EmployeeDeclare/EmployeeDeclareManager.java diff --git a/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSyncStartDateParam.java b/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSyncStartDateParam.java new file mode 100644 index 000000000..c4410c28a --- /dev/null +++ b/src/com/engine/salary/entity/employeedeclare/param/EmployeeDeclareSyncStartDateParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.employeedeclare.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * 同步入职日期参数 + *

Copyright: Copyright (c) 2023

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class EmployeeDeclareSyncStartDateParam { + // 个税扣缴义务人id + @DataCheck(require = true, message = "参数错误,个税扣缴义务人id不能为空") + private Long taxAgentId; + + // 税款所属期 + @DataCheck(require = true, message = "参数错误,税款所属期参数格式错误") + private Date taxCycle; +} diff --git a/src/com/engine/salary/maintainer/EmployeeDeclare/EmployeeDeclareManager.java b/src/com/engine/salary/maintainer/EmployeeDeclare/EmployeeDeclareManager.java new file mode 100644 index 000000000..8cbfc06ba --- /dev/null +++ b/src/com/engine/salary/maintainer/EmployeeDeclare/EmployeeDeclareManager.java @@ -0,0 +1,44 @@ +package com.engine.salary.maintainer.EmployeeDeclare; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareSyncStartDateParam; +import com.engine.salary.service.*; +import com.engine.salary.service.impl.*; +import com.engine.salary.util.valid.ValidUtil; +import weaver.hrm.User; + +public class EmployeeDeclareManager extends Service { + private TaxAgentService getTaxAgentService(User user) { + return ServiceUtil.getService(TaxAgentServiceImpl.class, user); + } + + private EmployeeDeclareService getEmployeeDeclareService(User user) { + return ServiceUtil.getService(EmployeeDeclareServiceImpl.class, user); + } + + private ExtEmpService getExtEmpService(User user) { + return ServiceUtil.getService(ExtEmpServiceImpl.class, user); + } + + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + + private SalaryCacheService getSalaryCacheService(User user) { + return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); + } + + + /** + * 同步任职受雇日期为入职日期 + * + * @return + */ + public String syncEmploymentDate(EmployeeDeclareSyncStartDateParam param) { + ValidUtil.doValidator(param); + + return getEmployeeDeclareService(user).syncEmploymentDate(param); + } + +} diff --git a/src/com/engine/salary/maintainer/MaintainerController.java b/src/com/engine/salary/maintainer/MaintainerController.java index c184a6082..9bffd7681 100644 --- a/src/com/engine/salary/maintainer/MaintainerController.java +++ b/src/com/engine/salary/maintainer/MaintainerController.java @@ -1,11 +1,14 @@ package com.engine.salary.maintainer; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.employeedeclare.param.EmployeeDeclareSyncStartDateParam; +import com.engine.salary.maintainer.EmployeeDeclare.EmployeeDeclareManager; import com.engine.salary.maintainer.datacollection.AddUpSituationManager; import com.engine.salary.maintainer.salaryacct.SalaryAcctManager; import com.engine.salary.maintainer.salaryacct.SalaryAcctSupplementParam; import com.engine.salary.maintainer.salaryarchive.SalaryArchiveManager; import com.engine.salary.util.ResponseResult; +import com.engine.salary.util.SalaryDateUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import weaver.hrm.HrmUserVarify; @@ -16,6 +19,7 @@ import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.Arrays; @@ -45,6 +49,10 @@ public class MaintainerController { return ServiceUtil.getService(SalaryArchiveManager.class, user); } + private EmployeeDeclareManager getEmployeeDeclareManager(User user) { + return ServiceUtil.getService(EmployeeDeclareManager.class, user); + } + //---------------------------薪资核算 start ------------------------------------ /** @@ -108,4 +116,32 @@ public class MaintainerController { return new ResponseResult(user).run(getSalaryArchiveManager(user)::initPayStartDate); } + /** + * 同步所有档案起始发薪日期变为入职日期 + * + * @return + */ + @GET + @Path("/salaryArchive/syncPayStartDate") + @Produces(MediaType.APPLICATION_JSON) + public String syncPayStartDate(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryArchiveManager(user)::syncPayStartDate); + } + + /** + * 同步任职受雇日期为入职日期 + * + * @return + */ + @GET + @Path("/employeedeclare/syncEmploymentDate") + @Produces(MediaType.APPLICATION_JSON) + public String syncEmploymentDate(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "taxAgentId") Long taxAgentId, @QueryParam(value = "taxCycle")String taxCycle) { + User user = HrmUserVarify.getUser(request, response); + EmployeeDeclareSyncStartDateParam param = EmployeeDeclareSyncStartDateParam.builder().taxAgentId(taxAgentId).taxCycle(SalaryDateUtil.stringToDate(taxCycle)).build(); + return new ResponseResult(user).run(getEmployeeDeclareManager(user)::syncEmploymentDate,param); + } + + } diff --git a/src/com/engine/salary/maintainer/salaryarchive/SalaryArchiveManager.java b/src/com/engine/salary/maintainer/salaryarchive/SalaryArchiveManager.java index cbd52a6ca..751088d46 100644 --- a/src/com/engine/salary/maintainer/salaryarchive/SalaryArchiveManager.java +++ b/src/com/engine/salary/maintainer/salaryarchive/SalaryArchiveManager.java @@ -61,4 +61,15 @@ public class SalaryArchiveManager extends Service { return null; } + + + /** + * 同步所有档案起始发薪日期变为入职日期 + * + * @return + */ + public String syncPayStartDate() { + return getSalaryArchiveService(user).syncPayStartDate(); + } + } diff --git a/src/com/engine/salary/service/EmployeeDeclareService.java b/src/com/engine/salary/service/EmployeeDeclareService.java index 72e987d3c..0869a5869 100644 --- a/src/com/engine/salary/service/EmployeeDeclareService.java +++ b/src/com/engine/salary/service/EmployeeDeclareService.java @@ -175,4 +175,11 @@ public interface EmployeeDeclareService{ * @param param */ void getDeclareFeedback(EmployeeDeclareParam param, EmployeeDeclareRateDTO employeeDeclareRate); + + /** + * 同步任职受雇日期为入职日期 + * + * @return + */ + String syncEmploymentDate(EmployeeDeclareSyncStartDateParam param); } diff --git a/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java b/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java index f50a2d337..eea830dcc 100644 --- a/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java +++ b/src/com/engine/salary/service/impl/EmployeeDeclareServiceImpl.java @@ -28,6 +28,7 @@ import com.engine.salary.entity.taxapiflow.po.TaxDeclarationApiFlowRecordPO; import com.engine.salary.entity.taxdeclaration.po.TaxDeclarationApiConfigPO; import com.engine.salary.enums.SalaryCycleTypeEnum; import com.engine.salary.enums.SalaryOnOffEnum; +import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; import com.engine.salary.enums.employeedeclare.CardTypeEnum; import com.engine.salary.enums.employeedeclare.DeclareStatusEnum; import com.engine.salary.enums.employeedeclare.EmploymentStatusEnum; @@ -703,4 +704,23 @@ public class EmployeeDeclareServiceImpl extends Service implements EmployeeDecla employeeDeclareRate.setMsg(SalaryI18nUtil.getI18nLabel(187388, "报送成功{0}条").replace("{0}", Util.null2String(needUpdateEmployeeDeclares.size()))); } } + + @Override + public String syncEmploymentDate(EmployeeDeclareSyncStartDateParam param) { + List employeeList = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL); + Map empPayStartDateMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getCompanystartdate); + + List employeeDeclarePOS = listByTaxCycleAndTaxAgentId(param.getTaxCycle(), param.getTaxAgentId()); + employeeDeclarePOS.forEach(po -> { + String payStartDate = empPayStartDateMap.getOrDefault(po.getEmployeeId(), ""); + if (SalaryDateUtil.checkDay(payStartDate)) { + po.setEmploymentDate(SalaryDateUtil.dateStrToLocalDate(payStartDate)); + po.setNewEmployeeInfo(1); + po.setDeclareStatus(DeclareStatusEnum.NOT_DECLARE.getValue()); + getEmployeeDeclareMapper().updateIgnoreNull(po); + } + }); + + return "执行完毕"; + } } diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index 6b6e59ae1..b77174441 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -586,18 +586,6 @@ public class SalaryArchiveController { return new ResponseResult(user).run(getSalaryArchiveWrapper(user)::stopSalary, stopSalaryParam); } - /** - * 同步所有档案起始发薪日期变为入职日期 - * - * @return - */ - @GET - @Path("/syncPayStartDate") - @Produces(MediaType.APPLICATION_JSON) - public String syncPayStartDate(@Context HttpServletRequest request, @Context HttpServletResponse response) { - User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryArchiveWrapper(user)::syncPayStartDate); - } // ******** 薪资档案主表 end ***********************************************************************************************/