Quellcode durchsuchen

[审批流][修改][完善账单审批]

release_toaliyun_real
luozukai vor 7 Jahren
Ursprung
Commit
835b6e9a9f
2 geänderte Dateien mit 29 neuen und 25 gelöschten Zeilen
  1. +15
    -11
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  2. +14
    -14
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 15
- 11
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java Datei anzeigen

@@ -288,7 +288,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
||!wxPropertyContract.getPrice().equals(record.getPrice())
||!wxPropertyContract.getDeposit().equals(record.getDeposit())
||!wxPropertyContract.getAdjustPeriod().equals(record.getAdjustPeriod())
|| !DateUtils.date2String(wxPropertyContract.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd"))
|| !DateUtils.date2String(wxPropertyContract.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd"))
)){
wxBillPropertyMapper.deletePreviewBill(record);
//重新生成
@@ -469,6 +469,10 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
int paycount = lease / receivePeriod + extracount;
int index = paycount - 1;
final IdWorker idWorker = IdWorker.get();
//自然月,周期为一个月 n+1
if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode()) && receivePeriod <= 1){
paycount ++;
}
for (int i = 0; i < paycount; i++) {
WxBillProperty wxBillProperty = new WxBillProperty();
wxBillProperty.setIsPreview(isPreview);
@@ -516,25 +520,25 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
//自然月,开始日期、缴款日,结束日期
if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){
if(i == 0){//第一周期
wxBillProperty.setReceiveDate(wxPropertyContract.getStartDate());
wxBillProperty.setStarttime(wxPropertyContract.getStartDate());
double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxPropertyContract.getStartDate());
int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxPropertyContract.getStartDate()));
wxBillProperty.setReceiveDate(wxPropertyContract.getRentalStartDate());
wxBillProperty.setStarttime(wxPropertyContract.getRentalStartDate());
double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxPropertyContract.getRentalStartDate());
int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxPropertyContract.getRentalStartDate()));
double needPayDouble;

if(receivePeriod <= 1) {//周期为一个月
wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getStartDate()));
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getStartDate())-startDateInt+1);
wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getRentalStartDate()));
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getRentalStartDate())-startDateInt+1);
}else{ //周期大于一个月
wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getStartDate(),receivePeriod - 1));
wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getRentalStartDate(),receivePeriod - 1));
// [A/31 *(31-12+1)]+A+A
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getStartDate())-startDateInt+1);
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getRentalStartDate())-startDateInt+1);
needPayDouble += price * (receivePeriod - 1);
}
DecimalFormat format = new DecimalFormat("0");
needpay = Integer.parseInt(format.format(needPayDouble)); //分做四舍五入
}else if(i < paycount - 1){//中间周期
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getStartDate(),receivePeriod * i);
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getRentalStartDate(),receivePeriod * i);
wxBillProperty.setReceiveDate(receiveDate);
wxBillProperty.setStarttime(receiveDate);
wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(receiveDate,receivePeriod * i));
@@ -545,7 +549,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillProperty.setEndtime(instance.getTime());
}else if(i == paycount - 1) {//最后周期
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getStartDate(),receivePeriod * i);
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getRentalStartDate(),receivePeriod * i);
wxBillProperty.setReceiveDate(receiveDate);
wxBillProperty.setStarttime(receiveDate);
instance.clear();


+ 14
- 14
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Datei anzeigen

@@ -344,7 +344,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
|| !record.getType().equals(dbRent.getType())
|| !record.getPrice().equals(dbRent.getPrice())
|| !record.getAdjustRatio().replaceAll("\\s*", "").equals(dbRent.getAdjustRatio().replaceAll("\\s*", ""))
|| !DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getStartDate(),"yyyy-MM-dd"))
|| !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd"))
) {
change = true;
}
@@ -354,7 +354,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
|| !record.getType().equals(dbRent.getType())
|| !record.getRevenue().equals(dbRent.getRevenue())
|| !record.getPayRatio().equals(dbRent.getPayRatio())
|| !DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getStartDate(),"yyyy-MM-dd"))
|| !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd"))
) {
change = true;
}
@@ -364,7 +364,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
|| !record.getType().equals(dbRent.getType())
|| !record.getPrice().equals(dbRent.getPrice())
|| !record.getPayRatio().equals(dbRent.getPayRatio())
|| !DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getStartDate(),"yyyy-MM-dd"))
|| !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd"))
) {
change = true;
}
@@ -787,25 +787,25 @@ public class WxRentContractServiceImpl implements WxRentContractService {
//自然月,开始日期、缴款日,结束日期
if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){
if(i == 0){//第一周期
wxBillRent.setReceiveDate(wxRentContract.getStartDate());
wxBillRent.setStarttime(wxRentContract.getStartDate());
double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxRentContract.getStartDate());
int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getStartDate()));
wxBillRent.setReceiveDate(wxRentContract.getRentalStartDate());
wxBillRent.setStarttime(wxRentContract.getRentalStartDate());
double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxRentContract.getRentalStartDate());
int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getRentalStartDate()));
double needPayDouble;

if(receivePeriod <= 1) {//周期为一个月
wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getStartDate()));
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getStartDate())-startDateInt+1);
wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getRentalStartDate()));
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getRentalStartDate())-startDateInt+1);
}else{ //周期大于一个月
wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getStartDate(),receivePeriod - 1));
wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getRentalStartDate(),receivePeriod - 1));
// [A/31 *(31-12+1)]+A+A
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getStartDate())-startDateInt+1);
needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getRentalStartDate())-startDateInt+1);
needPayDouble += price * (receivePeriod - 1);
}
DecimalFormat format = new DecimalFormat("0");
needpay = Integer.parseInt(format.format(needPayDouble)); //分做四舍五入
}else if(i < paycount - 1){//中间周期
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getStartDate(),receivePeriod * i);
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getRentalStartDate(),receivePeriod * i);
wxBillRent.setReceiveDate(receiveDate);
wxBillRent.setStarttime(receiveDate);
wxBillRent.setEndtime(DateUtils.getLastDayForMonth(receiveDate,receivePeriod * i));
@@ -816,14 +816,14 @@ public class WxRentContractServiceImpl implements WxRentContractService {
instance.add(Calendar.DAY_OF_MONTH, -1);
wxBillRent.setEndtime(instance.getTime());
}else if(i == paycount - 1) {//最后周期
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getStartDate(),receivePeriod * i);
Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getRentalStartDate(),receivePeriod * i);
wxBillRent.setReceiveDate(receiveDate);
wxBillRent.setStarttime(receiveDate);
instance.clear();
instance.setTime(receiveDate);
instance.add(dayType, extracount>0?extralease:receivePeriod);//最后一期不足,一个完整周期
instance.add(Calendar.DAY_OF_MONTH, -1);
int endDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getEndDate()));
int endDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getRentalEndDate()));
String endDateStr = DateUtils.date2String(instance.getTime(),"yyyy-MM")+ "-" +endDateInt;
wxBillRent.setEndtime(DateUtils.stringToDate(endDateStr,"yyyy-MM-dd"));



Laden…
Abbrechen
Speichern