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