From 6dcecfb1c16883bc291edb1be758b3565a9ab4ce Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Sat, 8 Oct 2022 16:00:08 +0800 Subject: [PATCH 1/7] =?UTF-8?q?xzy-fix-=E8=96=AA=E8=B5=84=E8=B4=A6?= =?UTF-8?q?=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) + + ) From b2b0abcaf5740410ee790ce5298d927cf02435be Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Sat, 8 Oct 2022 17:21:38 +0800 Subject: [PATCH 2/7] =?UTF-8?q?xzy-fix-=E5=A4=84=E7=90=86Employee=5Fstatus?= =?UTF-8?q?es=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/biz/SalarySobRangeBiz.java | 11 +++ .../entity/salarysob/bo/SalarySobRangeBO.java | 88 +++++++++---------- .../entity/salarysob/po/SalarySobRangePO.java | 3 +- .../engine/salary/enums/UserStatusEnum.java | 9 ++ .../salarysob/SalarySobRangeMapper.java | 5 ++ .../mapper/salarysob/SalarySobRangeMapper.xml | 5 ++ .../salary/service/SalarySobRangeService.java | 14 +++ .../impl/SalarySobRangeServiceImpl.java | 10 +++ src/com/engine/salary/util/SalarySobUtil.java | 56 ++++++++++++ .../wrapper/SalaryAcctRecordWrapper.java | 5 ++ .../salary/wrapper/SalarySobWrapper.java | 4 + 11 files changed, 164 insertions(+), 46 deletions(-) create mode 100644 src/com/engine/salary/util/SalarySobUtil.java 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} + +