diff --git a/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql b/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql
index e457cca7a..80007add8 100644
--- a/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql
+++ b/mallinkAdmin/src/main/resources/db/migration/V202301200001__contract.sql
@@ -35,3 +35,9 @@ ALTER TABLE `mallink`.`wx_rent_contract`
ADD COLUMN `operating_management_fee_ratio` JSON COMMENT '营业管理费调整比率' ;
+ALTER TABLE `mallink`.`wx_bill_rent`
+ADD COLUMN `bussiness_manage_fee_need_pay` bigint(12) COMMENT '商业管理费应收' AFTER `need_pay`;
+
+ALTER TABLE `mallink`.`wx_bill_rent`
+ADD COLUMN `operating_manage_fee_need_pay` bigint(12) COMMENT '营业管理费应收' AFTER `need_pay`;
+
diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java
index 5f5898d42..ce2ee0eec 100644
--- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java
+++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java
@@ -130,6 +130,12 @@ public class WxBillRent extends TenantEntity {
@io.swagger.annotations.ApiModelProperty(value="应收金额",name="needPay")
private Long needPay;
+
+ @io.swagger.annotations.ApiModelProperty(value="商业管理费应收金额",name="bussinessManageFeeNeedPay")
+ private Long bussinessManageFeeNeedPay;
+
+ @io.swagger.annotations.ApiModelProperty(value="运营管理费应收金额",name="operatingManageFeeNeedPay")
+ private Long operatingManageFeeNeedPay;
@io.swagger.annotations.ApiModelProperty(value="商户ID",name="merchantId")
private Long merchantId;
diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java
index 2f2564c53..08b990afb 100644
--- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java
+++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java
@@ -20,6 +20,8 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.iformall.domain.po.WxRentContract;
import com.iformall.enums.EnumMissTimeType;
+import com.iformall.enums.EnumPriceUnit;
+import com.iformall.enums.EnumRentContractAdjustPeriod;
import com.iformall.enums.EnumRentContractAdjustRatioWay;
import com.iformall.enums.EnumRentContractRentInputWay;
import com.iformall.enums.EnumRentContractType;
@@ -361,6 +363,107 @@ public class WxRentContractHelper {
return priceList;
}
+ //查询月账单需要支付的金额
+ public static long getNeedPayMoney(WxRentContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod,boolean part,boolean monthCalDay){
+ long needpay;
+ //按日
+ if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){
+ Double priceD = new Double(price);
+ double needpayD = WxRentContractHelper.getNeedPay(0,priceD,startDate,endDate);
+ //取整
+ //needpay = new Double(needpayD).longValue();
+ //四舍五入
+ needpay = new BigDecimal(needpayD).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
+ }else{
+ Double priceD = new Double(price);
+ if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType())) {
+ //设置跳点率为年周期 price不变
+ if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
+ return priceD.longValue();
+ }
+ //年或者设置跳点率为年周期 除12
+ if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
+ priceD = new Double(price) / 12;
+ }
+ }else{
+ //年 除12
+ if(EnumPriceUnit.Y.getCode().equals(wxRentContract.getPriceUnit())){
+ priceD = new Double(price)/12;
+ }
+ }
+
+
+ //生成金额直接计算
+ if(!saveDb){
+ //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).longValue();
+ needpay = new BigDecimal(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
+ return needpay;
+ }
+
+ SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM");
+ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
+
+ if(i == billTimeVoListSize - 1){//最后
+ //判断是否满足整月
+ Calendar instance = Calendar.getInstance();
+ instance.setTime(startDate);
+ instance.add(dayType, receivePeriod);
+ instance.add(Calendar.DATE, -1);
+ if(sd.format(instance.getTime()).equals(sd.format(endDate))){
+ int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01");
+ needpay = new Double(months * priceD).longValue();
+ }else{
+ //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
+ needpay = new BigDecimal(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
+ }
+ }else if(i == 0){//第一期
+ if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){
+ if(isFirstDay(startDate)){
+ int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01");
+ months++;
+ needpay = new Double(months * priceD).longValue();
+ }else{
+ //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
+ needpay = new BigDecimal(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
+ }
+ }else{
+ if(isFirstDay(startDate)){
+ int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01");
+ if(isFirstDay(startDate)){
+ months++;
+ }
+ needpay = new Double(months * priceD).longValue();
+ }else{
+ //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
+ needpay = new BigDecimal(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
+ }
+ }
+ }else{//中间
+ int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01");
+ if(isFirstDay(startDate)){
+ months++;
+ }
+ //如果当月费用需要按天计算
+ if (monthCalDay) {
+ //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
+ needpay = new BigDecimal(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
+ }else {
+ needpay = new Double(months * priceD).longValue();
+ }
+ }
+ }
+ return needpay;
+ }
+
+ private static boolean isFirstDay(Date date){
+ int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date));
+ if(dateInt == 1){
+ return true;
+ }
+ return false;
+ }
+
+
/**
* 按月计租 根据每月的日期总数计算needpay
* @param monthPrice
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
index edba47222..04707b3f1 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
@@ -619,6 +619,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
bill.setCreatetime(date);
bill.updateTenantInfo(record);
bill.setNeedPay(bill.getNeedPay());
+ bill.setBussinessManageFeeNeedPay(bill.getBussinessManageFeeNeedPay());
+ bill.setOperatingManageFeeNeedPay(bill.getOperatingManageFeeNeedPay());
bill.setUpdatetime(date);
bill.setRentShopType(record.getRentShopType());
bill.setPeriod(count);
@@ -1328,12 +1330,12 @@ public class WxRentContractServiceImpl implements WxRentContractService {
BillTimeVo billTimeVo = billTimeVoList.get(i);
//计算金额
long needpay = 0;
+ //商业管理费
+ long bussinessManageFeeNeedpay = 0;
+ //营业管理费
+ long operatingManageFeeNeedpay = 0;
boolean flag = false;
- long bmpricePre = 0;
- long bmPrce = 0;
- long ompricePre = 0;
- long omPrce = 0;
//此处逻辑处理这一年和下一年交接那一期账单。
if(yearList.size() > 1) {
if (endDate!=null && (sd.format(billTimeVo.getStartDate()).equals(sd.format(endDate)) || billTimeVo.getStartDate().after(endDate) || billTimeVo.getEndDate().after(endDate) )) {
@@ -1342,41 +1344,80 @@ public class WxRentContractServiceImpl implements WxRentContractService {
//logger.info("=====billTimeVo.getStartDate():"+sd.format(billTimeVo.getStartDate())+" endDate:"+sd.format(endDate));
index++;
- if (null != bussinessManagerPriceArrs && null != operationManagerPriceArrs) {
- bmpricePre = bussinessManagerPriceArrs[index-1];
- bmPrce = bussinessManagerPriceArrs[index];
- ompricePre = operationManagerPriceArrs[index-1];
- omPrce = operationManagerPriceArrs[index];
- }
//如果是计算账单金额&cross 拆分日期进行计算
if(billTimeVo.getEndDate().after(endDate)) {
long needpayFront = 0;
long needpayAfter = 0;
+
+ //商业管理费
+ long bussinessManageFeeNeedpayFront = 0;
+ long bussinessManageFeeNeedpayAfter = 0;
+
+ //营业管理费
+ long operatingManageFeeNeedpayFront = 0;
+ long operatingManageFeeNeedpayAfter = 0;
+
//同一天,算一天
if(sd.format(billTimeVo.getStartDate()).equals(sd.format(billTimeVo.getEndDate()))){
- needpayFront = getNeedPayMoney(wxRentContract,priceArrs[index-1],bmpricePre,ompricePre,billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod,false,false);
+ needpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod,false,false);
+ if (null != bussinessManagerPriceArrs && bussinessManagerPriceArrs.length > 0) {
+ bussinessManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract,bussinessManagerPriceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod,false,false);
+ }
+ if (null != operationManagerPriceArrs && operationManagerPriceArrs.length > 0) {
+ operatingManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract,operationManagerPriceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod,false,false);
+ }
}else{
if(billTimeVo.getStartDate().before(endDate)){
if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType()) && EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
//设置跳点率为年周期 price不变
needpayFront = priceArrs[index - 1];
+ if (null != bussinessManagerPriceArrs && bussinessManagerPriceArrs.length > 0) {
+ bussinessManageFeeNeedpayFront = bussinessManagerPriceArrs[index - 1];
+ }
+ if (null != operationManagerPriceArrs && operationManagerPriceArrs.length > 0) {
+ operatingManageFeeNeedpayFront = operationManagerPriceArrs[index - 1];
+ }
}else {
- needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1],bmpricePre,ompricePre, billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
- needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index],bmPrce,omPrce, endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
+ needpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
+ needpayAfter = WxRentContractHelper.getNeedPayMoney(wxRentContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
+ if (null != bussinessManagerPriceArrs && bussinessManagerPriceArrs.length > 0) {
+ bussinessManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, bussinessManagerPriceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
+ bussinessManageFeeNeedpayAfter = WxRentContractHelper.getNeedPayMoney(wxRentContract, bussinessManagerPriceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
+ }
+ if (null != operationManagerPriceArrs && operationManagerPriceArrs.length > 0) {
+ operatingManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, operationManagerPriceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
+ operatingManageFeeNeedpayAfter = WxRentContractHelper.getNeedPayMoney(wxRentContract, operationManagerPriceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,false);
+ }
}
}else{
//如果是按自然月,则这一年和下一年交叉部分需要重新计算
if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) {
Date currentYearRentDate = getCurrentYearRentDate(endDate,wxRentContract.getRentalStartDate());
- needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1],bmpricePre,ompricePre, endDate, DateUtils.getDaySet(currentYearRentDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
- needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index],bmPrce,omPrce, currentYearRentDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
+ needpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, priceArrs[index - 1],endDate, DateUtils.getDaySet(currentYearRentDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
+ needpayAfter = WxRentContractHelper.getNeedPayMoney(wxRentContract, priceArrs[index],currentYearRentDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
+ if (null != bussinessManagerPriceArrs && bussinessManagerPriceArrs.length > 0) {
+ bussinessManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, bussinessManagerPriceArrs[index - 1],endDate, DateUtils.getDaySet(currentYearRentDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
+ bussinessManageFeeNeedpayAfter = WxRentContractHelper.getNeedPayMoney(wxRentContract, bussinessManagerPriceArrs[index],currentYearRentDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
+ }
+ if (null != operationManagerPriceArrs && operationManagerPriceArrs.length > 0) {
+ operatingManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, operationManagerPriceArrs[index - 1],endDate, DateUtils.getDaySet(currentYearRentDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
+ operatingManageFeeNeedpayAfter = WxRentContractHelper.getNeedPayMoney(wxRentContract, operationManagerPriceArrs[index],currentYearRentDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true,true);
+ }
}else {
//按账单日
- needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index],bmPrce,omPrce, billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod,false,false);
+ needpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod,false,false);
+ if (null != bussinessManagerPriceArrs && bussinessManagerPriceArrs.length > 0) {
+ bussinessManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, bussinessManagerPriceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod,false,false);
+ }
+ if (null != operationManagerPriceArrs && operationManagerPriceArrs.length > 0) {
+ operatingManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(wxRentContract, operationManagerPriceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod,false,false);
+ }
}
}
}
needpay = needpayFront+needpayAfter;
+ bussinessManageFeeNeedpay = bussinessManageFeeNeedpayFront + bussinessManageFeeNeedpayAfter;
+ operatingManageFeeNeedpay = operatingManageFeeNeedpayFront + operatingManageFeeNeedpayAfter;
flag = true;
}
if(index >= yearList.size()-1){
@@ -1392,7 +1433,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
//计算金额
if(!flag){
- needpay = getNeedPayMoney(wxRentContract, priceArrs[index],bmPrce,omPrce, billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod,false,false);
+ needpay = WxRentContractHelper.getNeedPayMoney(wxRentContract, priceArrs[index],billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod,false,false);
}
WxBillRent wxBillRent = new WxBillRent();
@@ -1408,8 +1449,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
wxBillRent.setRentPriceInfo(getRentPriceInfo(wxRentContract,needpay));
wxBillRent.setNeedPay(needpay);
wxBillRent.setOwe(needpay);
- wxBillRent.setReceivePay(needpay);
-
+ wxBillRent.setReceivePay(bussinessManageFeeNeedpay+operatingManageFeeNeedpay+needpay);
+ //商业管理费
+ wxBillRent.setBussinessManageFeeNeedPay(bussinessManageFeeNeedpay);
+ //运营管理费
+ wxBillRent.setOperatingManageFeeNeedPay(operatingManageFeeNeedpay);
//截止收租日在当前时间之前
Date date = new Date();
setExpiredDay(wxBillRent,dayType,receivePeriod);
@@ -1445,97 +1489,6 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return resultMap;
}
- public long getNeedPayMoney(WxRentContract wxRentContract,long price,long bussinessManageFee,long operatingManageFee,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod,boolean part,boolean monthCalDay){
- long needpay;
- //按日
- if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){
- Double priceD = new Double(price);
- double needpayD = WxRentContractHelper.getNeedPay(0,priceD,startDate,endDate);
- //取整
- //needpay = new Double(needpayD).longValue();
- //四舍五入
- needpay = new BigDecimal(needpayD).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
- }else{
- Double priceD = new Double(price);
- if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType())) {
- //设置跳点率为年周期 price不变
- if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
- return priceD.longValue();
- }
- //年或者设置跳点率为年周期 除12
- if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
- priceD = new Double(price) / 12;
- }
- }else{
- //年 除12
- if(EnumPriceUnit.Y.getCode().equals(wxRentContract.getPriceUnit())){
- priceD = new Double(price)/12;
- }
- }
-
-
- //生成金额直接计算
- if(!saveDb){
- //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).longValue();
- needpay = new BigDecimal(WxRentContractHelper.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
- return needpay;
- }
-
- SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM");
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
-
- if(i == billTimeVoListSize - 1){//最后
- //判断是否满足整月
- Calendar instance = Calendar.getInstance();
- instance.setTime(startDate);
- instance.add(dayType, receivePeriod);
- instance.add(Calendar.DATE, -1);
- if(sd.format(instance.getTime()).equals(sd.format(endDate))){
- int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01");
- needpay = new Double(months * priceD).longValue();
- }else{
- //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
- needpay = new BigDecimal(WxRentContractHelper.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
- }
- }else if(i == 0){//第一期
- if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){
- if(isFirstDay(startDate)){
- int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01");
- months++;
- needpay = new Double(months * priceD).longValue();
- }else{
- //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
- needpay = new BigDecimal(WxRentContractHelper.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
- }
- }else{
- if(isFirstDay(startDate)){
- int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01");
- if(isFirstDay(startDate)){
- months++;
- }
- needpay = new Double(months * priceD).longValue();
- }else{
- //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
- needpay = new BigDecimal(WxRentContractHelper.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
- }
- }
- }else{//中间
- int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01");
- if(isFirstDay(startDate)){
- months++;
- }
- //如果当月费用需要按天计算
- if (monthCalDay) {
- //needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue();
- needpay = new BigDecimal(WxRentContractHelper.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).setScale(0, BigDecimal.ROUND_HALF_UP).longValue();
- }else {
- needpay = new Double(months * priceD).longValue();
- }
- }
- }
- return needpay;
- }
-
public void setExpiredDay(WxBillRent wxBillRent,int dayType, int receivePeriod){
//截止收租日在当前时间之前
Date date = new Date();
@@ -1559,15 +1512,6 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}
}
- public boolean isFirstDay(Date date){
- int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date));
- if(dateInt == 1){
- return true;
- }
- return false;
- }
-
-
@Transactional(rollbackFor = {Exception.class})
@Override
public ResultData deleteById(String id) {
diff --git a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml
index 2b2e587bb..40e8dcc1a 100644
--- a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml
@@ -21,6 +21,8 @@
+
+
@@ -58,7 +60,7 @@
`id`,`tenant_id`,`parent_tenant_id`,`rent_contract_id`,`receive_pay`,`pay`,`receive_date`,`pay_date`,
- `createtime`,`expired_day`,`owe`,`status`,`is_del`,`contract_need_pay`,`rent_price_info`,`need_pay`,
+ `createtime`,`expired_day`,`owe`,`status`,`is_del`,`contract_need_pay`,`rent_price_info`,`need_pay`,`bussiness_manage_fee_need_pay`,`operating_manage_fee_need_pay`,
`merchant_id`,`user_id`,`shop_id`,`updatetime`,`rent_shop_type`,`apply_status`,`apply_pay_img`,`apply_update_time`,
`revenue`,`late_pay_ratio`,`late_pay_time`,`late_pay_price`,`period`,`is_preview`,`shop_info`,
`pay_way`,`late_pay_status`,`comments`,starttime,endtime,bus_discount_ratio,freeze,join_rent_price,service_charge_pay
@@ -112,8 +114,8 @@