Browse Source

master代码同步

gao.qiang 1 year ago
parent
commit
32a1ca844f

+ 5 - 0
business-service/src/main/java/com/ozs/entity/BaseCameraManagement.java

@@ -59,6 +59,11 @@ public class BaseCameraManagement extends BaseEntity implements Serializable {
      */
     private Long deptId;
 
+
+    @Excel(name = "测点名称")
+    private  String  stationName;
+
+
     /**
      * 行别(1上行2下行)
      */

+ 1 - 1
business-service/src/main/java/com/ozs/entity/BaseTerminal.java

@@ -98,7 +98,7 @@ public class BaseTerminal implements Serializable {
      * 机车名称
      */
     @TableField(exist = false)
-    private String vehicleName;
+    private String vehicleCode;
 
 //    /**
 //     * 是否在线 0.离线 1.在线

+ 0 - 1
business-service/src/main/java/com/ozs/entity/BaseVehicle.java

@@ -45,7 +45,6 @@ public class BaseVehicle implements Serializable {
     /**
      * 机车名称
      */
-    @Excel(name = "机车名称")
     private String vehicleName;
 
     /**

+ 22 - 1
business-service/src/main/java/com/ozs/entity/MsgAlarm.java

@@ -138,7 +138,6 @@ public class MsgAlarm extends BaseEntity implements Serializable {
     /**
      * 备注
      */
-//    @Excel(name = "备注")
     private String remark;
 
     /**
@@ -245,5 +244,27 @@ public class MsgAlarm extends BaseEntity implements Serializable {
      * 车次
      */
     @TableField(exist = false)
+    @Excel(name = "车次")
     private  String trainNumName;
+
+
+    /**
+     * 机车编码
+     */
+    @Excel(name = "车号")
+    @TableField(exist = false)
+    private String vehicleCode;
+
+
+    /**
+     * 终端名称
+     */
+    @TableField(exist = false)
+    @Excel(name = "终端名称")
+    private String terminalName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "推送时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @TableField(exist = false)
+    private Date createTimes;
 }

+ 1 - 1
business-service/src/main/java/com/ozs/entity/MsgHeartbeatAlarmMessage.java

@@ -38,7 +38,7 @@ public class MsgHeartbeatAlarmMessage implements Serializable {
     private String alarmId;
 
     /**
-     * 机车编码
+     * 终端编码
      */
     private String terminalCode;
 

+ 1 - 1
business-service/src/main/java/com/ozs/service/impl/BaseTerminalServiceImpl.java

@@ -81,7 +81,7 @@ public class BaseTerminalServiceImpl extends ServiceImpl<BaseTerminalMapper, Bas
                     wrapper2.eq(BaseVehicle::getVehicleCode, baseVehicleTerminal.getVehicleCode());
                     BaseVehicle baseVehicle = baseVehicleMapper.selectOne(wrapper2);
                     if (!ObjectUtils.isEmpty(baseVehicle)) {
-                        o.setVehicleName(baseVehicle.getVehicleName());
+                        o.setVehicleCode(baseVehicle.getVehicleCode());
                     }
                 }
                 return o;

+ 5 - 3
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseVehicleController.java

@@ -179,9 +179,8 @@ public class BaseVehicleController extends BaseController {
     @PostMapping("/vehicleAdd")
     @Log(title = "机车信息管理", businessType = BusinessType.INSERT)
     public AjaxResult vehicleAdd(@RequestBody BaseVehicle baseVehicle) {
-        if (StringUtils.isEmptySunhh(baseVehicle) || StringUtils.isEmptySunhh(baseVehicle.getVehicleName())
-                || StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
-            return AjaxResult.error("机车名称、机车编码不能为空!");
+        if (StringUtils.isEmptySunhh(baseVehicle) || StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
+            return AjaxResult.error("机车号不能为空!");
         }
         return baseVehicleService.vehicleAdd(baseVehicle, getUserId());
     }
@@ -199,6 +198,9 @@ public class BaseVehicleController extends BaseController {
         if (StringUtils.isEmptySunhh(baseVehicle) || StringUtils.isEmptySunhh(baseVehicle.getId())) {
             return AjaxResult.error("修改ID不能为空!");
         }
+        if ( StringUtils.isEmptySunhh(baseVehicle.getVehicleCode())) {
+            return AjaxResult.error("机车号不能为空!");
+        }
         return baseVehicleService.vehicleUpdate(baseVehicle, getUserId());
     }
 

+ 35 - 2
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmController.java

@@ -3,6 +3,7 @@ package com.ozs.web.controller.accountmanagment;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ozs.common.annotation.Log;
 import com.ozs.common.core.controller.BaseController;
 import com.ozs.common.core.domain.AjaxResult;
@@ -65,13 +66,15 @@ public class MsgAlarmController extends BaseController {
     @Autowired
     private DataScoreUtil dataScoreUtil;
     @Resource
-    private BaseUserService baseUserService;
+    private BaseVehicleTerminalService baseVehicleTerminalService;
     @Autowired
-    private ISysDeptService deptService;
+    private BaseVehicleService baseVehicleService;
     @Autowired
     private ISysDictTypeService dictTypeService;
     @Autowired
     private MonitorSystemService monitorSystemService;
+    @Autowired
+    private BaseTerminalService baseTerminalService;
 
     /**
      * web更多消息-总数,已读数
@@ -267,6 +270,36 @@ public class MsgAlarmController extends BaseController {
                     o.setAlarmTypeName(sysDictData.getDictLabel());
                 }
             });
+            
+            if (!StringUtils.isBlank(o.getAlarmId())) {
+                QueryWrapper<MsgHeartbeatAlarmMessage> lw = new QueryWrapper<>();
+                lw.eq("alarm_id", o.getAlarmId());
+                lw.orderByDesc("create_time");
+                lw.last("limit 1");
+                MsgHeartbeatAlarmMessage msgHeartbeatAlarmMessage = msgHeartbeatAlarmMessageService.getOne(lw);
+                if (!ObjectUtils.isEmpty(msgHeartbeatAlarmMessage)) {
+                    o.setTrainNumName(msgHeartbeatAlarmMessage.getTrainNum());
+                    o.setCreateTimes(msgHeartbeatAlarmMessage.getCreateTime());
+                    LambdaQueryWrapper<BaseTerminal> wrapper5 = new LambdaQueryWrapper<>();
+                    wrapper5.eq(BaseTerminal::getTerminalCode, msgHeartbeatAlarmMessage.getTerminalCode());
+                    BaseTerminal baseTerminal = baseTerminalService.getOne(wrapper5);
+                    if (!ObjectUtils.isEmpty(baseTerminal)) {
+                        o.setTerminalName(baseTerminal.getTerminalName());
+                    }
+                    LambdaQueryWrapper<BaseVehicleTerminal> wrapper1 = new LambdaQueryWrapper<>();
+                    wrapper1.eq(BaseVehicleTerminal::getTerminalCode, msgHeartbeatAlarmMessage.getTerminalCode());
+                    BaseVehicleTerminal baseVehicleTerminal = baseVehicleTerminalService.getOne(wrapper1);
+                    if (!ObjectUtils.isEmpty(baseVehicleTerminal)) {
+                        LambdaQueryWrapper<BaseVehicle> wrapper2 = new LambdaQueryWrapper<>();
+                        wrapper2.eq(BaseVehicle::getVehicleCode, baseVehicleTerminal.getVehicleCode());
+                        BaseVehicle baseVehicle = baseVehicleService.getOne(wrapper2);
+                        if (!ObjectUtils.isEmpty(baseVehicle)) {
+                            o.setVehicleCode(baseVehicle.getVehicleCode());
+                        }
+                    }
+
+                }
+            }
         }
         ExcelUtil<MsgAlarm> util = new ExcelUtil<>(MsgAlarm.class);
         util.exportExcel(response, msgAlarmList, "报警信息管理");

+ 52 - 7
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/MsgAlarmTemporaryController.java

@@ -1,5 +1,6 @@
 package com.ozs.web.controller.accountmanagment;
 
+import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -24,6 +25,8 @@ import com.ozs.entity.MsgAlarmFrequency;
 import com.ozs.entity.vo.Files;
 import com.ozs.entity.vo.MsgAlarmTemporary;
 import com.ozs.entity.vo.MsgAlarmVo;
+import com.ozs.entity.vo.ParameterVo;
+import com.ozs.entity.vo.ReleaseAlarmVo;
 import com.ozs.entity.vo.ReqMsgAlarmVo;
 import com.ozs.service.BaseCameraManagementService;
 import com.ozs.service.BaseRailwayManagementService;
@@ -48,8 +51,12 @@ import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 
@@ -92,7 +99,6 @@ public class MsgAlarmTemporaryController extends BaseController {
     private ISysDictTypeService dictTypeService;
 
 
-
     /**
      * 报警信息临时表分页
      *
@@ -189,8 +195,8 @@ public class MsgAlarmTemporaryController extends BaseController {
             idempotenceUtils.deleteIdempotence(msgAlarmTemporary.getAlarmId());
             return error("报警置信度格式不正确,请填写数字");
         }
-        QueryWrapper<MsgAlarmTemporary> wrapper=new QueryWrapper<>();
-        wrapper.eq("alarm_id",msgAlarmTemporary.getAlarmId());
+        QueryWrapper<MsgAlarmTemporary> wrapper = new QueryWrapper<>();
+        wrapper.eq("alarm_id", msgAlarmTemporary.getAlarmId());
         MsgAlarmTemporary one = msgAlarmTemporaryService.getOne(wrapper);
         if (!ObjectUtils.isEmpty(one) && !one.getId().equals(msgAlarmTemporary.getId())) {
             return error("报警唯一标识已存在,不能进行修改操作");
@@ -206,17 +212,17 @@ public class MsgAlarmTemporaryController extends BaseController {
     @ApiOperation("报警推送假数据")
     public AjaxResult alarm(@PathVariable Long id) {
         MsgAlarmTemporary msgAlarmTemporary = msgAlarmTemporaryService.getById(id);
-        if (msgAlarmTemporary.getStare()==2){
+        if (msgAlarmTemporary.getStare() == 2) {
             return AjaxResult.error("数据已模拟,不能再次使用");
         }
         ReqMsgAlarmVo reqMsgAlarmVo = new ReqMsgAlarmVo();
         com.ozs.common.utils.bean.BeanUtils.copyProperties(msgAlarmTemporary, reqMsgAlarmVo);
         reqMsgAlarmVo.setAlarmTime(msgAlarmTemporary.getAlarmTime().getTime());
-        Files files=new Files();
+        Files files = new Files();
         files.setFileType(1);
         files.setFileUrl(msgAlarmTemporary.getFileUrl());
-        Files[] files2=new Files[1];
-        files2[0]=files;
+        Files[] files2 = new Files[1];
+        files2[0] = files;
         reqMsgAlarmVo.setFiles(files2);
         if (!ObjectUtils.isEmpty(reqMsgAlarmVo.getAlarmAttr())) {
             if (!reqMsgAlarmVo.getAlarmAttr().matches(PATTERN)) {
@@ -333,4 +339,43 @@ public class MsgAlarmTemporaryController extends BaseController {
         msgAlarmTemporaryService.updateById(msgAlarmTemporary);
         return AjaxResult.success();
     }
+
+
+    @PostMapping("/releaseAlarm")
+    public AjaxResult releaseAlarm(@RequestBody ReleaseAlarmVo releaseAlarmVo) {
+        if (ObjectUtils.isEmpty(releaseAlarmVo.getAlarmId())) {
+            return AjaxResult.error("报警的唯一标识不能为空");
+        }
+        if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseTime())) {
+            return AjaxResult.error("解除报警时间不能为空");
+        }
+        if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseContent())) {
+            return AjaxResult.error("解除原因不能为空");
+        }
+        if (ObjectUtils.isEmpty(releaseAlarmVo.getReleaseTime())) {
+            return AjaxResult.error("解除人不能为空");
+        }
+        LambdaQueryWrapper<MsgAlarm> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(MsgAlarm::getAlarmId, releaseAlarmVo.getAlarmId());
+        MsgAlarm msgAlarm = msgAlarmService.getOne(wrapper);
+        if (ObjectUtils.isEmpty(msgAlarm)) {
+            return AjaxResult.error("不存在该报警的唯一标识的数据");
+        }
+        if (releaseAlarmVo.getReleaseTime().toString().length() == 10) {
+            releaseAlarmVo.setReleaseTime(releaseAlarmVo.getReleaseTime() * 1000);
+        }
+        msgAlarm.setReleasedTime(new Date(releaseAlarmVo.getReleaseTime()));
+        msgAlarm.setReleaseContent(releaseAlarmVo.getReleaseContent());
+        msgAlarm.setReleasedBy(releaseAlarmVo.getOperator());
+        msgAlarm.setUpdateBy(releaseAlarmVo.getOperator());
+        msgAlarm.setIsRelease(1);
+        boolean count = msgAlarmService.updateById(msgAlarm);
+        Map<String, Object> map = new HashMap<>();
+        map.put("alarmId", msgAlarm.getAlarmId());
+        if (count) {
+            return AjaxResult.success("已解除");
+        } else {
+            return AjaxResult.error("未解除");
+        }
+    }
 }

+ 1 - 0
vehicle-admin/src/main/java/com/ozs/web/controller/sdk/GeoHazardMonitorTokenController.java

@@ -598,6 +598,7 @@ public class GeoHazardMonitorTokenController {
             BaseTerminal baseTerminal1 = new BaseTerminal();
             baseTerminal1.setTerminalLatitude(heartbeatVo.getLatitude());
             baseTerminal1.setTerminalLongitude(heartbeatVo.getLongitude());
+            baseTerminal1.setStatus(1);
             LambdaQueryWrapper<BaseTerminal> terminal = new LambdaQueryWrapper<>();
             terminal.eq(BaseTerminal::getTerminalCode, vehiclePosition.getTerminalCode());
             boolean update = baseTerminalService.update(baseTerminal1, terminal);

+ 45 - 1
vehicle-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -2,6 +2,7 @@ package com.ozs.web.core.util;
 
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ozs.common.config.BaseConfig;
 import com.ozs.common.constant.Constants;
 import com.ozs.common.core.domain.entity.SysDictData;
@@ -10,8 +11,13 @@ import com.ozs.common.exception.base.BaseException;
 import com.ozs.common.utils.DateUtils;
 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.framework.config.ServerConfig;
+import com.ozs.service.BaseTerminalService;
+import com.ozs.service.MsgHeartbeatAlarmMessageService;
 import com.ozs.system.mapper.SysDictDataMapper;
+import com.ozs.system.service.ISysDictTypeService;
 import com.ozs.web.core.config.CaneraConfig;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -29,6 +35,7 @@ import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 相机工具
@@ -65,6 +72,12 @@ public class CameraUtil {
     private RedisCache redisCache;
     @Autowired
     private ServerConfig serverConfig;
+    @Autowired
+    private BaseTerminalService baseTerminalService;
+    @Autowired
+    private MsgHeartbeatAlarmMessageService msgHeartbeatAlarmMessageService;
+    @Autowired
+    private ISysDictTypeService dictTypeService;
 
     public final static String tsFilekey = "mergeVideoTsFile";
 
@@ -771,12 +784,43 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
 
                 rmaps.add(m.get(d));
             });
-            log.info("rmaps:{}", rmaps);    
+            log.info("rmaps:{}", rmaps);
             return rmaps;
         }
         return null;
     }
 
+
+    public void heartbeat() {
+        List<BaseTerminal> list = baseTerminalService.list();
+        for (BaseTerminal baseTerminal : list) {
+            QueryWrapper<MsgHeartbeatAlarmMessage> wrapper = new QueryWrapper<>();
+            wrapper.eq("terminal_code", wrapper);
+            wrapper.orderByDesc("create_time");
+            wrapper.last("limit 1");
+            MsgHeartbeatAlarmMessage msgHeartbeatAlarmMessage = msgHeartbeatAlarmMessageService.getOne(wrapper);
+            if (ObjectUtils.isEmpty(msgHeartbeatAlarmMessage)) {
+                baseTerminal.setStatus(2);
+                baseTerminalService.updateById(baseTerminal);
+            } else {
+                List<SysDictData> heartbeat = dictTypeService.selectDictDataByType("heartbeat");
+                long timeNow = System.currentTimeMillis();
+                long createTime = msgHeartbeatAlarmMessage.getCreateTime().getTime();
+                int times = Integer.parseInt(heartbeat.get(0).getDictValue());
+                long thereHourMillis = 60 * 1000 * 3 * times;
+                long timeNew = timeNow - thereHourMillis;
+                if (timeNew > createTime) {
+                    baseTerminal.setStatus(2);
+                    baseTerminalService.updateById(baseTerminal);
+                } else {
+                    baseTerminal.setStatus(1);
+                    baseTerminalService.updateById(baseTerminal);
+                }
+            }
+        }
+
+    }
+
     public static void main(String[] args) throws InterruptedException, ParseException, IOException {
 //        CameraUtil cameraUtil = new CameraUtil();
 //        cameraUtil.closeRecording();