From ad0c55f70d780439e81ebd7dde15064e788dd68a Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期五, 27 二月 2026 15:37:13 +0800
Subject: [PATCH] 增加地磅抓拍接口解析

---
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/data/Param3033.java           |   23 +++++++
 fzzy-igdss-web/src/main/resources/templates/login.html                           |    8 ++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3033.java |   87 +++++++++++++++++++++++++++++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/util/ApiV1Constant.java       |    4 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java          |    4 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java             |   14 ++++
 6 files changed, 138 insertions(+), 2 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
index 8702908..c2f37cc 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java
@@ -158,6 +158,7 @@
         if("TEMPLATE".equals(pathTag)) return getTemplateFilePath();
         if("QUANTITY".equals(pathTag)) return getQuantityPath();
         if("WORD".equals(pathTag)) return getWordPath();
+        if("WEIGHTNAP".equals(pathTag)) return getWeightSnapPath();
 
         return getCommonFilePath();
     }
@@ -179,6 +180,19 @@
      * 鑾峰彇浜嬩欢鏂囦欢璺緞
      * @return
      */
+    public String getWeightSnapPath() {
+        String basePath = FrameworkConfig.getProfile() + "WEIGHTNAP/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
+        File file = new File(basePath);
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+        return basePath;
+    }
+
+    /**
+     * 鑾峰彇浜嬩欢鏂囦欢璺緞
+     * @return
+     */
     public String getEventFilePath() {
         String basePath = FrameworkConfig.getProfile() + "EVENT/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/";
         File file = new File(basePath);
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java
index 0148b11..9ca74d6 100644
--- a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java
@@ -49,6 +49,8 @@
     private ApiV1Service3031 apiV1Service3031;
     @Resource
     private ApiV1Service3032 apiV1Service3032;
+    @Resource
+    private ApiV1Service3033 apiV1Service3033;
 
     @PostMapping
     @ResponseBody
@@ -93,6 +95,8 @@
                     return apiV1Service3031.analysis(req, gatewaySer);
                 case ApiV1Constant.API_FUNCTION_3032:
                     return apiV1Service3032.analysis(req, gatewaySer);
+                case ApiV1Constant.API_FUNCTION_3033:
+                    return apiV1Service3033.analysis(req, gatewaySer);
             }
 
             return ApiV1Resp.error("鎺ュ彛缂栫爜<" + functionId + ">涓嶅瓨鍦紝璇锋牳鏌ワ紒", req);
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/data/Param3033.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/data/Param3033.java
new file mode 100644
index 0000000..b8e2a7c
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/data/Param3033.java
@@ -0,0 +1,23 @@
+package com.fzzy.igds.api.v1.data;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description
+ * @Author CZT
+ * @Date 2026/1/7 10:21
+ */
+@Data
+public class Param3033 implements Serializable {
+
+    private String cameraId;
+    private String cameraName;
+    private String name;
+    private Double weight;
+    private String time;
+    private String tags;
+    private String imgBase64;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3033.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3033.java
new file mode 100644
index 0000000..2ed4272
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3033.java
@@ -0,0 +1,87 @@
+package com.fzzy.igds.api.v1.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.igds.api.v1.data.ApiV1Req;
+import com.fzzy.igds.api.v1.data.ApiV1Resp;
+import com.fzzy.igds.api.v1.data.Param3033;
+import com.fzzy.igds.domain.GatewaySer;
+import com.fzzy.igds.domain.WeighbridgeSnap;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.service.WeighbridgeSnapService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.config.FrameworkConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+import javax.annotation.Resource;
+
+/**
+ * @Description AI浜嬩欢瑙f瀽
+ * @Author CZT
+ * @Date 2026/1/7 11:09
+ */
+@Slf4j
+@Component
+public class ApiV1Service3033 {
+
+    @Resource
+    private WeighbridgeSnapService weighbridgeSnapService;
+    @Resource
+    private FileService fileService;
+
+    /**
+     * @param req
+     * @param gatewaySer
+     * @return
+     */
+    public ApiV1Resp<Object> analysis(ApiV1Req<Object> req, GatewaySer gatewaySer) throws Exception {
+
+        //杞寲涓哄璞�
+        Param3033 param = JSONObject.parseObject(JSONObject.toJSONString(req.getData()), Param3033.class);
+
+        if (null == param) {
+            return ApiV1Resp.error("鎶撴媿淇℃伅涓虹┖锛屼笉瑙f瀽锛�", req);
+        }
+
+        step1(param, gatewaySer);
+
+        return ApiV1Resp.success(null, req);
+
+    }
+
+    /**
+     * 寮傛瑙f瀽
+     *
+     * @param param
+     */
+    @Async
+    public void step1(Param3033 param, GatewaySer gatewaySer) throws Exception {
+
+        WeighbridgeSnap info = new WeighbridgeSnap();
+        info.setId(ContextUtil.generateId());
+        info.setCompanyId(gatewaySer.getCompanyId());
+        info.setDeptId(gatewaySer.getDeptId());
+        info.setSerId(param.getCameraId());
+        info.setName(param.getName());
+        info.setWeight(param.getWeight());
+
+        info.setTime(DateUtils.parseDate(param.getTime(), "yyyy-MM-dd HH:mm:ss"));
+        info.setTags(param.getTags());
+
+        //base64杞寲涓哄浘鐗囦繚瀛�
+        String savePath = fileService.getFileSavePath("WEIGHTNAP");
+        String fileName = ContextUtil.UUID() + ".jpg";
+        String filePath = savePath + fileName;
+        fileService.baseImg2Disk(filePath, param.getImgBase64());
+
+        //璁剧疆淇濆瓨鍥剧墖璺緞
+        info.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
+
+        weighbridgeSnapService.addData(info);
+
+        log.info("璐ㄦ娂鐩戠鎺ュ彛V1锛�3033鎺ュ彛瑙f瀽瀹屾垚");
+
+    }
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/util/ApiV1Constant.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/util/ApiV1Constant.java
index 0da9321..cbd4c79 100644
--- a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/util/ApiV1Constant.java
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/util/ApiV1Constant.java
@@ -36,6 +36,10 @@
      * 鎺ㄩ�佸嚭鍏ュ簱鎶撳浘鎺ュ彛缂栫爜
      */
     public static final String API_FUNCTION_3032 = "3032";
+    /**
+     * 鍦扮鐩戞祴鎶撴媿鎺ュ彛缂栫爜
+     */
+    public static final String API_FUNCTION_3033 = "3033";
 
 
 }
diff --git a/fzzy-igdss-web/src/main/resources/templates/login.html b/fzzy-igdss-web/src/main/resources/templates/login.html
index 9afde1b..4a9ed17 100644
--- a/fzzy-igdss-web/src/main/resources/templates/login.html
+++ b/fzzy-igdss-web/src/main/resources/templates/login.html
@@ -122,14 +122,14 @@
     </div>
 
     <!--鎵嬫満APP-->
-    <div class="login2-ewm css-hand">
+    <div class="login2-ewm css-hand" onClick="showCode()">
         <h3>
             <i class="i-icon"><img th:src="@{/login/images/login-app.png}"/></i>涓嬭浇APP
         </h3>
     </div>
 
     <div class="login2-ewm-img dis-none" id="ewm">
-        <img th:src="@{/login/images/login-app.png}"/>
+        <img th:src="@{/login/images/login-app.png}" style="width: 100%;height: 100%"/>
     </div>
 
     <h1 class="login-tit">
@@ -226,6 +226,10 @@
 <script th:inline="javascript">
     var ctx = [[@{/}]] ;
     var captchaType = [[${captchaType}]];
+
+    function showCode() {
+        $("#ewm").css("display", "block");
+    }
 </script>
 <script src="../static/js/jquery.min.js" th:src="@{/js/jquery.min.js}"></script>
 <script src="../static/ajax/libs/validate/jquery.validate.min.js"

--
Gitblit v1.9.3