Get the material code according to the freight name, tax rate, and currency matching (the tax rate null matches all)
import cn.hutool.core.util.EnumUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@Getter
@AllArgsConstructor
public enum ProductCodeConvertEnum {
InternalNoTaxRate(Arrays.asList("国内运费", "其他费用"), 0D, "CNY", "10356232"),
InternalWithTaxRate(Arrays.asList("国内运费", "其他费用"), 0.09D, "CNY", "10356543"),
Sea(Arrays.asList("海运费", "其他费用"), null, "USD", "10356876"),
Insure(Arrays.asList("保险费"), null, "CNY", "10359064");
//费用名称
List<String> label;
//税率
Double TaxRate;
//币种
String currency;
//物料编码
String code;
public String getValue() {
return this.name();
}
/**
* 根据运费名称、税率、币种匹配获取物料编码(税率null匹配所有)
*
* @param label
* @param TaxRate
* @param currency
* @return
*/
public static String getCode(String label, double TaxRate, String currency) {
ProductCodeConvertEnum productCodeEnum = EnumUtil.getBy(ProductCodeConvertEnum.class, e -> e.getLabel().contains(label)
&& (Objects.isNull(e.getTaxRate()) || e.getTaxRate() == TaxRate)
&& e.getCurrency().equals(currency));
return Objects.nonNull(productCodeEnum) ? productCodeEnum.getCode() : null;
}
}
Obtain the corresponding default factory external code according to the external code
import cn.hutool.core.util.EnumUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.List;
@Getter
@AllArgsConstructor
public enum DefaultFactoryEnum {
GUDY("测试1", "1200", "1201"),
FGHJ("测试2", "1260", "1261"),
YUIO("测试3", "3070", "3071");
String label;
//外部编码
String referCode;
//默认工厂外部编码
String factoryReferCode;
public String getValue() {
return this.name();
}
/**
* 根据外部编码获取对应默认工厂外部编码
*
* @param referCode
* @return
*/
public static String getDefaultFactoryReferCode(String referCode) {
return EnumUtil.getFieldBy(DefaultFactoryEnum::getFactoryReferCode, DefaultFactoryEnum::getReferCode, referCode);
}
/**
* 获取所有外部编码
*
* @return
*/
public static List<Object> getReferCodes() {
return EnumUtil.getFieldValues(DefaultFactoryEnum.class, "referCode");
}
}