Browse Source

[账单调整][修改][修改生成逻辑]

release_toaliyun_real
luozukai 7 years ago
parent
commit
7af3053038
2 changed files with 36 additions and 52 deletions
  1. +15
    -20
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  2. +21
    -32
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 15
- 20
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java View File

@@ -605,7 +605,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
Date receiveDate = DateUtils.getFirstDayOfNextMonth(startdate,receivePeriod * i);
wxBillProperty.setReceiveDate(receiveDate);
wxBillProperty.setStarttime(receiveDate);
wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(receiveDate,receivePeriod * i));
wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxBillProperty.getStarttime(),receivePeriod * i));

instance.clear();
instance.setTime(receiveDate);
@@ -613,38 +613,37 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillProperty.setEndtime(instance.getTime());
}else if(i == paycount - 1) {//最后周期
//receivePeriod * i 得到开始日期
Date receiveDate = DateUtils.getFirstDayOfNextMonth(startdate,receivePeriod * i);
wxBillProperty.setReceiveDate(receiveDate);
wxBillProperty.setStarttime(receiveDate);

//得到开始日期第一天
Date firstDay = DateUtils.getFirstDayForCurrMonth(wxBillProperty.getStarttime());
instance.clear();
instance.setTime(firstDay);

//最后一期有余,加上残月,(不整除时,最后一个月有余,否则为0)
if(isFirstDay(wxPropertyContract.getRentalStartDate())){
if(receivePeriod > 1) {
if(isLastYesr && extralease > 0) {
//若最后一期有余,带上残月,(不整除时,最后一个月有余,否则extralease=0)
if(isFirstDay(wxPropertyContract.getRentalStartDate())){ //月第一天起租
if(receivePeriod > 1){
if(isLastYesr && extralease > 0){
instance.add(dayType, extralease);
}else{
instance.add(dayType, receivePeriod);
}
}else {
}else{
instance.add(dayType, receivePeriod);
}
}else{
if(receivePeriod > 1) {
if(isLastYesr) {
instance.add(dayType, extralease);
}else{
instance.add(dayType, receivePeriod);
}
}
if(isLastYesr) {
instance.add(dayType, extralease);
instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt - 1);
}else{
instance.add(dayType, receivePeriod);
}
}

//先减一个月 后加上残月
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillProperty.setEndtime(instance.getTime());

@@ -662,15 +661,11 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
needPayDouble += price * receivePeriod;
}
}else{
if(receivePeriod > 1) {
if(isLastYesr) {
needPayDouble += price * extralease;
}else{
needPayDouble += price * receivePeriod;
}
}
if(isLastYesr) {
needPayDouble += price * extralease;
needPayDouble += oneDayProce * endDateInt;
}else{
needPayDouble += price * receivePeriod;
}
}
DecimalFormat format = new DecimalFormat("0");


+ 21
- 32
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java View File

@@ -134,7 +134,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
wxRentContract.setAdjustPeriod(2);
wxRentContract.setMonthHandleType(2);
}else if(wxRentContract.getAdjustPeriod().intValue() == 3){
wxRentContract.setAdjustPeriod(null);
wxRentContract.setAdjustPeriod(2);
wxRentContract.setMonthHandleType(3);
}
result.put("wxRentContract", wxRentContract);
@@ -970,51 +970,43 @@ public class WxRentContractServiceImpl implements WxRentContractService {
wxBillRent.setStarttime(receiveDate);
wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxBillRent.getStarttime(),receivePeriod * i));

// instance.clear();
// instance.setTime(receiveDate);
// instance.add(dayType, receivePeriod);
// instance.add(Calendar.DAY_OF_MONTH, -1);
// wxBillRent.setEndtime(instance.getTime());
instance.clear();
instance.setTime(receiveDate);
instance.add(dayType, receivePeriod);
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillRent.setEndtime(instance.getTime());
}else if(i == paycount - 1) {//最后周期
//receivePeriod * i 得到开始日期
Date receiveDate = DateUtils.getFirstDayOfNextMonth(startdate,receivePeriod * i);
wxBillRent.setReceiveDate(receiveDate);
wxBillRent.setStarttime(receiveDate);

//得到开始日期第一天
Date firstDay = DateUtils.getFirstDayForCurrMonth(wxBillRent.getStarttime());
instance.clear();
instance.setTime(firstDay);

if(new SimpleDateFormat("yyyy-MM-dd").format(wxBillRent.getEndtime()).equals("2020-02-29")){
System.out.println( "-----------"+receivePeriod * i);
System.out.println("-----------"+new SimpleDateFormat("yyyy-MM-dd").format(wxBillRent.getReceiveDate()));
System.out.println("-----------"+new SimpleDateFormat("yyyy-MM-dd").format(wxBillRent.getEndtime()));
System.out.println();
}

//最后一期有余,加上残月,(不整除时,最后一个月有余,否则为0)
if(isFirstDay(wxRentContract.getRentalStartDate())){
if(receivePeriod > 1) {
if(isLastYesr && extralease > 0) {
//若最后一期有余,带上残月,(不整除时,最后一个月有余,否则extralease=0)
if(isFirstDay(wxRentContract.getRentalStartDate())){ //月第一天起租
if(receivePeriod > 1){
if(isLastYesr && extralease > 0){
instance.add(dayType, extralease);
}else{
instance.add(dayType, receivePeriod);
}
}else {
}else{
instance.add(dayType, receivePeriod);
}
}else{
if(receivePeriod > 1) {
if(isLastYesr) {
instance.add(dayType, extralease);
}else{
instance.add(dayType, receivePeriod);
}
}
if(isLastYesr) {
instance.add(dayType, extralease);
instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt - 1);
}else{
instance.add(dayType, receivePeriod);
}
}

//先减一个月 后加上残月
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillRent.setEndtime(instance.getTime());

@@ -1032,15 +1024,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
needPayDouble += price * receivePeriod;
}
}else{
if(receivePeriod > 1) {
if(isLastYesr) {
needPayDouble += price * extralease;
}else{
needPayDouble += price * receivePeriod;
}
}
if(isLastYesr) {
needPayDouble += price * extralease;
needPayDouble += oneDayProce * endDateInt;
}else{
needPayDouble += price * receivePeriod;
}
}
DecimalFormat format = new DecimalFormat("0");
@@ -2038,3 +2026,4 @@ public class WxRentContractServiceImpl implements WxRentContractService {

}



Loading…
Cancel
Save