| @@ -0,0 +1 @@ | |||
| alter table wx_user_data_rule add unique uni_user(user_id); | |||
| @@ -7,5 +7,5 @@ public class RatioVo { | |||
| //扣点率 | |||
| private Integer ratio = 0; | |||
| //金额 | |||
| private Long price; | |||
| private Long price = 0l; | |||
| } | |||
| @@ -71,6 +71,9 @@ public class WxBillAllVo { | |||
| @io.swagger.annotations.ApiModelProperty(value = "明细", name = "priceDetail") | |||
| private String priceDetail; | |||
| @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updatetime") | |||
| private Date updatetime; | |||
| public String getReceivePayStr() { | |||
| if(getReceivePay()!=null) { | |||
| receivePayStr = new BigDecimal(getReceivePay()).divide(new BigDecimal(100)).toString(); | |||
| @@ -9,6 +9,7 @@ import com.iformall.common.IdWorker; | |||
| import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.domain.vo.RatioVo; | |||
| import com.iformall.enums.*; | |||
| import com.iformall.exception.MallinkException; | |||
| import com.iformall.mapper.*; | |||
| @@ -291,6 +292,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { | |||
| wxBillRent.setRevenue(record.getRevenue()); | |||
| Integer ratio = 0; | |||
| RatioVo ratioVo = null; | |||
| if(wxRentContract.getPayRatio() != null && wxRentContract.getPayRatio().intValue() > 0){ | |||
| ratio = wxRentContract.getPayRatio(); | |||
| }else{ | |||
| @@ -299,28 +301,34 @@ public class WxBillRentServiceImpl implements WxBillRentService { | |||
| if(EnumBusRatioTime.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())){ | |||
| if(startInt == endInt && months == 12){ | |||
| //刚好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{ | |||
| 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())){ | |||
| if(startInt == endInt && months == 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{ | |||
| 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())){ | |||
| 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()){ | |||
| wxBillRent.setReceivePay(newReceivePay); | |||
| } | |||
| @@ -37,6 +37,7 @@ | |||
| <result column="comments" property="comments"/> | |||
| <result column="price_detail" property="priceDetail"/> | |||
| <result column="updatetime" jdbcType="TIMESTAMP" property="updatetime"/> | |||
| </resultMap> | |||
| @@ -52,46 +53,46 @@ | |||
| bill.pay_date payDate,expired_day expiredDay,bill.status,bill.starttime, | |||
| bill.endtime,bill.name,bill.rent_shop_type rentShopType,m.name merchantName, | |||
| s.shop_number shopNumber, s.manager, s.manager_phone managerPhone,bill.shop_info | |||
| shopInfo,bill.comments,bill.price_detail | |||
| shopInfo,bill.comments,bill.price_detail,updatetime | |||
| from ( | |||
| select id,merchant_id,shop_id,tenant_id,'租金' name,1 bill_type_value,'租金' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,'' | |||
| price_detail | |||
| price_detail,updatetime | |||
| from wx_bill_rent where tenant_id=#{tenantId} and is_preview = 0 | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,'租赁押金' name,2 bill_type_value,'租赁押金' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| endtime,rent_shop_type,shop_info,NULL comments,'' price_detail from wx_bill_rent_deposit where | |||
| endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime from wx_bill_rent_deposit where | |||
| tenant_id=#{tenantId} | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,'物业费' name,3 bill_type_value,'物业费' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,'' | |||
| price_detail | |||
| price_detail,updatetime | |||
| from wx_bill_property where tenant_id=#{tenantId} and is_preview = 0 | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,'物业押金' name,4 bill_type_value,'物业押金' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| endtime,rent_shop_type,shop_info,NULL comments,'' price_detail from wx_bill_property_deposit where | |||
| endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime from wx_bill_property_deposit where | |||
| tenant_id=#{tenantId} | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,case when type=1 then '水费' when type=2 then '电费' else '空调费' end name, | |||
| case when type=1 then 5 when type=2 then 6 else 9 end bill_type_value, | |||
| case when type=1 then '水费' when type=2 then '电费' else '空调费' end bill_type,0 as | |||
| need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime, | |||
| rent_shop_type,'[]' shop_info, NULL comments,price_detail | |||
| rent_shop_type,'[]' shop_info, NULL comments,price_detail,updatetime | |||
| from wx_bill_daily where tenant_id=#{tenantId} | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,name,7 bill_type_value,concat('其他费用-',name) as bill_type,0 as | |||
| need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime, | |||
| rent_shop_type,'[]' shop_info,comments,'' price_detail | |||
| rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime | |||
| from wx_bill_other where tenant_id=#{tenantId} | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,comments as name,8 bill_type_value,concat('其他押金-',comments) as | |||
| bill_type,0 as | |||
| need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime, | |||
| rent_shop_type,'[]' shop_info,comments,'' price_detail | |||
| rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime | |||
| from wx_bill_other_deposit where tenant_id=#{tenantId} | |||
| ) bill | |||
| left join wx_merchant m on bill.merchant_id=m.id | |||