Sfoglia il codice sorgente

报警和摄像头管理修改

ChenSir 1 anno fa
parent
commit
c310619450

+ 23 - 3
aidex-controller/src/main/java/com/aidex/web/controller/system/SysAlarmController.java

@@ -5,6 +5,8 @@ import java.util.HashMap;
 import java.util.Map;
 import com.aidex.common.annotation.Log;
 import com.aidex.common.core.domain.R;
+import com.aidex.system.domain.SysAlarmPlush;
+import com.aidex.system.service.GpsAlarmPlushService;
 import com.github.pagehelper.PageInfo;
 import com.aidex.common.core.page.PageDomain;
 import javax.servlet.http.HttpServletRequest;
@@ -33,14 +35,17 @@ public class SysAlarmController extends BaseController {
     @Autowired
     private SysAlarmService sysAlarmService;
 
+    @Autowired
+    private GpsAlarmPlushService gistPlushService;
+
     /**
      * 查询报警信息列表
      */
     @PreAuthorize("@ss.hasPermi('system:sysAlarm:list')")
     @GetMapping("/list")
-    public R<PageInfo> list(SysAlarm sysAlarm, HttpServletRequest request, HttpServletResponse response) {
-        sysAlarm.setPage(new PageDomain(request, response));
-        return R.data(sysAlarmService.findPage(sysAlarm));
+    public R<PageInfo> list(SysAlarmPlush sysAlarmPlush, HttpServletRequest request, HttpServletResponse response) {
+        sysAlarmPlush.setPage(new PageDomain(request, response));
+        return R.data(gistPlushService.findPages(sysAlarmPlush));
     }
 
     /**
@@ -53,6 +58,21 @@ public class SysAlarmController extends BaseController {
     }
 
     /**
+     * 获取报警信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:sysAlarm:query')")
+    @PostMapping(value = "/updateStatus")
+    public R updateStatus(@RequestBody SysAlarmPlush sysAlarmPlush) {
+        return R.status(gistPlushService.updateStatus(sysAlarmPlush));
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:sysAlarm:query')")
+    @GetMapping(value = "/getCount")
+    public R getCount() {
+        return R.data(gistPlushService.getCount());
+    }
+
+    /**
      * 新增报警信息
      */
     @PreAuthorize("@ss.hasPermi('system:sysAlarm:add')")

+ 5 - 0
aidex-controller/src/main/java/com/aidex/web/controller/system/SysLoginController.java

@@ -12,6 +12,7 @@ import com.aidex.framework.web.service.SysPermissionService;
 import com.aidex.framework.web.service.TokenService;
 import com.aidex.system.domain.SysNotice;
 import com.aidex.system.domain.SysPortalConfig;
+import com.aidex.system.service.GpsAlarmPlushService;
 import com.aidex.system.service.SysMenuService;
 import com.aidex.system.service.SysNoticeService;
 import com.aidex.system.service.SysPortalConfigService;
@@ -54,6 +55,9 @@ public class SysLoginController {
     private SysPortalConfigService sysPortalConfigService;
 
     @Autowired
+    private GpsAlarmPlushService gpsAlarmPlushService;
+
+    @Autowired
     private RedisCache redisCache;
 
     /**
@@ -104,6 +108,7 @@ public class SysLoginController {
         ajax.put("permissions", permissions);
         ajax.put("lincenseInfo", lincenseInfo);
         ajax.put("sysNoticeList", sysNoticeList);
+        ajax.put("sysAlarmSize", gpsAlarmPlushService.getCount());
         return ajax;
     }
 

+ 2 - 0
aidex-system/src/main/java/com/aidex/system/domain/SysAlarm.java

@@ -22,6 +22,8 @@ public class SysAlarm extends BaseEntity<SysAlarm>
 {
     private static final long serialVersionUID = 1L;
 
+
+
     /** 设备ID */
     @NotBlank(message = "设备ID不允许为空")
     @LogField

+ 102 - 0
aidex-system/src/main/java/com/aidex/system/domain/SysAlarmPlush.java

@@ -0,0 +1,102 @@
+package com.aidex.system.domain;
+
+import com.aidex.common.core.page.PageDomain;
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author :ChenSir
+ * @date :Created in 2024/4/16 16:54
+ * @description:
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor()
+public class SysAlarmPlush implements Serializable {
+
+	private static final long serialVersionUID = 9151139885836328101L;
+
+	/** 主键 **/
+	private long id;
+
+	/** 所属用户名称 **/
+	private String userName;
+
+	/** 设备编号[在GPS系统的唯一ID,即设备IMEI号] **/
+	private String macid;
+
+	/** 设备名称(车牌号) **/
+	private String fullName;
+
+	/** 报警时间(utc) 毫秒数时间戳 **/
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date pTime;
+
+	/** 添加时间(utc) 毫秒数时间戳 **/
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date addTime;
+
+	/** 纬度 **/
+	private String lat;
+
+	/** 经度 **/
+	private String lon;
+
+	/** 地图纬度,默认百度纬度 **/
+	private String mapLat;
+
+	/** 地图经度,默认百度经度 **/
+	private String mapLon;
+
+	/** 速度 **/
+	private String speed;
+
+	/** 方向 **/
+	private String dir;
+
+	/** 报警类型[参照报警字段对应表] 只取类型为6的 **/
+	private String classify;
+
+	/** 报警类型[扩展] **/
+	private String describe;
+
+	/** 描述信息 **/
+	private String notea;
+
+	/** 状态(0未处理 1已处理) **/
+	private String status;
+
+	/** 起止时间-用于查询 **/
+	private String beginTime;
+
+	/** 起止时间-用于查询 **/
+	private String endTime;
+
+	/** 起止时间-用于查询 **/
+	private String shipName;
+
+	/**
+	 * 当前实体分页对象
+	 */
+	@JsonIgnore
+	@JSONField(serialize = false)
+	protected PageDomain page;
+
+	public PageDomain getPage() {
+		if (null == page) {
+			return new PageDomain();
+		}
+		return page;
+	}
+
+
+
+
+}

+ 26 - 0
aidex-system/src/main/java/com/aidex/system/mapper/SysAlarmPlushMapper.java

@@ -0,0 +1,26 @@
+package com.aidex.system.mapper;
+
+import com.aidex.system.domain.SysAlarmPlush;
+
+import java.util.List;
+
+/**
+ * 报警信息Mapper接口
+ * @author ChenSir
+ * @email 914769835
+ * @date 2024-03-17
+ */
+public interface SysAlarmPlushMapper
+{
+
+
+    int updateStatus(SysAlarmPlush sysAlarmPlush);
+
+    List<SysAlarmPlush> list(SysAlarmPlush sysAlarmPlush);
+
+    SysAlarmPlush getOne(long id);
+
+    int getNumByStatus(String status);
+
+
+}

+ 70 - 0
aidex-system/src/main/java/com/aidex/system/mapper/SysAlarmPlushMapper.xml

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.aidex.system.mapper.SysAlarmPlushMapper">
+
+    <sql id="sysAlarmColumns">
+        a.id as "id",
+        a.user_name as "userName",
+        a.macid as "macid",
+        a.full_name as "fullName",
+        DATE(FROM_UNIXTIME(a.add_time))  as "addTime",
+        DATE(FROM_UNIXTIME(a.p_time))  as "pTime",
+        a.speed as "speed",
+        a.lat as "lat",
+        a.lon as "lon",
+        a.map_lat as "mapLat",
+        a.map_lon as "mapLon",
+        a.dir as "dir",
+        a.describe as "describe",
+        a.classify as "classify",
+        a.status as "status",
+        a.notea as "notea",
+	    s.ship_nanme as "shipName"
+    </sql>
+
+    <sql id="sysAlarmJoins">
+        LEFT JOIN sys_ship s ON a.macid = s.ship_num
+    </sql>
+
+    <select id="getOne" resultType="com.aidex.system.domain.SysAlarmPlush">
+        SELECT
+            <include refid="sysAlarmColumns"/>
+        FROM gps_alarm_plush a
+        <include refid="sysAlarmJoins"/>
+        WHERE a.id = #{id}
+    </select>
+
+    <select id="list" resultType="com.aidex.system.domain.SysAlarmPlush">
+        SELECT
+            <include refid="sysAlarmColumns"/>
+        FROM gps_alarm_plush a
+        <include refid="sysAlarmJoins"/>
+        <where>
+            <if test="macid != null and macid != ''">
+                AND a.macid = #{macid}
+            </if>
+            <if test="classify != null and classify != ''">
+                AND a.classify = #{classify}
+            </if>
+            <if test="beginTime != null and beginTime != ''">
+                AND a.p_time &gt;= UNIX_TIMESTAMP(#{beginTime})
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND a.p_time &lt;= UNIX_TIMESTAMP(#{endTime})
+            </if>
+        </where>
+        ORDER BY a.status, a.p_time DESC
+    </select>
+
+    <update id="updateStatus">
+        UPDATE gps_alarm_plush SET  status = #{status} WHERE id = #{id}
+    </update>
+
+    <select id="getNumByStatus" resultType="java.lang.Integer">
+            select count(1) from gps_alarm_plush where  classify ='6' and status = #{status}
+    </select>
+
+
+
+
+</mapper>

+ 22 - 0
aidex-system/src/main/java/com/aidex/system/service/GpsAlarmPlushService.java

@@ -0,0 +1,22 @@
+package com.aidex.system.service;
+
+import com.aidex.system.domain.SysAlarmPlush;
+import com.github.pagehelper.PageInfo;
+
+/**
+ * 报警信息Service接口
+ * @author ChenSir
+ * @email 914769835
+ * @date 2024-03-17
+ */
+public interface GpsAlarmPlushService {
+
+    public PageInfo<SysAlarmPlush> findPages(SysAlarmPlush sysAlarmPlush);
+
+
+    public int updateStatus(SysAlarmPlush sysAlarmPlush);
+
+    public int getCount();
+
+
+}

+ 1 - 1
aidex-system/src/main/java/com/aidex/system/service/SysShipService.java

@@ -65,7 +65,7 @@ public interface SysShipService extends BaseService<SysShip> {
     /**
      * 获取剩余座位数
      * @param shipId 船只编号
-     * @param duration 持续时间
+     * @param duration 持续时间-秒
      * @return 结果
      */
     public String getShipSurplusSeat(String shipId, int duration);

+ 57 - 0
aidex-system/src/main/java/com/aidex/system/service/impl/GpsAlarmPlushImpl.java

@@ -0,0 +1,57 @@
+package com.aidex.system.service.impl;
+
+import com.aidex.common.core.domain.BaseEntity;
+import com.aidex.common.core.page.PageDomain;
+import com.aidex.common.utils.StringUtils;
+import com.aidex.common.utils.sql.SqlUtil;
+import com.aidex.system.domain.SysAlarmPlush;
+import com.aidex.system.mapper.SysAlarmPlushMapper;
+import com.aidex.system.service.GpsAlarmPlushService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 报警信息Service业务层处理
+ * @author ChenSir
+ * @email 914769835
+ * @date 2024-03-17
+ */
+@Service
+public class GpsAlarmPlushImpl  implements GpsAlarmPlushService {
+
+    private static final Logger log = LoggerFactory.getLogger(GpsAlarmPlushImpl.class);
+
+    @Autowired
+    private SysAlarmPlushMapper gistPlushMapper;
+
+    @Override
+    public PageInfo<SysAlarmPlush> findPages(SysAlarmPlush sysAlarmPlush) {
+        PageDomain page = sysAlarmPlush.getPage();
+        Integer pageNum = page.getPageNum();
+        Integer pageSize = page.getPageSize();
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
+        {
+            String orderBy = SqlUtil.escapeOrderBySql(page.getOrderBy());
+            Boolean reasonable = page.getReasonable();
+            PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
+        }
+        return new PageInfo(gistPlushMapper.list(sysAlarmPlush));
+    }
+
+    @Override
+    public int updateStatus(SysAlarmPlush sysAlarmPlush) {
+        sysAlarmPlush.setStatus(BaseEntity.STATUS_NORMAL.equals(sysAlarmPlush.getStatus()) ? BaseEntity.STATUS_DISABLE : BaseEntity.STATUS_NORMAL);
+        return gistPlushMapper.updateStatus(sysAlarmPlush);
+    }
+
+    @Override
+    public int getCount() {
+        return gistPlushMapper.getNumByStatus(BaseEntity.STATUS_NORMAL);
+    }
+}

+ 16 - 0
aidex-ui/src/api/system/sysAlarm.js

@@ -59,3 +59,19 @@ export function getInitData (dictTypes) {
     method: 'get'
   })
 }
+
+// 修改报警信息
+export function updateStatus (data) {
+  return request({
+    url: '/system/sysAlarm/updateStatus',
+    method: 'POST',
+    data: data
+  })
+}
+
+export function getCount () {
+  return request({
+    url: '/system/sysAlarm/getCount',
+    method: 'get'
+  })
+}

+ 9 - 8
aidex-ui/src/components/GlobalHeader/RightContent.vue

@@ -1,7 +1,7 @@
 <template>
   <div :class="wrpCls" style="margin-right:16px">
     <a-space size="middle">
-      <a-tooltip>
+<!--      <a-tooltip>
         <a-dropdown>
           <a class="ant-dropdown-link" style="color:#fff;">
             切换工作台
@@ -28,13 +28,13 @@
             </a-menu-item>
           </a-menu>
         </a-dropdown>
-      </a-tooltip>
-      <a-tooltip v-if="userType === '1'">
+      </a-tooltip>-->
+<!--      <a-tooltip v-if="userType === '1'">
         <template slot="title">
           控制台
         </template>
         <a-icon type="desktop" @click="toConsole" :style="{ fontSize: '18px'}" />
-      </a-tooltip>
+      </a-tooltip>-->
       <a-tooltip @click="toNotice" style="cursor:pointer">
         <template slot="title">
           消息
@@ -125,7 +125,8 @@
         'userType',
         'portalConfigs',
         'defaultPortal',
-        'sysNoticeList'
+        'sysNoticeList',
+        'sysAlarmSize'
       ])
     },
     mounted () {
@@ -134,7 +135,7 @@
           name: 'RuoYi'
         }
       }, 1500)
-      this.msgCount = this.sysNoticeList.length
+      this.msgCount = this.sysAlarmSize
     },
     methods: {
       showColorSetting () {
@@ -148,9 +149,9 @@
       },
       toNotice () {
         this.$router.push({
-          path: '/system/notice/NoticeReadIndex'
+          path: '/alarm/sysAlarm'
         })
-        this.msgCount = 0
+        // this.msgCount = 0
       },
       toIndex (item) {
         this.$router.push({

+ 2 - 1
aidex-ui/src/store/getters.js

@@ -17,7 +17,8 @@ const getters = {
   permissions: state => state.user.permissions,
   userInfo: state => state.user.info,
   addRouters: state => state.permission.addRouters,
-  multiTab: state => state.app.multiTab
+  multiTab: state => state.app.multiTab,
+  sysAlarmSize: state => state.user.sysAlarmSize
 }
 
 export default getters

+ 6 - 1
aidex-ui/src/store/modules/user.js

@@ -14,7 +14,8 @@ const user = {
     defaultPortal: {},
     info: {},
     platformVersion: '',
-    sysNoticeList: []
+    sysNoticeList: [],
+    sysAlarmSize: 0
   },
 
   mutations: {
@@ -50,6 +51,9 @@ const user = {
     },
     SET_NOTICE_LIST: (state, sysNoticeList) => {
       state.sysNoticeList = sysNoticeList
+    },
+    SET_ALARM_SIZE: (state, sysAlarmSize) => {
+      state.sysAlarmSize = sysAlarmSize
     }
   },
 
@@ -100,6 +104,7 @@ const user = {
           commit('SET_USER_TYPE', user.userType)
           commit('SET_PLATFORM_VERSION', res.lincenseInfo)
           commit('SET_NOTICE_LIST', res.sysNoticeList)
+          commit('SET_ALARM_SIZE', res.sysAlarmSize)
           resolve(res)
         }).catch(error => {
           reject(error)

+ 10 - 17
aidex-ui/src/views/camera/index.vue

@@ -63,7 +63,7 @@
         <span slot="onlineStatus" slot-scope="{text, record}">
           <a-badge :status="Number(record.onlineStatus)===0?'error': 'processing'" :text="statusFormat(record) " />
         </span>
-        <span slot="operation" slot-scope="{text, record}">
+        <span slot="operation" slot-scope="{text, record}" v-if="record.onlineStatus !== 0">
           <a @click="handleLive(record)" >
             实时视频
           </a>
@@ -75,7 +75,7 @@
       modalWidth="1000"
       modalHeight="800"
       :visible="showLiveModal"
-      modal-title="播放器"
+      :modal-title="videoTitle"
       :adjust-size="true"
       @cancel="cancel"
     >
@@ -109,21 +109,10 @@ export default {
       wrapperCol: { span: 18 },
       queryParam: {
         pageNum: 1,
-        pageSize: 10
+        pageSize: 20
       },
       columns: [
         {
-          title: '设备号',
-          dataIndex: 'deviceSn',
-          ellipsis: true,
-          width: '10%'
-        },
-        {
-          title: '通道号',
-          dataIndex: 'channelNo',
-          align: 'center'
-        },
-        {
           title: '设备名称',
           dataIndex: 'deviceName',
           align: 'center'
@@ -163,7 +152,8 @@ export default {
       ],
       showLiveModal: false,
       showEditModal: false,
-      videoUrl: ''
+      videoUrl: '',
+      videoTitle: ''
     }
   },
   filters: {
@@ -199,7 +189,9 @@ export default {
     getList () {
       this.loading = true
       list(this.queryParam).then(response => {
-          this.list = response.data.records
+          this.list = response.data.records.sort(function(a, b) {
+            return a.deviceName.localeCompare(b.deviceName)
+          })
           this.total = response.data.total
           this.loading = false
         }
@@ -222,7 +214,7 @@ export default {
     resetQuery () {
       this.queryParam = {
         pageNum: 1,
-        pageSize: 10
+        pageSize: 20
       }
       this.handleQuery()
     },
@@ -268,6 +260,7 @@ export default {
         console.log(response)
         // 初始话播放器
         _this.videoUrl = response.data.url
+        _this.videoTitle = record.deviceName
         _this.showLiveModal = true
       })
     },

+ 103 - 50
aidex-ui/src/views/system/sysalarm/index.vue

@@ -6,23 +6,22 @@
         <a-form :labelCol="labelCol" :wrapperCol="wrapperCol" ref="queryForm">
           <a-row :gutter="32">
             <a-col :span="6" >
-              <a-form-item label="设备ID">
-                <a-input v-model="queryParam.objectId" placeholder="请输入设备ID" allow-clear @keyup.enter.native="handleQuery"/>
+              <a-form-item label="报警类型">
+                <a-select placeholder="请选择" v-model="queryParam.classify" style="width: 100%" allow-clear>
+                  <a-select-option v-for="(d, index) in typeOptions" :key="index" :value="d.dictValue">{{ d.dictLabel }}</a-select-option>
+                </a-select>
               </a-form-item>
             </a-col>
             <a-col :span="6" >
-              <a-form-item label="设备号">
-                <a-input v-model="queryParam.macId" placeholder="请输入设备号" allow-clear @keyup.enter.native="handleQuery"/>
+              <a-form-item label="船只名称">
+                <a-select placeholder="请选择" v-model="queryParam.macid" style="width: 100%" allow-clear>
+                  <a-select-option v-for="(d, index) in shipOptions" :key="index" :value="d.shipNum">{{ d.shipNanme }}</a-select-option>
+                </a-select>
               </a-form-item>
             </a-col>
             <a-col :span="6" >
-              <a-form-item label="设备名称">
-                <a-input v-model="queryParam.fullName" placeholder="请输入设备名称" allow-clear @keyup.enter.native="handleQuery"/>
-              </a-form-item>
-            </a-col>
-            <a-col :span="6" v-if="advanced">
-              <a-form-item label="设备型号">
-                <a-input v-model="queryParam.macName" placeholder="请输入设备型号" allow-clear @keyup.enter.native="handleQuery"/>
+              <a-form-item label="开始时间">
+                <a-range-picker v-model="queryParam.time" show-time />
               </a-form-item>
             </a-col>
             <a-col>
@@ -92,9 +91,28 @@
           </a-button>
         </div>
         <span slot="status" slot-scope="{record}">
-          <a-badge :status="record.status == '0' ? 'error' : 'processing'" :text=" statusFormat(record) " />
+          <a-switch
+            :checkedValue="0"
+            :unCheckedValue="1"
+            checkedChildren="未处理"
+            unCheckedChildren="已处理"
+            :checked="record.status === '0'"
+            @click="handleChangeStatus(record)" />
+        </span>
+
+        <span slot="alarmType" slot-scope="{text, record}">
+          <a-tag :color="text | alarmTypeFilter">
+            {{ typeFormat(record) }}
+          </a-tag>
         </span>
-        <span slot="operation" slot-scope="{text, record}">
+
+        <span slot="describeSlot" slot-scope="{text, record}">
+          <a-tag :color="text | alarmTypeFilter">
+            {{ typeFormat(record) + '实时速度:' + record.speed + 'km/h' }}
+          </a-tag>
+        </span>
+
+<!--        <span slot="operation" slot-scope="{text, record}">
           <a @click="handleUpdate(record)" v-hasPermi="['system:sysAlarm:edit']">
             修改
           </a>
@@ -102,23 +120,24 @@
           <a @click="handleDelete(record)" v-hasPermi="['system:sysAlarm:remove']">
             删除
           </a>
-        </span>
+        </span>-->
       </advance-table>
     </a-card>
   </div>
 </template>
 <script>
-import { listSysAlarm, delSysAlarm, exportSysAlarm, getInitData } from '@/api/system/sysAlarm'
+import { listSysAlarm, delSysAlarm, exportSysAlarm, getInitData, updateStatus, getCount } from '@/api/system/sysAlarm'
+import { listAllSysShip } from '@/api/system/sysShip'
 import AdvanceTable from '@/components/pt/table/AdvanceTable'
 import SysAlarmAddForm from '@/views/system/sysalarm/modules/SysAlarmAddForm'
 import SysAlarmEditForm from '@/views/system/sysalarm/modules/SysAlarmEditForm'
+import { parseTime } from '@/utils/aidex'
 export default {
   name: 'SysAlarm',
   components: {
     AdvanceTable,
     SysAlarmAddForm,
     SysAlarmEditForm
-
   },
   data () {
     return {
@@ -148,80 +167,73 @@ export default {
       sysAlarmList: [],
       // 状态字典
       statusOptions: [],
+      typeOptions: [],
+      shipOptions: [],
       // 查询参数
       queryParam: {
         pageNum: 1,
         pageSize: 10,
-        objectId: undefined,
-
-        macId: undefined,
-
-        fullName: undefined,
-
-        macName: undefined
-
+        classify: '6'
       },
       columns: [
         {
-          title: '设备号',
-          dataIndex: 'macId',
+          title: '船只名称',
+          dataIndex: 'shipName',
           ellipsis: true,
           align: 'left',
           width: '9%'
         },
         {
-          title: '发生时间',
-          dataIndex: 'alarmime',
+          title: '报警类型',
+          dataIndex: 'classify',
+          scopedSlots: { customRender: 'alarmType' },
           align: 'center',
           width: '9%'
         },
         {
-          title: '服务器处理时间',
-          dataIndex: 'addtime',
+          title: '报警时间',
+          dataIndex: 'pTime',
           align: 'center',
           width: '9%'
         },
+
         {
-          title: '速度',
+          title: '船只速度',
           dataIndex: 'speed',
           ellipsis: true,
-          align: 'left',
+          align: 'center',
           width: '9%'
         },
         {
           title: '纬度',
           dataIndex: 'lat',
           ellipsis: true,
-          align: 'left',
+          align: 'center',
           width: '9%'
         },
         {
           title: '经度',
           dataIndex: 'lon',
           ellipsis: true,
-          align: 'left',
+          align: 'center',
           width: '9%'
         },
         {
           title: '方向',
           dataIndex: 'dir',
           ellipsis: true,
-          align: 'left',
+          align: 'center',
           width: '9%'
         },
         {
           title: '描述',
           dataIndex: 'describe',
           ellipsis: true,
-          align: 'left',
-          width: '9%'
-        },
-        {
-          title: '报警编号',
-          dataIndex: 'alarmType',
+          scopedSlots: { customRender: 'describeSlot' },
           align: 'center',
-          width: '9%'
+          width: '20%'
         },
+
         {
           title: '状态',
           dataIndex: 'status',
@@ -239,15 +251,42 @@ export default {
       ]
     }
   },
+  filters: {
+    alarmTypeFilter (type) {
+      let value = 'blue'
+      if (type === '1') {
+        value = 'orange'
+      }
+      return value
+    }
+  },
   created () {
     this.getList()
     getInitData('sys_alarm_status').then(response => {
       this.statusOptions = response.data.sys_alarm_status
     })
+    getInitData('sys_alarm_type').then(response => {
+      this.typeOptions = response.data.sys_alarm_type
+    })
+    this.getAllShip()
   },
   methods: {
+    // 公告类型字典翻译
+    typeFormat (row) {
+      return this.selectDictLabel(this.typeOptions, row.classify)
+    },
+    getAllShip() {
+      listAllSysShip().then((response) => {
+        this.shipOptions = response.data
+      })
+    },
     /** 查询报警信息列表 */
     getList () {
+      if (this.queryParam.time) {
+        console.log(this.queryParam.time)
+        this.queryParam.beginTime = parseTime(this.queryParam.time[0]._d, '{y}-{m}-{d} {h}:{i}:{s}')
+        this.queryParam.endTime = parseTime(this.queryParam.time[1]._d, '{y}-{m}-{d} {h}:{i}:{s}')
+      }
       this.loading = true
       listSysAlarm(this.queryParam).then(response => {
         this.sysAlarmList = response.data.list
@@ -273,14 +312,7 @@ export default {
       this.queryParam = {
         pageNum: 1,
         pageSize: 10,
-        objectId: undefined,
-
-        macId: undefined,
-
-        fullName: undefined,
-
-        macName: undefined
-
+        classify: '6'
       }
       this.handleQuery()
     },
@@ -370,6 +402,27 @@ export default {
         this.queryParam.isAsc = sorter.order
       }
       this.getList()
+    },
+    handleChangeStatus (record) {
+      var that = this
+      this.$confirm({
+        title: '是否确认修改状态?',
+        content: '此操作修改选择行报警信息的状态',
+        onOk () {
+          return updateStatus(record)
+            .then(response => {
+              that.getList()
+              that.$message.success(
+                '修改成功',
+                3
+              )
+              getCount().then(response => {
+                that.$store.state.sysAlarmSize = response.data
+              })
+            })
+        },
+        onCancel () {}
+      })
     }
   }
 }

+ 6 - 6
sql/GpsAlarmPlushMenu.sql

@@ -1,19 +1,19 @@
 -- 菜单 SQL
 insert into sys_menu (id, menu_code, menu_name, sort, path, component, is_frame, is_cache, menu_type, visible, perms, icon, parent_id, parent_ids, tree_sort, tree_sorts, tree_level, tree_leaf, status, create_by, create_time, update_by, update_time, create_dept, update_ip, version, remark, del_flag)
-values('495079656e6a4ff79e8e074829e90099', 'gpsAlarmPlush', '报警信息推送表', '50', 'gpsAlarmPlush', 'gpsalarm/gpsalarmplush/index', 1, 0, 'C', 0, 'gpsalarm:gpsAlarmPlush:list', '#', '3', '3/495079656e6a4ff79e8e074829e90099', '50', '000030/000050', '2', 'n', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
+values('495079656e6a4ff79e8e074829e90099', 'sysAlarmPlush', '报警信息推送表', '50', 'sysAlarmPlush', 'gpsalarm/gpsalarmplush/index', 1, 0, 'C', 0, 'gpsalarm:sysAlarmPlush:list', '#', '3', '3/495079656e6a4ff79e8e074829e90099', '50', '000030/000050', '2', 'n', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
 -- 按钮 SQL
 insert into sys_menu (id, menu_code, menu_name, sort, path, component, is_frame, is_cache, menu_type, visible, perms, icon, parent_id, parent_ids, tree_sort, tree_sorts, tree_level, tree_leaf, status, create_by, create_time, update_by, update_time, create_dept, update_ip, version, remark, del_flag)
-values('03b29fc19ddc474b8f4695a616d8ba31', 'gpsAlarmPlushQuery', '报警信息推送表查询', '10', '#', '', 1, 0, 'F', 0, 'gpsalarm:gpsAlarmPlush:query', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/03b29fc19ddc474b8f4695a616d8ba31', '10', '000030/000050/000010', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
+values('03b29fc19ddc474b8f4695a616d8ba31', 'gpsAlarmPlushQuery', '报警信息推送表查询', '10', '#', '', 1, 0, 'F', 0, 'gpsalarm:sysAlarmPlush:query', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/03b29fc19ddc474b8f4695a616d8ba31', '10', '000030/000050/000010', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
 
 insert into sys_menu (id, menu_code, menu_name, sort, path, component, is_frame, is_cache, menu_type, visible, perms, icon, parent_id, parent_ids, tree_sort, tree_sorts, tree_level, tree_leaf, status, create_by, create_time, update_by, update_time, create_dept, update_ip, version, remark, del_flag)
-values('61a5dbb2feb04ba7b13a756bb79832fa', 'gpsAlarmPlushAdd', '报警信息推送表新增', '20', '#', '', 1, 0, 'F', 0, 'gpsalarm:gpsAlarmPlush:add', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/61a5dbb2feb04ba7b13a756bb79832fa', '20', '000030/000050/000020', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
+values('61a5dbb2feb04ba7b13a756bb79832fa', 'gpsAlarmPlushAdd', '报警信息推送表新增', '20', '#', '', 1, 0, 'F', 0, 'gpsalarm:sysAlarmPlush:add', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/61a5dbb2feb04ba7b13a756bb79832fa', '20', '000030/000050/000020', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
 
 insert into sys_menu (id, menu_code, menu_name, sort, path, component, is_frame, is_cache, menu_type, visible, perms, icon, parent_id, parent_ids, tree_sort, tree_sorts, tree_level, tree_leaf, status, create_by, create_time, update_by, update_time, create_dept, update_ip, version, remark, del_flag)
-values('df2dcb853f7245f6a841301394bec4a3', 'gpsAlarmPlushEdit', '报警信息推送表修改', '30', '#', '', 1, 0, 'F', 0, 'gpsalarm:gpsAlarmPlush:edit', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/df2dcb853f7245f6a841301394bec4a3', '30', '000030/000050/000030', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
+values('df2dcb853f7245f6a841301394bec4a3', 'gpsAlarmPlushEdit', '报警信息推送表修改', '30', '#', '', 1, 0, 'F', 0, 'gpsalarm:sysAlarmPlush:edit', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/df2dcb853f7245f6a841301394bec4a3', '30', '000030/000050/000030', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
 
 insert into sys_menu (id, menu_code, menu_name, sort, path, component, is_frame, is_cache, menu_type, visible, perms, icon, parent_id, parent_ids, tree_sort, tree_sorts, tree_level, tree_leaf, status, create_by, create_time, update_by, update_time, create_dept, update_ip, version, remark, del_flag)
-values('4b7894fc7a4a4ef3a0ed6b57dcc67a56', 'gpsAlarmPlushRemove', '报警信息推送表删除', '10', '#', '', 1, 0, 'F', 0, 'gpsalarm:gpsAlarmPlush:remove', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/4b7894fc7a4a4ef3a0ed6b57dcc67a56', '40', '000030/000050/000040', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
+values('4b7894fc7a4a4ef3a0ed6b57dcc67a56', 'gpsAlarmPlushRemove', '报警信息推送表删除', '10', '#', '', 1, 0, 'F', 0, 'gpsalarm:sysAlarmPlush:remove', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/4b7894fc7a4a4ef3a0ed6b57dcc67a56', '40', '000030/000050/000040', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
 
 insert into sys_menu (id, menu_code, menu_name, sort, path, component, is_frame, is_cache, menu_type, visible, perms, icon, parent_id, parent_ids, tree_sort, tree_sorts, tree_level, tree_leaf, status, create_by, create_time, update_by, update_time, create_dept, update_ip, version, remark, del_flag)
-values('188c8a20b14448d691082228ae7a4f93', 'gpsAlarmPlushExport', '报警信息推送表查询', '50', '#', '', 1, 0, 'F', 0, 'gpsalarm:gpsAlarmPlush:export', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/188c8a20b14448d691082228ae7a4f93', '50', '000030/000050/000050', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');
+values('188c8a20b14448d691082228ae7a4f93', 'gpsAlarmPlushExport', '报警信息推送表查询', '50', '#', '', 1, 0, 'F', 0, 'gpsalarm:sysAlarmPlush:export', '#', '495079656e6a4ff79e8e074829e90099', '3/495079656e6a4ff79e8e074829e90099/188c8a20b14448d691082228ae7a4f93', '50', '000030/000050/000050', '3', 'y', '0', '1', sysdate(), '1', sysdate(), '', '127.0.0.1', 0, '', '0');