czt
2026-01-11 e3bdcdf9123bb69d77ce42dfcd255047c09edafc
出入库视频及车牌识别
已修改11个文件
155 ■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/common/constant.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-register.js 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/static/inout/video-play.js 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/register.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/weight.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/resources/templates/inout/weight2.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/GatewaySerService.java
@@ -165,6 +165,33 @@
    /**
     * 根据分机ID获取分机信息
     *
     * @param deptId
     * @return
     */
    public GatewaySer getCacheSerByDeptId(String deptId) {
        if (StringUtils.isEmpty(deptId)) {
            return null;
        }
        String patten = RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_GATEWAY_SER_LIST) + "*";
        Collection<String> keys = redisCache.keys(patten);
        if (null == keys) {
            return null;
        }
        GatewaySer ser = null;
        for (String key : keys) {
            ser = (GatewaySer) redisCache.getCacheObject(key);
            if(deptId.equals(ser.getDeptId())){
                return ser;
            }
        }
        return null;
    }
    /**
     * 根据分机ID获取分机信息
     *
     * @param companyId
     * @param id
     * @return
fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java
@@ -59,6 +59,21 @@
    private EventInfoService eventInfoService;
    @Resource
    private SnapRecordService snapRecordService;
    @Resource
    private GatewaySerService gatewaySerService;
    /**
     * 根据库区编码获取库区网关信息
     * @param deptId
     * @return
     */
    public GatewaySer getGatewaySerByDeptId(String deptId) {
        if(StringUtils.isBlank(deptId)){
            deptId = ContextUtil.subDeptId(null);
        }
        return gatewaySerService.getCacheSerByDeptId(deptId);
    }
    /**
     * 根据库区编码获取库区下所有仓库列表
fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
@@ -92,6 +92,10 @@
        InoutConf conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_10, Constant.PROGRESS_REGISTER, 1);
        view.put("lprDto", conf);
        //库区网关信息
        GatewaySer gatewaySer = commonManager.getGatewaySerByDeptId(deptId);
        view.put("gatewaySer", gatewaySer);
        return prefix + "/register";
    }
@@ -278,6 +282,9 @@
        view.put("endTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
        view.put("startTime", DateFormatUtils.format(DateUtil.getNewByDay(null, -30), "yyyy-MM-dd"));
        //库区网关信息
        GatewaySer gatewaySer = commonManager.getGatewaySerByDeptId(deptId);
        view.put("gatewaySer", gatewaySer);
        String viewStr = prefix + "/weight";
        if ("1".equals(viewTag)) {
fzzy-igdss-web/src/main/resources/static/common/constant.js
@@ -79,8 +79,7 @@
//摄像头播放方式
var PlayType = {
    VLC: "VLC", //本地VLC插件
    PLAY_TYPE_WEB_RTC_DH: "WEB_RTC_DH", //WEB-RTC-大华
    PLAY_TYPE_WEB_RTC_HIK: "WEB_RTC_HIK", //WEB-RTC-海康
    PLAY_TYPE_WEB_RTC: "WEB_RTC", //WEB-RTC-大华
    FZZY_GB: "FZZY_GB",//FZZY流媒体播放
    EASY_GBS: "EASY_GBS",//fzzy-easy流媒体播放
    EASY_DSS: "EASY_DSS",//萤石云播放
fzzy-igdss-web/src/main/resources/static/inout/inout-register.js
@@ -130,11 +130,16 @@
 * 读取车牌号
 */
function flushPlateNum() {
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,车牌读取失败!");
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.plateNumUrl;
    var param = JSON.stringify(lprDto);
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/inout/api/get-plateNum",
        url: url,
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: param,
@@ -191,13 +196,18 @@
        progress: progress,
        bizType: type,
        plateNum: data.plateNum,
        id1: (null != lprDto) ? lprDto.id : null,
        id2: (null != lprDto) ? lprDto.id : null,
        id1: (null != lprDto) ? lprDto.id : null
    };
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,抓图失败!");
        submitData(data);
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.snapUrl;
    $.ajax({
        sync: false,
        type: "POST",
        url: "../../inout/api/snap-img",
        url: url,
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(snapData),
fzzy-igdss-web/src/main/resources/static/inout/inout-weight.js
@@ -99,13 +99,17 @@
        id3: snapDto3.id,
        sort: $("#scaleName").val()
    };
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,抓图失败!");
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.snapUrl;
    //当前AJAX服务为同步服务,返回数据包装照片信息
    var index = layer.load();
    $.ajax({
        sync: false,
        type: "POST",
        url: "/inout/api/snap-img",
        url: url,
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(snapData),
@@ -309,11 +313,16 @@
 * 读取车牌号
 */
function flushPlateNum() {
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,车牌读取失败!");
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.plateNumUrl;
    var param = JSON.stringify(snapDto1);
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/inout/api/get-plateNum",
        url: url,
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: param,
fzzy-igdss-web/src/main/resources/static/inout/inout-weight2.js
@@ -486,13 +486,18 @@
        id3: snapDto3.id,
        sort: $("#scaleName").val()
    };
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,抓图失败!");
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.snapUrl;
    //当前AJAX服务为同步服务,返回数据包装照片信息
    var index = layer.load();
    $.ajax({
        sync: false,
        type: "POST",
        url: "/inout/api/snap-img",
        url: url,
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(snapData),
@@ -671,11 +676,16 @@
 * 读取车牌号
 */
function flushPlateNum() {
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,车牌读取失败!");
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.plateNumUrl;
    var param = JSON.stringify(snapDto1);
    var index = layer.load();
    $.ajax({
        type: "POST",
        url: "/inout/api/get-plateNum",
        url: url,
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: param,
fzzy-igdss-web/src/main/resources/static/inout/video-play.js
@@ -7,6 +7,7 @@
let mediaStream2;
let webrtc3;
let mediaStream3;
/**
 * 页面最多同时调用三个视频,一个车牌识别,抓拍,三个顺序执行
 * @param lprParam 车牌识别参数
@@ -15,11 +16,17 @@
 */
function initVideo(snapParam1, snapParam2, snapPram3) {
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,视频播放失败!");
        initVideo2(snapParam2, snapPram3);
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
    //车牌识别播放
    if (snapParam1) {
        $.ajax({
            type: "POST",
            url: "../../inout/api/inout-video-play",
            url: url,
            dataType: "json",
            contentType: "application/json;charset=UTF-8",
            data: JSON.stringify(snapParam1),
@@ -44,10 +51,16 @@
}
function initVideo2(snapParam2, snapParam3) {
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,视频播放失败!");
        initVideo3(snapParam3)
        return;
    }
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
    if (snapParam2) {
        $.ajax({
            type: "POST",
            url: "../../inout/api/inout-video-play",
            url: url,
            dataType: "json",
            contentType: "application/json;charset=UTF-8",
            data: JSON.stringify(snapParam2),
@@ -72,10 +85,15 @@
}
function initVideo3(snapParam3) {
    if (!gatewaySer) {
        layer.msg("未获取到库区网关信息,视频播放失败!");
        return;
    }
    if (!snapParam3) return;
    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
    $.ajax({
        type: "POST",
        url: "../../inout/api/inout-video-play",
        url: url,
        dataType: "json",
        contentType: "application/json;charset=UTF-8",
        data: JSON.stringify(snapParam3),
@@ -100,31 +118,9 @@
 */
function initSnapVideo(data, order) {
    var htm = "";
    //海康web4.0播放
    if (PlayType.HIK_WEB4 == data.playType) {
        var url = "../../inout/api/iframe-hik?id=" + data.id;
        if (ship && ship == "ship") { //船运称重页面
            url += "&length=340&width=195";
        } else { //称重页面
            url += "&length=310&width=170";
        }
        htm = '<iframe src=' + url + ' style="width: 100%;height: 100%"></iframe>';
    }
    //VLC播放
    if (PlayType.VLC == data.playType) {
        htm = "<object type='application/x-vlc-plugin' "
            + "events='true' width='100%' height='100%'"
            + "pluginspage='http://www.videolan.org'"
            + "th:codebase='@{../../static/plugins/vlc/npapi-vlc-2.2.2.tar.xz}'>\n"
            + "<param name='mrl' value='" + data.playUrl + "'/>\n"
            + "<param name='volume' value='50'/>\n"
            + "<param name='autoplay' value='true'/>\n"
            + "<param name='loop' value='false'/>\n"
            + "<param name='fullscreen' value='true'/>\n"
            + "<param name='toolbar' value='false'/>\n" + "</object>";
    }
    //web-rtc播放方式
    if (PlayType.PLAY_TYPE_WEB_RTC_DH == data.playType || PlayType.PLAY_TYPE_WEB_RTC_HIK == data.playType) {
    if (PlayType.PLAY_TYPE_WEB_RTC == data.playType) {
        playUrl = data.playUrl;
        playNum = order;
        videoId = data.cameraId;
fzzy-igdss-web/src/main/resources/templates/inout/register.html
@@ -326,6 +326,8 @@
    var companyId = [[${loginUser.companyId}]];
    //车牌识别
    var lprDto = [[${lprDto}]];
    //网关信息
    var gatewaySer = [[${gatewaySer}]];
</script>
<script th:src="@{/ajax/libs/layui/layui.js}"></script>
fzzy-igdss-web/src/main/resources/templates/inout/weight.html
@@ -679,6 +679,8 @@
    var snapDto1 = [[${snapDto1}]];
    var snapDto2 = [[${snapDto2}]];
    var snapDto3 = [[${snapDto3}]];
    //网关信息
    var gatewaySer = [[${gatewaySer}]];
</script>
fzzy-igdss-web/src/main/resources/templates/inout/weight2.html
@@ -333,6 +333,8 @@
    var snapDto1 = [[${snapDto1}]];
    var snapDto2 = [[${snapDto2}]];
    var snapDto3 = [[${snapDto3}]];
    //网关信息
    var gatewaySer = [[${gatewaySer}]];
    //默认查询时间
    var startTime = [[${startTime}]];
    var endTime = [[${endTime}]];