فهرست منبع

荆州院子-新能源车不充电要免2小时

hbjzws 1 سال پیش
والد
کامیت
84e81ca261

+ 17 - 0
src/main/java/com/charging/chargingparking/service/impl/ParkingFeeServiceImpl.java

@@ -267,6 +267,15 @@ public class ParkingFeeServiceImpl extends ServiceImpl<ParkingFeeMapper, Parking
                         parkingFeeSubDTO.setParkingCost(BigDecimal.ZERO);
                         feeList.add(parkingFeeSubDTO);
                     }
+
+                    //add by hbjzws 2023-03-25 关于2小时内免费的事宜-汽油车
+                    if (!"1".equals(parkingFee.getParkId())&&parkingFee.getFreeDuration() != 0 && parkingTimeInt > parkingFee.getFreeDuration()) {
+                        ParkingFeeSubDTO parkingFeeSubDTO = new ParkingFeeSubDTO();
+                        parkingFeeSubDTO.setMinSection(0);
+                        parkingFeeSubDTO.setMaxSection(parkingFee.getFreeDuration());
+                        parkingFeeSubDTO.setParkingCost(BigDecimal.ZERO);
+                        feeList.add(parkingFeeSubDTO);
+                    }
                     if (feeList.size()==0){
                         QueryWrapper<ParkingFeeSub> parkingFeeSubQueryWrapper = new QueryWrapper<>();
                         parkingFeeSubQueryWrapper.eq("park_id", parkingRecord.getParkId());
@@ -292,6 +301,14 @@ public class ParkingFeeServiceImpl extends ServiceImpl<ParkingFeeMapper, Parking
                         parkingFeeSubDTO.setParkingCost(BigDecimal.ZERO);
                         feeList.add(parkingFeeSubDTO);
                     }
+                    //add by hbjzws 2023-03-25 关于2小时内免费的事宜-新能源车
+                    if (!"1".equals(parkingFee.getParkId())&&parkingFee.getNewEnergyFreeDuration() != 0 && parkingTimeInt > parkingFee.getNewEnergyFreeDuration()) {
+                        ParkingFeeSubDTO parkingFeeSubDTO = new ParkingFeeSubDTO();
+                        parkingFeeSubDTO.setMinSection(0);
+                        parkingFeeSubDTO.setMaxSection(parkingFee.getNewEnergyFreeDuration());
+                        parkingFeeSubDTO.setParkingCost(BigDecimal.ZERO);
+                        feeList.add(parkingFeeSubDTO);
+                    }
                     if (feeList.size()==0){
                         QueryWrapper<ParkingFeeSub> parkingFeeSubQueryWrapper = new QueryWrapper<>();
                         parkingFeeSubQueryWrapper.eq("park_id", parkingRecord.getParkId());

+ 15 - 9
src/main/java/com/charging/chargingparking/service/impl/ParkingRecordServiceImpl.java

@@ -977,17 +977,23 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
 //                        if (betweenInt > 0) {
 //                            parkingTimeInt = parkingTimeInt - betweenInt;
 //                        }
-                        if (parkingTimeInt <=31) {
-                            parkingTimeInt =parkingTimeInt- parkingFee.getNewEnergyFreeDuration();
-                            if(parkingTimeInt<0)
-                            {
-                                parkingTimeInt =0;
+                        if("1".equals(parkingMember.getParkId())){
+                            if (parkingTimeInt <=31) {
+                                parkingTimeInt =parkingTimeInt- parkingFee.getNewEnergyFreeDuration();
+                                if(parkingTimeInt<0)
+                                {
+                                    parkingTimeInt =0;
+                                }
                             }
+                            //如果充电完成后超过30分钟出场,则计费时间为:超出时间+停车场新能源车免费时间
+                            if (parkingTimeInt > 31) {
+                                parkingTimeInt = (parkingTimeInt - 30) + parkingFee.getNewEnergyFreeDuration();
+                            }
+                        }else{
+                            parkingTimeInt = parkingTimeInt + parkingFee.getNewEnergyFreeDuration();
                         }
-                        //如果充电完成后超过30分钟出场,则计费时间为:超出时间+停车场新能源车免费时间
-                        if (parkingTimeInt > 31) {
-                            parkingTimeInt = (parkingTimeInt - 30) + parkingFee.getNewEnergyFreeDuration();
-                        }
+
+
                     }else{
                         parkingTimeInt =parkingTimeInt- 30;
                         if(parkingTimeInt<0)

+ 23 - 1
src/test/java/com/charging/chargingparking/ChargingParkingApplicationTests.java

@@ -102,6 +102,26 @@ class ChargingParkingApplicationTests {
     private ParkingTimeService parkingTimeService;
     @Autowired
     private TimeSetService timeSetService;
+    @Test
+    void testService()  {
+       String carNum="鄂DD26H6";
+        System.out.println(carNum.length());
+    }
+//    @Test
+//    void testService()  {
+//        QueryWrapper<ParkingRecord> queryWrapper = new QueryWrapper<ParkingRecord>();
+//        queryWrapper.select("sum(pay_amount) as sumAll");
+//        queryWrapper.eq("car_num","鄂DD10888");
+//        //queryWrapper.eq("TO_DAYS(create_time)","TO_DAYS(NOW())");
+//        queryWrapper.apply("create_time>=DATE_FORMAT(LAST_DAY(NOW()), '%Y-%m-01')");
+//        queryWrapper.apply("create_time<=LAST_DAY(NOW())");
+//        ParkingRecord parkingRecord =parkingRecordService.getOne(queryWrapper);
+//        if(parkingRecord==null){
+//            parkingRecord.setSumAll(BigDecimal.ZERO);
+//        }
+//        System.out.println(parkingRecord.getSumAll());
+//    }
+
     public static List<String> getDatesBetween(String startDateString, String endDateString) {
         List<DateTime> datesBetween = DateUtil.rangeToList(DateUtil.parseDate(startDateString), DateUtil.parseDate(endDateString), DateField.DAY_OF_MONTH);
         return datesBetween.stream()
@@ -627,7 +647,9 @@ class ChargingParkingApplicationTests {
     void contextLoads1111111111111111111111111111() {
 
         try {
-            ParkingRecord parkingRecord = parkingRecordService.getById("1736401048422158337");
+            //1771830983861047298 鄂DD26100 荆州院子 136分钟   实际9元 应该收费3元 没有充电---------新能源车
+            //1769951488673681409 鄂DD26H6 御河 442分钟-7小时22分钟  实际收费16元 ----------------- 汽油车
+            ParkingRecord parkingRecord = parkingRecordService.getById("1771830983861047298");
             ParkingCostDTO parkingCostDTO  = parkingFeeService.parkingCost2(parkingRecord);
 
             System.out.println(parkingCostDTO);