| @@ -9,6 +9,7 @@ import com.iformall.common.IdWorker; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.vo.RatioVo; | |||||
| import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.mapper.*; | import com.iformall.mapper.*; | ||||
| @@ -291,6 +292,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { | |||||
| wxBillRent.setRevenue(record.getRevenue()); | wxBillRent.setRevenue(record.getRevenue()); | ||||
| Integer ratio = 0; | Integer ratio = 0; | ||||
| RatioVo ratioVo = null; | |||||
| if(wxRentContract.getPayRatio() != null && wxRentContract.getPayRatio().intValue() > 0){ | if(wxRentContract.getPayRatio() != null && wxRentContract.getPayRatio().intValue() > 0){ | ||||
| ratio = wxRentContract.getPayRatio(); | ratio = wxRentContract.getPayRatio(); | ||||
| }else{ | }else{ | ||||
| @@ -299,28 +301,34 @@ public class WxBillRentServiceImpl implements WxBillRentService { | |||||
| if(EnumBusRatioTime.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())){ | if(EnumBusRatioTime.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())){ | ||||
| if(startInt == endInt && months == 12){ | if(startInt == endInt && months == 12){ | ||||
| //刚好1年 | //刚好1年 | ||||
| ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0).getRatio(); | |||||
| ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); | |||||
| }else{ | }else{ | ||||
| ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0).getRatio(); | |||||
| ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0); | |||||
| } | } | ||||
| }else if(EnumBusRatioTime.MONTH.getCode().equals(wxRentContract.getBusDiscountTime())){ | }else if(EnumBusRatioTime.MONTH.getCode().equals(wxRentContract.getBusDiscountTime())){ | ||||
| if(startInt == endInt && months == 1){ | if(startInt == endInt && months == 1){ | ||||
| //刚好1个月 | //刚好1个月 | ||||
| ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0).getRatio(); | |||||
| ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0); | |||||
| }else{ | }else{ | ||||
| ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0).getRatio(); | |||||
| ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0); | |||||
| } | } | ||||
| }else if(EnumBusRatioTime.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())){ | }else if(EnumBusRatioTime.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())){ | ||||
| ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod()).getRatio(); | |||||
| ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod()); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| BigDecimal hundred = new BigDecimal(100); | |||||
| BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred); | |||||
| BigDecimal payRatio = new BigDecimal(ratio).divide(new BigDecimal(10000)); | |||||
| BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN); | |||||
| long newReceivePay = price.multiply(hundred).longValue(); | |||||
| long newReceivePay; | |||||
| if(ratioVo != null){ | |||||
| newReceivePay = ratioVo.getPrice(); | |||||
| }else{ | |||||
| BigDecimal hundred = new BigDecimal(100); | |||||
| BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred); | |||||
| BigDecimal payRatio = new BigDecimal(ratio).divide(new BigDecimal(10000)); | |||||
| BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN); | |||||
| newReceivePay = price.multiply(hundred).longValue(); | |||||
| } | |||||
| if(newReceivePay > wxBillRent.getReceivePay()){ | if(newReceivePay > wxBillRent.getReceivePay()){ | ||||
| wxBillRent.setReceivePay(newReceivePay); | wxBillRent.setReceivePay(newReceivePay); | ||||
| } | } | ||||