From 3b5a487f187138ee67e83752d9a67d2bb9058f36 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期四, 29 一月 2026 20:40:31 +0800
Subject: [PATCH] 出入库增加云端视频播放

---
 /dev/null                                                                        |   86 -----------------
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java |   51 +++++-----
 fzzy-igdss-web/src/main/resources/static/common/constant.js                      |    1 
 fzzy-igdss-web/src/main/resources/static/inout/video-play.js                     |   27 ++++
 fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java                 |   18 +++
 fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java            |   40 ++++++++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/ApiV1Controller.java          |    2 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java |   55 +++++------
 8 files changed, 134 insertions(+), 146 deletions(-)

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 0298a93..e91cee9 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
@@ -50,7 +50,7 @@
     @ResponseBody
     public ApiV1Resp<Object> gateway(@RequestBody ApiV1Req<Object> req) {
 
-        log.debug("璐ㄦ娂鐩戠鎺ュ彛V1锛屾敹鍒板簱鍖虹綉鍏充俊鎭�={}", req);
+        log.debug("璐ㄦ娂鐩戠鎺ュ彛V1锛屾敹鍒板簱鍖虹綉鍏充俊鎭�={}", req.getFunctionId());
         try {
 
             //鍙傛暟鏍¢獙
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java
index 44c5efc..772030b 100644
--- a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3030.java
@@ -14,6 +14,7 @@
 import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
+
 import javax.annotation.Resource;
 import java.util.List;
 
@@ -32,54 +33,52 @@
     private FileService fileService;
 
     /**
-     *
      * @param req
      * @param gatewaySer
      * @return
      */
-    public ApiV1Resp<Object> analysis(ApiV1Req<Object> req, GatewaySer gatewaySer) throws Exception{
+    public ApiV1Resp<Object> analysis(ApiV1Req<Object> req, GatewaySer gatewaySer) throws Exception {
 
         //杞寲涓哄璞�
-        List<Param3030> list = JSONObject.parseArray(JSONObject.toJSONString(req.getData()), Param3030.class);
+        Param3030 param = JSONObject.parseObject(JSONObject.toJSONString(req.getData()), Param3030.class);
 
-        if(null == list || list.isEmpty()){
+        if (null == param) {
             return ApiV1Resp.error("鎶撴媿淇℃伅涓虹┖锛屼笉瑙f瀽锛�", req);
         }
 
-        step1(list, gatewaySer);
+        step1(param, gatewaySer);
 
         return ApiV1Resp.success(null, req);
     }
 
     /**
      * 寮傛瑙f瀽
-     * @param list
+     *
+     * @param param3030
      */
     @Async
-    public void step1(List<Param3030> list, GatewaySer gatewaySer) throws Exception {
+    public void step1(Param3030 param3030, GatewaySer gatewaySer) throws Exception {
 
-        SnapRecord snapRecord;
-        for (Param3030 param3030 : list) {
-            snapRecord = new SnapRecord();
-            snapRecord.setId(ContextUtil.generateId());
-            snapRecord.setCompanyId(gatewaySer.getCompanyId());
-            snapRecord.setDeptId(gatewaySer.getDeptId());
-            snapRecord.setCameraId(param3030.getCameraId());
-            snapRecord.setResult(param3030.getResult());
-            snapRecord.setTags(param3030.getTags());
-            snapRecord.setSnapTime(DateUtils.parseDate(param3030.getSnapTime(),"yyyy-MM-dd HH:mm:ss"));
+        SnapRecord snapRecord = new SnapRecord();
+        snapRecord.setId(ContextUtil.generateId());
+        snapRecord.setCompanyId(gatewaySer.getCompanyId());
+        snapRecord.setDeptId(gatewaySer.getDeptId());
+        snapRecord.setCameraId(param3030.getCameraId());
+        snapRecord.setResult(param3030.getResult());
+        snapRecord.setTags(param3030.getTags());
+        snapRecord.setSnapTime(DateUtils.parseDate(param3030.getSnapTime(), "yyyy-MM-dd HH:mm:ss"));
 
-            //base64杞寲涓哄浘鐗囦繚瀛�
-            String savePath = fileService.getFileSavePath("SNAP");
-            String fileName = ContextUtil.UUID() + ".jpg";
-            String filePath = savePath+fileName;
-            fileService.baseImg2Disk(filePath, param3030.getImgBase64());
+        //base64杞寲涓哄浘鐗囦繚瀛�
+        String savePath = fileService.getFileSavePath("SNAP");
+        String fileName = ContextUtil.UUID() + ".jpg";
+        String filePath = savePath + fileName;
+        fileService.baseImg2Disk(filePath, param3030.getImgBase64());
 
-            //璁剧疆淇濆瓨鍥剧墖璺緞
-            snapRecord.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
+        //璁剧疆淇濆瓨鍥剧墖璺緞
+        snapRecord.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
 
-            snapRecordService.addData(snapRecord);
-        }
+        snapRecordService.addData(snapRecord);
+
         log.info("璐ㄦ娂鐩戠鎺ュ彛V1锛�3030鎺ュ彛瑙f瀽瀹屾垚");
     }
 
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java
index 3a91c3f..f67ce14 100644
--- a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/api/v1/service/ApiV1Service3031.java
@@ -33,7 +33,6 @@
     private FileService fileService;
 
     /**
-     *
      * @param req
      * @param gatewaySer
      * @return
@@ -41,13 +40,13 @@
     public ApiV1Resp<Object> analysis(ApiV1Req<Object> req, GatewaySer gatewaySer) throws Exception {
 
         //杞寲涓哄璞�
-        List<Param3031> list = JSONObject.parseArray(JSONObject.toJSONString(req.getData()), Param3031.class);
+        Param3031 param = JSONObject.parseObject(JSONObject.toJSONString(req.getData()), Param3031.class);
 
-        if (null == list || list.isEmpty()) {
+        if (null == param) {
             return ApiV1Resp.error("鎶撴媿淇℃伅涓虹┖锛屼笉瑙f瀽锛�", req);
         }
 
-        step1(list, gatewaySer);
+        step1(param, gatewaySer);
 
         return ApiV1Resp.success(null, req);
 
@@ -56,38 +55,34 @@
     /**
      * 寮傛瑙f瀽
      *
-     * @param list
+     * @param param
      */
     @Async
-    public void step1(List<Param3031> list, GatewaySer gatewaySer) throws Exception {
+    public void step1(Param3031 param, GatewaySer gatewaySer) throws Exception {
 
-        EventInfo info;
-        for (Param3031 param : list) {
+        EventInfo info = new EventInfo();
+        info.setId(ContextUtil.generateId());
+        info.setCompanyId(gatewaySer.getCompanyId());
+        info.setDeptId(gatewaySer.getDeptId());
+        info.setSerId(param.getCameraId());
+        info.setName(param.getName());
+        info.setBizType(param.getBizType());
+        info.setType(param.getType());
+        info.setLevel(param.getLevel());
+        info.setInfo(param.getInfo());
+        info.setTime(DateUtils.parseDate(param.getTime(), "yyyy-MM-dd HH:mm:ss"));
+        info.setTags(param.getTags());
 
-            info = new EventInfo();
-            info.setId(ContextUtil.generateId());
-            info.setCompanyId(gatewaySer.getCompanyId());
-            info.setDeptId(gatewaySer.getDeptId());
-            info.setSerId(param.getCameraId());
-            info.setName(param.getName());
-            info.setBizType(param.getBizType());
-            info.setType(param.getType());
-            info.setLevel(param.getLevel());
-            info.setInfo(param.getInfo());
-            info.setTime(DateUtils.parseDate(param.getTime(), "yyyy-MM-dd HH:mm:ss"));
-            info.setTags(param.getTags());
+        //base64杞寲涓哄浘鐗囦繚瀛�
+        String savePath = fileService.getFileSavePath("EVENT");
+        String fileName = ContextUtil.UUID() + ".jpg";
+        String filePath = savePath + fileName;
+        fileService.baseImg2Disk(filePath, param.getImgBase64());
 
-            //base64杞寲涓哄浘鐗囦繚瀛�
-            String savePath = fileService.getFileSavePath("EVENT");
-            String fileName = ContextUtil.UUID() + ".jpg";
-            String filePath = savePath + fileName;
-            fileService.baseImg2Disk(filePath, param.getImgBase64());
+        //璁剧疆淇濆瓨鍥剧墖璺緞
+        info.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
 
-            //璁剧疆淇濆瓨鍥剧墖璺緞
-            info.setImgName(filePath.replace(FrameworkConfig.getProfile(), "/profile/"));
-
-            eventInfoService.addData(info);
-        }
+        eventInfoService.addData(info);
 
         log.info("璐ㄦ娂鐩戠鎺ュ彛V1锛�3031鎺ュ彛瑙f瀽瀹屾垚");
 
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutApiController.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutApiController.java
deleted file mode 100644
index 2b8aeba..0000000
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutApiController.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.fzzy.inout;
-
-import com.fzzy.igds.camera.data.ApiCameraResp;
-import com.fzzy.igds.constant.RespCodeEnum;
-import com.fzzy.igds.data.*;
-import com.fzzy.igds.utils.SystemUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-
-
-/**
- * @Description 鍑哄叆搴撹澶囩浉鍏冲姛鑳�
- * @Author CZT
- * @Date 2025/12/4 9:27
- */
-@RestController
-@RequestMapping("inout/api")
-public class InoutApiController {
-
-    /**
-     * 鑾峰彇杞︾墝璇嗗埆淇℃伅
-     *
-     * @param param 杞︾墝璇嗗埆鏁版嵁淇℃伅
-     * @return
-     */
-    @ResponseBody
-    @RequestMapping("/get-plateNum")
-    public PageResponse<ApiInoutData> getPlateNum(@RequestBody ApiInoutData param) {
-
-        if (null == param.getIp()) {
-            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "鍑哄叆搴撻厤缃腑娌℃湁閰嶇疆濡傚叆鐧昏鐨勮溅鐗岃瘑鍒�");
-        }
-
-        if (StringUtils.isEmpty(param.getProtocol())) {
-            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "褰撳墠杞︾墝璇嗗埆鏈厤缃�氳鍗忚锛屾棤娉曟墽琛�");
-        }
-
-//        param = inoutEventControl.getPlateNum(param);
-        //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
-
-        if (StringUtils.isEmpty(param.getErrorMsg())) {
-            return new PageResponse<>(RespCodeEnum.CODE_0000, param);
-        }
-
-        return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), param.getErrorMsg());
-    }
-
-    /**
-     * 鍑哄叆搴撴姄鎷�
-     *
-     * @param param
-     * @return
-     */
-    @RequestMapping("/snap-img")
-    public @ResponseBody
-    PageResponse<SnapImgDto> cutImg(@RequestBody SnapImgDto param) {
-
-        //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
-//        param = inoutApiManager.snapImg(param);
-
-        return new PageResponse<>(RespCodeEnum.CODE_0000, param);
-    }
-
-
-    /**
-     * 鍑哄叆搴撹棰�
-     *
-     * @return
-     */
-    @RequestMapping("/inout-video-play")
-    @ResponseBody
-    public ApiCameraResp inoutVideoPlay(HttpServletRequest request, @RequestBody InoutCameraDto param) {
-        //鑾峰彇璇锋眰鏂笽P
-        String ip = SystemUtil.getIP(request);
-//        return inoutEventControl.inoutVideoPlay(param, ip);
-        //TODO 寰呭疄鐜帮紝鍚庣画鏍规嵁闇�姹傝繘琛屽疄鐜�
-        return null;
-    }
-
-
-}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
index a6e89da..3c38737 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/inout/InoutController.java
@@ -1,6 +1,8 @@
 package com.fzzy.inout;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fzzy.igds.camera.data.ApiCameraData;
+import com.fzzy.igds.camera.data.ApiCameraResp;
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.data.*;
 import com.fzzy.igds.domain.*;
@@ -470,4 +472,20 @@
         return prefix + "/inout-img";
     }
 
+
+
+
+    /**
+     * 鑾峰彇瑙嗛鎾斁鍦板潃
+     *
+     * @param param
+     * @return
+     */
+    @RequestMapping("/get-media")
+    @ResponseBody
+    public ApiCameraResp getMedia(@RequestBody InoutConf param) {
+        //鑾峰彇璇锋眰鏂笽P
+        return inoutManager.getPlayAddr(param);
+    }
+
 }
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
index 5f7e643..05420b3 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/inout/manager/InoutManager.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fzzy.common.manager.CommonManager;
+import com.fzzy.igds.camera.ApiCameraManager;
+import com.fzzy.igds.camera.data.ApiCameraData;
+import com.fzzy.igds.camera.data.ApiCameraResp;
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.constant.RespCodeEnum;
 import com.fzzy.igds.data.*;
@@ -44,6 +47,8 @@
     private InoutNoticeService inoutNoticeService;
     @Resource
     private CommonManager commonManager;
+    @Resource
+    private ApiCameraManager apiCameraManager;
 
     /**
      * 鏍规嵁鐢ㄦ埛璇锋眰淇℃伅锛屾牴鎹綋鍓嶅鎴风數鑴慖P锛岃幏鍙栧嚭鍏ュ簱绉伴噸涓婃閫夋嫨鐨勫湴纾�
@@ -564,4 +569,39 @@
         }
         return files;
     }
+
+
+    /**
+     * 鑾峰彇鎾斁淇℃伅
+     *
+     * @param camera
+     * @return
+     */
+    public ApiCameraResp getPlayAddr(InoutConf camera) {
+
+        //閫氳繃缁熶竴鍏ュ彛鑾峰彇鎾斁鍦板潃
+        ApiCameraData apiCameraData = new ApiCameraData();
+        apiCameraData.setCompanyId(camera.getCompanyId());
+        apiCameraData.setDeptId(camera.getDeptId());
+        apiCameraData.setCameraId(camera.getSn());
+        apiCameraData.setIp(camera.getIp());
+        apiCameraData.setCtrlPort(camera.getPortCtrl());
+        apiCameraData.setWebPort(camera.getPort());
+        apiCameraData.setPlayType(camera.getPlayType());
+        apiCameraData.setSnapType(camera.getSnapType());
+        apiCameraData.setSn(camera.getSn());
+        apiCameraData.setChannel(camera.getChanNum());
+        apiCameraData.setLoginId(camera.getLoginId());
+        apiCameraData.setPwd(camera.getPwd());
+        apiCameraData.setUrlIn(camera.getUrlIn());
+        apiCameraData.setUrlOut(camera.getUrlOut());
+        apiCameraData.setMediaAddr(camera.getMediaAddr());
+
+        //鏍规嵁鎾斁鏂瑰紡鑾峰彇瀵瑰簲鐨勬挱鏀惧湴鍧�
+        ApiCameraResp resp = apiCameraManager.getApiCameraService(apiCameraData.getPlayType()).getPlayAddr(apiCameraData);
+        resp.setPlayType(camera.getPlayType());
+        resp.setSnapType(camera.getSnapType());
+        resp.setCameraId(camera.getSn());
+        return resp;
+    }
 }
diff --git a/fzzy-igdss-web/src/main/resources/static/common/constant.js b/fzzy-igdss-web/src/main/resources/static/common/constant.js
index 9742c8f..c260f48 100644
--- a/fzzy-igdss-web/src/main/resources/static/common/constant.js
+++ b/fzzy-igdss-web/src/main/resources/static/common/constant.js
@@ -84,6 +84,7 @@
     EASY_GBS: "EASY_GBS",//fzzy-easy娴佸獟浣撴挱鏀�
     EASY_DSS: "EASY_DSS",//钀ょ煶浜戞挱鏀�
     MEDIA_HIK: "MEDIA_HIK",//娴峰悍娴佸獟浣�
+    PLAY_TYPE_YD_QLY: "YD_QLY",//娴峰悍娴佸獟浣�
     HIK_YS: "HIK_YS",//娴峰悍-钀ょ煶浜�
     HIK_WEB4: "HIK_WEB4",//娴峰悍-WEB鎻掍欢
     IMOU: "IMOU",///涔愭浜�
diff --git a/fzzy-igdss-web/src/main/resources/static/inout/video-play.js b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
index b9f50eb..760f987 100644
--- a/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
+++ b/fzzy-igdss-web/src/main/resources/static/inout/video-play.js
@@ -21,9 +21,15 @@
         initVideo2(snapParam2, snapPram3);
         return;
     }
-    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
     //杞︾墝璇嗗埆鎾斁
     if (snapParam1) {
+        var url = "";
+        if (PlayType.PLAY_TYPE_WEB_RTC == snapParam1.playType) {
+            url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+        }
+        if (PlayType.PLAY_TYPE_YD_QLY == snapParam1.playType) {
+            url = "/basic/inout/get-media";
+        }
         $.ajax({
             type: "POST",
             url: url,
@@ -56,8 +62,14 @@
         initVideo3(snapParam3)
         return;
     }
-    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
     if (snapParam2) {
+        var url = "";
+        if (PlayType.PLAY_TYPE_WEB_RTC == snapParam2.playType) {
+            url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+        }
+        if (PlayType.PLAY_TYPE_YD_QLY == snapParam2.playType) {
+            url = "/basic/inout/get-media";
+        }
         $.ajax({
             type: "POST",
             url: url,
@@ -90,7 +102,13 @@
         return;
     }
     if (!snapParam3) return;
-    var url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+    var url = "";
+    if (PlayType.PLAY_TYPE_WEB_RTC == snapParam3.playType) {
+        url = "http://" + gatewaySer.ip + ":" + gatewaySer.apiPort + gatewaySer.playUrl;
+    }
+    if (PlayType.PLAY_TYPE_YD_QLY == snapParam3.playType) {
+        url = "/basic/inout/get-media";
+    }
     $.ajax({
         type: "POST",
         url: url,
@@ -126,6 +144,9 @@
         videoId = data.cameraId;
         htm = '<video class="video" id="video' + playNum + '" autoplay="" muted="" playsinline=""></video>';
     }
+    if (PlayType.PLAY_TYPE_YD_QLY == data.playType) {
+        htm = '<iframe src="' + data.playUrl + '" width="100%" height="100%" frameborder="0" allowfullscreen></iframe>';
+    }
 
     if (1 == order) {
         $("#kccz-r-video1").append(htm);

--
Gitblit v1.9.3