From 6dcecfb1c16883bc291edb1be758b3565a9ab4ce Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Sat, 8 Oct 2022 16:00:08 +0800 Subject: [PATCH] =?UTF-8?q?xzy-fix-=E8=96=AA=E8=B5=84=E8=B4=A6=E5=A5=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/salarysob/bo/SalarySobRangeBO.java | 57 ++++++++---- .../entity/salarysob/po/SalarySobRangePO.java | 7 ++ .../salarysob/SalaryEmployeeStatusEnum.java | 35 ++++++- .../salaryacct/SalaryAcctEmployeeMapper.xml | 92 ++++++++++++++++++- 4 files changed, 169 insertions(+), 22 deletions(-) diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java index 4b605b77b..6d984d460 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java @@ -39,33 +39,58 @@ public class SalarySobRangeBO { if (CollectionUtils.isEmpty(salarySobRanges)) { return Collections.emptyList(); } - Map> rangeMap = SalaryEntityUtil.group2Map(salarySobRanges, SalarySobRangePO::getTargetType); - List resultParams = Lists.newArrayListWithExpectedSize(rangeMap.size()); - rangeMap.forEach((targetType, salarySobRangePOS) -> { - List employeeStatus = salarySobRangePOS.stream() - .map(e -> SalaryEmployeeStatusEnum.parseByValue(e.getEmployeeStatus())) - .filter(Objects::nonNull) - .map(e -> e.name().toLowerCase()) - .distinct() - .collect(Collectors.toList()); - if (employeeStatus.contains(SalaryEmployeeStatusEnum.ALL.name().toLowerCase())) { + List resultParams = Lists.newArrayListWithExpectedSize(salarySobRanges.size()); + salarySobRanges.stream().forEach( item -> { + List employeeStatus= new ArrayList<>(); + List salaryEmployeeStatusEnums = SalaryEmployeeStatusEnum.parseByValues(item.getEmployeeStatuses()); + salaryEmployeeStatusEnums.stream().forEach(e -> e.name().toLowerCase()); + if(salaryEmployeeStatusEnums.contains((SalaryEmployeeStatusEnum.ALL.name().toLowerCase()))){ employeeStatus = Collections.emptyList(); - } - if (employeeStatus.contains(SalaryEmployeeStatusEnum.NORMAL.name().toLowerCase())) { + }else if (employeeStatus.contains(SalaryEmployeeStatusEnum.NORMAL.name().toLowerCase())) { employeeStatus = UserStatusEnum.getNormalStatus(); - } - if (employeeStatus.contains(SalaryEmployeeStatusEnum.UNAVAILABLE.name().toLowerCase())) { + }else if (employeeStatus.equals(SalaryEmployeeStatusEnum.UNAVAILABLE.name().toLowerCase())) { employeeStatus = UserStatusEnum.getUnavailableStatus(); } - TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(targetType); + TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(item.getTargetType()); SalarySobRangeEmpQueryParam queryParam = SalarySobRangeEmpQueryParam.builder() .targetType(Optional.ofNullable(targetTypeEnum).map(TargetTypeEnum::name).orElse(StringUtils.EMPTY)) - .targetIds(SalaryEntityUtil.properties(salarySobRangePOS, SalarySobRangePO::getTargetId)) + .targetIds(SalaryEntityUtil.properties(salarySobRanges, SalarySobRangePO::getTargetId)) .employeeStatus(employeeStatus) .build(); resultParams.add(queryParam); }); return resultParams; + + + + +// Map> rangeMap = SalaryEntityUtil.group2Map(salarySobRanges, SalarySobRangePO::getTargetType); +// List resultParams = Lists.newArrayListWithExpectedSize(rangeMap.size()); +// rangeMap.forEach((targetType, salarySobRangePOS) -> { +// List employeeStatus = salarySobRangePOS.stream() +// .map(e -> SalaryEmployeeStatusEnum.parseByValue(e.getEmployeeStatus())) +// .filter(Objects::nonNull) +// .map(e -> e.name().toLowerCase()) +// .distinct() +// .collect(Collectors.toList()); +// if (employeeStatus.contains(SalaryEmployeeStatusEnum.ALL.name().toLowerCase())) { +// employeeStatus = Collections.emptyList(); +// } +// if (employeeStatus.contains(SalaryEmployeeStatusEnum.NORMAL.name().toLowerCase())) { +// employeeStatus = UserStatusEnum.getNormalStatus(); +// } +// if (employeeStatus.contains(SalaryEmployeeStatusEnum.UNAVAILABLE.name().toLowerCase())) { +// employeeStatus = UserStatusEnum.getUnavailableStatus(); +// } +// TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(targetType); +// SalarySobRangeEmpQueryParam queryParam = SalarySobRangeEmpQueryParam.builder() +// .targetType(Optional.ofNullable(targetTypeEnum).map(TargetTypeEnum::name).orElse(StringUtils.EMPTY)) +// .targetIds(SalaryEntityUtil.properties(salarySobRangePOS, SalarySobRangePO::getTargetId)) +// .employeeStatus(employeeStatus) +// .build(); +// resultParams.add(queryParam); +// }); +// return resultParams; } /** diff --git a/src/com/engine/salary/entity/salarysob/po/SalarySobRangePO.java b/src/com/engine/salary/entity/salarysob/po/SalarySobRangePO.java index d6a0da94b..91b61875b 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobRangePO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobRangePO.java @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; +import java.util.List; /** * 关联人员 @@ -52,6 +53,12 @@ public class SalarySobRangePO { */ private Integer employeeStatus; + /** + * 人员状态使用逗号分隔 + * @see SalaryEmployeeStatusEnum + */ + private List employeeStatuses; + /** * 是包含还是排除 0:排除、1:包含 */ diff --git a/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java b/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java index 11c11d628..9abbfdbeb 100644 --- a/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java +++ b/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java @@ -3,6 +3,8 @@ package com.engine.salary.enums.salarysob; import com.engine.salary.enums.BaseEnum; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** @@ -17,9 +19,24 @@ public enum SalaryEmployeeStatusEnum implements BaseEnum { ALL(0, "全部", 85155), //在职,对应人力资源表中状态,试用0,正式1,临时2,试用延期3 - NORMAL(1, "在职", 100120), - //离职,对应人力资源表中状态,解雇4,离职5,退休6 - UNAVAILABLE(2, "离职", 85902), + NORMAL(1, "试用,正式,临时,临时延期", 100120), + //离职老,对应人力资源表中状态,解雇4,离职5,退休6 + UNAVAILABLE(2, "解雇,离职,退休", 85902), + + + TRIAL(3, "试用", 100121), + + FORMAL(4, "正式", 100122), + + TEMPORARY(5, "临时", 100123), + + DELAY(6, "试用延期", 100124), + + FIRE(7, "解雇", 100125), + + DEPARTURE(8, "离职", 100126), + + RETIRED(9, "退休", 100127), ; private int value; @@ -57,4 +74,16 @@ public enum SalaryEmployeeStatusEnum implements BaseEnum { } return null; } + + public static List parseByValues(List value) { + ArrayList results = new ArrayList<>(); + for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) { + for(Integer v : value){ + if(Objects.equals(statusEnum.getValue(),v)){ + results.add(statusEnum); + } + } + } + return results; + } } diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml index 64ec19e98..d7c914e03 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctEmployeeMapper.xml @@ -520,10 +520,38 @@ AND em.status in (0,1,2,3) - -- 离职 + -- 离职(解雇,离职,退休) AND em.status in (4,5,6) + -- 试用 + + AND em.status in (0) + + -- 正式 + + AND em.status in (1) + + -- 临时 + + AND em.status in (2) + + -- 试用延期 + + AND em.status in (3) + + -- 解雇 + + AND em.status in (4) + + -- 离职 + + AND em.status in (5) + + -- 退休 + + AND em.status in (6) + ) @@ -564,10 +592,38 @@ AND em.status in (0,1,2,3) - -- 离职 + -- 离职(解雇,离职,退休) AND em.status in (4,5,6) + -- 试用 + + AND em.status in (0) + + -- 正式 + + AND em.status in (1) + + -- 临时 + + AND em.status in (2) + + -- 试用延期 + + AND em.status in (3) + + -- 解雇 + + AND em.status in (4) + + -- 离职 + + AND em.status in (5) + + -- 退休 + + AND em.status in (6) + ) @@ -608,10 +664,40 @@ AND em.status in (0,1,2,3) - -- 离职 + + -- 离职(解雇,离职,退休) AND em.status in (4,5,6) + -- 试用 + + AND em.status in (0) + + -- 正式 + + AND em.status in (1) + + -- 临时 + + AND em.status in (2) + + -- 试用延期 + + AND em.status in (3) + + -- 解雇 + + AND em.status in (4) + + -- 离职 + + AND em.status in (5) + + -- 退休 + + AND em.status in (6) + + )