فهرست منبع

天网的实时流接口

gao.qiang 1 سال پیش
والد
کامیت
9bb09f0c2b

+ 6 - 0
business-service/src/main/java/com/ozs/entity/VehiclePosition.java

@@ -126,6 +126,12 @@ public class VehiclePosition implements Serializable {
     @Excel(name = "车载状态",readConverterExp = "1=在线,2=离线")
     private String status;
 
+    /**
+     *机车车载终端信息表车载状态
+     */
+    @TableField(exist = false)
+    private Integer sta;
+
     /**
      * 终端经度
      */

+ 17 - 0
business-service/src/main/java/com/ozs/entity/vo/CamerasVo.java

@@ -0,0 +1,17 @@
+package com.ozs.entity.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class CamerasVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    
+    private String cameraIndexCode;
+    private Integer streamType;
+    private String protocol;
+    private Integer transmode;
+    private String expand;
+    private String streamform;
+}

+ 2 - 0
business-service/src/main/java/com/ozs/mapper/VehiclePositionMapper.java

@@ -2,6 +2,7 @@ package com.ozs.mapper;
 
 import com.ozs.entity.VehiclePosition;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ozs.entity.vo.VehiclePositionResp;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -24,4 +25,5 @@ public interface VehiclePositionMapper extends BaseMapper<VehiclePosition> {
      */
     List<VehiclePosition> list(@Param("vehicleCode") String vehicleCode, @Param("railwayCode") String railwayCode, @Param("lineDir") Integer lineDir, @Param("status") Integer status);
 
+    List<VehiclePosition> vehiclePositionPage(@Param("terminalCode") String terminalCode, @Param("terminalName") String terminalName,@Param("status") Integer status);
 }

+ 19 - 51
business-service/src/main/java/com/ozs/service/impl/VehiclePositionServiceImpl.java

@@ -62,59 +62,27 @@ public class VehiclePositionServiceImpl extends ServiceImpl<VehiclePositionMappe
 
     @Override
     public List<VehiclePosition> vehiclePositionPage(VehiclePositionResp vehiclePositionResp) {
-        boolean state = true;
-        LambdaQueryWrapper<BaseTerminal> wrapper3=new LambdaQueryWrapper<>();
-        if (StringUtils.isNotEmpty(vehiclePositionResp.getTerminalCode())){
-            wrapper3.eq(BaseTerminal::getTerminalCode,vehiclePositionResp.getTerminalCode());
-        }
-        if (StringUtils.isNotEmpty(vehiclePositionResp.getTerminalName())){
-            wrapper3.like(BaseTerminal::getTerminalName,vehiclePositionResp.getTerminalName());
-        }
-        if (!ObjectUtils.isEmpty(vehiclePositionResp.getStatus())){
-            wrapper3.eq(BaseTerminal::getStatus,vehiclePositionResp.getStatus());
-        }
-        List<BaseTerminal> baseTerminals = baseTerminalMapper.selectList(wrapper3);
-        QueryWrapper<VehiclePosition> wrapper = new QueryWrapper<>();
-        wrapper.orderByDesc("create_time");
-        wrapper.last("limit 100");
-        List<VehiclePosition> vehiclePositions = baseMapper.selectList(wrapper);
-        ArrayList<VehiclePosition> vehiclePositionArrayList = new ArrayList<>();
-        for (BaseTerminal baseTerminal : baseTerminals) {
-            state = true;
-            for (VehiclePosition vehiclePosition : vehiclePositions) {
-                if (baseTerminal.getTerminalCode().equals(vehiclePosition.getTerminalCode())) {
-                    vehiclePosition.setTerminalName(baseTerminal.getTerminalName());
-                    // 查询线路
-                    LambdaQueryWrapper<BaseRailwayManagement> lwBaseRailwayManagement = new LambdaQueryWrapper<>();
-                    if (!StringUtils.isEmptySunhh(vehiclePosition.getRailwayCode())) {
-                        lwBaseRailwayManagement.eq(BaseRailwayManagement::getRailwayCode, vehiclePosition.getRailwayCode());
-                    }
-                    BaseRailwayManagement baseRailwayManagement = baseRailwayManagementMapper.selectOne(lwBaseRailwayManagement);
-                    if (!ObjectUtils.isEmpty(baseRailwayManagement)) {
-                        vehiclePosition.setRailwayName(baseRailwayManagement.getRailwayName());
-                    }
-                    if (!ObjectUtils.isEmpty(vehiclePosition.getTravelMile())) {
-                        vehiclePosition.setTravelMileFormat(AppendUtils.stringAppend(vehiclePosition.getTravelMile()));
-                    }
-                    if (!ObjectUtils.isEmpty(vehiclePosition.getLineDir())) {
-                        vehiclePosition.setLineDirName(vehiclePosition.getLineDir() == 1 ? "上行" : "下行");
-                    }
-                    if (!ObjectUtils.isEmpty(baseTerminal.getStatus())) {
-                        vehiclePosition.setStatus(baseTerminal.getStatus() == 1 ? "在线" : "离线");
-                    }
-                    vehiclePositionArrayList.add(vehiclePosition);
-                    state = false;
-                    break;
-                }
+        List<VehiclePosition> vehiclePositions = baseMapper.vehiclePositionPage(vehiclePositionResp.getTerminalCode(),vehiclePositionResp.getTerminalName(),vehiclePositionResp.getStatus());
+        for (VehiclePosition vehiclePosition : vehiclePositions) {
+            // 查询线路
+            LambdaQueryWrapper<BaseRailwayManagement> lwBaseRailwayManagement = new LambdaQueryWrapper<>();
+            if (!StringUtils.isEmptySunhh(vehiclePosition.getRailwayCode())) {
+                lwBaseRailwayManagement.eq(BaseRailwayManagement::getRailwayCode, vehiclePosition.getRailwayCode());
+            }
+            BaseRailwayManagement baseRailwayManagement = baseRailwayManagementMapper.selectOne(lwBaseRailwayManagement);
+            if (!ObjectUtils.isEmpty(baseRailwayManagement)) {
+                vehiclePosition.setRailwayName(baseRailwayManagement.getRailwayName());
+            }
+            if (!ObjectUtils.isEmpty(vehiclePosition.getTravelMile())) {
+                vehiclePosition.setTravelMileFormat(AppendUtils.stringAppend(vehiclePosition.getTravelMile()));
+            }
+            if (!ObjectUtils.isEmpty(vehiclePosition.getLineDir())) {
+                vehiclePosition.setLineDirName(vehiclePosition.getLineDir() == 1 ? "上行" : "下行");
             }
-            if (state) {
-                VehiclePosition vehiclePosition = new VehiclePosition();
-                vehiclePosition.setStatus(baseTerminal.getStatus() == 1 ? "在线" : "离线");
-                vehiclePosition.setTerminalCode(baseTerminal.getTerminalCode());
-                vehiclePosition.setTerminalName(baseTerminal.getTerminalName());
-                vehiclePositionArrayList.add(vehiclePosition);
+            if (!ObjectUtils.isEmpty(vehiclePosition.getSta())) {
+                vehiclePosition.setStatus(vehiclePosition.getSta() == 1 ? "在线" : "离线");
             }
         }
-        return vehiclePositionArrayList;
+        return vehiclePositions;
     }
 }

+ 24 - 1
business-service/src/main/resources/mapper/VehiclePositionMapper.xml

@@ -15,7 +15,7 @@
         <result column="railway_name" property="railwayName"/>
         <result column="status" property="status"/>
     </resultMap>
-    <select id="list" resultMap="VehiclePositionResult" >
+    <select id="list" resultMap="VehiclePositionResult">
         SELECT
         a.*,
         b.vehicle_name,
@@ -42,6 +42,29 @@
         </where>
         order by a.create_time desc
     </select>
+    <select id="vehiclePositionPage" resultType="com.ozs.entity.VehiclePosition">
+        SELECT /*+ GROUP_OPT_FLAG(1)*/ pos.*, ter.terminal_name AS terminalName, ter.status AS sta
+        FROM vehicle_position pos
+        RIGHT JOIN base_terminal ter ON pos.terminal_code = ter.terminal_code
+        <where>
+            <if test="terminalCode != null and terminalCode != ''">
+                AND ter.terminal_code = #{terminalCode}
+            </if>
+            <if test="terminalName != null and terminalName != ''">
+                AND ter.terminal_name LIKE CONCAT('%', #{terminalName}, '%')
+            </if>
+            <if test="status != null and status != 0">
+                AND ter.status = #{status}
+            </if>
+        </where>
+        AND pos.create_time = (
+        SELECT MAX(create_time)
+        FROM vehicle_position
+        WHERE terminal_code = ter.terminal_code
+        )
+        GROUP BY ter.terminal_code
+        ORDER BY pos.create_time
+    </select>
 
 
 </mapper>

+ 4 - 0
vehicle-admin/src/main/java/com/ozs/web/core/config/CaneraConfig.java

@@ -46,4 +46,8 @@ public class CaneraConfig {
 
     @Value("${base.recordUrl:http://183.236.39.220:8083}")
     private String recordUrl;
+
+    @Value("${base.hkUrl:http://10.122.1.22:1443}")
+    private String hkUrl;
+    
 }

+ 23 - 0
vehicle-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -13,6 +13,7 @@ import com.ozs.common.utils.HttpClientUtil;
 import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.entity.BaseTerminal;
 import com.ozs.entity.MsgHeartbeatAlarmMessage;
+import com.ozs.entity.vo.CamerasVo;
 import com.ozs.framework.config.ServerConfig;
 import com.ozs.service.BaseTerminalService;
 import com.ozs.service.MsgHeartbeatAlarmMessageService;
@@ -62,6 +63,7 @@ public class CameraUtil {
     private static RedisCache rc;
     private static ServerConfig sc;
     private static String recordUrl;
+    private static String hkUrl;
 
     @Autowired
     private CaneraConfig caneraConfig;
@@ -487,6 +489,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         sc = serverConfig;
         wsUrl = caneraConfig.getWsUrl();
         recordUrl = caneraConfig.getRecordUrl();
+        hkUrl=caneraConfig.getHkUrl();
     }
 
     /**
@@ -885,6 +888,26 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         }
 
     }
+    
+    
+    public void previewURLs(CamerasVo camerasVo){
+        String result = null;
+        String url="http://"+hkUrl+":8082/enterprise/enterprise/enterpriseAnalysislogoBunchh";
+        try {
+            result = HttpClientUtil.postJson(url, JSON.toJSONString(camerasVo));
+        } catch (Exception e) {
+            log.error("previewURLs------------>"+e.getMessage());
+            e.printStackTrace();
+        }
+        JSONObject outJson = (JSONObject) JSONObject.parse(result);
+        if ("200".equals(outJson.getString("code"))) {
+            log.info("outJson----->"+outJson);
+            JSONObject data = outJson.getJSONObject("data");
+            String urls=data.getString("url");
+            HttpUtils.sendGet(historyUrl+"rtsp/api/pull?target="+urls+"&streamPath="+camerasVo.getCameraIndexCode()+"/"+camerasVo.getCameraIndexCode()+"&save=0");
+        }
+        
+    }
 
     public static void main(String[] args) throws InterruptedException, ParseException, IOException {
 //        CameraUtil cameraUtil = new CameraUtil();

+ 1 - 0
vehicle-admin/src/main/resources/application.yml

@@ -27,6 +27,7 @@ base:
   historyUrl: http://124.70.58.209:18812
   recordUrl: http://124.70.58.209:18810${server.servlet.context-path}
   env: 1
+  hkUrl: http://10:122:1:22:1443
 
 server:
   # 服务器的HTTP端口,默认为8080