Commit 0f1af031 authored by chengwenlong's avatar chengwenlong
parents f4d456fa fabc3ad7
......@@ -240,58 +240,46 @@ public class WagesCalculateConversionServiceImpl implements WagesCalculateConver
if (pattern.matcher(value).matches()) {
return value;
}
boolean a = true;
boolean b = true;
int a1 = -1;
int b1 = -1;
// 判断是否为 x + y
boolean ifAccordOne = true;
// 判断是否为 x + y + z + ...
boolean ifAccordTwo = true;
// 记录第一个符合位置
int accordPositionOne = -1;
// 记录第二个符合位置
int accordPositionTwo = value.length();
for (int i = 0; i < value.length(); i++) {
char charAt = value.charAt(i);
if (FH.contains(charAt) && !a && b) {
b = false;
b1 = i;
if (FH.contains(charAt) && !ifAccordOne && ifAccordTwo) {
ifAccordTwo = false;
accordPositionTwo = i;
break;
}
if (FH.contains(charAt) && a) {
a = false;
a1 = i;
} else if (FH.contains(charAt)) {
ifAccordOne = false;
accordPositionOne = i;
}
}
if (b) {
String sta = value.substring(0, a1);
String end = value.substring(a1 + 1);
char charAt = value.substring(a1, a1 + 1).charAt(0);
if (charAt == 42) {
//*
return new BigDecimal(sta).multiply(new BigDecimal(end)).toString();
} else if (charAt == 43) {
// +
return new BigDecimal(sta).add(new BigDecimal(end)).toString();
} else if (charAt == 45) {
// -
return new BigDecimal(sta).subtract(new BigDecimal(end)).toString();
} else if (charAt == 47) {
// /
return new BigDecimal(sta).divide(new BigDecimal(end)).toString();
}
String sta = value.substring(0, accordPositionOne);
String end = value.substring(accordPositionOne + 1, accordPositionTwo);
char charAt = value.substring(accordPositionOne, accordPositionOne + 1).charAt(0);
String jg = "";
if (charAt == 42) {
//*
jg = new BigDecimal(sta).multiply(new BigDecimal(end)).toString();
} else if (charAt == 43) {
// +
jg = new BigDecimal(sta).add(new BigDecimal(end)).toString();
} else if (charAt == 45) {
// -
jg = new BigDecimal(sta).subtract(new BigDecimal(end)).toString();
} else if (charAt == 47) {
// /
jg = new BigDecimal(sta).divide(new BigDecimal(end)).toString();
}
if (ifAccordTwo) {
return jg;
} else {
String sta = value.substring(0, a1);
String end = value.substring(a1 + 1, b1);
char charAt = value.substring(a1, a1 + 1).charAt(0);
String jg = "";
if (charAt == 42) {
//*
jg = new BigDecimal(sta).multiply(new BigDecimal(end)).toString();
} else if (charAt == 43) {
// +
jg = new BigDecimal(sta).add(new BigDecimal(end)).toString();
} else if (charAt == 45) {
// -
jg = new BigDecimal(sta).subtract(new BigDecimal(end)).toString();
} else if (charAt == 47) {
// /
jg = new BigDecimal(sta).divide(new BigDecimal(end)).toString();
}
String s = StringUtils.replaceOnce(value, value.substring(0, b1), jg);
String s = StringUtils.replaceOnce(value, value.substring(0, accordPositionTwo), jg);
value = count1(s);
}
return value;
......
......@@ -51,7 +51,7 @@ public class WagesConversionServiceImpl implements WagesConversionService {
boolean b1 = list.parallelStream().anyMatch(v -> v.getYearMonth() == null || v.getYearMonth().indexOf("-") <= 0);
if (b1) return "数据库中数据存在日期错误";
Optional<Integer> max = list.parallelStream().map(v -> Integer.parseInt(v.getYearMonth().split("-")[0])).max((a, b) -> a - b);
List<WagesConversionDataVO> collect = null;
List<WagesConversionDataVO> collect;
if (max.isPresent()){
collect = list.parallelStream().filter(v -> v.getYearMonth().split("-")[0].equals(max.get() + "")).collect(Collectors.toList());
}else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment