diff --git a/src/com/engine/salary/biz/SalarySobRangeBiz.java b/src/com/engine/salary/biz/SalarySobRangeBiz.java index 3580bc732..adfc94c5d 100644 --- a/src/com/engine/salary/biz/SalarySobRangeBiz.java +++ b/src/com/engine/salary/biz/SalarySobRangeBiz.java @@ -70,4 +70,15 @@ public class SalarySobRangeBiz { sqlSession.close(); } } + + public void updateEmployeeStatuses(SalarySobRangePO item) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + SalarySobRangeMapper mapper = sqlSession.getMapper(SalarySobRangeMapper.class); + mapper.updateEmployeeStatuses(item); + sqlSession.commit(); + } finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java index 6d984d460..ea991f1b0 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobRangeBO.java @@ -36,61 +36,61 @@ public class SalarySobRangeBO { * @return */ public static List convert2EmployeeQueryParam(List salarySobRanges) { - if (CollectionUtils.isEmpty(salarySobRanges)) { - return Collections.emptyList(); - } - 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(); - }else if (employeeStatus.contains(SalaryEmployeeStatusEnum.NORMAL.name().toLowerCase())) { - employeeStatus = UserStatusEnum.getNormalStatus(); - }else if (employeeStatus.equals(SalaryEmployeeStatusEnum.UNAVAILABLE.name().toLowerCase())) { - employeeStatus = UserStatusEnum.getUnavailableStatus(); - } - TargetTypeEnum targetTypeEnum = TargetTypeEnum.parseByValue(item.getTargetType()); - SalarySobRangeEmpQueryParam queryParam = SalarySobRangeEmpQueryParam.builder() - .targetType(Optional.ofNullable(targetTypeEnum).map(TargetTypeEnum::name).orElse(StringUtils.EMPTY)) - .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())) { +// if (CollectionUtils.isEmpty(salarySobRanges)) { +// return Collections.emptyList(); +// } +// 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 91b61875b..1975afd7f 100644 --- a/src/com/engine/salary/entity/salarysob/po/SalarySobRangePO.java +++ b/src/com/engine/salary/entity/salarysob/po/SalarySobRangePO.java @@ -9,7 +9,6 @@ import lombok.NoArgsConstructor; import java.util.Collection; import java.util.Date; -import java.util.List; /** * 关联人员 @@ -57,7 +56,7 @@ public class SalarySobRangePO { * 人员状态使用逗号分隔 * @see SalaryEmployeeStatusEnum */ - private List employeeStatuses; + private String employeeStatuses; /** * 是包含还是排除 0:排除、1:包含 diff --git a/src/com/engine/salary/enums/UserStatusEnum.java b/src/com/engine/salary/enums/UserStatusEnum.java index 7450ef9d3..bd4cc6670 100644 --- a/src/com/engine/salary/enums/UserStatusEnum.java +++ b/src/com/engine/salary/enums/UserStatusEnum.java @@ -84,6 +84,15 @@ public enum UserStatusEnum implements BaseEnum { return Arrays.asList(FIRE.getValue().toString(), DEPARTURE.getValue().toString(), RETIRED.getValue().toString()); } + /** + * 全部状态 + * + * @return + */ + public static List getAllStatus() { + return Arrays.asList(TRIAL.getValue().toString(), FORMAL.getValue().toString(), TEMPORARY.getValue().toString(), DELAY.getValue().toString(),FIRE.getValue().toString(), DEPARTURE.getValue().toString(), RETIRED.getValue().toString()); + } + public static List getEffectiveList() { return Arrays.stream(UserStatusEnum.values()).filter(v -> v != INVALID).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.java b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.java index 4b281cb1a..c442f6b69 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.java +++ b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.java @@ -85,4 +85,9 @@ public interface SalarySobRangeMapper { */ List listEmployeeIds(@Param("params") Collection params); + /** + * 更新人员状态使用逗号分割 + * @param item + */ + void updateEmployeeStatuses(@Param("param") SalarySobRangePO item); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml index 6b84a4d2e..968d840a1 100644 --- a/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml +++ b/src/com/engine/salary/mapper/salarysob/SalarySobRangeMapper.xml @@ -30,6 +30,7 @@ , t.update_time , t.delete_type , t.tenant_key + , t.employee_statuses @@ -399,6 +400,10 @@ + + UPDATE hrsa_salary_sob_range set employee_statuses = #{param.employeeStatuses} WHERE id = #{param.id} + +