From 59a2f3174b136dbb96f44e7be0f5b8cd19015ac4 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Thu, 8 Aug 2024 14:55:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmpMonthAttendanceRepository.java | 2 +- .../controller/EmpSalaryController.java | 22 ++ .../empSalary/entity/EmpSalaryEntity.java | 219 ++++++++++----- .../empSalary/service/EmpSalaryService.java | 260 +++++++++++++++--- .../service/EmpSalaryItemService.java | 107 ++++--- .../employee/service/EmployeeService.java | 14 + 6 files changed, 469 insertions(+), 155 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/empMonthAttendance/repository/EmpMonthAttendanceRepository.java b/src/main/java/cn/lihongjie/coal/empMonthAttendance/repository/EmpMonthAttendanceRepository.java index 39992b20..4bcc2ec1 100644 --- a/src/main/java/cn/lihongjie/coal/empMonthAttendance/repository/EmpMonthAttendanceRepository.java +++ b/src/main/java/cn/lihongjie/coal/empMonthAttendance/repository/EmpMonthAttendanceRepository.java @@ -10,6 +10,6 @@ import java.util.List; @Repository public interface EmpMonthAttendanceRepository extends BaseRepository { - @Query("select false") + @Query("select exists (select 1 from EmpSalaryEntity s where s.empMonthAttendance.id in :ids)") boolean isLinked(List ids); } diff --git a/src/main/java/cn/lihongjie/coal/empSalary/controller/EmpSalaryController.java b/src/main/java/cn/lihongjie/coal/empSalary/controller/EmpSalaryController.java index b3469356..ff91e5da 100644 --- a/src/main/java/cn/lihongjie/coal/empSalary/controller/EmpSalaryController.java +++ b/src/main/java/cn/lihongjie/coal/empSalary/controller/EmpSalaryController.java @@ -52,6 +52,28 @@ public class EmpSalaryController { return this.service.list(request); } + /** + * 当前批次初始化可选择的人员ID + * + * @param request + * @return + */ + @PostMapping("/batchSelectEmpIds") + public Object batchSelectEmpIds(@RequestBody IdRequest request) { + return this.service.batchSelectEmpIds(request); + } + + /** + * 当前批次已经选择的人员ID + * + * @param request + * @return + */ + @PostMapping("/batchSelectedEmpIds") + public Object batchSelectedEmpIds(@RequestBody IdRequest request) { + return this.service.batchSelectedEmpIds(request); + } + @PostMapping("/archive") public Object archive(@RequestBody IdRequest request) { this.service.archive(request); diff --git a/src/main/java/cn/lihongjie/coal/empSalary/entity/EmpSalaryEntity.java b/src/main/java/cn/lihongjie/coal/empSalary/entity/EmpSalaryEntity.java index 05f517b2..78fbb4e9 100644 --- a/src/main/java/cn/lihongjie/coal/empSalary/entity/EmpSalaryEntity.java +++ b/src/main/java/cn/lihongjie/coal/empSalary/entity/EmpSalaryEntity.java @@ -21,17 +21,12 @@ import java.time.LocalDate; @Data @Entity public class EmpSalaryEntity extends OrgCommonEntity { - - @ManyToOne - private EmpSalaryBatchEntity batch; - @ManyToOne - private EmployeeEntity employee; + @ManyToOne private EmpSalaryBatchEntity batch; + @ManyToOne private EmployeeEntity employee; - @ManyToOne - private EmpMonthAttendanceEntity empMonthAttendance; - + @ManyToOne private EmpMonthAttendanceEntity empMonthAttendance; private BigDecimal item0; private BigDecimal item1; @@ -85,54 +80,35 @@ public class EmpSalaryEntity extends OrgCommonEntity { private BigDecimal item49; private BigDecimal item50; - - private BigDecimal yfheji; private BigDecimal kfheji; private BigDecimal sfheji; - - /** - * 出勤记录冗余字段 - */ - - + /** 出勤记录冗余字段 */ @Comment("是否全勤") private Boolean fullAttendance; - @Comment("是否满勤") private Boolean fullWork; - - @Comment("应出勤天数") private Double shouldAttendanceDays; - @Comment("实际出勤天数") private Double actualAttendanceDays; - @Comment("加班天数") private Double overtimeDays; - @Comment("请假天数") private Double leaveDays; - - - - @Comment("事假天数") private Double personalLeaveDays; - @Comment("病假天数") private Double sickLeaveDays; - @Comment("婚假天数") private Double marriageLeaveDays; @@ -148,34 +124,22 @@ public class EmpSalaryEntity extends OrgCommonEntity { @Comment("年假天数") private Double annualLeaveDays; - - - - - - @Comment("迟到次数") private Integer lateTimes; @Comment("迟到分钟数") private Integer lateMinutes; - @Comment("早退次数") private Integer earlyTimes; @Comment("早退分钟数") private Integer earlyMinutes; - @Comment("旷工次数") private Integer absenteeismTimes; - - /** - * 员工信息冗余字段 - */ - + /** 员工信息冗余字段 */ private String empName; private String empCode; @@ -226,33 +190,28 @@ public class EmpSalaryEntity extends OrgCommonEntity { @Comment("手机号") private String phone; - - @Comment("部门") private String departmentId; @Comment("部门") private String departmentCode; - @Comment("部门") private String departmentName; - + @Comment("岗位") private String jobPostId; @Comment("岗位") private String jobPostCode; - @Comment("岗位") private String jobPostName; - @Comment("银行编码") private String bank; - @DictTranslate(dictKey = DictCode.BANK) + @DictTranslate(dictKey = DictCode.BANK) private String bankName; @Comment("银行卡号") @@ -261,8 +220,6 @@ public class EmpSalaryEntity extends OrgCommonEntity { @Comment("收款人姓名") private String bankCardName; - - @Comment("离职时间") private LocalDate resignDate; @@ -275,61 +232,177 @@ public class EmpSalaryEntity extends OrgCommonEntity { @DictTranslate(dictKey = DictCode.EMP_STATUS) private String empStatusName; - - @Comment("养老保险基数") private Double insurance1Base; + @Comment("养老保险比例") private Double insurance1Percent; - @Comment("医疗保险基数") private Double insurance2Base; + @Comment("医疗保险比例") private Double insurance2Percent; - - @Comment("失业保险基数") private Double insurance3Base; + @Comment("失业保险比例") private Double insurance3Percent; - - @Comment("工伤保险基数") private Double insurance4Base; + @Comment("工伤保险比例") private Double insurance4Percent; - - @Comment("生育保险基数") private Double insurance5Base; + @Comment("生育保险比例") private Double insurance5Percent; @Comment("住房公积金基数") private Double insurance6Base; + @Comment("住房公积金比例") private Double insurance6Percent; - - - - - - - - - - - - - - @Comment("归档状态") @ColumnDefault("'0'") private String archiveStatus = "0"; + public void update(EmpSalaryEntity salaryEntity) { + + updateItems(salaryEntity); + + updateEmpInfo(salaryEntity); + + updateAttendance(salaryEntity); + } + + private void updateAttendance(EmpSalaryEntity salaryEntity) { + this.fullAttendance = salaryEntity.fullAttendance; + this.fullWork = salaryEntity.fullWork; + this.shouldAttendanceDays = salaryEntity.shouldAttendanceDays; + this.actualAttendanceDays = salaryEntity.actualAttendanceDays; + this.overtimeDays = salaryEntity.overtimeDays; + this.leaveDays = salaryEntity.leaveDays; + this.personalLeaveDays = salaryEntity.personalLeaveDays; + this.sickLeaveDays = salaryEntity.sickLeaveDays; + this.marriageLeaveDays = salaryEntity.marriageLeaveDays; + this.maternityLeaveDays = salaryEntity.maternityLeaveDays; + this.paternityLeaveDays = salaryEntity.paternityLeaveDays; + this.funeralLeaveDays = salaryEntity.funeralLeaveDays; + this.annualLeaveDays = salaryEntity.annualLeaveDays; + this.lateTimes = salaryEntity.lateTimes; + this.lateMinutes = salaryEntity.lateMinutes; + this.earlyTimes = salaryEntity.earlyTimes; + this.earlyMinutes = salaryEntity.earlyMinutes; + this.absenteeismTimes = salaryEntity.absenteeismTimes; + } + + private void updateEmpInfo(EmpSalaryEntity salaryEntity) { + + this.empName = salaryEntity.empName; + this.empCode = salaryEntity.empCode; + this.sex = salaryEntity.sex; + this.sexName = salaryEntity.sexName; + this.nation = salaryEntity.nation; + this.nationName = salaryEntity.nationName; + this.marriage = salaryEntity.marriage; + this.marriageName = salaryEntity.marriageName; + this.entryDate = salaryEntity.entryDate; + this.idCard = salaryEntity.idCard; + this.education = salaryEntity.education; + this.educationName = salaryEntity.educationName; + this.school = salaryEntity.school; + this.nativePlace = salaryEntity.nativePlace; + this.address = salaryEntity.address; + this.phone = salaryEntity.phone; + this.departmentId = salaryEntity.departmentId; + this.departmentCode = salaryEntity.departmentCode; + this.departmentName = salaryEntity.departmentName; + this.jobPostId = salaryEntity.jobPostId; + this.jobPostCode = salaryEntity.jobPostCode; + this.jobPostName = salaryEntity.jobPostName; + this.bank = salaryEntity.bank; + this.bankName = salaryEntity.bankName; + this.bankCardNumber = salaryEntity.bankCardNumber; + this.bankCardName = salaryEntity.bankCardName; + this.resignDate = salaryEntity.resignDate; + this.resignReason = salaryEntity.resignReason; + this.empStatus = salaryEntity.empStatus; + this.empStatusName = salaryEntity.empStatusName; + this.insurance1Base = salaryEntity.insurance1Base; + this.insurance1Percent = salaryEntity.insurance1Percent; + this.insurance2Base = salaryEntity.insurance2Base; + this.insurance2Percent = salaryEntity.insurance2Percent; + this.insurance3Base = salaryEntity.insurance3Base; + this.insurance3Percent = salaryEntity.insurance3Percent; + this.insurance4Base = salaryEntity.insurance4Base; + this.insurance4Percent = salaryEntity.insurance4Percent; + this.insurance5Base = salaryEntity.insurance5Base; + this.insurance5Percent = salaryEntity.insurance5Percent; + this.insurance6Base = salaryEntity.insurance6Base; + this.insurance6Percent = salaryEntity.insurance6Percent; + } + + private void updateItems(EmpSalaryEntity salaryEntity) { + + this.item0 = salaryEntity.item0; + this.item1 = salaryEntity.item1; + this.item2 = salaryEntity.item2; + this.item3 = salaryEntity.item3; + this.item4 = salaryEntity.item4; + this.item5 = salaryEntity.item5; + this.item6 = salaryEntity.item6; + this.item7 = salaryEntity.item7; + this.item8 = salaryEntity.item8; + this.item9 = salaryEntity.item9; + this.item10 = salaryEntity.item10; + this.item11 = salaryEntity.item11; + this.item12 = salaryEntity.item12; + this.item13 = salaryEntity.item13; + this.item14 = salaryEntity.item14; + this.item15 = salaryEntity.item15; + this.item16 = salaryEntity.item16; + this.item17 = salaryEntity.item17; + this.item18 = salaryEntity.item18; + this.item19 = salaryEntity.item19; + this.item20 = salaryEntity.item20; + this.item21 = salaryEntity.item21; + this.item22 = salaryEntity.item22; + this.item23 = salaryEntity.item23; + this.item24 = salaryEntity.item24; + this.item25 = salaryEntity.item25; + this.item26 = salaryEntity.item26; + this.item27 = salaryEntity.item27; + this.item28 = salaryEntity.item28; + this.item29 = salaryEntity.item29; + this.item30 = salaryEntity.item30; + this.item31 = salaryEntity.item31; + this.item32 = salaryEntity.item32; + this.item33 = salaryEntity.item33; + this.item34 = salaryEntity.item34; + this.item35 = salaryEntity.item35; + this.item36 = salaryEntity.item36; + this.item37 = salaryEntity.item37; + this.item38 = salaryEntity.item38; + this.item39 = salaryEntity.item39; + this.item40 = salaryEntity.item40; + this.item41 = salaryEntity.item41; + this.item42 = salaryEntity.item42; + this.item43 = salaryEntity.item43; + this.item44 = salaryEntity.item44; + this.item45 = salaryEntity.item45; + this.item46 = salaryEntity.item46; + this.item47 = salaryEntity.item47; + this.item48 = salaryEntity.item48; + this.item49 = salaryEntity.item49; + this.item50 = salaryEntity.item50; + this.yfheji = salaryEntity.yfheji; + this.kfheji = salaryEntity.kfheji; + this.sfheji = salaryEntity.sfheji; + } } diff --git a/src/main/java/cn/lihongjie/coal/empSalary/service/EmpSalaryService.java b/src/main/java/cn/lihongjie/coal/empSalary/service/EmpSalaryService.java index 661722c1..151f47da 100644 --- a/src/main/java/cn/lihongjie/coal/empSalary/service/EmpSalaryService.java +++ b/src/main/java/cn/lihongjie/coal/empSalary/service/EmpSalaryService.java @@ -14,8 +14,11 @@ import cn.lihongjie.coal.empSalary.entity.EmpSalaryEntity; import cn.lihongjie.coal.empSalary.mapper.EmpSalaryMapper; import cn.lihongjie.coal.empSalary.repository.EmpSalaryRepository; import cn.lihongjie.coal.empSalaryBatch.entity.EmpSalaryBatchEntity; +import cn.lihongjie.coal.empSalaryBatch.service.EmpSalaryBatchService; import cn.lihongjie.coal.empSalaryItem.service.EmpSalaryItemService; +import cn.lihongjie.coal.employee.dto.EmployeeDto; import cn.lihongjie.coal.employee.entity.EmployeeEntity; +import cn.lihongjie.coal.employee.service.EmployeeService; import cn.lihongjie.coal.exception.BizException; import groovy.lang.Binding; @@ -92,6 +95,7 @@ public class EmpSalaryService extends BaseService batchSelectEmpIds(IdRequest idRequest) { + + return em.createQuery( + "select distinct e.id from EmpSalaryEntity e where e.id not in (select s.employee.id from EmpSalaryEntity s where s.batch.id =:batchId)", + String.class) + .setParameter("batchId", idRequest.getId()) + .getResultList(); + } + + /** + * 查询批次已选的员工 + * + * @param idRequest + * @return + */ + public List batchSelectedEmpIds(IdRequest idRequest) { + + return em.createQuery( + "select distinct e.id from EmpSalaryEntity e where e.id in (select s.employee.id from EmpSalaryEntity s where s.batch.id =:batchId)", + String.class) + .setParameter("batchId", idRequest.getId()) + .getResultList(); + } + + /** + * 按照ID进行重新计算 + * + * @param ids + */ + public void recalculate(IdRequest ids) { + + List salaries = + em.createQuery( + "select s from EmpSalaryEntity s join fetch s.employee join fetch s.batch join fetch s.empMonthAttendance where s.id in :ids", + EmpSalaryEntity.class) + .setParameter("ids", ids.getIds()) + .getResultList(); + + recalculate(salaries, true); + } + + /** 针对某个员工重新计算, 用于编辑表单的预览 */ + public EmpSalaryDto recalculatePreview(UpdateEmpSalaryDto dto) { + + return null; + } + + /** 重新计算 */ @SneakyThrows - public void initSalary(EmpSalaryBatchEntity batch, List employees) { + public void recalculate(List salaries, boolean update) { + + if (salaries.isEmpty()) { + return; + } + + EmpSalaryBatchEntity batch = salaries.get(0).getBatch(); StopWatch stopWatch = new StopWatch("initSalary: " + batch.getId()); stopWatch.start("getLock"); - RLock lock = redissonClient.getLock("initSalary." + batch.getId()); + RLock lock = redissonClient.getLock("batchModify." + batch.getId()); boolean tryLock = lock.tryLock(); stopWatch.stop(); if (!tryLock) { - throw new BizException( - String.format( - "批次 %s-%s-%s 正在初始化中", - batch.getBatchYearMonth().getYear(), - batch.getBatchYearMonth().getMonthValue(), - batch.getBatchNo())); + batchModifing(batch); + } + GroovyClassLoader groovyClassLoader = null; + + try { + + // 判断批次状态 + + stopWatch.start("checkBatchStatus"); + checkBatchStatus(batch); + stopWatch.stop(); + + // 查询考勤数据 + + stopWatch.start("genScript"); + // 生成计算脚本 + String script = genScript(batch); + + stopWatch.stop(); + + stopWatch.start("parseScript"); + groovyClassLoader = initClassLoader(groovyClassLoader); + + Script scriptObj = initScriptClass(groovyClassLoader, script); + + stopWatch.stop(); + + List dtoByIds = + this.employeeService.getDtoByIds( + salaries.stream().map(e -> e.getEmployee().getId()).toList()); + + Map dtoMap = + dtoByIds.stream().collect(Collectors.toMap(e -> e.getId(), e -> e)); + + // 执行计算脚本 + + for (var salary : salaries) { + + var employee = salary.getEmployee(); + + EmpMonthAttendanceEntity attendance = salary.getEmpMonthAttendance(); + stopWatch.start("buildCtx: " + employee.getName()); + + Map ctx = + buildCtx(batch, dtoMap.get(employee.getId()), attendance, salary); + + stopWatch.stop(); + + // 计算 + + stopWatch.start("execScript: " + employee.getName()); + scriptObj.setBinding(new Binding(Map.of("salary", ctx))); + + scriptObj.run(); + stopWatch.stop(); + + // 转化为工资数据 + + stopWatch.start("convertToSalary: " + employee.getName()); + EmpSalaryEntity salaryEntity = ReflectUtils.fromMap(ctx, EmpSalaryEntity.class); + + salary.update(salaryEntity); + + stopWatch.stop(); + salaries.add(salaryEntity); + } + + // 保存到数据库 + + if (update) { + + stopWatch.start("saveAll"); + + this.repository.saveAll(salaries); + stopWatch.stop(); + } + + } finally { + lock.unlock(); + + if (stopWatch.isRunning()) { + stopWatch.stop(); + } + + if (groovyClassLoader != null) { + groovyClassLoader.close(); + } + + log.info(stopWatch.prettyPrint()); + } + } + + /** 初始化工资 */ + @SneakyThrows + public void initSalary(String batchId, List employeesIds) { + + EmpSalaryBatchEntity batch = batchService.get(batchId); + + List employees = employeeService.getDtoByIds(employeesIds); + + StopWatch stopWatch = new StopWatch("initSalary: " + batch.getId()); + + stopWatch.start("getLock"); + RLock lock = redissonClient.getLock("batchModify." + batch.getId()); + + boolean tryLock = lock.tryLock(); + + stopWatch.stop(); + if (!tryLock) { + batchModifing(batch); } GroovyClassLoader groovyClassLoader = null; @@ -164,27 +354,14 @@ public class EmpSalaryService extends BaseService salaries = new ArrayList<>(); - for (EmployeeEntity employee : employees) { + for (EmployeeDto employee : employees) { EmpMonthAttendanceEntity attendance = attMap.containsKey(employee.getId()) @@ -219,7 +396,7 @@ public class EmpSalaryService extends BaseService> queryAttendanceMap( - EmpSalaryBatchEntity batch, List employees) { + EmpSalaryBatchEntity batch, List employees) { List attendances = em.createQuery( "select a from EmpMonthAttendanceEntity a where a.employee.id in :empIds and a.yearMonth = :yearMonth", EmpMonthAttendanceEntity.class) - .setParameter( - "empIds", employees.stream().map(EmployeeEntity::getId).toList()) + .setParameter("empIds", employees.stream().map(EmployeeDto::getId).toList()) .setParameter("yearMonth", batch.getBatchYearMonth()) .getResultList(); @@ -264,14 +453,13 @@ public class EmpSalaryService extends BaseService employees) { + private void checkDuplicate(EmpSalaryBatchEntity batch, List employees) { List exists = em.createQuery( "select s from EmpSalaryEntity s where s.batch.id = :batchId and s.employee.id in :empIds", EmpSalaryEntity.class) .setParameter("batchId", batch.getId()) - .setParameter( - "empIds", employees.stream().map(EmployeeEntity::getId).toList()) + .setParameter("empIds", employees.stream().map(EmployeeDto::getId).toList()) .getResultList(); if (!exists.isEmpty()) { @@ -299,7 +487,7 @@ public class EmpSalaryService extends BaseService buildCtx( EmpSalaryBatchEntity batch, - EmployeeEntity employee, + EmployeeDto employee, EmpMonthAttendanceEntity attendance, EmpSalaryEntity salary) { diff --git a/src/main/java/cn/lihongjie/coal/empSalaryItem/service/EmpSalaryItemService.java b/src/main/java/cn/lihongjie/coal/empSalaryItem/service/EmpSalaryItemService.java index ed0cb27a..620e8923 100644 --- a/src/main/java/cn/lihongjie/coal/empSalaryItem/service/EmpSalaryItemService.java +++ b/src/main/java/cn/lihongjie/coal/empSalaryItem/service/EmpSalaryItemService.java @@ -4,8 +4,6 @@ import cn.lihongjie.coal.base.dto.CommonQuery; import cn.lihongjie.coal.base.dto.IdRequest; import cn.lihongjie.coal.base.service.BaseService; import cn.lihongjie.coal.common.Ctx; -import cn.lihongjie.coal.common.FreeMakerUtils; -import cn.lihongjie.coal.common.JpaUtils; import cn.lihongjie.coal.empSalary.entity.EmpSalaryEntity; import cn.lihongjie.coal.empSalaryBatch.entity.EmpSalaryBatchEntity; import cn.lihongjie.coal.empSalaryItem.dto.CreateEmpSalaryItemDto; @@ -76,51 +74,54 @@ public class EmpSalaryItemService public List findAllBy( String organizationId, List dependOn, List dependOnSysItem) { - Map params = new HashMap<>(); + // Map params = new HashMap<>(); + // + // params.put("organizationId", organizationId); + // params.put("dependOn", dependOn); + // params.put("dependOnSysItem", dependOnSysItem); + // + // + // List ids = + // JpaUtils.execNativeQuery( + // em, + // FreeMakerUtils.render( + // """ + // + // select * from t_emp_salary_item + // <@where> + // + // <#if organizationId??> + // AND organization_id = :organizationId + // + // + // + // <#if dependOn?? && !dependOnSysItem??> + // AND depend_on @> ARRAY[:dependOn] + // + // + // <#if dependOnSysItem?? && !dependOn??> + // AND depend_on_sys_item @> ARRAY[:dependOnSysItem] + // + // + // + // <#if dependOn?? && dependOnSysItem??> + // AND (depend_on @> ARRAY[:dependOn] or + // depend_on_sys_item @> ARRAY[:dependOnSysItem]) + // + // + // + // + // + // + // + // """, + // params), + // params, + // String.class); - params.put("organizationId", organizationId); - params.put("dependOn", dependOn); - params.put("dependOnSysItem", dependOnSysItem); + return new ArrayList<>(); - - List ids = - JpaUtils.execNativeQuery( - em, - FreeMakerUtils.render( - """ - - select * from t_emp_salary_item - <@where> - - <#if organizationId??> - AND organization_id = :organizationId - - - - <#if dependOn?? && !dependOnSysItem??> - AND depend_on @> ARRAY[:dependOn] - - - <#if dependOnSysItem?? && !dependOn??> - AND depend_on_sys_item @> ARRAY[:dependOnSysItem] - - - - <#if dependOn?? && dependOnSysItem??> - AND (depend_on @> ARRAY[:dependOn] or depend_on_sys_item @> ARRAY[:dependOnSysItem]) - - - - - - - - """, - params), - params, - String.class); - - return findAllByIds(ids); + // return findAllByIds(ids); } private void updatePriority(List enabled) { @@ -357,6 +358,22 @@ public class EmpSalaryItemService throw new BizException("工资项目名称重复"); } + if (CollectionUtils.isNotEmpty( + empSalarySysItemService.findAll( + new Specification() { + @Override + public Predicate toPredicate( + Root root, + CriteriaQuery query, + CriteriaBuilder criteriaBuilder) { + + return criteriaBuilder.and( + criteriaBuilder.equal(root.get("name"), entity.getName())); + } + }))) { + throw new BizException("与系统预设项目名称重复, 请换一个名称"); + } + this.repository.save(entity); this.reSyncAll(entity.getOrganizationId(), null, request.getName()); return getById(entity.getId()); diff --git a/src/main/java/cn/lihongjie/coal/employee/service/EmployeeService.java b/src/main/java/cn/lihongjie/coal/employee/service/EmployeeService.java index 9ffb22d7..edd6808c 100644 --- a/src/main/java/cn/lihongjie/coal/employee/service/EmployeeService.java +++ b/src/main/java/cn/lihongjie/coal/employee/service/EmployeeService.java @@ -22,6 +22,7 @@ import cn.lihongjie.coal.file.service.FileService; import cn.lihongjie.coal.jobPost.dto.CreateJobPostDto; import cn.lihongjie.coal.jobPost.entity.JobPostEntity; import cn.lihongjie.coal.jobPost.service.JobPostService; +import cn.lihongjie.coal.pojoProcessor.PojoProcessor; import io.vavr.Function1; import io.vavr.Function2; @@ -44,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional; import java.io.InputStream; import java.util.List; +import java.util.stream.Collectors; @Service @Slf4j @@ -235,4 +237,16 @@ public class EmployeeService extends BaseService getDtoByIds(List employeesIds) { + + List collect = this.repository.findAllById(employeesIds).stream().map(this::toDto).collect(Collectors.toList()); + + + pojoProcessor.process(collect, false); + + return collect; + } }