From 9fecc5413fae485fc19d217efb9b5bc4a0672c42 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 12 二月 2026 14:35:04 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into dev

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java |    3 -
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java               |    3 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserCarMapper.java                         |    4 ++
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml                  |    2 
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java                  |    6 +++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java                 |   21 ++++++++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java                    |    5 ++
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml                               |    4 ++
 ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java                         |   12 +++---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserCarServiceImpl.java              |    8 ++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserCarService.java                       |    5 ++
 11 files changed, 62 insertions(+), 11 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index f7a0804..928afa8 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -2,6 +2,7 @@
 
 
 import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.account.api.dto.CouponListDto;
 import com.ruoyi.account.api.dto.GrantCouponDto;
@@ -101,6 +102,11 @@
     @PostMapping(value = "/scan/addCar")
     public AjaxResult addCar(@RequestBody TAppUserCar dto) {
         dto.setAppUserId(tokenService.getLoginUserApplet().getUserId());
+        TAppUserCar one = appUserCarService.getOne(new LambdaQueryWrapper<TAppUserCar>().eq(TAppUserCar::getLicensePlate, dto.getLicensePlate())
+                .eq(TAppUserCar::getDelFlag, 0));
+        if(null != one){
+            return AjaxResult.error("车辆已存在");
+        }
         appUserCarService.save(dto);
         return AjaxResult.success();
     }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
index 683c6b3..64d7a28 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserCarController.java
@@ -69,5 +69,26 @@
         return R.ok(collect);
     }
 
+
+    /**
+     * 手动删除重复数据
+     * @return
+     */
+    @PostMapping(value = "/t-app-user-car/delRepetitiveVehicles")
+    public R delRepetitiveVehicles(){
+        List<String> list = appUserCarService.queryRepetitiveVehicles();
+        for (String s : list) {
+            List<TAppUserCar> list1 = appUserCarService.list(new LambdaQueryWrapper<TAppUserCar>().eq(TAppUserCar::getLicensePlate, s)
+                    .eq(TAppUserCar::getDelFlag, 0).orderByDesc(TAppUserCar::getCreateTime));
+            for (int i = 0; i < list1.size(); i++) {
+                if(i == list1.size() - 1){
+                    break;
+                }
+                appUserCarService.removeById(list1.get(i).getId());
+            }
+        }
+        return R.ok();
+    }
+
 }
 
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 66cd32d..d534d39 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -1244,6 +1244,11 @@
                 return R.fail("权限不足");
             }
         }
+        TAppUserCar one1 = appUserCarService.getOne(new LambdaQueryWrapper<TAppUserCar>().eq(TAppUserCar::getLicensePlate, appUserCar.getLicensePlate())
+                .eq(TAppUserCar::getDelFlag, 0));
+        if(null != one1){
+            return R.fail("车辆已存在");
+        }
         LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
         Long userId = loginUserApplet.getUserId();
         TAppUser byId = appUserService.getById(userId);
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserCarMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserCarMapper.java
index 2825c84..f65ff86 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserCarMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppUserCarMapper.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.account.api.model.TAppUserCar;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -13,4 +15,6 @@
  */
 public interface TAppUserCarMapper extends BaseMapper<TAppUserCar> {
 
+    List<String> queryRepetitiveVehicles();
+
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserCarService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserCarService.java
index 7106851..7094adf 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserCarService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppUserCarService.java
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.account.api.model.TAppUserCar;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -13,4 +15,7 @@
  */
 public interface TAppUserCarService extends IService<TAppUserCar> {
 
+
+    List<String> queryRepetitiveVehicles();
+
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserCarServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserCarServiceImpl.java
index 0e6f034..bf15918 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserCarServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserCarServiceImpl.java
@@ -6,6 +6,9 @@
 import com.ruoyi.account.service.TAppUserCarService;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +20,9 @@
 @Service
 public class TAppUserCarServiceImpl extends ServiceImpl<TAppUserCarMapper, TAppUserCar> implements TAppUserCarService {
 
+
+    @Override
+    public List<String> queryRepetitiveVehicles() {
+        return this.baseMapper.queryRepetitiveVehicles();
+    }
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml
index 3861951..de5be05 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppUserCarMapper.xml
@@ -20,4 +20,8 @@
         id, app_user_id, license_plate, vehicle_brand, vehicle_model, vehicle_use, endurance, create_time, del_flag
     </sql>
 
+
+    <select id="queryRepetitiveVehicles" resultType="String">
+        select license_plate from (select license_plate, count(license_plate) as num from t_app_user_car where del_flag = 0 group by license_plate) as aa where aa.num > 1
+    </select>
 </mapper>
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
index dfab1ea..414e8d7 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
@@ -101,9 +101,6 @@
             }else{
                 tParkingRecordVO.setFeeDuration(tParkingRecordVO.getParkingDuration()-tParkingRecordVO.getFreeDuration());
             }
-            tParkingRecordVO.setOrderAmount(tParkingRecordVO.getOrderAmount()!=null?tParkingRecordVO.getOrderAmount():new BigDecimal("0")
-                    .add(tParkingRecordVO.getTimeoutAmount()!=null?tParkingRecordVO.getTimeoutAmount():new BigDecimal("0")));
-            tParkingRecordVO.setParkingFee(tParkingRecordVO.getOrderAmount());
         }
         pageInfo.setRecords(list);
         // 查询总数
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
index 228b680..e4825e7 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
@@ -30,7 +30,7 @@
     <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.TParkingRecordVO">
         select
         tpr.id, tpr.code,tpr.app_user_id, tpr.license_plate, tpr.vehicle_color, tpr.charging_order_id, tpr.parking_lot_id, tpr.in_parking_time, tpr.out_parking_time,
-        tpr.parking_duration, tpr.order_amount, tpr.status, tpr.out_parking_type, tpr.create_time,(tpr.order_amount + tpr.timeout_amount) as parkingFee,tpr.timeout_amount,
+        tpr.parking_duration, tpr.order_amount, tpr.status, tpr.out_parking_type, tpr.create_time,tpr.payment as parkingFee,(tpr.order_amount - tpr.payment) as timeout_amount,
         tpr.free_duration,(tpr.parking_duration - tpr.free_duration) as feeDuration,ts.name as siteName
         from t_parking_record tpr
         left join t_parking_lot tpl on tpr.parking_lot_id = tpl.id
diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java
index 9fbd581..0e1b82f 100644
--- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java
+++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java
@@ -82,18 +82,18 @@
             mqttClient.setCallback(new MqttCallback() {
                 @Override
                 public void connectionLost(Throwable cause) {
-                    System.out.println("Connection lost, reconnecting...");
+                    log.info("Connection lost, reconnecting...");
                     reconnect();
                 }
 
                 @Override
                 public void messageArrived(String topic, MqttMessage message) throws Exception {
-                    System.out.println("Message arrived: " + new String(message.getPayload()));
+                    log.info("Message arrived: " + new String(message.getPayload()));
                 }
 
                 @Override
                 public void deliveryComplete(IMqttDeliveryToken token) {
-                    System.out.println("Delivery complete");
+                    log.info("Delivery complete");
                 }
             });
             mqttClient.connect(options);
@@ -153,9 +153,9 @@
                 // 设置会话心跳时间 单位为秒 服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制
                 options.setKeepAliveInterval(KEEP_ALIVE);//默认:60
                 mqttClient.connect(options);
-                System.out.println("重连成功");
+                log.info("重连成功");
             } catch (MqttException e) {
-                System.out.println("重连失败");
+                log.info("重连失败");
                 log.info("connectionLost e:{}", e.getMessage());
                 e.printStackTrace();
             }
@@ -179,7 +179,7 @@
         message.setPayload(message1.getBytes());
         MqttTopic mTopic = mqttClient.getTopic(topic);
         if (null == mTopic) {
-            System.err.println("topic not exist");
+            log.info("topic not exist");
             log.error("topic not exist");
         }
         MqttDeliveryToken token;
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 429fefb..fbc2edb 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -3371,7 +3371,8 @@
 	public TChargingOrder getChargingOrderByLicensePlate(GetChargingOrderByLicensePlate query) {
 		TChargingOrder one = this.getOne(new LambdaQueryWrapper<TChargingOrder>().eq(TChargingOrder::getPlateNum, query.getLicensePlate())
 				.eq(TChargingOrder::getDelFlag, 0).between(TChargingOrder::getStartTime, query.getStartTime(), LocalDateTime.now())
-				.eq(TChargingOrder::getRechargePaymentStatus, 2).in(TChargingOrder::getStatus, Arrays.asList(4, 5)));
+				.eq(TChargingOrder::getRechargePaymentStatus, 2).in(TChargingOrder::getStatus, Arrays.asList(4, 5))
+                .last(" order by start_time desc limit 0, 1"));
 		return one;
 	}
 	

--
Gitblit v1.7.1