Просмотр исходного кода

[bug][修改][1001665]

release_toaliyun_real
luozukai 7 лет назад
Родитель
Сommit
9addf07ea9
2 измененных файлов: 31 добавлений и 15 удалений
  1. +10
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  2. +21
    -9
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 10
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java Просмотреть файл

@@ -95,7 +95,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService

//init dateDiff
if(wxPropertyContract.getRentalStartDate() != null && wxPropertyContract.getRentalEndDate() != null){
int[] array = DateUtils.getDiff(wxPropertyContract.getRentalStartDate(),wxPropertyContract.getRentalEndDate());
//加1天
Date newEndDate = DateUtils.getDaySet(wxPropertyContract.getRentalEndDate(),Calendar.DATE,1);
int[] array = DateUtils.getDiff(wxPropertyContract.getRentalStartDate(),newEndDate);
result.put("totalPeriodMonth",array[0]);
result.put("totalPeriodDay",array[1]);
}
@@ -550,7 +552,6 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
}

List<BillTimeVo> billTimeVoList = WxRentContractServiceImpl.initBillTimeList(wxPropertyContract.getRentalStartDate(),wxPropertyContract.getRentalEndDate(),wxPropertyContract.getAdjustPeriod(),dayType,receivePeriod);

int index = 0;
for (BillTimeVo billTimeVo : billTimeVoList){
if(yearList.size() > 1) {
@@ -582,16 +583,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService

long needpay;

//当天也算,加1天
//Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1);
//按日
if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){
double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillProperty.getStarttime(),wxBillProperty.getEndtime());
needpay = new Double(needpayD).longValue();
}else{
//当天也算,加1天
Date newEndDate = DateUtils.getDaySet(wxBillProperty.getEndtime(),Calendar.DATE,1);
//按月
double needpayD = WxRentContractServiceImpl.getNeedPay(price,0,wxBillProperty.getStarttime(),wxBillProperty.getEndtime());
needpay = new Double(needpayD).longValue();
int[] diff = DateUtils.getDiff(wxBillProperty.getStarttime(),newEndDate);
needpay = diff[0]*price;

double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxPropertyContract.getRentalEndDate());
needpay += diff[1] * oneDayProce;
}
wxBillProperty.setNeedPay(needpay);
wxBillProperty.setOwe(needpay);


+ 21
- 9
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Просмотреть файл

@@ -119,7 +119,9 @@ public class WxRentContractServiceImpl implements WxRentContractService {

//init dateDiff
if(wxRentContract.getRentalStartDate() != null && wxRentContract.getRentalEndDate() != null){
int[] array = DateUtils.getDiff(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate());
//加1天
Date newEndDate = DateUtils.getDaySet(wxRentContract.getRentalEndDate(),Calendar.DATE,1);
int[] array = DateUtils.getDiff(wxRentContract.getRentalStartDate(),newEndDate);
result.put("totalPeriodMonth",array[0]);
result.put("totalPeriodDay",array[1]);
}
@@ -929,16 +931,19 @@ public class WxRentContractServiceImpl implements WxRentContractService {

long needpay;

//当天也算,加1天
//Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1);
//按日
if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode())){
double needpayD = this.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime());
double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime());
needpay = new Double(needpayD).longValue();
}else{
//当天也算,加1天
Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1);
//按月
double needpayD = this.getNeedPay(price,0,wxBillRent.getStarttime(),wxBillRent.getEndtime());
needpay = new Double(needpayD).longValue();
int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate);
needpay = diff[0]*price;

double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate());
needpay += diff[1] * oneDayProce;
}

wxBillRent.setNeedPay(needpay);
@@ -1742,7 +1747,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
public static double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdM = new SimpleDateFormat("MM");
Double total;
Double total = new Double(0);
int[] diff;

int dayCount = DateUtils.getMonthDayCount(start);
double price;
@@ -1752,11 +1758,17 @@ public class WxRentContractServiceImpl implements WxRentContractService {
price = dayPrice;
}
Date currEnd = DateUtils.getLastDayForMonth(start);
int[] diff = DateUtils.getDiff(start,currEnd);
total = (diff[1]+1) * price;

System.out.println("-----------");
System.out.println(sd.format(start));
System.out.println(sd.format(currEnd));

if(sdM.format(start).equals(sdM.format(end))){
total = 1 * price; //算1天
return total;
}else{
diff = DateUtils.getDiff(start,currEnd);
total = (diff[1]+1) * price;
}
System.out.println("-------total:"+total);



Загрузка…
Отмена
Сохранить