czt
2026-02-27 ad0c55f70d780439e81ebd7dde15064e788dd68a
增加地磅抓拍接口解析
已修改4个文件
已添加2个文件
140 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/FileService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/data/Param3033.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3033.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/util/ApiV1Constant.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/login.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
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);
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;
}
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事件解析
 * @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("抓拍信息为空,不解析!", req);
        }
        step1(param, gatewaySer);
        return ApiV1Resp.success(null, req);
    }
    /**
     * å¼‚步解析
     *
     * @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接口解析完成");
    }
}
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";
}
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"