doum
2025-09-29 9638a186728cafd9f35200ee5fec81538e8148af
最新版本541200007
已添加3个文件
已修改9个文件
501 ■■■■ 文件已修改
admin/src/api/business/warning.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/warningEvent.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/warningPush.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/warningRule.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaWarningEventWindow.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/warningEvent.vue 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/warningPush.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningEventMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningEventServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/warning.js
@@ -35,7 +35,7 @@
// åˆ é™¤
export function deleteById (id) {
  return request.get(`/business/warning/delete/${id}`)
  return request.get(`/visitsAdmin/cloudService/business/warning/delete/${id}`)
}
// æ‰¹é‡åˆ é™¤
admin/src/api/business/warningEvent.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function fetchList (data) {
  return request.post('/visitsAdmin/cloudService/business/warningEvent/page', data, {
    trim: true
  })
}
// å¯¼å‡ºExcel
export function exportExcel (data) {
  return request.post('/visitsAdmin/cloudService/business/warningEvent/exportExcel', data, {
    trim: true,
    download: true
  })
}
// åˆ›å»º
export function create (data) {
  return request.post('/visitsAdmin/cloudService/business/warningEvent/create', data)
}
// ä¿®æ”¹
export function updateById (data) {
  return request.post('/visitsAdmin/cloudService/business/warningEvent/updateById', data)
}
// åˆ é™¤
export function deleteById (id) {
  return request.get(`/visitsAdmin/cloudService/business/warningEvent/delete/${id}`)
}
// æ‰¹é‡åˆ é™¤
export function deleteByIdInBatch (ids) {
  return request.get('/visitsAdmin/cloudService/business/warningEvent/delete/batch', {
    params: {
      ids
    }
  })
}
admin/src/api/business/warningPush.js
@@ -27,7 +27,7 @@
// åˆ é™¤
export function deleteById (id) {
  return request.get(`/business/warningPush/delete/${id}`)
  return request.get(`/visitsAdmin/cloudService/business/warningPush/delete/${id}`)
}
// æ‰¹é‡åˆ é™¤
admin/src/api/business/warningRule.js
@@ -29,7 +29,7 @@
// åˆ é™¤
export function deleteById (id) {
  return request.get(`/business/warningRule/delete/${id}`)
  return request.get(`/visitsAdmin/cloudService/business/warningRule/delete/${id}`)
}
// æ‰¹é‡åˆ é™¤
admin/src/components/business/OperaWarningEventWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
<template>
  <GlobalWindow
    :title="title"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="info">
        <el-input v-model="form.info" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="事件编码(关联warning)" prop="warningId">
        <el-input v-model="form.warningId" placeholder="请输入事件编码(关联warning)" v-trim/>
      </el-form-item>
      <el-form-item label="事件标题" prop="title">
        <el-input v-model="form.title" placeholder="请输入事件标题" v-trim/>
      </el-form-item>
      <el-form-item label="事件内容" prop="content">
        <el-input v-model="form.content" placeholder="请输入事件内容" v-trim/>
      </el-form-item>
      <el-form-item label="状态 0未推送 1推送成功2推送失败" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0未推送 1推送成功2推送失败" v-trim/>
      </el-form-item>
      <el-form-item label="所在位置" prop="region">
        <el-input v-model="form.region" placeholder="请输入所在位置" v-trim/>
      </el-form-item>
      <el-form-item label="唯一标识" prop="eventId">
        <el-input v-model="form.eventId" placeholder="请输入唯一标识" v-trim/>
      </el-form-item>
      <el-form-item label="事件类型" prop="eventType">
        <el-input v-model="form.eventType" placeholder="请输入事件类型" v-trim/>
      </el-form-item>
      <el-form-item label="事件等级:             0-未配置             1-低             2-中             3-高             æ³¨æ„ï¼Œæ­¤å¤„事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段事件类型" prop="eventLevel">
        <el-input v-model="form.eventLevel" placeholder="请输入事件等级:             0-未配置             1-低             2-中             3-高             æ³¨æ„ï¼Œæ­¤å¤„事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段事件类型" v-trim/>
      </el-form-item>
      <el-form-item label="事件发生事件" prop="happenTime">
        <el-input v-model="form.happenTime" placeholder="请输入事件发生事件" v-trim/>
      </el-form-item>
      <el-form-item label="事件图片服务编号" prop="imgServeCode">
        <el-input v-model="form.imgServeCode" placeholder="请输入事件图片服务编号" v-trim/>
      </el-form-item>
      <el-form-item label="事件图片" prop="imgurl">
        <el-input v-model="form.imgurl" placeholder="请输入事件图片" v-trim/>
      </el-form-item>
      <el-form-item label="报文" prop="jsonContent">
        <el-input v-model="form.jsonContent" placeholder="请输入报文" v-trim/>
      </el-form-item>
      <el-form-item label="事件源唯一标识" prop="srcIndex">
        <el-input v-model="form.srcIndex" placeholder="请输入事件源唯一标识" v-trim/>
      </el-form-item>
      <el-form-item label="事件源类型" prop="srcType">
        <el-input v-model="form.srcType" placeholder="请输入事件源类型" v-trim/>
      </el-form-item>
      <el-form-item label="事件源名称" prop="srcName">
        <el-input v-model="form.srcName" placeholder="请输入事件源名称" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
export default {
  name: 'OperaWarningEventWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
    return {
      // è¡¨å•数据
      form: {
        id: null,
        creator: '',
        createDate: '',
        editor: '',
        editDate: '',
        isdeleted: '',
        info: '',
        warningId: '',
        title: '',
        content: '',
        status: '',
        region: '',
        eventId: '',
        eventType: '',
        eventLevel: '',
        happenTime: '',
        imgServeCode: '',
        imgurl: '',
        jsonContent: '',
        srcIndex: '',
        srcType: '',
        srcName: ''
      },
      // éªŒè¯è§„则
      rules: {
      }
    }
  },
  created () {
    this.config({
      api: '/business/warningEvent',
      'field.id': 'id'
    })
  }
}
</script>
admin/src/views/business/warningEvent.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,143 @@
<template>
  <TableLayout :permissions="['business:warningevent:query']">
    <!-- æœç´¢è¡¨å• -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="报警分类" prop="warningType">
        <el-select v-model="searchForm.warningType" placeholder="请选择" clearable  @change="search">
          <el-option label="安防事件" value="0"></el-option>
          <el-option label="消防事件" value="1"></el-option>
          <el-option label="车载事件" value="2"></el-option>
          <el-option label="钥匙柜事件" value="3"></el-option>
          <el-option label="天气预警" value="4"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="事件类型" prop="title">
        <el-input v-model="searchForm.title" placeholder="请输入事件类型"  clearable  @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="报警分类" prop="warningLevel" >
        <el-select v-model="searchForm.warningLevel" placeholder="请选择" clearable @change="search">
          <el-option label="低" value="0"></el-option>
          <el-option label="中" value="1"></el-option>
          <el-option label="高" value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="所在位置" prop="region">
        <el-input v-model="searchForm.region" placeholder="请输入所在位置" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="发生时间" prop="date">
        <el-date-picker
            v-model="searchForm.queryStarttime"
            type="datetime"
            clearable
            value-format="yyyy-MM-dd HH:mm:ss"
            class="w200"
            placeholder="开始时间" /> è‡³
        <el-date-picker
            v-model="searchForm.queryEndtime"
            type="datetime"
            value-format="yyyy-MM-dd HH:mm:ss"
            class="w200"
            clearable
            placeholder="结束时间" />
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:warningevent:exportExcel']" @click="exportExcel">导出</el-button>
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <el-table
          :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
<!--        <el-table-column type="selection" width="55"></el-table-column>-->
        <el-table-column prop="happenTime" label="发生时间" min-width="100px"></el-table-column>
        <el-table-column prop="title" label="事件类型" min-width="100px"></el-table-column>
        <el-table-column prop="warningType" label="报警分类" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.warningType === 0">安防事件</span>
            <span v-if="row.warningType === 1"  >消防事件</span>
            <span v-if="row.warningType === 2"  >车载事件</span>
            <span v-if="row.warningType === 3"  >钥匙柜事件</span>
            <span v-if="row.warningType === 4"  >天气预警</span>
          </template>
        </el-table-column>
        <el-table-column prop="warningLevel" label="报警等级" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.warningLevel === 0" class="status-grey">低</span>
            <span v-if="row.warningLevel === 1"  class="status-yellow" >中</span>
            <span v-if="row.warningLevel === 2"  class="status-red">高</span>
          </template>
        </el-table-column>
        <el-table-column prop="region" label="所在位置" min-width="100px"></el-table-column>
        <el-table-column prop="eventType" label="事件编码" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:warningevent:update', 'business:warningevent:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:warningevent:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaWarningEventWindow ref="operaWarningEventWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaWarningEventWindow from '@/components/business/OperaWarningEventWindow'
export default {
  name: 'WarningEvent',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaWarningEventWindow },
  data () {
    return {
      // æœç´¢
      searchForm: {
        warningType: null,
        title: '',
        region: '',
        eventType: '',
        warningLevel: '',
        queryStarttime:null,
        queryEndtime:null
      }
    }
  },
  created () {
    this.config({
      module: '报警事件记录日志表',
      api: '/business/warningEvent',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  },
  methods:{
    reset () {
      this.$refs.searchForm.resetFields()
      this.searchForm.queryStarttime = ''
      this.searchForm.queryEndtime = ''
      this.search()
    }
  }
}
</script>
admin/src/views/business/warningPush.vue
@@ -34,7 +34,7 @@
            clearable
            value-format="yyyy-MM-dd HH:mm:ss"
            class="w200"
            placeholder="开始时间" />
            placeholder="开始时间" /> è‡³
        <el-date-picker
            v-model="searchForm.queryEndtime"
            type="datetime"
@@ -51,10 +51,10 @@
    </el-form>
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:warningpush:create', 'business:warningpush:delete']">
<!--      <ul class="toolbar" v-permissions="['business:warningpush:create', 'business:warningpush:delete']">
        <li><el-button type="primary" @click="$refs.operaWarningPushWindow.open('新建报警推送记录')" icon="el-icon-plus" v-permissions="['business:warningpush:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:warningpush:delete']">删除</el-button></li>
      </ul>
      </ul>-->
      <el-table
        :height="tableHeightNew"
        v-loading="isWorking.search"
@@ -62,8 +62,7 @@
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="createDate" label="发生时间" min-width="150px"></el-table-column>
         <el-table-column prop="createDate" label="发生时间" min-width="150px"></el-table-column>
        <el-table-column prop="warningName" label="报警类型" min-width="120px" show-tooltip-when-overflow></el-table-column>
        <el-table-column prop="warningType" label="报警分类" min-width="100px">
          <template slot-scope="{row}">
@@ -135,7 +134,9 @@
        warningType: null,
        title: '',
        content: '',
        status: ''
        status: '',
        queryEndtime:null,
        queryStarttime:null
      }
    }
  },
@@ -147,6 +148,14 @@
      'field.main': 'id'
    })
    this.search()
  },
  methods:{
    reset () {
      this.$refs.searchForm.resetFields()
      this.searchForm.queryStarttime = ''
      this.searchForm.queryEndtime = ''
      this.search()
    }
  }
}
</script>
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningEventMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.WarningEvent;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2025/09/29 11:20
 */
public interface WarningEventMapper extends BaseMapper<WarningEvent> {
public interface WarningEventMapper extends MPJBaseMapper<WarningEvent> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningEvent.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -21,93 +22,114 @@
public class WarningEvent {
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    //@ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    //@ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    //@ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    //@ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    //@ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    //@ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    //@ExcelColumn(name="备注")
    private String info;
    @ApiModelProperty(value = "事件编码(关联warning)", example = "1")
    @ExcelColumn(name="事件编码(关联warning)")
    //@ExcelColumn(name="事件编码(关联warning)")
    private Integer warningId;
    @ApiModelProperty(value = "事件标题")
    @ExcelColumn(name="事件标题")
    @ExcelColumn(name="事件类型",width=10,index = 2)
    private String title;
    @ApiModelProperty(value = "事件内容")
    @ExcelColumn(name="事件内容")
    //@ExcelColumn(name="事件内容")
    private String content;
    @ApiModelProperty(value = "状态 0未推送 1推送成功2推送失败", example = "1")
    @ExcelColumn(name="状态 0未推送 1推送成功2推送失败")
    //@ExcelColumn(name="状态 0未推送 1推送成功2推送失败")
    private Integer status;
    @ApiModelProperty(value = "所在位置")
    @ExcelColumn(name="所在位置")
    @ExcelColumn(name="所在位置",width=10,index = 5)
    private String region;
    @ApiModelProperty(value = "唯一标识")
    @ExcelColumn(name="唯一标识")
    //@ExcelColumn(name="唯一标识")
    private String eventId;
    @ApiModelProperty(value = "事件类型")
    @ExcelColumn(name="事件类型")
    //@ExcelColumn(name="事件类型")
    private String eventType;
    @ApiModelProperty(value = "事件等级:             0-未配置             1-低             2-中             3-高             æ³¨æ„ï¼Œæ­¤å¤„事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段事件类型")
    @ExcelColumn(name="事件等级:             0-未配置             1-低             2-中             3-高             æ³¨æ„ï¼Œæ­¤å¤„事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段事件类型")
    //@ExcelColumn(name="事件等级:             0-未配置             1-低             2-中             3-高             æ³¨æ„ï¼Œæ­¤å¤„事件等级是指在事件联动中配置的等级,需要配置了事件联动,才返回这个字段事件类型")
    private String eventLevel;
    @ApiModelProperty(value = "事件发生事件")
    @ExcelColumn(name="事件发生事件")
    @ExcelColumn(name="发生时间",width=10,index = 1)
    private String happenTime;
    @ApiModelProperty(value = "事件图片服务编号")
    @ExcelColumn(name="事件图片服务编号")
    //@ExcelColumn(name="事件图片服务编号")
    private String imgServeCode;
    @ApiModelProperty(value = "事件图片")
    @ExcelColumn(name="事件图片")
    //@ExcelColumn(name="事件图片")
    private String imgurl;
    @ApiModelProperty(value = "报文")
    @ExcelColumn(name="报文")
    //@ExcelColumn(name="报文")
    private String jsonContent;
    @ApiModelProperty(value = "事件源唯一标识")
    @ExcelColumn(name="事件源唯一标识")
    //@ExcelColumn(name="事件源唯一标识")
    private String srcIndex;
    @ApiModelProperty(value = "事件源类型")
    @ExcelColumn(name="事件源类型")
    //@ExcelColumn(name="事件源类型")
    private String srcType;
    @ApiModelProperty(value = "事件源名称")
    @ExcelColumn(name="事件源名称")
    //@ExcelColumn(name="事件源名称")
    private String srcName;
    @ApiModelProperty(value = "事件分类 0=安防事件;1=消防事件;2=车载事件;3=钥匙柜事件; 4=天气预警;", example = "1")
    @ExcelColumn(name="事件分类",valueMapping = "0=安防事件;1=消防事件;2=车载事件;3=钥匙柜事件;4=天气预警;",width=10,index = 3)
    @TableField(exist = false)
    private Integer warningType;
    @ApiModelProperty(value = "事件类型", example = "1")
//    @ExcelColumn(name="事件类型",width=10,index = 2)
    @TableField(exist = false)
    private String warningName;
    @ApiModelProperty(value = "事件等级 0低 1中 2高", example = "1")
    @ExcelColumn(name="事件等级",valueMapping = "0=低;1=中;2=高;",width=10,index = 4)
    @TableField(exist = false)
    private Integer warningLevel;
    @ApiModelProperty(value = "查询时间开始  ")
    @TableField(exist = false)
    private Date queryStarttime;
    @ApiModelProperty(value = "查询时间结束  ")
    @TableField(exist = false)
    private Date queryEndtime;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java
@@ -31,7 +31,7 @@
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="发生事件",dateFormat = "yyyy-MM-dd HH:mm:ss",index = 1)
    @ExcelColumn(name="发生事件",dateFormat = "yyyy-MM-dd HH:mm:ss",width=10,index = 1)
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
@@ -67,7 +67,7 @@
    private String content;
    @ApiModelProperty(value = "状态 0未推送 1推送成功2推送失败", example = "1")
    @ExcelColumn(name="通知状态",valueMapping = "0=未通知;1=通知成功;2=通知失败;",index = 8)
    @ExcelColumn(name="通知状态",valueMapping = "0=未通知;1=通知成功;2=通知失败;",width=10,index = 8)
    private Integer status;
    @ApiModelProperty(value = "推送结果", example = "1")
@@ -82,7 +82,7 @@
    //@ExcelColumn(name="推送标识")
    private String pushId;
    @ApiModelProperty(value = "推送标识")
    @ExcelColumn(name="所在位置",index = 5)
    @ExcelColumn(name="所在位置",width=10,index = 5)
    private String region;
    @ApiModelProperty(value = "推送时间")
@@ -94,35 +94,33 @@
    private Integer pushType;
    @ApiModelProperty(value = "事件分类 0=安防事件;1=消防事件;2=车载事件;3=钥匙柜事件; 4=天气预警;", example = "1")
    @ExcelColumn(name="事件分类",valueMapping = "0=安防事件;1=消防事件;2=车载事件;3=钥匙柜事件;4=天气预警;",index = 3)
    @ExcelColumn(name="事件分类",valueMapping = "0=安防事件;1=消防事件;2=车载事件;3=钥匙柜事件;4=天气预警;",width=10,index = 3)
    @TableField(exist = false)
    private Integer warningType;
    @ApiModelProperty(value = "事件类型", example = "1")
    @ExcelColumn(name="事件类型",index = 2)
    @ExcelColumn(name="事件类型",width=10,index = 2)
    @TableField(exist = false)
    private String warningName;
    @ApiModelProperty(value = "事件等级 0低 1中 2高", example = "1")
    @ExcelColumn(name="事件等级",valueMapping = "0=低;1=中;2=高;",index = 4)
    @ExcelColumn(name="事件等级",valueMapping = "0=低;1=中;2=高;",width=10,index = 4)
    @TableField(exist = false)
    private Integer warningLevel;
    @ApiModelProperty(value = "通知人员", example = "1")
    @ExcelColumn(name="通知人员",index = 6)
    @ExcelColumn(name="通知人员",width=10,index = 6)
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "人员部门", example = "1")
    @ExcelColumn(name="人员部门",index = 7)
    @ExcelColumn(name="人员部门",width=10,index = 7)
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "查询时间开始 æ—¥æœŸæ ¼å¼ï¼šyyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "查询时间开始  ")
    @TableField(exist = false)
    private Date queryStarttime;
    @ApiModelProperty(value = "查询时间结束 æ—¥æœŸæ ¼å¼ï¼šyyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "查询时间结束  ")
    @TableField(exist = false)
    private Date queryEndtime;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningEventServiceImpl.java
@@ -1,8 +1,9 @@
package com.doumee.service.business.impl;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.WarningEventMapper;
import com.doumee.dao.business.model.WarningEvent;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.WarningEventService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -10,11 +11,14 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
/**
 * æŠ¥è­¦äº‹ä»¶è®°å½•日志表Service实现
@@ -87,75 +91,86 @@
    @Override
    public PageData<WarningEvent> findPage(PageWrap<WarningEvent> pageWrap) {
        IPage<WarningEvent> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<WarningEvent> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<WarningEvent> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        queryWrapper.selectAll(WarningEvent.class )
                .selectAs(Warning::getName,WarningEvent::getWarningName)
                .selectAs(Warning::getType,WarningEvent::getWarningType)
                .selectAs(Warning::getLevel,WarningEvent::getWarningLevel)
                .leftJoin(Warning.class,Warning::getId,WarningEvent::getWarningId);
        queryWrapper.eq(pageWrap.getModel().getWarningType()!=null,Warning::getType, pageWrap.getModel().getWarningType());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getWarningName()),Warning::getName, pageWrap.getModel().getWarningName());
        queryWrapper.eq(pageWrap.getModel().getWarningLevel()!=null,Warning::getLevel, pageWrap.getModel().getWarningLevel());
        queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStarttime()), WarningEvent::getCreateDate, pageWrap.getModel().getQueryStarttime());
        queryWrapper.le(Objects.nonNull(pageWrap.getModel().getQueryEndtime()),WarningEvent::getCreateDate, pageWrap.getModel().getQueryEndtime());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(WarningEvent::getId, pageWrap.getModel().getId());
            queryWrapper.eq(WarningEvent::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(WarningEvent::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(WarningEvent::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(WarningEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(WarningEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(WarningEvent::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(WarningEvent::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(WarningEvent::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(WarningEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(WarningEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(WarningEvent::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(WarningEvent::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(WarningEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(WarningEvent::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getInfo() != null) {
            queryWrapper.lambda().eq(WarningEvent::getInfo, pageWrap.getModel().getInfo());
            queryWrapper.eq(WarningEvent::getInfo, pageWrap.getModel().getInfo());
        }
        if (pageWrap.getModel().getWarningId() != null) {
            queryWrapper.lambda().eq(WarningEvent::getWarningId, pageWrap.getModel().getWarningId());
            queryWrapper.eq(WarningEvent::getWarningId, pageWrap.getModel().getWarningId());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(WarningEvent::getTitle, pageWrap.getModel().getTitle());
            queryWrapper.like(WarningEvent::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getContent() != null) {
            queryWrapper.lambda().eq(WarningEvent::getContent, pageWrap.getModel().getContent());
            queryWrapper.eq(WarningEvent::getContent, pageWrap.getModel().getContent());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(WarningEvent::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(WarningEvent::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getRegion() != null) {
            queryWrapper.lambda().eq(WarningEvent::getRegion, pageWrap.getModel().getRegion());
            queryWrapper.eq(WarningEvent::getRegion, pageWrap.getModel().getRegion());
        }
        if (pageWrap.getModel().getEventId() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEventId, pageWrap.getModel().getEventId());
            queryWrapper.eq(WarningEvent::getEventId, pageWrap.getModel().getEventId());
        }
        if (pageWrap.getModel().getEventType() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEventType, pageWrap.getModel().getEventType());
            queryWrapper.eq(WarningEvent::getEventType, pageWrap.getModel().getEventType());
        }
        if (pageWrap.getModel().getEventLevel() != null) {
            queryWrapper.lambda().eq(WarningEvent::getEventLevel, pageWrap.getModel().getEventLevel());
            queryWrapper.eq(WarningEvent::getEventLevel, pageWrap.getModel().getEventLevel());
        }
        if (pageWrap.getModel().getHappenTime() != null) {
            queryWrapper.lambda().eq(WarningEvent::getHappenTime, pageWrap.getModel().getHappenTime());
            queryWrapper.eq(WarningEvent::getHappenTime, pageWrap.getModel().getHappenTime());
        }
        if (pageWrap.getModel().getImgServeCode() != null) {
            queryWrapper.lambda().eq(WarningEvent::getImgServeCode, pageWrap.getModel().getImgServeCode());
            queryWrapper.eq(WarningEvent::getImgServeCode, pageWrap.getModel().getImgServeCode());
        }
        if (pageWrap.getModel().getImgurl() != null) {
            queryWrapper.lambda().eq(WarningEvent::getImgurl, pageWrap.getModel().getImgurl());
            queryWrapper.eq(WarningEvent::getImgurl, pageWrap.getModel().getImgurl());
        }
        if (pageWrap.getModel().getJsonContent() != null) {
            queryWrapper.lambda().eq(WarningEvent::getJsonContent, pageWrap.getModel().getJsonContent());
            queryWrapper.eq(WarningEvent::getJsonContent, pageWrap.getModel().getJsonContent());
        }
        if (pageWrap.getModel().getSrcIndex() != null) {
            queryWrapper.lambda().eq(WarningEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
            queryWrapper.eq(WarningEvent::getSrcIndex, pageWrap.getModel().getSrcIndex());
        }
        if (pageWrap.getModel().getSrcType() != null) {
            queryWrapper.lambda().eq(WarningEvent::getSrcType, pageWrap.getModel().getSrcType());
            queryWrapper.eq(WarningEvent::getSrcType, pageWrap.getModel().getSrcType());
        }
        if (pageWrap.getModel().getSrcName() != null) {
            queryWrapper.lambda().eq(WarningEvent::getSrcName, pageWrap.getModel().getSrcName());
            queryWrapper.eq(WarningEvent::getSrcName, pageWrap.getModel().getSrcName());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -164,7 +179,10 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(warningEventMapper.selectPage(page, queryWrapper));
        queryWrapper.orderByDesc(WarningEvent::getCreateDate);
        IPage<WarningEvent> result = warningEventMapper.selectJoinPage(page, WarningEvent.class,queryWrapper);
        return PageData.from(result);
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java
@@ -104,11 +104,11 @@
                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                .leftJoin(Warning.class,Warning::getId,WarningPush::getWarningId);
        queryWrapper.eq(pageWrap.getModel().getWarningType()!=null,Warning::getType, pageWrap.getModel().getWarningType());
        queryWrapper.eq(pageWrap.getModel().getWarningLevel()!=null,Warning::getLevel, pageWrap.getModel().getWarningLevel());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getWarningName()),Warning::getName, pageWrap.getModel().getWarningName());
        queryWrapper.eq(pageWrap.getModel().getWarningLevel()!=null,Warning::getLevel, pageWrap.getModel().getWarningLevel());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName());
        queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStarttime()), WarningPush::getCreateDate,Utils.Date.getStart(pageWrap.getModel().getQueryStarttime()));
        queryWrapper.le(Objects.nonNull(pageWrap.getModel().getQueryEndtime()),WarningPush::getCreateDate,Utils.Date.getEnd(pageWrap.getModel().getQueryEndtime()));
        queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStarttime()), WarningPush::getCreateDate, pageWrap.getModel().getQueryStarttime());
        queryWrapper.le(Objects.nonNull(pageWrap.getModel().getQueryEndtime()),WarningPush::getCreateDate, pageWrap.getModel().getQueryEndtime());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.eq(WarningPush::getId, pageWrap.getModel().getId());
        }