diff --git a/src/com/engine/salary/maintainer/MaintainerController.java b/src/com/engine/salary/maintainer/MaintainerController.java index 1122d6681..c184a6082 100644 --- a/src/com/engine/salary/maintainer/MaintainerController.java +++ b/src/com/engine/salary/maintainer/MaintainerController.java @@ -4,6 +4,7 @@ import com.engine.common.util.ServiceUtil; 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 lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -40,6 +41,10 @@ public class MaintainerController { return ServiceUtil.getService(AddUpSituationManager.class, user); } + private SalaryArchiveManager getSalaryArchiveManager(User user) { + return ServiceUtil.getService(SalaryArchiveManager.class, user); + } + //---------------------------薪资核算 start ------------------------------------ /** @@ -94,4 +99,13 @@ public class MaintainerController { } //---------------------------数据采集 往期累计情况 end ------------------------------------ + + @GET + @Path("/salaryArchive/initPayStartDate") + @Produces(MediaType.APPLICATION_JSON) + public String initPayDate(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryArchiveManager(user)::initPayStartDate); + } + } diff --git a/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java b/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java index 69f62e147..c65d02559 100644 --- a/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java +++ b/src/com/engine/salary/maintainer/datacollection/AddUpSituationManager.java @@ -24,7 +24,7 @@ import java.util.stream.Collectors; * @date 2023/04/23 17:23 * @description 往期累计情况维护类 */ -public class AddUpSituationManager extends Service { +public class AddUpSituationManager extends Service { private TaxDeclarationMapper getTaxDeclarationMapper() { return MapperProxyFactory.getProxy(TaxDeclarationMapper.class); @@ -38,29 +38,31 @@ public class AddUpSituationManager extends Service { // 获取已有的个税申报表记录 List taxDeclarationList = getTaxDeclarationMapper().listSome(new TaxDeclarationPO()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); - Map taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarationList, TaxDeclarationPO::getId, PO->PO.getTaxAgentId()+"-"+sdf.format(PO.getSalaryMonth())); + Map taxDeclarationMap = SalaryEntityUtil.convert2Map(taxDeclarationList, TaxDeclarationPO::getId, PO -> PO.getTaxAgentId() + "-" + sdf.format(PO.getSalaryMonth())); BaseBean bb = new BaseBean(); List taxDeclarationIds = taxDeclarationList.stream().map(TaxDeclarationPO::getId).collect(Collectors.toList()); - bb.writeLog("往期累计数据恢复DataIds:"+ taxDeclarationIds); - bb.writeLog("往期累计数据恢复DataMap:"+ taxDeclarationMap); + bb.writeLog("往期累计数据恢复DataIds:" + taxDeclarationIds); + bb.writeLog("往期累计数据恢复DataMap:" + taxDeclarationMap); boolean result = true; // 循环调用生成申报单接口 - for(int i =0; i < taxDeclarationList.size(); i++){ + for (int i = 0; i < taxDeclarationList.size(); i++) { TaxDeclarationPO po = taxDeclarationList.get(i); - bb.writeLog("开始删除生成:"+po.getTaxAgentId()+"-"+po.getSalaryMonth()); + bb.writeLog("开始删除生成:" + po.getTaxAgentId() + "-" + po.getSalaryMonth()); // 删除记录 int delete = getTaxDeclarationMapper().deleteByIdZj(po.getId()); LocalDate localDate = SalaryDateUtil.dateToLocalDate(po.getSalaryMonth()); // 调用生成申报单接口 - YearMonth yearMonth = YearMonth.of(localDate.getYear(),localDate.getMonth()); + YearMonth yearMonth = YearMonth.of(localDate.getYear(), localDate.getMonth()); try { getTaxDeclarationService().save(TaxDeclarationSaveParam.builder().salaryMonth(yearMonth).taxAgentId(po.getTaxAgentId()).build()); - }catch (Exception e){ - bb.writeLog("错误:"+e); + } catch (Exception e) { + bb.writeLog("错误:" + e); result = false; continue; } } - return result; + return result; } + + } diff --git a/src/com/engine/salary/maintainer/salaryarchive/SalaryArchiveManager.java b/src/com/engine/salary/maintainer/salaryarchive/SalaryArchiveManager.java new file mode 100644 index 000000000..cbd52a6ca --- /dev/null +++ b/src/com/engine/salary/maintainer/salaryarchive/SalaryArchiveManager.java @@ -0,0 +1,64 @@ +package com.engine.salary.maintainer.salaryarchive; + +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; +import com.engine.salary.enums.salaryarchive.SalaryArchiveStatusEnum; +import com.engine.salary.mapper.archive.SalaryArchiveMapper; +import com.engine.salary.service.SalaryArchiveService; +import com.engine.salary.service.SalaryEmployeeService; +import com.engine.salary.service.impl.SalaryArchiveServiceImpl; +import com.engine.salary.service.impl.SalaryEmployeeServiceImpl; +import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.SalaryEntityUtil; +import com.engine.salary.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.hrm.User; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class SalaryArchiveManager extends Service { + private SalaryArchiveService getSalaryArchiveService(User user) { + return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); + } + + private SalaryEmployeeService getSalaryEmployeeService(User user) { + return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); + } + + private SalaryArchiveMapper getSalaryArchiveMapper() { + return MapperProxyFactory.getProxy(SalaryArchiveMapper.class); + } + + public Boolean initPayStartDate() { + //获取所有待定薪档案 + List list = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().runStatus(SalaryArchiveStatusEnum.PENDING.getValue()).build()); + + //过滤已存在起始发薪日期的数据 + List needData = list.stream().filter(po -> po.getPayStartDate() == null).collect(Collectors.toList()); + List empIds = SalaryEntityUtil.properties(needData, SalaryArchivePO::getEmployeeId, Collectors.toList()); + + //获取人员信息 + List emps = getSalaryEmployeeService(user).getEmployeeByIds(empIds); + Map longDataCollectionEmployeeMap = SalaryEntityUtil.convert2Map(emps, DataCollectionEmployee::getEmployeeId); + + //设置起始发薪日期 + List collect1 = needData.stream().peek(po -> { + Long employeeId = po.getEmployeeId(); + DataCollectionEmployee orDefault = longDataCollectionEmployeeMap.getOrDefault(employeeId, new DataCollectionEmployee()); + String companystartdate = orDefault.getCompanystartdate(); + if (StringUtils.isNotBlank(companystartdate)&&SalaryDateUtil.checkDay(companystartdate)) { + Date parse = SalaryDateUtil.parse(companystartdate, SalaryDateUtil.DATE_FORMATTER_PATTERN); + po.setPayStartDate(parse); + } + }).collect(Collectors.toList()); + + collect1.forEach(getSalaryArchiveMapper()::update); + + return null; + } +}