163 lines
4.9 KiB
Java
163 lines
4.9 KiB
Java
package com.engine.salary.enums.salarysob;
|
||
|
||
|
||
import cn.hutool.core.util.ObjectUtil;
|
||
import com.engine.salary.enums.BaseEnum;
|
||
import com.engine.salary.util.SalaryI18nUtil;
|
||
import weaver.hrm.User;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.Arrays;
|
||
import java.util.List;
|
||
import java.util.Objects;
|
||
|
||
/**
|
||
* 人员状态
|
||
* <p>Copyright: Copyright (c) 2022</p>
|
||
* <p>Company: 泛微软件</p>
|
||
*
|
||
* @author qiantao
|
||
* @version 1.0
|
||
**/
|
||
public enum SalaryEmployeeStatusEnum implements BaseEnum<Integer> {
|
||
|
||
TRIAL(0, SalaryI18nUtil.getI18nLabel(18883, "试用"), 18883),
|
||
|
||
FORMAL(1, SalaryI18nUtil.getI18nLabel(15711, "正式"), 15711),
|
||
|
||
TEMPORARY(2, SalaryI18nUtil.getI18nLabel(480, "临时"), 480),
|
||
|
||
DELAY(3, SalaryI18nUtil.getI18nLabel(15844, "试用延期"), 15844),
|
||
|
||
FIRE(4, SalaryI18nUtil.getI18nLabel(542707, "解雇"), 542707),
|
||
|
||
DEPARTURE(5, SalaryI18nUtil.getI18nLabel(6091, "离职"), 6091),
|
||
|
||
RETIRED(6, SalaryI18nUtil.getI18nLabel(6092, "退休"), 6092),
|
||
;
|
||
|
||
private int value;
|
||
|
||
private String defaultLabel;
|
||
|
||
private int labelId;
|
||
|
||
SalaryEmployeeStatusEnum(int value, String defaultLabel, int labelId) {
|
||
this.value = value;
|
||
this.defaultLabel = defaultLabel;
|
||
this.labelId = labelId;
|
||
}
|
||
|
||
@Override
|
||
public Integer getValue() {
|
||
return value;
|
||
}
|
||
|
||
@Override
|
||
public Integer getLabelId() {
|
||
return labelId;
|
||
}
|
||
|
||
@Override
|
||
public String getDefaultLabel() {
|
||
return defaultLabel;
|
||
}
|
||
|
||
public static SalaryEmployeeStatusEnum parseByValue(Integer value) {
|
||
for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) {
|
||
if (Objects.equals(statusEnum.getValue(), value)) {
|
||
return statusEnum;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
|
||
public static List<SalaryEmployeeStatusEnum> parseByValues(List<Integer> value) {
|
||
ArrayList<SalaryEmployeeStatusEnum> results = new ArrayList<>();
|
||
for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) {
|
||
for(Integer v : value){
|
||
if(Objects.equals(statusEnum.getValue(),v)){
|
||
results.add(statusEnum);
|
||
}
|
||
}
|
||
}
|
||
return results;
|
||
}
|
||
|
||
/**
|
||
* @description 获取所有人员状态的value值的list
|
||
* @return List<String>
|
||
* @author Harryxzy
|
||
* @date 2023/1/9 14:34
|
||
*/
|
||
public static List<String> getAllSalaryEmployeeStatusValues() {
|
||
List<String> values = new ArrayList<>();
|
||
for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) {
|
||
values.add(ObjectUtil.toString(statusEnum.getValue()));
|
||
}
|
||
return values;
|
||
}
|
||
|
||
|
||
/**
|
||
* @description 根据string”、“间隔的格式,获取所有人员状态value集合
|
||
* @return List<String>
|
||
* @author Harryxzy
|
||
* @date 2023/1/9 14:35
|
||
*/
|
||
public static List<String> parseByFormatStr(String statusStr, Boolean[] haveError, User user) {
|
||
List<String> result = new ArrayList<>();
|
||
String[] status = statusStr.split("、");
|
||
Arrays.stream(status).forEach(s -> {
|
||
|
||
String value = null;
|
||
for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) {
|
||
if (Objects.equals(SalaryI18nUtil.getI18nLabel(user.getLanguage(),statusEnum.getLabelId() ,statusEnum.getDefaultLabel()).trim(), s)) {
|
||
value = ObjectUtil.toString(statusEnum.getValue());
|
||
break;
|
||
}
|
||
}
|
||
if(value != null ){
|
||
result.add(value);
|
||
}else{
|
||
haveError[0] = true;
|
||
return;
|
||
}
|
||
});
|
||
return result;
|
||
}
|
||
|
||
|
||
/**
|
||
* @description 根据string”、“间隔的格式,获取所有人员状态枚举数组
|
||
* @return List<String>
|
||
* @author Harryxzy
|
||
* @date 2023/1/9 14:35
|
||
*/
|
||
public static SalaryEmployeeStatusEnum[] getEnumsParseByFormatStr(String statusStr, Boolean[] haveError, User user) {
|
||
List<SalaryEmployeeStatusEnum> result = new ArrayList<>();
|
||
String[] status = statusStr.split("、");
|
||
Arrays.stream(status).forEach(s -> {
|
||
|
||
SalaryEmployeeStatusEnum value = null;
|
||
for (SalaryEmployeeStatusEnum statusEnum : SalaryEmployeeStatusEnum.values()) {
|
||
if (Objects.equals(SalaryI18nUtil.getI18nLabel(user.getLanguage(),statusEnum.getLabelId() ,statusEnum.getDefaultLabel()).trim(), s)) {
|
||
value =statusEnum;
|
||
break;
|
||
}
|
||
}
|
||
if(value != null ){
|
||
result.add(value);
|
||
}else{
|
||
haveError[0] = true;
|
||
return;
|
||
}
|
||
});
|
||
SalaryEmployeeStatusEnum[] array = new SalaryEmployeeStatusEnum[result.size()];
|
||
result.toArray(array);
|
||
return array;
|
||
}
|
||
|
||
}
|