From 47bbfee7bbfa6eb9a25d80df3d3a686a760a296f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 27 十一月 2024 18:10:27 +0800
Subject: [PATCH] 开发更新

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index c2b91d8..51efed1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -670,7 +670,7 @@
             list.add(DateUtil.addMonthToDate(startDate,i*6));
         }
         if(restMonth>0 || monthDays>0){
-            list.add(DateUtil.addMonthToDate(startDate,monthSix));
+            list.add(DateUtil.addMonthToDate(startDate,monthSix*6));
         }
         return list;
     }
@@ -685,7 +685,7 @@
             list.add(DateUtil.addMonthToDate(startDate,i*3));
         }
         if(restMonth>0 || monthDays>0){
-            list.add(DateUtil.addMonthToDate(startDate,monthThree));
+            list.add(DateUtil.addMonthToDate(startDate,monthThree*3));
         }
         return list;
     }
@@ -712,33 +712,34 @@
     private void dealCircleDateBillBiz(  List<Date> dateList ,YwContract model, YwContractDetail d, Date freeStart, Date freeEnd, List<YwContractBill> list ) {
         int temp = 0;
         for(Date start : dateList){
-            Date end = model.getEndDate();
+            Date end = d.getEndDate();
             if(temp+1 < dateList.size()){
                 end =DateUtil.addDaysToDate(dateList.get(temp+1),-1);
             }
+            temp++;
             YwContractBill bill = initCreateBillModel(model,d );
             bill.setStartDate(start);//璐﹀崟寮�濮�
             bill.setEndDate(end);//璐﹀崟缁撴潫
             Date planPayDate = DateUtil.addDaysToDate(bill.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1);
             bill.setPlanPayDate(planPayDate.getTime()>System.currentTimeMillis()?planPayDate:new Date());
-            BigDecimal totalFee =getTotalFeeByStartEnd(model,d,freeStart,freeEnd);
+            BigDecimal totalFee =getTotalFeeByStartEnd(model,d,bill,freeStart,freeEnd);
             bill.setTotleFee(totalFee);
             bill.setReceivableFee(totalFee);
             bill.setBillType(Constants.ZERO);
 
-            temp++;
+
             bill.setCompanyId(model.getCompanyId());
             list.add(bill);
         }
     }
 
 
-    private BigDecimal getTotalFeeByStartEnd(YwContract model, YwContractDetail d,Date freeStart,Date freeEnd) {
+    private BigDecimal getTotalFeeByStartEnd(YwContract model, YwContractDetail d, YwContractBill bill,Date freeStart,Date freeEnd) {
         BigDecimal totalFee = new BigDecimal(0);
-        DateCompare dateCompare =   DateCompare.dayCompare(d.getStartDate(),d.getEndDate(),freeStart,freeEnd);
+        DateCompare dateCompare =   DateCompare.dayCompare(bill.getStartDate(),DateUtil.addDaysToDate(bill.getEndDate(),1),freeStart,DateUtil.addDaysToDate(freeEnd,1));
         if(Constants.equalsInteger(d.getCircleType(),Constants.ZERO)){
             //0=鍏冩瘡骞崇背澶�
-            int days = dateCompare.getDay();
+            int days = dateCompare.getDay() ;
             BigDecimal areas = getAreasNumBYRooms(model.getRoomList());
             totalFee = new BigDecimal(days).multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍�
         }else  if(Constants.equalsInteger(d.getCircleType(),Constants.ONE)){
@@ -753,7 +754,7 @@
             totalFee = year.multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍�
         }else  if(Constants.equalsInteger(d.getCircleType(),Constants.THREE)){
             //3=鍏冩瘡澶�
-            int days = dateCompare.getDay();
+            int days = dateCompare.getDay() ;
             totalFee = new BigDecimal(days).multiply(Constants.formatBigdecimal(d.getPrice()));//鎬讳环鏍�
         }else  if(Constants.equalsInteger(d.getCircleType(),Constants.FOUR)){
             //4=鍏冩瘡鏈�
@@ -805,7 +806,7 @@
             bill.setStartDate(d.getStartDate());//璐﹀崟寮�濮�
             bill.setEndDate(d.getEndDate());//璐﹀崟缁撴潫
             bill.setPlanPayDate(DateUtil.addDaysToDate(bill.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1));
-            bill.setTotleFee(getTotalFeeByStartEnd(model,d,freeStart,freeEnd));
+            bill.setTotleFee(getTotalFeeByStartEnd(model,d,bill,freeStart,freeEnd));
             bill.setReceivableFee(bill.getTotleFee());
             bill.setBillType(Constants.ZERO);
             list.add(bill);

--
Gitblit v1.9.3