|
@@ -1,37 +1,37 @@
|
|
|
package com.qmrb.system.service.impl;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.time.Instant;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.ZoneId;
|
|
|
-import java.util.*;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.lang.Assert;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.qmrb.parking.fee.ParkingFeeCalculator;
|
|
|
-import com.qmrb.system.mapper.*;
|
|
|
-import com.qmrb.system.pojo.entity.*;
|
|
|
-import com.qmrb.system.service.ICarParkStoredCardService;
|
|
|
-import com.qmrb.system.service.IContractPlaceNumberRelService;
|
|
|
-import com.qmrb.system.service.OrderService;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.qmrb.system.common.enums.StatusEnum;
|
|
|
-import com.qmrb.system.pojo.vo.Option;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.qmrb.parking.fee.ParkingFeeCalculator;
|
|
|
import com.qmrb.system.converter.CarParkChargingRulesConverter;
|
|
|
+import com.qmrb.system.mapper.BarnRecordMapper;
|
|
|
+import com.qmrb.system.mapper.CarParkChargingRulesMapper;
|
|
|
+import com.qmrb.system.mapper.CouponMapper;
|
|
|
+import com.qmrb.system.mapper.OrderMapper;
|
|
|
+import com.qmrb.system.pojo.entity.*;
|
|
|
import com.qmrb.system.pojo.form.CarParkChargingRulesForm;
|
|
|
-import com.qmrb.system.pojo.vo.CarParkChargingRulesVO;
|
|
|
import com.qmrb.system.pojo.query.CarParkChargingRulesQuery;
|
|
|
+import com.qmrb.system.pojo.vo.CarParkChargingRulesVO;
|
|
|
import com.qmrb.system.service.ICarParkChargingRulesService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.qmrb.system.service.ICarParkStoredCardService;
|
|
|
+import com.qmrb.system.service.IContractPlaceNumberRelService;
|
|
|
+import jakarta.validation.Valid;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import cn.hutool.core.collection.CollectionUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
-import cn.hutool.core.lang.Assert;
|
|
|
-import jakarta.validation.Valid;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.time.Instant;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -298,12 +298,15 @@ public class CarParkChargingRulesServiceImpl extends ServiceImpl<CarParkCharging
|
|
|
Map<String,Object> map = contractPlaceNumberRelService.getDenomination(recordId);
|
|
|
System.out.println("包租协议 = " + JSON.toJSONString(map));
|
|
|
if(CollectionUtil.isNotEmpty(map)){
|
|
|
+ parkingRecord.contractType = "3";//包租协议
|
|
|
+ }
|
|
|
+ /*if(CollectionUtil.isNotEmpty(map)){
|
|
|
ParkingFeeCalculator.CouponRecord couponRecord = new ParkingFeeCalculator.CouponRecord();
|
|
|
couponRecord.denomination = (Double) map.get("denomination");
|
|
|
couponRecord.expireTime = (LocalDateTime) map.get("expireTime");
|
|
|
couponRecord.couponType = "2";
|
|
|
parkingRecord.couponRecord = couponRecord;
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
}
|
|
|
if(CollectionUtil.isNotEmpty(orderList)){
|
|
@@ -327,8 +330,18 @@ public class CarParkChargingRulesServiceImpl extends ServiceImpl<CarParkCharging
|
|
|
// 计算费用
|
|
|
fee = ParkingFeeCalculator.calculateParkingFee(parkingRecord, feeRule, isMonthlyCardMode);
|
|
|
}else{
|
|
|
- //直接计算费用
|
|
|
- fee = ParkingFeeCalculator.calculateParkingFee(parkingRecord, feeRule, isMonthlyCardMode);
|
|
|
+ //判断是否为包租协议
|
|
|
+ if(StringUtils.equals("3",parkingRecord.contractType)){
|
|
|
+ // 查找有效的车牌登记记录(已按车牌筛选)
|
|
|
+ List<ContractPlaceNumberRel> registrations = contractPlaceNumberRelService.findValidRegistrations(carNumber, parkingRecord.entryTime);
|
|
|
+ //包租协议只计算临停费用
|
|
|
+ Map<String,Object> result = ParkingFeeCalculator.calculateParkingFee(parkingRecord,feeRule, registrations);
|
|
|
+ fee = Double.parseDouble(result.get("fee").toString());
|
|
|
+ }else{
|
|
|
+ //直接计算费用
|
|
|
+ //1.临停费用 2.扫码协议
|
|
|
+ fee = ParkingFeeCalculator.calculateParkingFee(parkingRecord, feeRule, isMonthlyCardMode);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return new BigDecimal(fee);
|