|
|
|
@@ -1112,12 +1112,21 @@ public class WxRentContractServiceImpl implements WxRentContractService { |
|
|
|
BigDecimal priceD = new BigDecimal(price); |
|
|
|
|
|
|
|
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); |
|
|
|
|
|
|
|
if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { |
|
|
|
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); |
|
|
|
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())){ |
|
|
|
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 (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; |
|
|
|
} |
|
|
|
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; |
|
|
|
} |
|
|
|
} |
|
|
|
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(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|