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 ***********************************************************************************************/