Pārlūkot izejas kodu

提交地磅计量初始化

chenxiaofei 4 mēneši atpakaļ
vecāks
revīzija
5989837791

+ 78 - 0
iot-platform-common/src/main/java/com/platform/enums/FileEnum.java

@@ -0,0 +1,78 @@
+package com.platform.enums;
+/**
+ * @author lfdc
+ * @version 1.0
+ * @className FileEnum
+ * @description 文件上传保存地址
+ * @company sckw
+ * @date 2023-06-02 16:06:43
+ */
+public enum FileEnum {
+
+
+    /**
+     * 本地存储地址
+     */
+    Local_Address("1","/image", "本地上传保存地址"),
+    /**
+     * 用户存储地址
+     */
+    User_Address("2","/user", "用户存储地址"),
+    /**
+     * 企业存储地址
+     */
+    Enterprise_Address("3","/enterprise", "企业存储地址"),
+    /**
+     * 合同存储地址
+     */
+    CONTRACT_ADDRESS("4","/contract", "合同存储地址"),
+    /**
+     * 文件存储地址
+     */
+    DOCUMENT_ADDRESS("5","/excel", "文件存储地址"),
+
+    /**
+     * 文件存储方式-上传oss
+     */
+    FILE_STORE_TYPE_OSS("OSS","OSS","上传OSS"),
+    /**
+     文件存储方式-上传七牛云
+     *
+     */
+    FILE_STORE_TYPE_ALIYUN("kodo","qiniuyun","上传七牛云");
+
+    private final String fileType;
+    private final String fileAddress;
+    private final String fileDescription;
+
+    public String getFileType() {
+        return fileType;
+    }
+
+    public String getFileAddress() {
+        return fileAddress;
+    }
+
+    public String getFileDescription() {
+        return fileDescription;
+    }
+
+    FileEnum(String fileType, String fileAddress, String fileDescription) {
+        this.fileType = fileType;
+        this.fileAddress = fileAddress;
+        this.fileDescription = fileDescription;
+    }
+
+
+
+
+    public static String getValue(String fileType) {
+        for (FileEnum ele : FileEnum.values()) {
+            if (ele.getFileType().equals(fileType)) {
+                return ele.getFileAddress();
+            }
+        }
+        return null;
+    }
+
+}

+ 4 - 0
iot-platform-common/src/main/java/com/platform/result/HttpStatus.java

@@ -12,5 +12,9 @@ public class HttpStatus {
 
     /**成功提示信息*/
     public static final String SUCCESS_MESSAGE = "success";
+    /**
+     * 全局异常状态码
+     */
+    public static final int GLOBAL_EXCEPTION_CODE = 60500;
 
 }

+ 0 - 1
iot-platform-manager/src/main/java/com/platform/api/controller/WeighbridgeController.java

@@ -32,7 +32,6 @@ public class WeighbridgeController {
     @Operation(summary = "地磅过磅数据上报", description = "接收地磅设备上报的过磅数据和图片")
     @PostMapping("/weighBridgePush")
     public BaseResult<Boolean> weighBridgePush(WeighbridgePushRequest request) {
-        // 构建请求对象
         // 调用业务层处理;
         return BaseResult.success(weighbridgeRecordManage.handleWeighbridgePush(request));
     }

+ 32 - 7
iot-platform-manager/src/main/java/com/platform/manage/WeighbridgeRecordManage.java

@@ -1,19 +1,23 @@
 package com.platform.manage;
 
+import com.google.common.collect.Maps;
 import com.platform.api.request.WeighbridgePushRequest;
 import com.platform.entity.WeighbridgeRecord;
 import com.platform.enums.ErrorCodeEnum;
 import com.platform.exception.IotException;
+import com.platform.result.HttpStatus;
 import com.platform.service.WeighbridgeRecordService;
+import com.platform.utils.FileUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
-import java.util.Arrays;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -54,8 +58,6 @@ public class WeighbridgeRecordManage {
                 throw new IotException(ErrorCodeEnum.DATA_SAVE_FAIL, "地磅数据保存失败");
             }
 
-        } catch (IotException e) {
-            throw e;
         } catch (Exception e) {
             log.error("地磅数据上报处理异常", e);
             throw new IotException(ErrorCodeEnum.SYSTEM_ERROR, "地磅数据上报异常: " + e.getMessage());
@@ -96,10 +98,33 @@ public class WeighbridgeRecordManage {
      * @return 逗号分隔的文件名字符串
      */
     private String processImageFiles(MultipartFile[] images) {
-        return Arrays.stream(images)
-                .map(MultipartFile::getOriginalFilename)
-                .filter(name -> name != null && !name.isEmpty())
-                .collect(Collectors.joining(","));
+        List<Map<String, Object>> resultList = new ArrayList<>();
+         Arrays.stream(images).forEach(x->{
+                    Map<String, Object> map = Maps.newHashMap();
+                     //文件名称
+                     String originalFilename = x.getOriginalFilename();
+                     map.put("code", HttpStatus.SUCCESS_CODE);
+                     map.put("fileName", originalFilename);
+                     map.put("message", HttpStatus.SUCCESS_MESSAGE);
+                     String oosUrl = null;
+                     //上传文件是否成功
+                     try {
+                         oosUrl = FileUtils.uploadFile(x);
+                     } catch (Exception e) {
+                         map.put("code", HttpStatus.GLOBAL_EXCEPTION_CODE);
+                         map.put("fileName", originalFilename);
+                         map.put("message", e);
+                     }
+                     if (StringUtils.isBlank(oosUrl)) {
+                         map.put("code", HttpStatus.GLOBAL_EXCEPTION_CODE);
+                         map.put("fileName", originalFilename);
+                         map.put("message", HttpStatus.SUCCESS_MESSAGE);
+                     }
+                     //上传至oss文件地址
+                     map.put("oosUrl", oosUrl);
+                     resultList.add(map);
+                });
+         return resultList.stream().map(x -> x.get("fileName").toString()).collect(Collectors.joining(","));
     }
 
     /**

+ 0 - 0
iot-platform-common/src/main/java/com/platform/utils/FileUtils.java → iot-platform-manager/src/main/java/com/platform/utils/FileUtils.java


+ 4 - 4
iot-platform-manager/src/main/resources/bootstrap.yml

@@ -16,10 +16,10 @@ spring:
         group: DEFAULT_GROUP
         file-extension: yaml
         shared-configs:
-          - dataId: common-iot.yaml
-            group: common-iot
+          - dataId: iot-manage.yaml
+            group: DEFAULT_GROUP
             refresh: true
         extension-configs:
-          - dataId: iot-platform.yaml
-            group: common-iot
+          - dataId: common.yaml
+            group: common
             refresh: true

+ 1 - 1
sql/2026/01/create_cxf.sql

@@ -5,7 +5,7 @@ CREATE TABLE weighbridge_records (
                                      license_plate VARCHAR(20) NOT NULL DEFAULT '' COMMENT '车牌号',
                                      weight DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '重量(吨)',
                                      weigh_time DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' COMMENT '过磅时间',
-                                     photo_urls JSON DEFAULT JSON_ARRAY() COMMENT '过磅照片,存储图片 URL 数组',
+                                     photo_urls VARCHAR(2048) DEFAULT '' COMMENT '过磅照片,存储图片 URL 多个地址用逗号隔开',
                                      tag VARCHAR(255) NOT NULL DEFAULT '' COMMENT '处理标签,用于指定处理方向',
                                      created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
                                      updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间',