wuxw лет назад: 2
Родитель
Сommit
37f6ecc9c5

+ 2 - 90
service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java

@@ -461,7 +461,7 @@ public class QueryOweFeeImpl implements IQueryOweFee {
 
     private void dealFeePs(ParkingSpaceDto tmpParkingSpaceDto, FeeDto feeDto) {
         // 轮数 * 周期 * 30 + 开始时间 = 目标 到期时间
-        Map<String, Object> targetEndDateAndOweMonth = getTargetEndDateAndOweMonth(feeDto);
+        Map<String, Object> targetEndDateAndOweMonth = computeFeeSMOImpl.getTargetEndDateAndOweMonth(feeDto);
         Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
         double oweMonth = (double) targetEndDateAndOweMonth.get("oweMonth");
         if (!tmpParkingSpaceDto.getPsId().equals(feeDto.getPayerObjId())) {
@@ -579,7 +579,7 @@ public class QueryOweFeeImpl implements IQueryOweFee {
     }
 
     private void dealFeeRoom(RoomDto tmpRoomDto, FeeDto feeDto) {
-        Map<String, Object> targetEndDateAndOweMonth = getTargetEndDateAndOweMonth(feeDto);
+        Map<String, Object> targetEndDateAndOweMonth = computeFeeSMOImpl.getTargetEndDateAndOweMonth(feeDto);
         Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
         double oweMonth = (double) targetEndDateAndOweMonth.get("oweMonth");
         if (!tmpRoomDto.getRoomId().equals(feeDto.getPayerObjId())) {
@@ -658,95 +658,7 @@ public class QueryOweFeeImpl implements IQueryOweFee {
     }
 
 
-    private Map getTargetEndDateAndOweMonth(FeeDto feeDto) {
-        Date targetEndDate = null;
-        double oweMonth = 0.0;
 
-        Map<String, Object> targetEndDateAndOweMonth = new HashMap<>();
-
-        if (FeeDto.STATE_FINISH.equals(feeDto.getState())) {
-            targetEndDate = feeDto.getEndTime();
-            targetEndDateAndOweMonth.put("oweMonth", oweMonth);
-            targetEndDateAndOweMonth.put("targetEndDate", targetEndDate);
-            return targetEndDateAndOweMonth;
-        }
-        if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
-            if (feeDto.getDeadlineTime() != null) {
-                targetEndDate = feeDto.getDeadlineTime();
-            } else if (!StringUtil.isEmpty(feeDto.getCurDegrees())) {
-                targetEndDate = feeDto.getCurReadingTime();
-            } else if (feeDto.getImportFeeEndTime() == null) {
-                targetEndDate = feeDto.getConfigEndTime();
-            } else {
-                targetEndDate = feeDto.getImportFeeEndTime();
-            }
-            //判断当前费用是不是导入费用
-            oweMonth = 1.0;
-
-        } else {
-            //当前时间
-            Date billEndTime = DateUtil.getCurrentDate();
-            //开始时间
-            Date startDate = feeDto.getStartTime();
-            //到期时间
-            Date endDate = feeDto.getEndTime();
-            if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {
-                OwnerCarDto ownerCarDto = new OwnerCarDto();
-                ownerCarDto.setCommunityId(feeDto.getCommunityId());
-                ownerCarDto.setCarId(feeDto.getPayerObjId());
-                List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
-
-                if (ownerCarDtos == null || ownerCarDtos.size() != 1) {
-                    targetEndDateAndOweMonth.put("oweMonth", 0);
-                    targetEndDateAndOweMonth.put("targetEndDate", "");
-                    return targetEndDateAndOweMonth;
-                }
-
-                targetEndDate = ownerCarDtos.get(0).getEndTime();
-                //说明没有欠费
-                if (endDate.getTime() >= targetEndDate.getTime()) {
-                    // 目标到期时间 - 到期时间 = 欠费月份
-                    oweMonth = 0;
-                    targetEndDateAndOweMonth.put("oweMonth", oweMonth);
-                    targetEndDateAndOweMonth.put("targetEndDate", targetEndDate);
-                    return targetEndDateAndOweMonth;
-                }
-            }
-
-            //缴费周期
-            long paymentCycle = Long.parseLong(feeDto.getPaymentCycle());
-            // 当前时间 - 开始时间  = 月份
-            double mulMonth = 0.0;
-            mulMonth = DateUtil.dayCompare(startDate, billEndTime);
-
-            // 月份/ 周期 = 轮数(向上取整)
-            double round = 0.0;
-            if ("1200".equals(feeDto.getPaymentCd())) { // 预付费
-                round = Math.floor(mulMonth / paymentCycle) + 1;
-            } else { //后付费
-                round = Math.floor(mulMonth / paymentCycle);
-            }
-            // 轮数 * 周期 * 30 + 开始时间 = 目标 到期时间
-            targetEndDate = getTargetEndTime(round * paymentCycle, startDate);
-            //费用 快结束了
-            if (feeDto.getConfigEndTime().getTime() < targetEndDate.getTime()) {
-                targetEndDate = feeDto.getConfigEndTime();
-            }
-            //说明没有欠费
-            if (endDate.getTime() < targetEndDate.getTime()) {
-                // 目标到期时间 - 到期时间 = 欠费月份
-                oweMonth = DateUtil.dayCompare(endDate, targetEndDate);
-            }
-
-            if (feeDto.getEndTime().getTime() > targetEndDate.getTime()) {
-                targetEndDate = feeDto.getEndTime();
-            }
-        }
-
-        targetEndDateAndOweMonth.put("oweMonth", oweMonth);
-        targetEndDateAndOweMonth.put("targetEndDate", targetEndDate);
-        return targetEndDateAndOweMonth;
-    }
 
     private Date getTargetEndTime(double v, Date startDate) {
         Calendar endDate = Calendar.getInstance();

+ 5 - 2
springboot/src/test/java/com/java110/AppTest.java

@@ -77,8 +77,11 @@ public class AppTest {
             } else {
                 targetEndDate = feeDto.getImportFeeEndTime();
             }
-            //判断当前费用是不是导入费用
-            oweMonth = 1.0;
+            //说明欠费
+            if (preEndTime.getTime() < DateUtil.getCurrentDate().getTime()) {
+                // 目标到期时间 - 到期时间 = 欠费月份
+                oweMonth = 1.0;
+            }
         } else if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())) {
             if (feeDto.getDeadlineTime() != null) {
                 maxEndTime = feeDto.getDeadlineTime();