同步所有人员报送发薪日期为入职日期

This commit is contained in:
钱涛 2023-12-05 17:08:35 +08:00
parent 791bc2ffca
commit 1a061aa346
7 changed files with 149 additions and 12 deletions

View File

@ -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;
/**
* 同步入职日期参数
* <p>Copyright: Copyright (c) 2023</p>
* <p>Company: 泛微软件</p>
*
* @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;
}

View File

@ -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);
}
}

View File

@ -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<String, Boolean>(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<Void, String>(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<EmployeeDeclareSyncStartDateParam, String>(user).run(getEmployeeDeclareManager(user)::syncEmploymentDate,param);
}
}

View File

@ -61,4 +61,15 @@ public class SalaryArchiveManager extends Service {
return null;
}
/**
* 同步所有档案起始发薪日期变为入职日期
*
* @return
*/
public String syncPayStartDate() {
return getSalaryArchiveService(user).syncPayStartDate();
}
}

View File

@ -175,4 +175,11 @@ public interface EmployeeDeclareService{
* @param param
*/
void getDeclareFeedback(EmployeeDeclareParam param, EmployeeDeclareRateDTO employeeDeclareRate);
/**
* 同步任职受雇日期为入职日期
*
* @return
*/
String syncEmploymentDate(EmployeeDeclareSyncStartDateParam param);
}

View File

@ -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<DataCollectionEmployee> employeeList = getSalaryEmployeeService(user).listAll(UseEmployeeTypeEnum.ALL);
Map<Long, String> empPayStartDateMap = SalaryEntityUtil.convert2Map(employeeList, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getCompanystartdate);
List<EmployeeDeclarePO> 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 "执行完毕";
}
}

View File

@ -586,18 +586,6 @@ public class SalaryArchiveController {
return new ResponseResult<SalaryArchiveStopParam, String>(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<Void, String>(user).run(getSalaryArchiveWrapper(user)::syncPayStartDate);
}
// ******** 薪资档案主表 end ***********************************************************************************************/