From c1147646b9ef1d713a202d7ab8cf3ea8d677f142 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 27 九月 2025 21:56:54 +0800
Subject: [PATCH] fix:优化评价

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleEvaluationQrcodeServiceImpl.java |   97 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 82 insertions(+), 15 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleEvaluationQrcodeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleEvaluationQrcodeServiceImpl.java
index a36f68f..5de0d50 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleEvaluationQrcodeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/VehicleEvaluationQrcodeServiceImpl.java
@@ -5,6 +5,7 @@
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.QRCodeUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.config.QRCodeConfig;
 import com.ruoyi.system.mapper.VehicleInfoMapper;
 import com.ruoyi.system.domain.VehicleInfo;
 import com.ruoyi.system.mapper.VehicleEvaluationQrcodeMapper;
@@ -27,6 +28,9 @@
 
     @Autowired
     private VehicleInfoMapper vehicleInfoMapper;
+
+    @Autowired
+    private QRCodeConfig qrCodeConfig;
 
     @Value("${ruoyi.profile}")
     private String uploadPath;
@@ -125,9 +129,48 @@
             return null;
         }
 
-        // 妫�鏌ヨ溅杈嗘槸鍚﹀瓨鍦�
-        VehicleInfo vehicleInfo = vehicleInfoMapper.selectVehicleInfoByVehicleNo(vehicleNo);
-        if (vehicleInfo == null) {
+        // 娉ㄦ剰锛氳繖閲屼笉妫�鏌ヨ溅杈嗕俊鎭〃锛屽厑璁镐负浠绘剰杞︾墝鍙风敓鎴愪簩缁寸爜
+
+        // 妫�鏌ユ槸鍚﹀凡瀛樺湪浜岀淮鐮�
+        VehicleEvaluationQrcode existingQrcode = vehicleEvaluationQrcodeMapper.selectVehicleEvaluationQrcodeByVehicleNo(vehicleNo);
+        if (existingQrcode != null) {
+            return existingQrcode;
+        }
+
+        // 鐢熸垚浜岀淮鐮佸唴瀹�
+        String qrcodeContent = "EVAL:" + vehicleNo;
+        String qrcodeUrl = qrCodeConfig.generateUrl(vehicleNo);
+
+        // 鐢熸垚甯﹁溅鐗屽彿鐨勪簩缁寸爜鍥剧墖涓篵ase64鏍煎紡
+        String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo);
+
+        if (qrcodeImageBase64 != null) {
+            VehicleEvaluationQrcode qrcode = new VehicleEvaluationQrcode();
+            qrcode.setVehicleNo(vehicleNo);
+            qrcode.setQrcodeUrl(qrcodeUrl);
+            qrcode.setQrcodeContent(qrcodeContent);
+            qrcode.setQrcodeImage(qrcodeImageBase64);
+            qrcode.setStatus("0");
+            qrcode.setCreateBy("system");
+            qrcode.setCreateTime(DateUtils.getNowDate());
+
+            int result = vehicleEvaluationQrcodeMapper.insertVehicleEvaluationQrcode(qrcode);
+            if (result > 0) {
+                return qrcode;
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * 鐢熸垚杞﹁締璇勪环浜岀淮鐮侊紙涓嶆鏌ヨ溅杈嗕俊鎭〃锛�
+     * 
+     * @param vehicleNo 杞︾墝鍙�
+     * @return 浜岀淮鐮佷俊鎭�
+     */
+    private VehicleEvaluationQrcode generateVehicleEvaluationQrcodeWithoutVehicleCheck(String vehicleNo) {
+        if (StringUtils.isEmpty(vehicleNo)) {
             return null;
         }
 
@@ -139,10 +182,10 @@
 
         // 鐢熸垚浜岀淮鐮佸唴瀹�
         String qrcodeContent = "EVAL:" + vehicleNo;
-        String qrcodeUrl = "http://localhost:" + serverPort + "/evaluation?vehicle=" + vehicleNo;
+        String qrcodeUrl = qrCodeConfig.generateUrl(vehicleNo);
 
-        // 鐢熸垚浜岀淮鐮佸浘鐗囦负base64鏍煎紡
-        String qrcodeImageBase64 = QRCodeUtils.generateQRCodeToBase64(qrcodeUrl);
+        // 鐢熸垚甯﹁溅鐗屽彿鐨勪簩缁寸爜鍥剧墖涓篵ase64鏍煎紡
+        String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo);
 
         if (qrcodeImageBase64 != null) {
             VehicleEvaluationQrcode qrcode = new VehicleEvaluationQrcode();
@@ -176,11 +219,7 @@
             return null;
         }
 
-        // 妫�鏌ヨ溅杈嗘槸鍚﹀瓨鍦�
-        VehicleInfo vehicleInfo = vehicleInfoMapper.selectVehicleInfoByVehicleNo(vehicleNo);
-        if (vehicleInfo == null) {
-            return null;
-        }
+        // 娉ㄦ剰锛氳繖閲屼笉妫�鏌ヨ溅杈嗕俊鎭〃锛屽厑璁镐负浠绘剰杞︾墝鍙风敓鎴愪簩缁寸爜
 
         // 妫�鏌ユ槸鍚﹀凡瀛樺湪浜岀淮鐮�
         VehicleEvaluationQrcode existingQrcode = vehicleEvaluationQrcodeMapper.selectVehicleEvaluationQrcodeByVehicleNo(vehicleNo);
@@ -191,8 +230,8 @@
             existingQrcode.setUpdateBy("system");
             existingQrcode.setUpdateTime(DateUtils.getNowDate());
             
-            // 閲嶆柊鐢熸垚浜岀淮鐮佸浘鐗囦负base64鏍煎紡
-            String qrcodeImageBase64 = QRCodeUtils.generateQRCodeToBase64(qrcodeUrl);
+            // 閲嶆柊鐢熸垚甯﹁溅鐗屽彿鐨勪簩缁寸爜鍥剧墖涓篵ase64鏍煎紡
+            String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo);
             
             if (qrcodeImageBase64 != null) {
                 existingQrcode.setQrcodeImage(qrcodeImageBase64);
@@ -205,8 +244,8 @@
         // 鐢熸垚浜岀淮鐮佸唴瀹�
         String qrcodeContent = "EVAL:" + vehicleNo;
 
-        // 鐢熸垚浜岀淮鐮佸浘鐗囦负base64鏍煎紡
-        String qrcodeImageBase64 = QRCodeUtils.generateQRCodeToBase64(qrcodeUrl);
+        // 鐢熸垚甯﹁溅鐗屽彿鐨勪簩缁寸爜鍥剧墖涓篵ase64鏍煎紡
+        String qrcodeImageBase64 = QRCodeUtils.generateQRCodeWithVehicleNoToBase64(qrcodeUrl, vehicleNo);
 
         if (qrcodeImageBase64 != null) {
             VehicleEvaluationQrcode qrcode = new VehicleEvaluationQrcode();
@@ -249,4 +288,32 @@
 
         return successCount;
     }
+
+    /**
+     * 鎵归噺鐢熸垚杞﹁締璇勪环浜岀淮鐮侊紙鎸囧畾杞︾墝鍙峰垪琛級
+     * 
+     * @param vehicleNos 杞︾墝鍙峰垪琛�
+     * @param qrcodeUrl 浜岀淮鐮乁RL锛堝彲閫夛級
+     * @return 缁撴灉
+     */
+    @Override
+    public int batchGenerateVehicleEvaluationQrcode(List<String> vehicleNos, String qrcodeUrl) {
+        int successCount = 0;
+        for (String vehicleNo : vehicleNos) {
+            if (StringUtils.isEmpty(vehicleNo)) {
+                continue; // 璺宠繃绌虹殑杞︾墝鍙�
+            }
+            
+            VehicleEvaluationQrcode qrcode;
+            if (StringUtils.isEmpty(qrcodeUrl)) {
+                qrcode = generateVehicleEvaluationQrcodeWithoutVehicleCheck(vehicleNo);
+            } else {
+                qrcode = generateVehicleEvaluationQrcode(vehicleNo, qrcodeUrl);
+            }
+            if (qrcode != null) {
+                successCount++;
+            }
+        }
+        return successCount;
+    }
 }

--
Gitblit v1.9.1