| @@ -1112,12 +1112,21 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| BigDecimal priceD = new BigDecimal(price); | BigDecimal priceD = new BigDecimal(price); | ||||
| String revenueYear = wxRentContract.getRevenueYear(); | String revenueYear = wxRentContract.getRevenueYear(); | ||||
| List<Long> revenueYears = JSONArray.parseArray(revenueYear, Long.class); | |||||
| List<Long> revenueYears = null; | |||||
| if (!StringUtils.isBlank(revenueYear)) { | |||||
| revenueYears = JSONArray.parseArray(revenueYear, Long.class); | |||||
| }else { | |||||
| revenueYears = new ArrayList<Long>(); | |||||
| } | |||||
| revenueYears.add(0,0L); | revenueYears.add(0,0L); | ||||
| if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { | if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { | ||||
| for (int i = 1; i < size; i++) { | for (int i = 1; i < size; i++) { | ||||
| BigDecimal divide = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); | |||||
| BigDecimal _p = priceD; | |||||
| if (revenueYears.size() == size) { | |||||
| _p = new BigDecimal(revenueYears.get(i)); | |||||
| } | |||||
| BigDecimal divide = _p.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); | |||||
| priceD = priceD.add(divide); | priceD = priceD.add(divide); | ||||
| priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue(); | priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue(); | ||||
| } | } | ||||
| @@ -1142,17 +1151,21 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| } | } | ||||
| }else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ | }else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ | ||||
| for (int i = 1; i < size; i++) { | for (int i = 1; i < size; i++) { | ||||
| BigDecimal _p = new BigDecimal(integers.get(i)); | |||||
| if (revenueYears.size() == size) { | |||||
| _p = new BigDecimal(revenueYears.get(i)).multiply(_p); | |||||
| } | |||||
| if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { | ||||
| if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { | if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) { | ||||
| priceArrs[i] = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(integers.get(i))).multiply(new BigDecimal(12)).setScale(0, RoundingMode.HALF_EVEN).longValue(); | |||||
| priceArrs[i] = _p.multiply(new BigDecimal(12)).setScale(0, RoundingMode.HALF_EVEN).longValue(); | |||||
| continue; | continue; | ||||
| } | } | ||||
| if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { | if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { | ||||
| priceArrs[i] = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(integers.get(i))).multiply(new BigDecimal(wxRentContract.getReceivePeriod())).setScale(0, RoundingMode.HALF_EVEN).longValue(); | |||||
| priceArrs[i] = _p.multiply(new BigDecimal(wxRentContract.getReceivePeriod())).setScale(0, RoundingMode.HALF_EVEN).longValue(); | |||||
| continue; | continue; | ||||
| } | } | ||||
| } | } | ||||
| priceArrs[i] = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(integers.get(i))).setScale(0, RoundingMode.HALF_EVEN).longValue(); | |||||
| priceArrs[i] = _p.setScale(0, RoundingMode.HALF_EVEN).longValue(); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||