Pu Zhibing
16 小时以前 aa72a1d1d8c792b322281f5ab01996bc62820b13
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -22,6 +22,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
@@ -234,7 +235,6 @@
        String num6 = jsonObject.getString("num6");
        Double num7 = jsonObject.getDouble("num7");
        Double num8 = jsonObject.getDouble("num8");
        Double num9 = jsonObject.getDouble("num9");
        String[] split = num6.split(" - ");
        Integer time1 = Integer.valueOf(split[0].replace(":", ""));
@@ -279,7 +279,34 @@
            BigDecimal multiply = BigDecimal.ZERO;
            BigDecimal yt = BigDecimal.ZERO;
            if (d > num8) {
                multiply = new BigDecimal(d).subtract(new BigDecimal(num8)).multiply(new BigDecimal(num9));
                if(null != mileageList){
                    List<MileageObject> list = new ArrayList<>();
                    for (int i = 0; i < mileageList.size(); i++) {
                        MileageObject mileageObject = mileageList.getObject(i, MileageObject.class);
                        list.add(mileageObject);
                    }
                    //根据配置的里程倒序排序
                    list.sort(new Comparator<MileageObject>() {
                        @Override
                        public int compare(MileageObject o1, MileageObject o2) {
                            return o1.getMileage().compareTo(o2.getMileage()) * -1;
                        }
                    });
                    //计算每个阶段的增加费用
                    Double last = new BigDecimal(d).setScale(0, RoundingMode.DOWN).doubleValue();
                    for (int i = 0; i < list.size(); i++) {
                        Double mileage = list.get(i).getMileage();
                        Double price = list.get(i).getPrice();
                        if(d > mileage){
                            if(last <= num2){
                                break;
                            }
                            multiply = multiply.add((new BigDecimal(last).subtract(new BigDecimal(mileage))).multiply(new BigDecimal(price)));
                            last = mileage;
                        }
                    }
                }
                if (d > num4) {
                    yt = new BigDecimal(d).subtract(new BigDecimal(num4)).multiply(new BigDecimal(num5));
                }
@@ -294,28 +321,34 @@
            BigDecimal multiply = BigDecimal.ZERO;
            BigDecimal yt = BigDecimal.ZERO;
            if (d > num2) {
                List<MileageObject> list = new ArrayList<>();
                for (int i = 0; i < mileageList.size(); i++) {
                    MileageObject mileageObject = mileageList.getObject(i, MileageObject.class);
                    list.add(mileageObject);
                }
                //根据配置的里程倒序排序
                list.sort(new Comparator<MileageObject>() {
                    @Override
                    public int compare(MileageObject o1, MileageObject o2) {
                        return o1.getMileage().compareTo(o2.getMileage()) * -1;
                if(null != mileageList){
                    List<MileageObject> list = new ArrayList<>();
                    for (int i = 0; i < mileageList.size(); i++) {
                        MileageObject mileageObject = mileageList.getObject(i, MileageObject.class);
                        list.add(mileageObject);
                    }
                });
                //计算每个阶段的增加费用
                Double last = d;
                for (int i = 0; i < list.size(); i++) {
                    Double mileage = list.get(i).getMileage();
                    Double price = list.get(i).getPrice();
                    if(d > mileage){
                        multiply = new BigDecimal(last).subtract(new BigDecimal(mileage)).multiply(new BigDecimal(price));
                        last = mileage;
                    //根据配置的里程倒序排序
                    list.sort(new Comparator<MileageObject>() {
                        @Override
                        public int compare(MileageObject o1, MileageObject o2) {
                            return o1.getMileage().compareTo(o2.getMileage()) * -1;
                        }
                    });
                    //计算每个阶段的增加费用
                    Double last = new BigDecimal(d).setScale(0, RoundingMode.DOWN).doubleValue();
                    for (int i = 0; i < list.size(); i++) {
                        Double mileage = list.get(i).getMileage();
                        Double price = list.get(i).getPrice();
                        if(d > mileage){
                            if(last <= num2){
                                break;
                            }
                            multiply = multiply.add((new BigDecimal(last).subtract(new BigDecimal(mileage))).multiply(new BigDecimal(price)));
                            last = mileage;
                        }
                    }
                }
                if (d > num4) {
                    yt = new BigDecimal(d).subtract(new BigDecimal(num4)).multiply(new BigDecimal(num5));
                }