فهرست منبع

Merge branch 'master' of http://124.70.58.209:3000/ytrd-project-management/GeoHazardMonitor

wyyay 1 سال پیش
والد
کامیت
fba207bf1a

+ 2 - 2
.idea/compiler.xml

@@ -7,10 +7,10 @@
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
-        <module name="hazard-admin" />
         <module name="hazard-sdk" />
-        <module name="base-admin" />
         <module name="business-service" />
+        <module name="hazard-admin" />
+        <module name="base-admin" />
       </profile>
     </annotationProcessing>
   </component>

+ 12 - 12
.idea/jarRepositories.xml

@@ -1,16 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://maven.aliyun.com/repository/public" />
-    </remote-repository>
-    <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
-    </remote-repository>
     <remote-repository>
       <option name="id" value="public" />
       <option name="name" value="aliyun nexus" />
@@ -18,8 +8,8 @@
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
-      <option name="name" value="Maven Central repository" />
-      <option name="url" value="https://repo1.maven.org/maven2" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
@@ -36,6 +26,11 @@
       <option name="name" value="Central Repository" />
       <option name="url" value="http://maven.aliyun.com/nexus/content/repositories/central/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
     <remote-repository>
       <option name="id" value="custom_group" />
       <option name="name" value="Nexus Repository" />
@@ -46,5 +41,10 @@
       <option name="name" value="JBoss Community repository" />
       <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
     </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://maven.aliyun.com/repository/public" />
+    </remote-repository>
   </component>
 </project>

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

@@ -2,6 +2,7 @@ package com.ozs.service.mapper;
 
 import com.ozs.service.entity.MqLog;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author ozs
  * @since 2023-04-26
  */
+@Mapper
 public interface MqLogMapper extends BaseMapper<MqLog> {
 
 }

+ 15 - 0
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -579,6 +579,21 @@ public class BaseCameraManagementController extends BaseController {
         return new AjaxResult(200, "ok", CameraUtil.getPlayFlv(cameraCode, one.getChannel(), flay));
     }
 
+    @ApiOperation("查询录像")
+    @GetMapping("/api/records/{cameraCode}/{flay}/{format}")
+    @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
+    public AjaxResult apiRecords(@PathVariable @NotNull(message = "相机编码不能为空") String cameraCode,
+                                 @PathVariable @NotNull(message = "条件不能为空") boolean flay,
+                                 @PathVariable @NotNull(message = "格式不能为空") String format) {
+        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<BaseCameraManagement>();
+        lw.eq(BaseCameraManagement::getCameraCode, cameraCode);
+        BaseCameraManagement one = baseCameraManagementService.getOne(lw);
+        if (ObjectUtils.isEmpty(one)) {
+            throw new BaseException("相机编号【" + cameraCode + "】不存在");
+        }
+        return new AjaxResult(200, "ok", CameraUtil.getPlayFlv(cameraCode, one.getChannel(), flay, format));
+    }
+
     @ApiOperation("批量查询录像")
     @GetMapping("/api/recordsList")
     @Log(title = "相机台账管理", businessType = BusinessType.OTHER)

+ 16 - 11
hazard-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -290,9 +290,9 @@ public class MsgAlarmController extends BaseController {
             }
             msgAlarm.setLineDirName(msgAlarm.getLineDir() == 1 ? "上行" : "下行");
             msgAlarm.setIsLockName(msgAlarm.getIsLock() == 1 ? "已解除" : "未解除");
-            LambdaQueryWrapper<SysDictData> dict=new LambdaQueryWrapper<>();
-            dict.eq(SysDictData::getDictType,"sys_alarm_type");
-            dict.eq(SysDictData::getDictValue,msgAlarm.getAlarmType());
+            LambdaQueryWrapper<SysDictData> dict = new LambdaQueryWrapper<>();
+            dict.eq(SysDictData::getDictType, "sys_alarm_type");
+            dict.eq(SysDictData::getDictValue, msgAlarm.getAlarmType());
             SysDictData one = dictDataService.getOne(dict);
             msgAlarm.setAlarmTypeName(one.getDictLabel());
             String[] split1 = msgAlarm.getAlarmAttr().split(",");
@@ -407,6 +407,9 @@ public class MsgAlarmController extends BaseController {
                                    @RequestParam(value = "releasedType", required = false) Integer releasedType,
                                    @RequestParam(value = "releasedReason", required = false) String releasedReason) {
         MsgAlarm msgAlarm = msgAlarmService.getById(id);
+        if (msgAlarm.getIsLock() == 1) {
+            return AjaxResult.error("501", "报警已解除");
+        }
         msgAlarm.setIsLock(1);
         msgAlarm.setUpdateBy(getUserId());
         msgAlarm.setReleasedBy(getUserId());
@@ -430,7 +433,9 @@ public class MsgAlarmController extends BaseController {
         } catch (Exception exception) {
             log.error(exception.getMessage());
         }
+        log.info("updateIsLock-------url" + url);
         msgAlarm.setReleasedUrl(url);
+        log.info("updateIsLock----------msgAlarm" + msgAlarm);
         boolean b = msgAlarmService.updateById(msgAlarm);
 //        LambdaQueryWrapper<MsgAppPush> wrapper = new LambdaQueryWrapper<>();
 //        wrapper.eq(MsgAppPush::getAlarmId, msgAlarm.getAlarmId());
@@ -457,14 +462,14 @@ public class MsgAlarmController extends BaseController {
         QueryWrapper<MsgAlarm> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("alarm_id", alarmId);
         MsgAlarm one = msgAlarmService.getOne(queryWrapper);
-        if (ObjectUtils.isEmpty(one)){
-            return error("报警表没有此报警唯一标识的报警数据"); 
+        if (ObjectUtils.isEmpty(one)) {
+            return error("报警表没有此报警唯一标识的报警数据");
         }
         QueryWrapper<MsgAlarmFrequency> wrapper = new QueryWrapper<>();
         wrapper.eq("alarm_id", alarmId);
         wrapper.orderByDesc("alarm_time");
         List<MsgAlarmFrequency> list = msgAlarmFrequencyService.list(wrapper);
-        if (list.size()>0) {
+        if (list.size() > 0) {
             if (one.getIsLock() == 1) {
                 for (int i = 0; i < list.size(); i++) {
                     if (i == 0) {
@@ -473,13 +478,13 @@ public class MsgAlarmController extends BaseController {
                         list.get(i).setIsLock(2);
                     }
                 }
-            }else {
+            } else {
                 for (MsgAlarmFrequency msgAlarmFrequency : list) {
                     msgAlarmFrequency.setIsLock(2);
                 }
             }
             return AjaxResult.success(list);
-        }else {
+        } else {
             return error("报警频次表没有此报警唯一标识的报警数据");
         }
     }
@@ -492,13 +497,13 @@ public class MsgAlarmController extends BaseController {
         wrapper.eq("camera_code", cameraCode);
         wrapper.orderByDesc("alarm_time");
         List<MsgAlarm> list = msgAlarmService.list(wrapper);
-        if (list.size()>0) {
+        if (list.size() > 0) {
             for (MsgAlarm msgAlarm : list) {
                 msgAlarm.setFailureToAlarm(1);
             }
             return AjaxResult.success(list);
-        }else {
-            List<MsgAlarm> msgAlarmList=new ArrayList<>();
+        } else {
+            List<MsgAlarm> msgAlarmList = new ArrayList<>();
             MsgAlarm msgAlarm = new MsgAlarm();
             msgAlarm.setFailureToAlarm(2);
             msgAlarmList.add(msgAlarm);

+ 11 - 6
hazard-admin/src/main/java/com/ozs/web/controller/system/SysRoleController.java

@@ -16,6 +16,7 @@ import com.ozs.common.core.domain.entity.SysMenu;
 import com.ozs.common.core.domain.vo.SysDeptVo;
 import com.ozs.common.core.domain.vo.SysRoleRequestVo;
 import com.ozs.common.core.domain.vo.SysUserVo;
+import com.ozs.service.entity.BaseRailwayManagement;
 import com.ozs.service.entity.BaseUser;
 import com.ozs.service.service.BaseUserService;
 import com.ozs.system.domain.SysRoleMenu;
@@ -97,13 +98,16 @@ public class SysRoleController extends BaseController {
     @Log(title = "角色管理", businessType = BusinessType.SELECT)
     public AjaxResult page(@NotEmpty(message = "数据为空")
                            @RequestBody SysRoleRequestVo vo) {
-        vo = (SysRoleRequestVo) dataScoreUtil.setDataScore(getUserId(), vo);
-        IPage<SysRole> page = roleService.queryPage(vo);
-        page.setTotal(page.getTotal());
-        page.setCurrent(page.getCurrent());
-        page.setPages(page.getPages());
+        LambdaQueryWrapper<SysRole> lw = new LambdaQueryWrapper<SysRole>();
+        if (!StringUtils.isBlank(vo.getRoleName())) {
+            lw.like(SysRole::getRoleName, "%" + vo.getRoleName() + "%");
+        }
+        if (!ObjectUtils.isEmpty(vo.getStatus())) {
+            lw.eq(SysRole::getStatus, vo.getStatus());
+        }
+        lw.eq(SysRole::getDelFlag,1);
+        IPage<SysRole> page = roleService.page(new Page<SysRole>(vo.getPageNum(), vo.getPageSize()), lw);
         return success(page);
-
     }
 
     @Log(title = "角色管理", businessType = BusinessType.EXPORT)
@@ -172,6 +176,7 @@ public class SysRoleController extends BaseController {
             if (!ObjectUtils.isEmpty(role.getStatus())) {
                 role.setStatus("1");
             }
+            return error("超级管理员角色不能修改");
         } else {
             if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) {
                 return error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");

+ 18 - 0
hazard-admin/src/main/java/com/ozs/web/controller/system/SysUserController.java

@@ -29,6 +29,8 @@ import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.vo.CameraTreeVo;
 import com.ozs.service.entity.vo.MsgAlarmVo;
 import com.ozs.service.service.BaseUserService;
+import com.ozs.system.domain.SysUserRole;
+import com.ozs.system.mapper.SysUserRoleMapper;
 import com.ozs.system.service.DataScoreUtil;
 import com.ozs.system.service.ISysDictTypeService;
 import io.swagger.annotations.ApiOperation;
@@ -92,6 +94,8 @@ public class SysUserController extends BaseController {
     private ISysDictTypeService dictTypeService;
     @Value("${base.defaultPassword:yn5aq5Mt.106.tky}")
     private String defaultPassword;
+    @Autowired
+    private SysUserRoleMapper sysUserRoleMapper;
 //    /**
 //     * 获取用户列表
 //     */
@@ -357,6 +361,20 @@ public class SysUserController extends BaseController {
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @GetMapping("/resetPwd/{id}")
     public AjaxResult resetPwd(@PathVariable(value = "id") Long id) {
+        boolean stop=false;
+        LambdaQueryWrapper<SysUserRole> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(SysUserRole::getUserId,id);
+        List<SysUserRole> sysUserRoles = sysUserRoleMapper.selectList(wrapper);
+        for (SysUserRole sysUserRole : sysUserRoles) {
+            String roleKey = roleService.getRoleKey(sysUserRole.getRoleId());
+            if ("admin".equals(roleKey)){
+                stop=true;
+                break;
+            }
+        }
+        if (!stop){
+            return error("只有超级管理员才能重置密码!!");
+        }
         String password = null;
         SysUser user = new SysUser();
         user.setId(id);

+ 2 - 0
hazard-admin/src/main/java/com/ozs/web/core/config/CaneraConfig.java

@@ -31,5 +31,7 @@ public class CaneraConfig {
     @Value("${base.bakUrl:http://124.70.58.209:18891}")
     private String bakUrl;
 
+    @Value("${base.wsUrl:http://124.70.58.209:18891}")
+    private String wsUrl;
 
 }

+ 20 - 14
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -60,6 +60,7 @@ public class CameraUtil {
     private static String transcribeFilePath;
     private static String webUrl;
     private static String bakUrl;
+    private static String wsUrl;
     private static CmdCameraUtil cUtil;
     private static RedisCache rc;
     private static ServerConfig sc;
@@ -138,24 +139,27 @@ public class CameraUtil {
      * @param channel    相机通道
      * @return
      */
-    public static String getPlayFlv(String cameraCode, String channel, boolean flay) {
-//        if (!flay) {
-//            return bakUrl + "/hdl/" + channel + "/" + cameraCode + ".flv";
-//        }
-//        return webUrl + "/hdl/" + channel + "/" + cameraCode + ".flv";
-
-
-        return bakUrl + "/ws/" + channel + "/" + cameraCode + ".flv";
+    public static String getPlayFlv(String cameraCode, String channel, boolean flay, String format) {
+        if (!ObjectUtils.isEmpty(format) && "WS-FLV".equals(format)) {
+            return wsUrl + "/ws/" + channel + "/" + cameraCode + ".flv";
+        }
+        if (!flay) {
+            return bakUrl + "/hdl/" + channel + "/" + cameraCode + ".flv";
+        }
+        return webUrl + "/hdl/" + channel + "/" + cameraCode + ".flv";
+    }
 
+    public static String getPlayFlv(String cameraCode, String channel, String format) {
+        return getPlayFlv(cameraCode, channel, true, format);
+    }
 
-//        if (!flay) {
-//            return bakUrl + "/ws/" + channel + "/" + cameraCode + ".flv";
-//        }
-//        return webUrl + "/ws/" + channel + "/" + cameraCode + ".flv";
+    public static String getPlayFlv(String cameraCode, String channel, boolean flay) {
+        return getPlayFlv(cameraCode, channel, flay, "HTTP-FLV");
     }
 
     public static String getPlayFlv(String cameraCode, String channel) {
-        return getPlayFlv(cameraCode, channel, true);
+        // WS-FLV     HTTP-FLV
+        return getPlayFlv(cameraCode, channel, true, "HTTP-FLV");
     }
 
     /**
@@ -698,7 +702,8 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         String endTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, endTm);
 
         String param = "channel=" + channel + "&startTime=" + startTime + "&endTime=" + endTime;
-        String s = HttpUtils.sendGet(webUrl + "/api/record/flv/list", param);
+        // /api/record/flv/list
+        String s = HttpUtils.sendGet(webUrl + "/recordpro/api/list", param);
         // 视频拼接
         if (!StringUtils.isBlank(s) || "null".equals(s)) {
             List<Map<String, Object>> maps = JSON.parseArray(s, Map.class);
@@ -777,6 +782,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         cUtil = cmdCameraUtil;
         rc = redisCache;
         sc = serverConfig;
+        wsUrl = caneraConfig.getWsUrl();
     }
 
 

+ 4 - 4
hazard-admin/src/main/resources/application.yml

@@ -9,7 +9,7 @@ base:
   # 实例演示开关
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: /opt/streams
+  profile: /opt/streams/record/flv
   #  profile: C:\base\uploadPath
   # 获取ip地址开关
   addressEnabled: true
@@ -17,10 +17,10 @@ base:
   captchaType: math
   # 摄像头配置
   ffmpegPath: /usr/local/ffmpeg/bin/ffmpeg
-  filePath: /opt/streams/
+  filePath: /opt/streams/record/flv/
   webUrl: http://124.70.58.209:18812
-  #  bakUrl: http://124.70.58.209:18891
-  bakUrl: ws://124.70.58.209:9080
+  bakUrl: http://124.70.58.209:18891
+  wsUrl: ws://124.70.58.209:9080
   defaultPassword: yn5aq5Mt.106.tky
   imgUrl: http://124.71.171.71:18801/picbucket