Forráskód Böngészése

Merge branch 'dev' into dev-2.0_test

# Conflicts:
#	src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTDownloadsController.java
#	src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTEventcatalogueController.java
#	src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/CentereventTEventcatalogueServiceImpl.java
#	src/main/java/com/sooka/sponest/event/remoteapi/factory/RemoteDataServiceFallbackFactory.java
lyq 1 éve
szülő
commit
b84ab39cc4
32 módosított fájl, 1456 hozzáadás és 521 törlés
  1. 18 0
      event-ui/src/api/event/eventassess/fireInformation.js
  2. 8 5
      event-ui/src/api/event/index/index.js
  3. 146 0
      event-ui/src/views/components/eventdept/MultiBarAndPieChart.vue
  4. 100 0
      event-ui/src/views/components/eventdept/SingleBarChart.vue
  5. 0 227
      event-ui/src/views/components/eventdept/frist.vue
  6. 0 12
      event-ui/src/views/components/eventdept/highcharts.js
  7. 0 120
      event-ui/src/views/components/eventdept/scecond.vue
  8. 466 0
      event-ui/src/views/event/eventassess/fireInformation.vue
  9. 14 23
      event-ui/src/views/event/eventhandling/index.vue
  10. 108 14
      event-ui/src/views/index.vue
  11. 6 6
      src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CenterEventAppController.java
  12. 25 6
      src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTDownloadsController.java
  13. 22 54
      src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTEventcatalogueController.java
  14. 4 19
      src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/CenterEventAppServiceImpl.java
  15. 28 8
      src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/CentereventTEventcatalogueServiceImpl.java
  16. 66 0
      src/main/java/com/sooka/sponest/event/centereventtfireinformation/controller/FireInformationController.java
  17. 104 1
      src/main/java/com/sooka/sponest/event/centereventtfireinformation/domain/FireInformation.java
  18. 8 0
      src/main/java/com/sooka/sponest/event/centereventtfireinformation/mapper/CentereventTFireInformationMapper.java
  19. 8 0
      src/main/java/com/sooka/sponest/event/centereventtfireinformation/service/ICentereventTFireInformationService.java
  20. 19 1
      src/main/java/com/sooka/sponest/event/centereventtfireinformation/service/impl/CentereventTFireInformationServiceImpl.java
  21. 2 0
      src/main/java/com/sooka/sponest/event/centereventtforestfireloss/domain/Table1.java
  22. 5 0
      src/main/java/com/sooka/sponest/event/index/controller/IndexController.java
  23. 2 0
      src/main/java/com/sooka/sponest/event/index/domin/Index.java
  24. 2 0
      src/main/java/com/sooka/sponest/event/index/service/impl/CenterevenTEventIndexServiceImpl.java
  25. 0 3
      src/main/java/com/sooka/sponest/event/remoteapi/RemoteDataService.java
  26. 0 5
      src/main/java/com/sooka/sponest/event/remoteapi/factory/RemoteDataServiceFallbackFactory.java
  27. 42 0
      src/main/java/com/sooka/sponest/event/test/TestController.java
  28. 5 1
      src/main/java/com/sooka/sponest/event/utils/ScheduleTaskUtil.java
  29. 9 12
      src/main/resources/mapper/centereventteventcatalogue/CenterEventCommandCenterMapper.xml
  30. 6 3
      src/main/resources/mapper/centereventteventcatalogue/CenterEventViewMapper.xml
  31. 232 1
      src/main/resources/mapper/centereventtfireinformation/CentereventTFireInformationMapper.xml
  32. 1 0
      src/main/resources/mapper/download/CentereventTDownloadsMapper.xml

+ 18 - 0
event-ui/src/api/event/eventassess/fireInformation.js

@@ -0,0 +1,18 @@
+import request from '@/utils/request';
+
+// 列表
+export function list(query) {
+  return request({
+    url: 'center-event/fireInformation/list',
+    method: 'post',
+    data: query
+  })
+}
+
+//详情
+export function getDetails(evevtCode) {
+  return request({
+    url: 'center-event/fireInformation/getDetails/'+evevtCode,
+    method: 'get',
+  })
+}

+ 8 - 5
event-ui/src/api/event/index/index.js

@@ -1,16 +1,19 @@
 import request from '@/utils/request'
 
 export function getList(timeArr) {
-  return  request({
+  return request({
     url: 'center-event/index/countyList/',
     method: 'get',
-    params: { timeArr }
+    params: {timeArr},
+    timeout: 60000 // 60秒
   })
 }
-export function getList1(timeArr) {
-  return  request({
+
+export function getList1(timeArr, resetFlag) {
+  return request({
     url: 'center-event/index/getEventmapdept/',
     method: 'get',
-    params: { timeArr }
+    params: {timeArr, resetFlag},
+    timeout: 60000 // 60秒
   })
 }

+ 146 - 0
event-ui/src/views/components/eventdept/MultiBarAndPieChart.vue

@@ -0,0 +1,146 @@
+<template>
+  <el-row>
+    <el-col :span="16" class="text-center">
+      <div class="multi-bar-chart" ref="multiBarChart" style="margin: 10px; padding: 3px; border: 2px solid #CCCCCC; height: 337px"></div>
+    </el-col>
+    <el-col :span="8" class="text-center">
+      <div class="pie-chart" ref="pieChart" style="margin: 10px; padding: 3px; border: 2px solid #CCCCCC; height: 337px"></div>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import echarts from 'echarts'
+
+export default {
+  name: 'MultiBarAndPieChart',
+  props: {
+    multiBarData: {
+      type: Array,
+      required: true
+    },
+    xAxisData: {
+      type: Array,
+      required: true
+    },
+    legendData: {
+      type: Array,
+      required: true
+    },
+    colors: {
+      type: Array,
+
+
+
+default: () => ['#2caffe', '#544fc5', '#00e272', '#fe6a35', '#6b8abc']
+    },
+    pieData: {
+      type: Array,
+      required: true
+    }
+  },
+  mounted() {
+    this.initMultiBarChart()
+    this.initPieChart()
+  },
+  methods: {
+    initMultiBarChart() {
+      this.multiBarChart = echarts.init(this.$refs.multiBarChart)
+      setTimeout(() => {
+        this.multiBarChart.setOption(this.getMultiBarOption())
+      },100)
+    },
+    initPieChart() {
+      this.pieChart = echarts.init(this.$refs.pieChart)
+      setTimeout(() => {
+        this.pieChart.setOption(this.getPieOption())
+      },100)
+    },
+    getMultiBarOption() {
+      return {
+        color: this.colors,
+        title: {
+          text: '县(市、区)事件统计',
+          left: 'center'
+        },
+        legend: {
+          icon:'circle',
+          data: this.legendData,
+          orient: 'horizontal',
+          left: 'center',
+          bottom: 10
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        xAxis: {
+          type: 'category',
+          data: this.xAxisData
+        },
+        yAxis: {
+          type: 'value'
+        },
+        series: this.multiBarData.map((item, index) => ({
+          name: this.legendData[index],
+          type: 'bar',
+          data: item
+        }))
+      }
+    },
+    getPieOption() {
+      return {
+        tooltip: {
+          trigger: 'item',
+          formatter: '{a} <br/>{b}: {c} ({d}%)'
+        },
+        title: {
+          text: '事件状态统计',
+          left: 'center'
+        },
+        legend: {
+          icon:'circle',
+          orient: 'horizontal',
+          left: 'center',
+          bottom: 10
+        },
+        series: [
+          {
+            name: '事件状态统计',
+            type: 'pie',
+            radius: '70%',
+            avoidLabelOverlap: false,
+            label: {
+              show: false,
+              position: 'center'
+            },
+            emphasis: {
+              itemStyle: {
+                shadowBlur: 10,
+                shadowOffsetX: 0,
+                shadowColor: 'rgba(0, 0, 0, 0.5)'
+              }
+            },
+            labelLine: {
+              show: false
+            },
+            itemStyle: {
+              borderRadius: 10,
+              borderColor: '#fff',
+              borderWidth: 2
+            },
+            color: ['#2caffe', '#544fc5', '#00e272', '#fe6a35', '#6b8abc'],
+            data: this.pieData
+          }
+        ]
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+/* Add custom styles here if needed */
+.multi-bar-chart, .pie-chart {
+  height: 400px;
+}
+</style>

+ 100 - 0
event-ui/src/views/components/eventdept/SingleBarChart.vue

@@ -0,0 +1,100 @@
+<template>
+  <div class="text-center">
+        <div class="single-bar-chart" ref="singleBarChart"></div>
+  </div>
+</template>
+
+<script>
+import echarts from 'echarts'
+
+export default {
+  name: 'SingleBarChart',
+  props: {
+    barData: {
+      type: Array,
+      required: true
+    },
+    xAxisData: {
+      type: Array,
+      required: true
+    },
+    yAxisName: {
+      type: String,
+      default: 'Value'
+    }
+  },
+  mounted() {
+    this.initSingleBarChart()
+  },
+  methods: {
+    initSingleBarChart() {
+      this.singleBarChart = echarts.init(this.$refs.singleBarChart)
+      setTimeout(() => {
+        this.singleBarChart.setOption(this.getSingleBarOption())
+      },100)
+
+    },
+    getSingleBarOption() {
+      return {
+        tooltip: {
+          trigger: 'axis',
+          axisPointer: {
+            type: 'shadow'
+          }
+        },
+        grid: {
+          left: '3%',
+          right: '4%',
+          bottom: '3%',
+          containLabel: true
+        },
+        title: {
+          text: '行管局事件统计',
+          left: 'center'
+        },
+        xAxis: {
+          type: 'category',
+          data: this.xAxisData,
+          axisLine: {
+            lineStyle: {
+              color: 'rgba(29,28,28,0.86)' // 设置轴线颜色为浅灰色
+            }
+          },
+          axisTick: {
+            alignWithLabel: true
+          },
+          axisLabel: {
+            formatter: function (value) {
+              return value.length > 4 ? value.slice(0,4) + '...': value;
+            }
+          }
+        },
+        yAxis: {
+          type: 'value',
+          name: this.yAxisName,
+          axisLine: {
+            lineStyle: {
+              color: 'rgba(29,28,28,0.86)' // 设置轴线颜色为浅灰色
+            }
+          }
+        },
+        series: [{
+          type: 'bar',
+          barWidth: '50%',
+          data: this.barData,
+          itemStyle: {
+            color: '#2caffe' // 设置柱图颜色
+          }
+        }]
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+/* Add custom styles here if needed */
+.single-bar-chart {
+  height: 350px;
+}
+</style>

+ 0 - 227
event-ui/src/views/components/eventdept/frist.vue

@@ -1,227 +0,0 @@
-<template>
-  <el-row>
-    <el-col :span="16">
-      <div style="margin-right:10px;  border: 2px solid #CCCCCC; border-radius: 5px;">
-        <highcharts :options="chartOptions" :callback="myCallback"
-                    style="height:370px;"></highcharts>
-      </div>
-    </el-col>
-    <el-col :span="8">
-      <div style="border: 2px solid #CCCCCC; border-radius:5px;">
-      <div ref="chartContainer" style="min-width:370px;height:370px;"></div>
-      </div>
-    </el-col>
-  </el-row>
-
-</template>
-<script>
-import {Chart} from "highcharts-vue";
-import { getList } from '@/api/event/index'
-import { formatTimestampToDateString } from '@/utils/oaUtil'
- import Highcharts from "@/views/components/eventdept/highcharts";
-
-export default {
-  name: 'extend-graphDemo-highchartsColumn',
-  components: {
-    highcharts: Chart
-  },
-  data() {
-    return {
-      chartOptions: {
-        chart: {
-          type: 'column'
-        },
-        title: {
-          text: '县 (市、区) 事件统计'
-        },
-        subtitle: {
-          text: ' '
-        },
-        xAxis: {
-          categories: [],
-          crosshair: true
-        },
-        yAxis: {
-          min: 0,
-          title: {
-            enabled: false,
-          }
-        },
-        tooltip: {
-          // head + 每个 point + footer 拼接成完整的 table
-          headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
-          pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
-            '<td style="padding:0"><b>{point.y}</b></td></tr>',
-          footerFormat: '</table>',
-          shared: true,
-          useHTML: true
-        },
-        plotOptions: {
-          column: {
-            borderWidth: 0
-          }
-        },
-        credits: {
-          enabled: false
-        },
-        series: [{
-
-          name: '上报',
-          data: []
-        }, {
-          name: '确认',
-          data: []
-        }, {
-          name: '签收',
-          data: []
-        }, {
-          name: '办结',
-          data: []
-        }, {
-          name: '归档',
-          data: []
-        }],
-        lang: {
-          downloadJPEG: "下载jpg图片",
-          downloadPDF: "下载PDF文件",
-          downloadPNG: "下载PNG图片",
-          downloadSVG: false,
-
-        },
-        exporting: {
-          enabled: false,
-          filename: "区县统计图",
-          buttons: {
-            contextButton: {
-              menuItems: [
-                "downloadPNG",
-                "downloadJPEG",
-                "downloadPDF"
-              ],
-            },
-          },
-        },
-      },
-      chart: null,
-    }
-  },
-  watch:{
-    daList:function(val){
-      val  = val&&val.length>0 ? [formatTimestampToDateString(val [0]),formatTimestampToDateString(val [1])]:[]
-      this.geteventdept(val);
-    }
-  },
-  mounted() {
-    // Build the chart
-    this.chart = Highcharts.chart(this.$refs.chartContainer, {
-
-      lang: {
-        downloadJPEG: "下载jpg图片",
-        downloadPDF: "下载PDF文件",
-        downloadPNG: "下载PNG图片",
-        downloadSVG: false,
-      },
-      exporting: {
-        enabled: false,
-        filename: "区县统计总数图",
-        buttons: {
-          contextButton: {
-            menuItems: [
-              "downloadPNG",
-              "downloadJPEG",
-              "downloadPDF"
-            ],
-          },
-        },
-      },
-      chart: {
-        plotBackgroundColor: null,
-        plotBorderWidth: null,
-        plotShadow: false,
-        type: 'pie'
-      },
-      title: {
-        text: '事件状态统计'
-      },
-      tooltip: {
-        pointFormat: '{series.name}: <b>{point.y}</b>'
-      },
-      plotOptions: {
-        pie: {
-          allowPointSelect: true,
-          cursor: 'pointer',
-          dataLabels: {
-            enabled: false
-          },
-          showInLegend: true
-        }
-      },
-      credits: {
-        enabled: false
-      },
-      series: [{
-        name: '数量',
-        colorByPoint: true,
-        data: [{
-          name: '上报',
-          data: [],
-          sliced: true,
-          selected: true
-        }, {
-          name: '确认',
-          data: []
-        }, {
-          name: '签收',
-          data: []
-        }, {
-          name: '办结',
-          data: []
-        }, {
-          name: '归档',
-          data: []
-        }]
-      }],
-    });
-    this.geteventdept();
-  },
-  props:['daList'],
-  methods: {
-    myCallback() {
-    },
-    geteventdept(val) {
-      getList(val).then((res) => {
-        if (res.code === 200) {
-          this.chartOptions.xAxis.categories = [];
-          this.chartOptions.series.forEach(series => series.data = []);
-          for (let i = 0; i < res.data.length; i++) {
-            this.chartOptions.xAxis.categories.push(res.data[i].name);
-            this.chartOptions.series[0].data.push(res.data[i].sb)
-            this.chartOptions.series[1].data.push(res.data[i].qr)
-            this.chartOptions.series[2].data.push(res.data[i].qs)
-            this.chartOptions.series[3].data.push(res.data[i].bj)
-            this.chartOptions.series[4].data.push(res.data[i].gd)
-          }
-          this.chart.series.forEach(series => series.data.data = []);
-          let sbTotal = 0;
-          let qrTotal = 0;
-          let qsTotal = 0;
-          let bjTotal = 0;
-          let gdTotal = 0;
-          for (let i = 0; i < res.data.length; i++) {
-            sbTotal += res.data[i].sb;
-            qrTotal += res.data[i].qr;
-            qsTotal += res.data[i].qs;
-            bjTotal += res.data[i].bj;
-            gdTotal += res.data[i].gd;
-            this.chart.series[0].data[0].update(sbTotal);
-            this.chart.series[0].data[1].update(qrTotal);
-            this.chart.series[0].data[2].update(qsTotal);
-            this.chart.series[0].data[3].update(bjTotal);
-            this.chart.series[0].data[4].update(gdTotal);
-          }
-        }
-      })
-    }
-  }
-}
-</script>

+ 0 - 12
event-ui/src/views/components/eventdept/highcharts.js

@@ -1,12 +0,0 @@
-import Highcharts from 'highcharts';
-import exporting from 'highcharts/modules/exporting';
-import highchartsMore from 'highcharts/highcharts-more';
-import highcharts3d from 'highcharts/highcharts-3d';
-import highchartsHeatmap from 'highcharts/modules/heatmap';
-
-exporting(Highcharts);
-highchartsMore(Highcharts);
-highcharts3d(Highcharts);
-highchartsHeatmap(Highcharts);
-
-export default Highcharts;

+ 0 - 120
event-ui/src/views/components/eventdept/scecond.vue

@@ -1,120 +0,0 @@
-<template>
-  <highcharts :options="chartOptions" :callback="myCallback"
-              style="height:280px;margin-top:30px;"></highcharts>
-</template>
-<script>
-import {Chart} from "highcharts-vue";
-import { getList1 } from '@/api/event/index'
-import { formatTimestampToDateString } from '@/utils/oaUtil'
-
-export default {
-  name: 'extend-graphDemo-highchartsColumn',
-  components: {
-    highcharts: Chart
-  },
-  props:['daList'],
-  data() {
-    return {
-      chartOptions: {
-        chart: {
-          type: 'column'
-        },
-        title: {
-          text: '行管局事件统计'
-        },
-        subtitle: {
-          text: ''
-        },
-        xAxis: {
-          categories: [],
-          crosshair: true
-        },
-        yAxis: {
-          min: 0,
-          title: {
-            enabled: false,
-          }
-        },
-        legend:{
-          enabled:false
-        },
-        tooltip: {
-          // head + 每个 point + footer 拼接成完整的 table
-          headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
-          pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
-            '<td style="padding:0"><b>{point.y}</b></td></tr>',
-          footerFormat: '</table>',
-          shared: true,
-          useHTML: true
-        },
-        plotOptions: {
-          column: {
-            borderWidth: 0
-          },
-          pie:{
-            allowPointSelect: true,
-            cursor:'pointer',
-            dataLabels:{
-              enabled:false
-            },
-            showInLegend: false  //筛选按钮
-          }
-        },
-        credits: {
-          enabled: false
-        },
-        series: [{
-          name: '总数',
-          data: []
-        }],
-        lang: {
-          downloadJPEG: "下载jpg图片",
-          downloadPDF: "下载PDF文件",
-          downloadPNG: "下载PNG图片",
-          downloadSVG: false,
-        },
-        exporting: {
-          enabled: false,
-          filename: "行管局统计图",
-          buttons: {
-            contextButton: {
-              menuItems: [
-                "downloadPNG",
-                "downloadJPEG",
-                "downloadPDF"
-              ],
-            },
-          },
-        },
-      }
-    }
-  },
-  mounted() {
-    this.geteventdept()
-  },
-  watch:{
-    daList:function(val){
-      val  = val&&val.length>0 ? [formatTimestampToDateString(val [0]),formatTimestampToDateString(val [1])]:[]
-      this.geteventdept(val);
-    }
-  },
-  methods: {
-    myCallback() {
-    },
-    geteventdept(val) {
-      getList1(val).then((res) => {
-        if (res.code === 200) {
-          this.chartOptions.xAxis.categories = [];
-          this.chartOptions.series.forEach(series => series.data = []);
-          // debugger
-          for (let i = 0; i < res.data.length; i++) {
-            this.chartOptions.xAxis.categories.push(res.data[i].name);
-            this.chartOptions.series[0].data.push(res.data[i].total)
-          }
-        }
-        console.log(res)
-      })
-    }
-  }
-}
-</script>

+ 466 - 0
event-ui/src/views/event/eventassess/fireInformation.vue

@@ -0,0 +1,466 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="96px">
+      <el-form-item label="事件名称" prop="eventName">
+        <el-input v-model="queryParams.eventName" placeholder="请输入事件名称" clearable style="width: 240px"
+                  @keyup.enter.native="handleQuery"/>
+      </el-form-item>
+      <el-form-item label="填报时间" prop="day">
+        <el-date-picker v-model="queryParams.day" type="date" placeholder="选择日期" value-format="yyyy-MM-dd">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="起火原因" prop="fireSource">
+        <el-input v-model="queryParams.table2.fireSource" placeholder="请输入起火原因" />
+      </el-form-item>
+      <el-form-item label="火险等级" prop="fireInsuranceLevel">
+        <el-input v-model="queryParams.table2.fireInsuranceLevel" placeholder="请输入火险等级" />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['event:fireInformation:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="eventcatalogueList">
+      <el-table-column label="事件名称" align="center" prop="eventName"/>
+      <el-table-column label="起火城市" align="center" prop="table2.address"/>
+      <el-table-column label="发现方式" align="center" prop="table2.foundType"/>
+      <el-table-column label="起火原因" align="center" prop="table2.fireSource"/>
+      <el-table-column label="火险等级" align="center" prop="table2.fireInsuranceLevel"/>
+      <el-table-column label="填报单位" align="center" prop="table1.reportUnit"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="getDetails(scope.row)"
+            v-hasPermi="['event:fireInformation:query']"
+          >详情
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+                @pagination="getList"/>
+
+  <!--  详情-->
+    <el-dialog :title="title" :visible.sync="open" width="1500px" class="form-style">
+      <el-form ref="form" :model="form"  label-width="130px">
+        <el-row :gutter="24">
+          <el-col :span="6">
+            <el-form-item label="事件名称" prop="eventName">
+              <el-input v-model="form.eventName" readonly/>
+            </el-form-item>
+            <el-form-item label="填报单位" prop="reportUnit">
+              <el-input v-model="form.table1.reportUnit" readonly/>
+            </el-form-item>
+            <el-form-item label="填报时间(年)" prop="reportTimeY">
+              <el-input v-model="form.table1.reportTimeY" readonly/>
+            </el-form-item>
+            <el-form-item label="填报时间(月)" prop="reportTimeM">
+              <el-input v-model="form.table1.reportTimeM" readonly/>
+            </el-form-item>
+            <el-form-item label="填报时间(日)" prop="reportTimeD">
+              <el-input v-model="form.table1.reportTimeD" readonly/>
+            </el-form-item>
+            <el-form-item label="森林火灾损失总计" prop="forestFireLossTotal">
+              <el-input v-model="form.table1.forestFireLossTotal" readonly/>
+            </el-form-item>
+            <el-form-item label="火灾损失总计" prop="fireLossTotal">
+              <el-input v-model="form.table1.fireLossTotal" readonly/>
+            </el-form-item>
+            <el-form-item label="成林蓄积" prop="forestArea">
+              <el-input v-model="form.table1.forestArea" readonly/>
+            </el-form-item>
+            <el-form-item label="成林价值" prop="forestPrice">
+              <el-input v-model="form.table1.forestPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="幼树株树" prop="treesNumber">
+              <el-input v-model="form.table1.treesNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="幼树价值" prop="treesPrice">
+              <el-input v-model="form.table1.treesPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="轻伤人数" prop="minorInjuriesNumber">
+              <el-input v-model="form.table1.minorInjuriesNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="轻伤费用" prop="minorInjuriesPrice">
+              <el-input v-model="form.table1.minorInjuriesPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="重伤人数" prop="seriouslyInjuredNumber">
+              <el-input v-model="form.table1.seriouslyInjuredNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="重伤费用" prop="seriouslyInjuredPrice">
+              <el-input v-model="form.table1.seriouslyInjuredPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="死亡人数" prop="deathNumber">
+              <el-input v-model="form.table1.deathNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="死亡费用" prop="deathPrice">
+              <el-input v-model="form.table1.deathPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="其他火灾损失" prop="elseFireLossPrice">
+              <el-input v-model="form.table1.elseFireLossPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="扑火费用合计" prop="blazesPriceTotal">
+              <el-input v-model="form.table1.blazesPriceTotal" readonly/>
+            </el-form-item>
+            <el-form-item label="人工天数" prop="artificialDays">
+              <el-input v-model="form.table1.artificialDays" readonly/>
+            </el-form-item>
+            <el-form-item label="人工费用" prop="artificialPrice">
+              <el-input v-model="form.table1.artificialPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="车辆数量" prop="vehicleNumber">
+              <el-input v-model="form.table1.vehicleNumber" readonly/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="汽车数量" prop="carNumber">
+              <el-input v-model="form.table1.carNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="车辆费用" prop="vehiclePrice">
+              <el-input v-model="form.table1.vehiclePrice" readonly/>
+            </el-form-item>
+            <el-form-item label="飞机数量" prop="planeNumber">
+              <el-input v-model="form.table1.planeNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="飞机费用" prop="planePrice">
+              <el-input v-model="form.table1.planePrice" readonly/>
+            </el-form-item>
+            <el-form-item label="其他扑火费用" prop="elseBlazesPrice">
+              <el-input v-model="form.table1.elseBlazesPrice" readonly/>
+            </el-form-item>
+            <el-form-item label="备注" prop="note">
+              <el-input v-model="form.table1.note" readonly/>
+            </el-form-item>
+            <el-form-item label="起火时间" prop="fireTime">
+              <el-input v-model="form.table2.fireTime" readonly/>
+            </el-form-item>
+            <el-form-item label="发现时间" prop="foundTime">
+              <el-input v-model="form.table2.foundTime" readonly/>
+            </el-form-item>
+            <el-form-item label="扑灭时间" prop="blazesTime">
+              <el-input v-model="form.table2.blazesTime" readonly/>
+            </el-form-item>
+            <el-form-item label="起火城市" prop="address">
+              <el-input v-model="form.table2.address" readonly/>
+            </el-form-item>
+            <el-form-item label="起火地点" prop="firePlace">
+              <el-input v-model="form.table2.firePlace" readonly/>
+            </el-form-item>
+            <el-form-item label="发现方式" prop="foundType">
+              <el-input v-model="form.table2.foundType" readonly/>
+            </el-form-item>
+            <el-form-item label="东经(度)" prop="longitudeD">
+              <el-input v-model="form.table2.longitudeD" readonly/>
+            </el-form-item>
+            <el-form-item label="东经(分)" prop="longitudeM">
+              <el-input v-model="form.table2.longitudeM" readonly/>
+            </el-form-item>
+            <el-form-item label="东经(秒)" prop="longitudeS">
+              <el-input v-model="form.table2.longitudeS" readonly/>
+            </el-form-item>
+            <el-form-item label="北纬(度)" prop="latitudeD">
+              <el-input v-model="form.table2.latitudeD" readonly/>
+            </el-form-item>
+            <el-form-item label="北纬(分)" prop="latitudeM">
+              <el-input v-model="form.table2.latitudeM" readonly/>
+            </el-form-item>
+            <el-form-item label="北纬(秒)" prop="latitudeS">
+              <el-input v-model="form.table2.latitudeS" readonly/>
+            </el-form-item>
+            <el-form-item label="起火原因" prop="fireSource">
+              <el-input v-model="form.table2.fireSource" readonly/>
+            </el-form-item>
+            <el-form-item label="火灾种类" prop="fireType">
+              <el-input v-model="form.table2.fireType" readonly/>
+            </el-form-item>
+            <el-form-item label="火灾等级" prop="fireLevel">
+              <el-input v-model="form.table2.fireLevel" readonly/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="总面积合计" prop="areaTotal">
+              <el-input v-model="form.table2.areaTotal" readonly/>
+            </el-form-item>
+            <el-form-item label="森林面积损失合计" prop="forestLossAreaTotal">
+              <el-input v-model="form.table2.forestLossAreaTotal" readonly/>
+            </el-form-item>
+            <el-form-item label="原始林面积" prop="originalForestArea">
+              <el-input v-model="form.table2.originalForestArea" readonly/>
+            </el-form-item>
+            <el-form-item label="人工林面积" prop="artificialForestArea">
+              <el-input v-model="form.table2.artificialForestArea" readonly/>
+            </el-form-item>
+            <el-form-item label="出动总人数" prop="peopleTotal">
+              <el-input v-model="form.table2.peopleTotal" readonly/>
+            </el-form-item>
+            <el-form-item label="扑火队人数" prop="blazesTeamNumber">
+              <el-input v-model="form.table2.blazesTeamNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="森警人数" prop="policeNumber">
+              <el-input v-model="form.table2.policeNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="军队人数" prop="armyNumber">
+              <el-input v-model="form.table2.armyNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="群众人数" prop="crowdNumber">
+              <el-input v-model="form.table2.crowdNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="风力灭火机" prop="windExtinguisher">
+              <el-input v-model="form.table2.windExtinguisher" readonly/>
+            </el-form-item>
+            <el-form-item label="二号工具" prop="secondTool">
+              <el-input v-model="form.table2.secondTool" readonly/>
+            </el-form-item>
+            <el-form-item label="水枪" prop="waterGun">
+              <el-input v-model="form.table2.waterGun" readonly/>
+            </el-form-item>
+            <el-form-item label="其他" prop="elseThings">
+              <el-input v-model="form.table2.elseThings" readonly/>
+            </el-form-item>
+            <el-form-item label="林木组成" prop="forestComposition">
+              <el-input v-model="form.table2.forestComposition" readonly/>
+            </el-form-item>
+            <el-form-item label="林令" prop="forestToken">
+              <el-input v-model="form.table2.forestToken" readonly/>
+            </el-form-item>
+            <el-form-item label="疏密度" prop="porosities">
+              <el-input v-model="form.table2.porosities" readonly/>
+            </el-form-item>
+            <el-form-item label="天气" prop="weather">
+              <el-input v-model="form.table2.weather" readonly/>
+            </el-form-item>
+            <el-form-item label="气温" prop="temperature">
+              <el-input v-model="form.table2.temperature" readonly/>
+            </el-form-item>
+            <el-form-item label="火险等级" prop="fireInsuranceLevel">
+              <el-input v-model="form.table2.fireInsuranceLevel" readonly/>
+            </el-form-item>
+            <el-form-item label="风力等级" prop="windLevel">
+              <el-input v-model="form.table2.windLevel" readonly/>
+            </el-form-item>
+            <el-form-item label="风向" prop="windDirection">
+              <el-input v-model="form.table2.windDirection" readonly/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="指挥扑火人单位" prop="commandUnit">
+              <el-input v-model="form.table2.commandUnit" readonly/>
+            </el-form-item>
+            <el-form-item label="指挥扑火人姓名" prop="commandName">
+              <el-input v-model="form.table2.commandName" readonly/>
+            </el-form-item>
+            <el-form-item label="指挥扑火人职务" prop="commandPosition">
+              <el-input v-model="form.table2.commandPosition" readonly/>
+            </el-form-item>
+            <el-form-item label="调查人单位" prop="surveyUnit">
+              <el-input v-model="form.table2.surveyUnit" readonly/>
+            </el-form-item>
+            <el-form-item label="调查人姓名" prop="surveyName">
+              <el-input v-model="form.table2.surveyName" readonly/>
+            </el-form-item>
+            <el-form-item label="调查人职务" prop="surveyPosition">
+              <el-input v-model="form.table2.surveyPosition" readonly/>
+            </el-form-item>
+            <el-form-item label="肇事人姓名" prop="accidentName">
+              <el-input v-model="form.table2.accidentName" readonly/>
+            </el-form-item>
+            <el-form-item label="肇事人性别" prop="accidentSex">
+              <el-input v-model="form.table2.accidentSex" readonly/>
+            </el-form-item>
+            <el-form-item label="肇事人年龄" prop="accidentAge">
+              <el-input v-model="form.table2.accidentAge" readonly/>
+            </el-form-item>
+            <el-form-item label="肇事人职业" prop="accidentPosition">
+              <el-input v-model="form.table2.accidentPosition" readonly/>
+            </el-form-item>
+            <el-form-item label="肇事人单位或住址" prop="accidentUnit">
+              <el-input v-model="form.table2.accidentUnit" readonly/>
+            </el-form-item>
+            <el-form-item label="处理方式" prop="dealType">
+              <el-input v-model="form.table2.dealType" readonly/>
+            </el-form-item>
+            <el-form-item label="处理人数" prop="dealNumber">
+              <el-input v-model="form.table2.dealNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="刑事处罚人数" prop="criminalDealNumber">
+              <el-input v-model="form.table2.criminalDealNumber" readonly/>
+            </el-form-item>
+            <el-form-item label="肇事人处理情况" prop="accidentDealSituation">
+              <el-input v-model="form.table2.accidentDealSituation" readonly/>
+            </el-form-item>
+            <el-form-item label="责任人追查情况" prop="responsibilityDealSituation">
+              <el-input v-model="form.table2.responsibilityDealSituation" readonly/>
+            </el-form-item>
+            <el-form-item label="领导责任追查情况" prop="leadershipDealSituation">
+              <el-input v-model="form.table2.leadershipDealSituation" readonly/>
+            </el-form-item>
+            <el-form-item label="县填表人" prop="townForm">
+              <el-input v-model="form.table2.townForm" readonly/>
+            </el-form-item>
+            <el-form-item label="县审核人" prop="townAudit">
+              <el-input v-model="form.table2.townAudit" readonly/>
+            </el-form-item>
+            <el-form-item label="市填表人" prop="cityForm">
+              <el-input v-model="form.table2.cityForm" readonly/>
+            </el-form-item>
+            <el-form-item label="市审核人" prop="cityAudit">
+              <el-input v-model="form.table2.cityAudit" readonly/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import {
+  list,
+  getDetails
+} from "@/api/event/eventassess/fireInformation";
+export default {
+  name: "Eventcatalogue",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 显示新增按钮
+      addBtn: false,
+      // 总条数
+      total: 0,
+      // 选中数组
+      ids: [],
+      eventcatalogueList: [],
+      eventCode: null,
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 表单参数
+      form: {
+        table1:{},
+        table2:{}
+      },
+      fileNames: [],
+      openLogSee: false,
+      reverse: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        table2: {
+          fireSource: undefined,
+          fireInsuranceLevel: undefined,
+        },
+        eventName: undefined,
+        day: this.getNowTime(),
+      },
+    };
+  },
+  created() {
+
+  },
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.loading = true
+      console.log(this.queryParams)
+      list(this.queryParams).then(response => {
+        this.eventcatalogueList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        dataStatus: "0",
+        eventName: undefined,
+        eventDescription: undefined,
+        eventType: undefined,
+        eventTypeXl: undefined,
+        hgjDeptId: undefined,
+        hgjDeptName: undefined,
+        deptId: undefined,
+        deptName: undefined,
+        longitude: undefined,
+        latitude: undefined,
+        fireRadius: undefined,
+        reserve: undefined,
+        address: undefined,
+        fileUrl: undefined,
+        fileName: undefined,
+        eventTypeXlName: undefined,
+        attach: []
+      };
+      this.fileNames = [];
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.queryParams.day = this.getNowTime();
+      this.queryParams.table2.fireSource = null;
+      this.queryParams.table2.fireInsuranceLevel = null;
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    getNowTime() {
+      var now = new Date();
+      var year1 = now.getFullYear(); //得到年份
+      var month1 = now.getMonth(); //得到月份
+      var date1 = now.getDate(); //得到日期
+      month1 = month1 + 1;
+      month1 = month1.toString().padStart(2, "0");
+      date1 = date1.toString().padStart(2, "0");
+      now.setTime(now.getTime() + 24 * 60 * 60 * 1000); //得到明日
+      return `${year1}-${month1}-${date1}`;
+    },
+    /** 详情按钮操作 */
+    getDetails(row) {
+      this.reset();
+      getDetails(row.eventCode).then(res => {
+        this.open = true;
+        this.title = "详情";
+        this.form = res.data;
+        this.form.table1 = res.data.table1
+        this.form.table2 = res.data.table2
+        // JSON.parse(res.data.TABLE)
+        this.loading = false;
+      });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('center-event/fireInformation/export', {
+        ...this.queryParams
+      }, `林业灾后评估_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 14 - 23
event-ui/src/views/event/eventhandling/index.vue

@@ -5,6 +5,13 @@
         <el-input v-model="queryParams.eventName" placeholder="请输入事件名称" clearable style="width: 240px"
                   @keyup.enter.native="handleQuery"/>
       </el-form-item>
+      <el-form-item label="事件状态" prop="eventStatusValue">
+        <el-select v-model="queryParams.eventStatusValue" placeholder="请选择事件状态" clearable style="width: 240px"
+                   @keyup.enter.native="handleQuery">
+          <el-option v-for="dict in dict.type.forest_event_status" :key="dict.value" :label="dict.label"
+                     :value="dict.value" v-if="dict.value == 'forest_event_status_1' || dict.value == 'forest_event_status_5'"/>
+        </el-select>
+      </el-form-item>
       <el-form-item label="上报时间" prop="day">
         <el-date-picker v-model="queryParams.day" type="date" placeholder="选择日期" value-format="yyyy-MM-dd">
         </el-date-picker>
@@ -157,7 +164,7 @@ import TcPlayer from '@/components/TcPlayer'; // 视频预览
 export default {
   name: "Eventcatalogue",
   components: {TcPlayer},
-  dicts: [],
+  dicts: ['forest_event_status'],
   data() {
     return {
       sendDeptId: null,//签收部门/发起部门
@@ -189,7 +196,6 @@ export default {
       detailSee: true,
       // 表单参数
       form: {},
-      form1:{},
       fileNames: [],
       openLogSee: false,
       reverse: false,
@@ -210,7 +216,7 @@ export default {
           {required: true, message: "审核意见不能为空", trigger: "blur"}
         ],
         attach: [
-          {required: true, message: "审核意见不能为空", trigger: "blur"}
+          {required: true, message: "附件不能为空", trigger: "blur"}
         ],
       },
     };
@@ -274,7 +280,6 @@ export default {
     },
     //审核
     submitForm(isExamine) {
-      console.log(this.form)
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (undefined != this.form.img) {
@@ -289,10 +294,6 @@ export default {
             }
           }
           this.form.isExamine = isExamine
-          this.form.eventCode = this.form1.eventCode
-          this.form.eventName = this.form1.eventName
-          this.form.id = this.form1.id
-          this.form.version = this.form1.version
           eventExamine(this.form).then(response =>{
             this.$modal.msgSuccess("审核成功");
             this.open = false;
@@ -382,23 +383,13 @@ export default {
     },
     /** 审核按钮操作 */
     auditing(row) {
+      this.reset();
       this.open = true;
       this.title = "事件审核";
-      this.form = {};
-      this.form1 = {};
-      this.form1.eventCode = row.eventCode
-      getEventDetail(this.form1).then(response => {
-        this.form1 = response.data.catalogue;
-      });
-    },
-    //归档
-    documentation(row) {
-      this.open = true;
-      this.title = "事件审核";
-      this.form1.eventCode = row.eventCode
-      getEventDetail(this.form1).then(response => {
-        this.form1 = response.data.catalogue;
-      });
+      this.form.eventCode = row.eventCode
+      this.form.eventName = row.eventName
+      this.form.id = row.eventId
+      this.form.version = row.version
     },
   }
 };

+ 108 - 14
event-ui/src/views/index.vue

@@ -1,48 +1,142 @@
-
 <template>
   <div v-if="show">
     <el-row>
       <el-col :span="8" style="float: right; padding-right: 12px;margin-right: 0px;padding-top: 5px;margin-top: 3px">
+        <el-button @click="clearDates" style="float: right; margin-right: 10px;">重置</el-button>
         <el-date-picker v-model="timeArr"
                         type="daterange" align="right"
                         unlink-panels range-separator="至"
                         start-placeholder="开始日期"
                         end-placeholder="结束日期"
+                        :clearable="false"
+                        @change="resetData"
                         style="float: right; padding-right: 12px;margin-right: 0px">
         </el-date-picker>
       </el-col>
     </el-row>
-    <el-row>
-      <el-col >
-        <div style="margin: 10px; padding: 10px; border: 2px solid #CCCCCC; border-radius: 20px;">
-          <frist :daList="timeArr"/>
-        </div>
-      </el-col>
-    </el-row>
-    <div style="margin: 10px; padding: 10px; border: 2px solid #CCCCCC; border-radius: 20px;">
-      <second :daList="timeArr"/>
+
+    <div style="margin: 10px; padding: 5px; border: 2px solid #CCCCCC; border-radius: 20px; height: 370px">
+      <multi-bar-and-pie-chart
+        ref="multiBarAndPieChart"
+        :multiBarData="first.multiBarData"
+        :x-axis-data="first.xAxisData"
+        :legend-data="first.legendData"
+        :colors="first.colors"
+        :pie-data="first.pieData"
+      ></multi-bar-and-pie-chart>
+    </div>
+    <div style="margin: 10px 10px 10px 10px; padding: 10px; border: 2px solid #cccccc; border-radius: 20px; position: relative">
+      <el-button icon="el-icon-refresh" size="mini" style="float: right; margin-right: 10px;margin-top: 10px; z-index: 999; position: absolute;right: 10px;top: 0px" @click="handleRestoreClick"></el-button>
+<!--      <button style="float: right; margin-right: 10px;margin-top: 10px; z-index: 999; position: absolute;right: 10px;top: 0px" @click="handleRestoreClick">恢复</button>-->
+      <single-bar-chart style="z-index: -1"
+        ref="singleBarChart"
+        :bar-data="second.barData"
+        :x-axis-data="second.xAxisData"
+        :y-axis-name="second.yAxisName"
+        onRestoreClick={this.handleRestoreClick}
+      ></single-bar-chart>
     </div>
   </div>
 </template>
 <script>
-import second from "./components/eventdept/scecond.vue"
-import frist from "./components/eventdept/frist.vue"
+import MultiBarAndPieChart from "@/views/components/eventdept/MultiBarAndPieChart.vue";
+import SingleBarChart from "@/views/components/eventdept/SingleBarChart.vue";
+import {getList, getList1} from '@/api/event/index'
+import Button from "@/dahua/lib/iview";
 
 export default {
+  components: {Button, MultiBarAndPieChart, SingleBarChart},
   data() {
     return {
       activeName: 'first',
       show: false,
       deptId: '',
       chart: null,
-      timeArr:[],
+      pickedDate: null,
+      timeArr: ['2023-06-13', this.getCurrentDateTime(new Date())], // 初始化时设置时间为2023-06-13 到 当天
+      first: {
+        multiBarData: [],
+        xAxisData: [],
+        legendData: ['上报', '确认', '签收', '办结', '归档'],
+        pieData: [],
+      },
+      second: {
+        barData: [],
+        xAxisData: [],
+        yAxisName: '数量'
+      }
     }
   },
-  components: {frist, second},
   methods: {
+    clearDates() {
+      this.timeArr = ['2023-06-13', this.getCurrentDateTime(new Date())]; // 设置日期恢复默认值
+      this.resetData();
+    },
+    getFirstList(timeArr) {
+      getList(timeArr).then((res) => {
+        if (res.code === 200) {
+          this.$nextTick(() => {
+            // 提取res.data中的name属性作为x轴数据
+            this.first.xAxisData = res.data.map(item => item.name);
+
+            // 初始化multiBarData为一个空数组
+            this.first.multiBarData = [];
+
+            // 遍历res.data,将不同属性的数据分别存入multiBarData中
+            ['sb', 'qr', 'qs', 'bj', 'gd'].forEach(property => {
+              this.first.multiBarData.push(res.data.map(item => item[property]));
+            });
+
+            // 计算各属性的和并存入pieData
+            this.first.pieData = this.first.legendData.map((name, index) => ({
+              value: this.first.multiBarData[index].reduce((accumulator, currentValue) => accumulator + currentValue, 0),
+              name
+            }));
+          });
+          const sub = this.$refs.multiBarAndPieChart
+          sub.initMultiBarChart();
+          sub.initPieChart();
+        }
+      })
+    },
+    getPieList(timeArr,resetFlag) {
+      getList1(timeArr, resetFlag).then(res => {
+        this.$nextTick(() => {
+          this.second.xAxisData = res.data.map(item => item.name)
+          this.second.barData = res.data.map(item => item.total)
+        })
+        this.$refs.singleBarChart.initSingleBarChart()
+      })
+    },
+    resetData() {
+      this.timeArr[0] = this.getCurrentDateTime(this.timeArr[0])
+      this.timeArr[1] = this.getCurrentDateTime(this.timeArr[1])
+      this.getFirstList(this.timeArr);
+      this.getPieList(this.timeArr, false);
+    },
+
+    getCurrentDateTime(date) {
+      const currentDate = date;
+      const year = currentDate.getFullYear(); // 获取年份
+      const month = String(currentDate.getMonth() + 1).padStart(2, '0'); // 获取月份,并补零
+      const day = String(currentDate.getDate()).padStart(2, '0'); // 获取日期,并补零
+
+      // 拼接成所需格式
+      const formattedDateTime = `${year}-${month}-${day}`;
+
+      return formattedDateTime;
+    },
+    handleRestoreClick (){
+      // 在这里处理 restore 按钮点击事件
+      console.log('Restore button clicked');
+      this.getPieList(this.timeArr, true)
+      // 可以在这里执行相应的逻辑,例如重新获取数据或者重新设置图表配置项
+    },
   },
   created() {
     this.show = [365].indexOf(this.$store.state.user.dept.deptId) !== -1;
+    this.getFirstList(this.timeArr);
+    this.getPieList(this.timeArr, false);
   },
 }
 </script>

+ 6 - 6
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CenterEventAppController.java

@@ -35,12 +35,12 @@ public class CenterEventAppController extends BaseController {
      */
     @PostMapping("/listByApp")
     public R listByApp(@Validated @RequestBody AppEventSalVO appEventSalVO) {
-        if ("forest_event_status_7".equals(appEventSalVO.getEventStatusValue())) {
-            R<Boolean> result = SpringUtils.getBean(RemoteDeptService.class).deptParentsHasBureau(SecurityUtils.getLoginUser().getSysUser().getDeptId());
-            if (result.getData()) {
-                appEventSalVO.setEventStatusValue("-1");// 是行管局,只看签收之后的事件
-            }
-        }
+//        if ("forest_event_status_7".equals(appEventSalVO.getEventStatusValue())) {
+//            R<Boolean> result = SpringUtils.getBean(RemoteDeptService.class).deptParentsHasBureau(SecurityUtils.getLoginUser().getSysUser().getDeptId());
+//            if (result.getData()) {
+//                appEventSalVO.setEventStatusValue("-1");// 是行管局,只看签收之后的事件
+//            }
+//        }
         return R.ok(centerEventAppService.listByApp(appEventSalVO));
     }
 

+ 25 - 6
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTDownloadsController.java

@@ -14,12 +14,10 @@ import com.sooka.sponest.event.centereventteventcatalogue.domain.CentereventTDow
 import com.sooka.sponest.event.centereventteventcatalogue.service.ICentereventTDownloadsService;
 import com.sooka.sponest.event.centereventteventcatalogue.service.ICentereventTEventcatalogueService;
 import com.sooka.sponest.event.utils.EventConstants;
-import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -39,6 +37,30 @@ public class CentereventTDownloadsController extends BaseController {
     @Autowired
     private ICentereventTEventcatalogueService centereventTEventcatalogueService;
 
+//    @Autowired
+//    private RemoteMessageService remoteMessageService;
+//
+//    @PostMapping("/testMessage")
+//    public AjaxResult testMessage() throws Exception {
+//        MessageVo vo=new MessageVo();
+//        vo.setType("1");
+//        vo.setEventCode("testcode");
+//        vo.setEventName("test名称");
+//        vo.setPhones(new String[]{"13756659676"});
+//        vo.setContent(new String []{"2023年8月10日 16:15:48 测试短信平台,请联系:演示,联系电话:18843065853"});
+////        vo.setSignName("态势感知平台网");
+//        remoteMessageService.sendTxMessage(vo);
+//        System.out.println("==============>");
+//        MessageVo vo1=new MessageVo();
+//        vo1.setType("2");
+//        vo1.setEventCode("testcode");
+//        vo1.setEventName("test名称");
+//        vo1.setPhones(new String[]{"13756659676"});
+//        vo1.setContent(new String []{"四平市伊通县河源镇后倒木屯东北茨牙水库2023-07-27 06:28:21钓鱼检测","/j/961"});
+//        remoteMessageService.sendTxMessage(vo1);
+//        return AjaxResult.success();
+//    }
+
     /**
      * 查询【请填写功能名称】列表
      */
@@ -59,10 +81,7 @@ public class CentereventTDownloadsController extends BaseController {
     }
 
     @PostMapping("/downloadsMonth")
-    public AjaxResult downloadsMonth(@RequestBody Map<String, Object> params) {
-        Map<String, Object> param = new HashMap<>();
-        param.put("monthValueStart", MapUtils.getString(params, "monthValueStart"));
-        param.put("monthValueEnd", MapUtils.getString(params, "monthValueEnd"));
+    public AjaxResult downloadsMonth(@RequestBody Map<String, Object> params) throws Exception {
         centereventTEventcatalogueService.downloadsCommon(params);
         return AjaxResult.success();
     }

+ 22 - 54
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTEventcatalogueController.java

@@ -1,6 +1,5 @@
 package com.sooka.sponest.event.centereventteventcatalogue.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.ruoyi.common.core.constant.HttpStatus;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.SpringUtils;
@@ -32,13 +31,13 @@ import com.sooka.sponest.event.remoteapi.domain.CenterdataTAttach;
 import com.sooka.sponest.event.utils.EventProducerUtil;
 import com.sooka.sponest.event.utils.ExcelUtil;
 import com.sooka.sponest.event.utils.RemoteApiUtil;
-import com.sooka.sponest.exchange.api.RemoteExchangeService;
-import com.sooka.sponest.exchange.api.domain.FireEventVO;
 import com.sooka.sponest.monitor.api.RemoteMonitorService;
 import com.sooka.sponest.monitor.api.domain.CenterdataTAidevicedept;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -76,6 +75,10 @@ public class CentereventTEventcatalogueController extends BaseController {
     @Autowired
     private ICentereventTDownloadsService centereventTDownloadsService;
 
+    @Autowired
+    @Qualifier("asyncTaskExecutor")
+    private ThreadPoolTaskExecutor asyncTaskExecutor;
+
     /**
      * 查询事件目录列表
      */
@@ -224,7 +227,6 @@ public class CentereventTEventcatalogueController extends BaseController {
                 future.get();
             } catch (InterruptedException e) {
                 logger.error(e.getMessage());
-                Thread.currentThread().interrupt();
             } catch (ExecutionException e) {
                 logger.error(e.getMessage());
             }
@@ -283,22 +285,22 @@ public class CentereventTEventcatalogueController extends BaseController {
         } catch (Exception e) {
             logger.error(e.getMessage());
         }
-        // 确认时更改附件路径
-        try {
-            if ("qr".equals(centereventtDeptEventBO.getEventStatus())) {
-                CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
-                    Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
-                    paramMap.put("czlx", centereventtDeptEventBO.getCzlx());
-                    CentereventTFireLog log = centereventTFireLogService.selectFirstCentereventTFireLogByEventCode(centereventtDeptEventBO.getEventCode());
-                    paramMap.put("busId", log.getId());
-                    paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
-                    remoteDataService.updateAttach(paramMap);
-                });
-                future.get();
-            }
-        } catch (Exception e) {
-            logger.error(e.getMessage());
-        }
+//        // 确认时更改附件路径
+//        try {
+//            if ("qr".equals(centereventtDeptEventBO.getEventStatus())) {
+//                CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
+//                    Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
+//                    paramMap.put("czlx", centereventtDeptEventBO.getCzlx());
+//                    CentereventTFireLog log = centereventTFireLogService.selectFirstCentereventTFireLogByEventCode(centereventtDeptEventBO.getEventCode());
+//                    paramMap.put("busId", log.getId());
+//                    paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
+//                    remoteDataService.updateAttach(paramMap);
+//                }/*, asyncTaskExecutor*/);
+//                future.get();
+//            }
+//        } catch (Exception e) {
+//            logger.error(e.getMessage());
+//        }
         // 办结时推送可视化消息
         if ("bj".equals(centereventtDeptEventBO.getEventStatus())) {
             List<Long> deptIds = SpringUtils.getBean(RemoteDeptService.class).findParentIdByChildDeptIdAndParentType(centereventTEventcatalogue.getDeptId(), "sys_dept_type_17,sys_dept_type_18").getData();
@@ -379,38 +381,4 @@ public class CentereventTEventcatalogueController extends BaseController {
             return AjaxResult.success(centereventTEventcatalogueService.eventhandleDownload(id));
         }
     }
-
-    /**
-     * 119事件推送
-     *
-     * @param fireEventVO
-     * @return
-     */
-    @PostMapping("/push3rdSystemEvent")
-    public R push3rdSystemEvent(@Validated @RequestBody FireEventVO fireEventVO) {
-        if (StringUtils.isBlank(fireEventVO.getEventId()) || StringUtils.isBlank(fireEventVO.getEventCode())) {
-            return R.ok(HttpStatus.UNSUPPORTED_TYPE, "参数异常");
-        }
-        // 101森林火情、102秸秆禁烧、103建筑物火情、1002消防占道、510水压监测异常、1001电瓶车进电梯
-        if (!Arrays.asList("101", "102", "103", "510", "1001", "1002", "1003", "1004").contains(fireEventVO.getEventType())) {
-            return R.ok(HttpStatus.UNSUPPORTED_TYPE, "无法推送该类型事件");
-        }
-        List<String> pictures = fireEventVO.getEventPicture().stream().map(item -> item.substring(item.indexOf("group1"))).collect(Collectors.toList());
-        fireEventVO.setPictureUrlList(pictures);
-        R result = SpringUtils.getBean(RemoteExchangeService.class).receiveEventData(fireEventVO);
-        logger.info("事件接受参数:{}, 事件结果返回:{}", JSON.toJSONString(fireEventVO), JSON.toJSONString(result));
-        if (200 == result.getCode()) {
-            // log
-            CentereventTFireLog log = new CentereventTFireLog();
-            log.setId(IdUtils.simpleUUID());
-            log.setEventCode(fireEventVO.getEventCode());
-            log.setLogContent(SecurityUtils.getLoginUser().getSysUser().getNickName() + "推送该事件至119接处警");
-            centereventTFireLogService.insertCentereventTFireLog(log);
-            CentereventTEventcatalogue centereventTEventcatalogue = new CentereventTEventcatalogue();
-            centereventTEventcatalogue.setId(fireEventVO.getEventId());
-            centereventTEventcatalogue.setIsPush("1");
-            return R.ok(centereventTEventcatalogueService.updateCentereventTEventcatalogue(centereventTEventcatalogue));
-        }
-        return result;
-    }
 }

+ 4 - 19
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/CenterEventAppServiceImpl.java

@@ -2,7 +2,6 @@ package com.sooka.sponest.event.centereventteventcatalogue.service.impl;
 
 import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.common.core.utils.file.FilePrefixUtils;
 import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
 import com.ruoyi.common.datascope.base.service.BaseService;
 import com.ruoyi.common.security.utils.SecurityUtils;
@@ -21,19 +20,18 @@ import com.sooka.sponest.event.centereventtfirelog.domain.CentereventTFireLog;
 import com.sooka.sponest.event.centereventtfirelog.service.ICentereventTFireLogService;
 import com.sooka.sponest.event.remoteapi.RemoteDataService;
 import com.sooka.sponest.event.remoteapi.domain.CenterdataTAttach;
-import com.sooka.sponest.event.utils.RemoteApiUtil;
 import com.sooka.sponest.monitor.api.RemoteMonitorService;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import static com.sooka.sponest.event.utils.EventConstants.*;
+import static com.sooka.sponest.event.utils.EventConstants.FILE_DOWNLOAD;
+import static com.sooka.sponest.event.utils.EventConstants.FILE_PREFIX_LOCAL;
 
 /**
  * 事件中心-移动端Service业务层处理
@@ -88,25 +86,11 @@ public class CenterEventAppServiceImpl extends BaseService implements ICenterEve
                 bo.setDisableFlag("1");// 是
             }
         }
-        Map<String, String> keyMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_DOWNLOAD, FILE_PREFIX_APP, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
         bo.setUrl("");
         CentereventTFireLog centereventTFireLog = centereventTFireLogService.selectFirstCentereventTFireLogByEventCode(bo.getEventCode());
         List<CenterdataTAttach> centerdataTAttaches = remoteDataService.urlAttch(centereventTFireLog.getId()).getData();
-        String token = RemoteApiUtil.getInstance().getToken();// 大华token
-        for (CenterdataTAttach centerdataTAttach : centerdataTAttaches) {
-            String urlPrefix = FilePrefixUtils.getAPPUrlPrefix(centerdataTAttach.getBusSource(), keyMap);
-            if ("DH_1".equals(centerdataTAttach.getBusSource())) {
-                centerdataTAttach.setAttachPath(urlPrefix.replace("10.53.0.37", "202.98.7.134") + centerdataTAttach.getAttachPath() + "?token=" + token);
-            } else {
-                centerdataTAttach.setAttachPath(urlPrefix.replace("10.53.0.35:38499", "202.98.7.130:38494") + centerdataTAttach.getAttachPath());
-            }
-        }
         bo.setAttachs(centerdataTAttaches);
         List<CenterdataTAttach> centerdataTAttaches1 = remoteDataService.urlAttchMpF(centereventTFireLog.getId()).getData();
-        for (CenterdataTAttach centerdataTAttach : centerdataTAttaches1) {
-            String urlPrefix = FilePrefixUtils.getAPPUrlPrefix(centerdataTAttach.getBusSource(), keyMap);
-            centerdataTAttach.setAttachPath(urlPrefix + centerdataTAttach.getAttachPath());
-        }
         bo.setAttachsMpf(centerdataTAttaches1);
 
         VisuForestCloudMapVO sal = new VisuForestCloudMapVO();
@@ -116,7 +100,8 @@ public class CenterEventAppServiceImpl extends BaseService implements ICenterEve
             StringBuilder newDiles = new StringBuilder();
             String url = MapUtils.getString(asl, FILE_PREFIX_LOCAL);
             String name = MapUtils.getString(asl, "fileName");
-            newDiles.append(keyMap.get(FILE_DOWNLOAD) + "Download?fileName=" + name + "&&group=" + url.substring(0, url.indexOf('/')) + "&&path=" + url.substring(url.indexOf('/') + 1));
+            String prefix = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigKey(FILE_DOWNLOAD).getData();
+            newDiles.append(prefix + "Download?fileName=" + name + "&&group=" + url.substring(0, url.indexOf('/')) + "&&path=" + url.substring(url.indexOf('/') + 1));
             asl.put(FILE_PREFIX_LOCAL, newDiles);
             bo.setAppAttachSal(asl);
         }

+ 28 - 8
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/CentereventTEventcatalogueServiceImpl.java

@@ -242,6 +242,13 @@ public class CentereventTEventcatalogueServiceImpl extends BaseService implement
         centereventDeptEvent.setCreateBy(SecurityUtils.getUserId().toString());
         centereventDeptEvent.setCreateName(SecurityUtils.getLoginUser().getSysUser().getNickName());
         centereventDeptEventService.insertCentereventTDeptEvent(centereventDeptEvent);
+//        if (StringUtils.isNotEmpty(centereventTEventcatalogue.getHgjDeptId())) {
+//            centereventDeptEvent.setId(IdUtils.fastSimpleUUID());
+//            centereventDeptEvent.setDeptId(Long.parseLong(centereventTEventcatalogue.getHgjDeptId()));
+//            centereventDeptEvent.setDeptName(centereventTEventcatalogue.getHgjDeptName());
+//            centereventDeptEvent.setDeptHandleType(DEPT_HANDLE_TYPE_3);
+//            centereventDeptEventService.insertCentereventTDeptEvent(centereventDeptEvent);
+//        }
         // 市级行管局
         CentereventTEventtypemapdept centereventTEventtypemapdept = new CentereventTEventtypemapdept();
         centereventTEventtypemapdept.setEventTypeValue(centereventTEventcatalogue.getEventTypeXl());
@@ -320,6 +327,7 @@ public class CentereventTEventcatalogueServiceImpl extends BaseService implement
     private void updateSublistByEventtype(CentereventtDeptEventBO centereventtDeptEventBO) {
         // 子表信息
         CentereventTEventtype centereventTEventtype = centereventTEventtypeService.selectCentereventTEventtypeById(centereventtDeptEventBO.getEventType());
+//        if ("1".equals(centereventTEventtype.getParentId())) {
         CentereventTFireEvent centereventTFireEvent = new CentereventTFireEvent();
         centereventTFireEvent.setId(IdUtils.simpleUUID());
         centereventTFireEvent.setEventCode(centereventtDeptEventBO.getEventCode());
@@ -331,6 +339,7 @@ public class CentereventTEventcatalogueServiceImpl extends BaseService implement
         centereventTFireEvent.setDeptId(Long.parseLong(centereventtDeptEventBO.getDeptId()));
         centereventTFireEvent.setDeptName(centereventtDeptEventBO.getDeptName());
         centereventTFireEventMapper.insertCentereventTFireEvent(centereventTFireEvent);
+//        }
         // 推送市级行管局
         CentereventTEventtypemapdept centereventTEventtypemapdept = new CentereventTEventtypemapdept();
         centereventTEventtypemapdept.setEventTypeValue(centereventTEventtype.getId());
@@ -472,10 +481,24 @@ public class CentereventTEventcatalogueServiceImpl extends BaseService implement
             case "wb":
                 centereventTEventcatalogue.setEventStatus("误报");
                 centereventTEventcatalogue.setEventStatusValue("forest_event_status_3");
+//                int count = centereventDeptEventService.selectCentereventTDeptEventByEventCode(centereventtDeptEventBO.getEventCode(), centereventTDeptEvent.getDeptId().toString());
+//                // 所有部门都置为误报,才为误报
+//                if (count == 0) {
+//                    centereventTEventcatalogue.setEventStatus("误报");
+//                    centereventTEventcatalogue.setEventStatusValue("forest_event_status_3");
+//                }
+
+//                centereventTDeptEvent.setEventStatus("误报");
+//                centereventTDeptEvent.setEventStatusValue("forest_event_status_3");
                 break;
             case "cf":
                 centereventTEventcatalogue.setEventStatus("重复");
                 centereventTEventcatalogue.setEventStatusValue("forest_event_status_4");
+
+//                centereventTDeptEvent.setEventStatus("重复");
+//                centereventTDeptEvent.setEventStatusValue("forest_event_status_4");
+//                // 一个部门置为重复,所有都重复
+//                centereventDeptEventService.updateCentereventTDeptEventCf(centereventtDeptEventBO.getEventCode());
                 break;
             case "bj":
                 centereventTEventcatalogue.setDataStatus("0");// 办结后恢复统计查询状态
@@ -662,7 +685,7 @@ public class CentereventTEventcatalogueServiceImpl extends BaseService implement
     }
 
     @Override
-    public void downloadsCommon(Map<String, Object> params) {
+    public void downloadsCommon(Map<String, Object> params) throws InterruptedException {
         List<CentereventTEventcatalogue> eventcatalogues = centereventTEventcatalogueMapper.getbeforedateDownload(params);
         for (CentereventTEventcatalogue eventcatalogue : eventcatalogues) {
             String busIndex = "bus_indx_other";// 其他
@@ -690,12 +713,7 @@ public class CentereventTEventcatalogueServiceImpl extends BaseService implement
                 centereventTDownloads.setLogId(uuid);
                 centereventTDownloadsService.insertCentereventTDownloads(centereventTDownloads);
 //                TimeUnit.MINUTES.sleep(5);//延时5分钟在调取
-                try {
-                    Thread.sleep(300000);
-                } catch (InterruptedException e) {
-                    logger.error(e.getMessage());
-                    Thread.currentThread().interrupt();
-                }
+                logger.info("定时任务等待下载=====>{}", DateUtils.dateTimeNow());
             } else {
                 //失败
                 CentereventTDownloads centereventTDownloads = new CentereventTDownloads();
@@ -707,7 +725,9 @@ public class CentereventTEventcatalogueServiceImpl extends BaseService implement
                 centereventTDownloadsService.insertCentereventTDownloads(centereventTDownloads);
             }
         }
-        // 视频下载日志表 视频下载成功  定时任务结束回调,检验是否真的成功
+        Thread.sleep(300000);
+        logger.info("附件表查询回写=====>{}", DateUtils.dateTimeNow());
+        //视频下载日志表 视频下载成功  定时任务结束回调,检验是否真的成功
         List<CentereventTDownloads> downloadsList = centereventTDownloadsService.validDownloadIs();
         for (CentereventTDownloads down : downloadsList) {
             if (StringUtils.isNotEmpty(down.getAttachPath())) {

+ 66 - 0
src/main/java/com/sooka/sponest/event/centereventtfireinformation/controller/FireInformationController.java

@@ -0,0 +1,66 @@
+package com.sooka.sponest.event.centereventtfireinformation.controller;
+
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.sooka.sponest.event.centereventtfireinformation.domain.FireInformation;
+import com.sooka.sponest.event.centereventtfireinformation.service.ICentereventTFireInformationService;
+import com.sooka.sponest.event.utils.ExcelUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@RestController
+@RequestMapping("/fireInformation")
+public class FireInformationController extends BaseController {
+
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @Autowired
+    private ICentereventTFireInformationService iCentereventTFireInformationService;
+
+    /*
+    * 林业灾后评估
+    *
+    * @author 韩福成
+    * @date 2024/5/6 10:41
+    */
+    @PostMapping("/list")
+    public TableDataInfo list(@RequestBody FireInformation fireInformation) {
+        startPage();
+        List<FireInformation> list = iCentereventTFireInformationService.fireInformation(fireInformation);
+        return getDataTable(list);
+    }
+
+    /*
+    * 详情
+    *
+    * @author 韩福成
+    * @date 2024/5/6 13:28
+    */
+    @RequiresPermissions("event:fireInformation:query")
+    @GetMapping("/getDetails/{evevtCode}")
+    public R getDetails(@PathVariable("evevtCode") String evevtCode) {
+        return R.ok(iCentereventTFireInformationService.getDetails(evevtCode));
+    }
+
+    /*
+    * 导出
+    *
+    * @author 韩福成
+    * @date 2024/5/7 10:41
+    */
+    @RequiresPermissions("event:fireInformation:export")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, FireInformation fireInformation) {
+        List<FireInformation> list = iCentereventTFireInformationService.fireInformation(fireInformation);
+        ExcelUtil<FireInformation> util = new ExcelUtil<>(FireInformation.class);
+        util.exportExcel(response, list, "林业灾后评估");
+    }
+
+}

+ 104 - 1
src/main/java/com/sooka/sponest/event/centereventtfireinformation/domain/FireInformation.java

@@ -1,5 +1,9 @@
 package com.sooka.sponest.event.centereventtfireinformation.domain;
 
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.annotation.Excels;
+import com.ruoyi.common.datascope.base.domain.BaseBusinessEntity;
+import com.sooka.sponest.event.centereventtforestfireloss.domain.Table1;
 import lombok.Data;
 
 /**
@@ -8,11 +12,110 @@ import lombok.Data;
  * @author ruoyi
  */
 @Data
-public class FireInformation {
+public class FireInformation extends BaseBusinessEntity {
 
     private String id;
 
     private String eventId;
 
+    private String eventCode;
+
+    @Excel(name = "事件名称")
+    private String eventName;
+
+    //centerevent_t_forest_fire_loss
+    @Excels({
+            @Excel(name = "填报单位", targetAttr = "reportUnit"),
+            @Excel(name = "填报时间(年)", targetAttr = "reportTimeY"),
+            @Excel(name = "填报时间(月)", targetAttr = "reportTimeM"),
+            @Excel(name = "填报时间(日)", targetAttr = "reportTimeD"),
+            @Excel(name = "森林火灾损失总计", targetAttr = "forestFireLossTotal"),
+            @Excel(name = "火灾损失总计", targetAttr = "fireLossTotal"),
+            @Excel(name = "成林蓄积", targetAttr = "forestArea"),
+            @Excel(name = "成林价值", targetAttr = "forestPrice"),
+            @Excel(name = "幼树株树", targetAttr = "treesNumber"),
+            @Excel(name = "幼树价值", targetAttr = "treesPrice"),
+            @Excel(name = "轻伤人数", targetAttr = "minorInjuriesNumber"),
+            @Excel(name = "轻伤费用", targetAttr = "minorInjuriesPrice"),
+            @Excel(name = "重伤人数", targetAttr = "seriouslyInjuredNumber"),
+            @Excel(name = "重伤费用", targetAttr = "seriouslyInjuredPrice"),
+            @Excel(name = "死亡人数", targetAttr = "deathNumber"),
+            @Excel(name = "死亡费用", targetAttr = "deathPrice"),
+            @Excel(name = "其他火灾损失", targetAttr = "elseFireLossPrice"),
+            @Excel(name = "扑火费用合计", targetAttr = "blazesPriceTotal"),
+            @Excel(name = "人工天数", targetAttr = "artificialDays"),
+            @Excel(name = "人工费用", targetAttr = "artificialPrice"),
+            @Excel(name = "车辆数量", targetAttr = "vehicleNumber"),
+            @Excel(name = "汽车数量", targetAttr = "carNumber"),
+            @Excel(name = "车辆费用", targetAttr = "vehiclePrice"),
+            @Excel(name = "飞机数量", targetAttr = "planeNumber"),
+            @Excel(name = "飞机费用", targetAttr = "planePrice"),
+            @Excel(name = "其他扑火费用", targetAttr = "elseBlazesPrice"),
+            @Excel(name = "备注", targetAttr = "note")
+    })
+    private Table1 table1;
+
+    //centerevent_t_fire_information
+    @Excels({
+            @Excel(name = "起火时间", targetAttr = "fireTime"),
+            @Excel(name = "发现时间", targetAttr = "foundTime"),
+            @Excel(name = "扑灭时间", targetAttr = "blazesTime"),
+            @Excel(name = "起火城市", targetAttr = "address"),
+            @Excel(name = "起火地点", targetAttr = "firePlace"),
+            @Excel(name = "发现方式", targetAttr = "foundType"),
+            @Excel(name = "东经(度)", targetAttr = "longitudeD"),
+            @Excel(name = "东经(分)", targetAttr = "longitudeM"),
+            @Excel(name = "东经(秒)", targetAttr = "longitudeS"),
+            @Excel(name = "北纬(度)", targetAttr = "latitudeD"),
+            @Excel(name = "北纬(分)", targetAttr = "latitudeM"),
+            @Excel(name = "北纬(秒)", targetAttr = "latitudeS"),
+            @Excel(name = "起火原因", targetAttr = "fireSource"),
+            @Excel(name = "火灾种类", targetAttr = "fireType"),
+            @Excel(name = "火灾等级", targetAttr = "fireLevel"),
+            @Excel(name = "总面积合计", targetAttr = "areaTotal"),
+            @Excel(name = "森林面积损失合计", targetAttr = "forestLossAreaTotal"),
+            @Excel(name = "原始林面积", targetAttr = "originalForestArea"),
+            @Excel(name = "人工林面积", targetAttr = "artificialForestArea"),
+            @Excel(name = "出动总人数", targetAttr = "peopleTotal"),
+            @Excel(name = "扑火队人数", targetAttr = "blazesTeamNumber"),
+            @Excel(name = "森警人数", targetAttr = "policeNumber"),
+            @Excel(name = "军队人数", targetAttr = "armyNumber"),
+            @Excel(name = "群众人数", targetAttr = "crowdNumber"),
+            @Excel(name = "风力灭火机", targetAttr = "windExtinguisher"),
+            @Excel(name = "二号工具", targetAttr = "secondTool"),
+            @Excel(name = "水枪", targetAttr = "waterGun"),
+            @Excel(name = "其他", targetAttr = "elseThings"),
+            @Excel(name = "林木组成", targetAttr = "forestComposition"),
+            @Excel(name = "林令", targetAttr = "forestToken"),
+            @Excel(name = "疏密度", targetAttr = "porosities"),
+            @Excel(name = "天气", targetAttr = "weather"),
+            @Excel(name = "气温", targetAttr = "temperature"),
+            @Excel(name = "火险等级", targetAttr = "fireInsuranceLevel"),
+            @Excel(name = "风力等级", targetAttr = "windLevel"),
+            @Excel(name = "风向", targetAttr = "windDirection"),
+            @Excel(name = "指挥扑火人单位", targetAttr = "commandUnit"),
+            @Excel(name = "指挥扑火人姓名", targetAttr = "commandName"),
+            @Excel(name = "指挥扑火人职务", targetAttr = "commandPosition"),
+            @Excel(name = "调查人单位", targetAttr = "surveyUnit"),
+            @Excel(name = "调查人姓名", targetAttr = "surveyName"),
+            @Excel(name = "调查人职务", targetAttr = "surveyPosition"),
+            @Excel(name = "肇事人姓名", targetAttr = "accidentName"),
+            @Excel(name = "肇事人性别", targetAttr = "accidentSex"),
+            @Excel(name = "肇事人年龄", targetAttr = "accidentAge"),
+            @Excel(name = "肇事人职业", targetAttr = "accidentPosition"),
+            @Excel(name = "肇事人单位或住址", targetAttr = "accidentUnit"),
+            @Excel(name = "处理方式", targetAttr = "dealType"),
+            @Excel(name = "处理人数", targetAttr = "dealNumber"),
+            @Excel(name = "刑事处罚人数", targetAttr = "criminalDealNumber"),
+            @Excel(name = "肇事人处理情况", targetAttr = "accidentDealSituation"),
+            @Excel(name = "责任人追查情况", targetAttr = "responsibilityDealSituation"),
+            @Excel(name = "领导责任追查情况", targetAttr = "leadershipDealSituation"),
+            @Excel(name = "县填表人", targetAttr = "townForm"),
+            @Excel(name = "县审核人", targetAttr = "townAudit"),
+            @Excel(name = "市填表人", targetAttr = "cityForm"),
+            @Excel(name = "市审核人", targetAttr = "cityAudit")
+    })
     private Table2 table2;
+
+    private String day;
 }

+ 8 - 0
src/main/java/com/sooka/sponest/event/centereventtfireinformation/mapper/CentereventTFireInformationMapper.java

@@ -2,6 +2,8 @@ package com.sooka.sponest.event.centereventtfireinformation.mapper;
 
 import com.sooka.sponest.event.centereventtfireinformation.domain.FireInformation;
 
+import java.util.List;
+
 /**
  * 事件目录Mapper接口
  *
@@ -12,4 +14,10 @@ public interface CentereventTFireInformationMapper {
 
     // 新增火险报告(火场资料)
     int addFireInformation(FireInformation fireInformation);
+
+    //林业灾后评估
+    List<FireInformation> fireInformation(FireInformation fireInformation);
+
+    //详情
+    FireInformation getDetails(String evevtCode);
 }

+ 8 - 0
src/main/java/com/sooka/sponest/event/centereventtfireinformation/service/ICentereventTFireInformationService.java

@@ -2,6 +2,8 @@ package com.sooka.sponest.event.centereventtfireinformation.service;
 
 import com.sooka.sponest.event.centereventtfireinformation.domain.FireInformation;
 
+import java.util.List;
+
 /**
  * 事件目录Mapper接口
  *
@@ -12,4 +14,10 @@ public interface ICentereventTFireInformationService {
 
     // 新增火险报告(火场资料)
     int addFireInformation(FireInformation fireInformation);
+
+    //林业灾后评估
+    List<FireInformation> fireInformation(FireInformation fireInformation);
+
+    //详情
+    FireInformation getDetails(String evevtCode);
 }

+ 19 - 1
src/main/java/com/sooka/sponest/event/centereventtfireinformation/service/impl/CentereventTFireInformationServiceImpl.java

@@ -1,12 +1,16 @@
 package com.sooka.sponest.event.centereventtfireinformation.service.impl;
 
 import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
+import com.ruoyi.common.datascope.base.service.BaseService;
 import com.sooka.sponest.event.centereventtfireinformation.domain.FireInformation;
 import com.sooka.sponest.event.centereventtfireinformation.mapper.CentereventTFireInformationMapper;
 import com.sooka.sponest.event.centereventtfireinformation.service.ICentereventTFireInformationService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * 事件目录Mapper接口
  *
@@ -14,7 +18,7 @@ import org.springframework.stereotype.Service;
  * @date 2022-08-27
  */
 @Service
-public class CentereventTFireInformationServiceImpl implements ICentereventTFireInformationService {
+public class CentereventTFireInformationServiceImpl extends BaseService implements ICentereventTFireInformationService {
 
     @Autowired
     private CentereventTFireInformationMapper centereventTFireInformationMapper;
@@ -25,4 +29,18 @@ public class CentereventTFireInformationServiceImpl implements ICentereventTFire
         fireInformation.setId(IdUtils.simpleUUID());
         return centereventTFireInformationMapper.addFireInformation(fireInformation);
     }
+
+    //林业灾后评估
+    @DataScopeMutiDept(deptAlias = "d")
+    @Override
+    public List<FireInformation> fireInformation(FireInformation fireInformation) {
+        setSookaDataBase(fireInformation);
+        return centereventTFireInformationMapper.fireInformation(fireInformation);
+    }
+
+    //详情
+    @Override
+    public FireInformation getDetails(String evevtCode){
+        return centereventTFireInformationMapper.getDetails(evevtCode);
+    }
 }

+ 2 - 0
src/main/java/com/sooka/sponest/event/centereventtforestfireloss/domain/Table1.java

@@ -5,6 +5,8 @@ import lombok.Data;
 @Data
 public class Table1 {
 
+    private String eventId;
+
     private String reportUnit;
 
     private String reportTimeY;

+ 5 - 0
src/main/java/com/sooka/sponest/event/index/controller/IndexController.java

@@ -1,7 +1,9 @@
 package com.sooka.sponest.event.index.controller;
 
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.redis.service.RedisService;
 import com.sooka.sponest.event.index.domin.Index;
 import com.sooka.sponest.event.index.service.ICenterevenTEventIndexService;
 import io.swagger.annotations.Api;
@@ -34,6 +36,9 @@ public class IndexController extends BaseController {
      */
     @GetMapping("getEventmapdept")
     public R getEventmapdept(Index index) {
+        if (index.getResetFlag()) {
+            SpringUtils.getBean(RedisService.class).deleteObject("event:index::" + index.getTimeArr().toString());
+        }
         return R.ok(centerevenTEventIndexService.selectCentereventTEventmapdeptList(index.getTimeArr()));
     }
 

+ 2 - 0
src/main/java/com/sooka/sponest/event/index/domin/Index.java

@@ -8,4 +8,6 @@ import java.util.List;
 public class Index {
 
     private List<String> timeArr;
+
+    private Boolean resetFlag;
 }

+ 2 - 0
src/main/java/com/sooka/sponest/event/index/service/impl/CenterevenTEventIndexServiceImpl.java

@@ -4,6 +4,7 @@ import com.sooka.sponest.event.index.mapper.CenterenvenTEventIndexMapper;
 import com.sooka.sponest.event.index.service.ICenterevenTEventIndexService;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
@@ -41,6 +42,7 @@ public class CenterevenTEventIndexServiceImpl implements ICenterevenTEventIndexS
      * @return
      */
     @Override
+    @Cacheable(cacheNames = "event:index", key = "#timeArr.toString()")
     public List<Map<String, Object>> selectCentereventTEventmapdeptList(List<String> timeArr) {
         return centerenvenTEventIndexMapper.selectCentereventTEventmapdept(timeArr);
     }

+ 0 - 3
src/main/java/com/sooka/sponest/event/remoteapi/RemoteDataService.java

@@ -47,9 +47,6 @@ public interface RemoteDataService {
     @PostMapping("/attach/updateEventAttach")
     void updateAttach(@RequestBody Map<String, String> paramMap);
 
-    @PostMapping("/attach/updateEventAttacHandle")
-    void updateEventAttacHandle(@RequestBody CenterdataTAttach centerdataTAttach);
-
     // 查询企业
     @GetMapping("/emergency/enterprise/selectById/{id}")
     R<CenterdataTEmergencyEnterprise> getEnterprise(@PathVariable("id") String enterpriseId);

+ 0 - 5
src/main/java/com/sooka/sponest/event/remoteapi/factory/RemoteDataServiceFallbackFactory.java

@@ -53,11 +53,6 @@ public class RemoteDataServiceFallbackFactory implements FallbackFactory<RemoteD
             }
 
             @Override
-            public void updateEventAttacHandle(CenterdataTAttach centerdataTAttach) {
-                throw new UnsupportedOperationException();
-            }
-
-            @Override
             public R<CenterdataTEmergencyEnterprise> getEnterprise(String enterpriseId) {
                 return null;
             }

+ 42 - 0
src/main/java/com/sooka/sponest/event/test/TestController.java

@@ -0,0 +1,42 @@
+package com.sooka.sponest.event.test;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.sooka.sponest.event.centereventteventcatalogue.domain.dahua.DaHuaFireEventVO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+@RestController
+@RequestMapping("AlarmEventController")
+public class TestController extends BaseController {
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    @PostMapping("/eventlisten")
+    public R eventlisten(@RequestBody String jsonStr) {
+        long start = System.currentTimeMillis();
+        try {
+            DaHuaFireEventVO daHuaFireEventVO = JSONObject.parseObject(jsonStr, DaHuaFireEventVO.class);
+            String eventName = daHuaFireEventVO.getInfo().getChannelName() + daHuaFireEventVO.getInfo().getAlarmDateStr() + daHuaFireEventVO.getInfo().getAlarmTypeName();
+            Date reportTime = DateUtils.timestampToTime(daHuaFireEventVO.getInfo().getAlarmDate());
+            double diff = (DateUtils.timestampToTime(start).getTime() - reportTime.getTime()) / 1000;// 计算时间差,单位为秒
+            if (180 < diff) {
+                logger.info("===事件名称:" + eventName + ",===超时推送:" + diff);
+            } else {
+                logger.info("===事件名称:" + eventName + ",===延时推送:" + diff);
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage());
+        }
+        logger.info("===接口耗时:" + (System.currentTimeMillis() - start));
+        return R.ok();
+    }
+}

+ 5 - 1
src/main/java/com/sooka/sponest/event/utils/ScheduleTaskUtil.java

@@ -1,3 +1,4 @@
+/*
 package com.sooka.sponest.event.utils;
 
 import com.ruoyi.common.core.utils.SpringUtils;
@@ -15,12 +16,14 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
+*/
 /**
  * @Auther: mjq
  * @Date: 2023/9/12 - 09 - 12 - 10:08
  * @Description: com.sooka.sponest.event.utils
  * @version: 1.0
- */
+ *//*
+
 @Configuration
 @EnableScheduling
 //@RestController
@@ -51,3 +54,4 @@ public class ScheduleTaskUtil {
         redis.setCacheObject(DOWN_LOCK, (System.currentTimeMillis() - startMill), (long) 3600 * 12, TimeUnit.SECONDS);
     }
 }
+*/

+ 9 - 12
src/main/resources/mapper/centereventteventcatalogue/CenterEventCommandCenterMapper.xml

@@ -9,7 +9,14 @@
         SELECT CONCAT(d.ancestors,',',d.dept_id) ancestors,d.dept_id,d.dept_name FROM (
         SELECT dept_id FROM centerevent_t_eventcatalogue
         WHERE event_status_value IN ( 'forest_event_status_2', 'forest_event_status_5', 'forest_event_status_6' )
-        AND DATEDIFF( create_time, now()) = 0 AND event_type = '1' AND data_status = '0'
+        AND DATEDIFF( create_time, now()) = 0
+        <choose>
+            <when test="id != null and id != ''">
+                AND event_type_xl IN ( ${id} )
+            </when>
+            <otherwise>AND event_type = '1'</otherwise>
+        </choose>
+        AND data_status = '0'
         ) a
         LEFT JOIN ${database_system}.sys_dept d ON d.dept_id = a.dept_id
         <if test="deptId != null and deptId != ''">
@@ -120,17 +127,7 @@
             #{item}
         </foreach>
         ) a
-        LEFT JOIN (
-        SELECT c.dept_id,count(*) num,count(a.event_status_value = 'forest_event_status_2' OR NULL) unprocessed,
-        count(a.event_status_value = 'forest_event_status_5' OR NULL) inprocess,count(a.event_status_value =
-        'forest_event_status_6' OR NULL) processed FROM (
-        SELECT event_code,event_status_value FROM centerevent_t_eventcatalogue
-        WHERE event_status_value IN ( 'forest_event_status_2', 'forest_event_status_5', 'forest_event_status_6' )
-        AND YEAR(now()) = YEAR(create_time) AND data_status = '0' ) a
-        INNER JOIN centerevent_t_dept_event c ON c.event_code = a.event_code AND c.dept_handle_type =
-        'dept_handleType_3'
-        GROUP BY c.dept_id
-        ) b ON b.dept_id = a.dept_id
+        LEFT JOIN event_hgj b ON b.dept_id = a.dept_id
     </select>
 
     <select id="getEventTrend" parameterType="CentereventDeptEvent" resultType="map">

+ 6 - 3
src/main/resources/mapper/centereventteventcatalogue/CenterEventViewMapper.xml

@@ -423,13 +423,16 @@
     </select>
 
     <select id="listAll" parameterType="VisuForestCloudMapVO" resultType="VisuForestCloudMapEventListBO">
-        select id eventId, event_code eventCode, event_name eventName,event_status_value eventStatusValue,event_status eventStatus,is_examine isExamine, version, address, create_by cameraCode
+        select id eventId, event_code eventCode, event_name eventName, event_status_value eventStatusValue, event_status
+        eventStatus, is_examine isExamine, version, address, create_by cameraCode
         from centerevent_t_eventcatalogue
-        where event_status_value in ('forest_event_status_1','forest_event_status_5')
-         and report_source = 'reporting_source_1' and event_type_xl !='101'
+        where report_source = 'reporting_source_1' and event_status_value = 'forest_event_status_1'
         <if test="eventName != null and eventName != ''">
             and event_name like concat('%', #{eventName},'%')
         </if>
+        <if test="eventStatusValue != null and eventStatusValue != ''">
+            and event_status_value = #{eventStatusValue}
+        </if>
         <if test="day != null and day != ''">
             and DATE_FORMAT(create_time,'%Y-%m-%d') = #{day}
         </if>

+ 232 - 1
src/main/resources/mapper/centereventtfireinformation/CentereventTFireInformationMapper.xml

@@ -7,6 +7,8 @@
     <resultMap type="FireInformation" id="FireInformationResult">
         <result property="id" column="id"/>
         <result property="eventId" column="event_id"/>
+        <result property="eventCode" column="event_code"/>
+        <result property="eventName" column="event_name"/>
         <association property="table2" javaType="Table2">
             <result property="fireTime" column="fire_time"/>
             <result property="foundTime" column="found_time"/>
@@ -66,6 +68,36 @@
             <result property="cityForm" column="city_form"/>
             <result property="cityAudit" column="city_audit"/>
         </association>
+        <association property="table1" javaType="Table1">
+            <result property="eventId" column="event_id"/>
+            <result property="reportUnit" column="report_unit"/>
+            <result property="reportTimeY" column="report_time_y"/>
+            <result property="reportTimeM" column="report_time_m"/>
+            <result property="reportTimeD" column="report_time_d"/>
+            <result property="forestFireLossTotal" column="forest_fire_loss_total"/>
+            <result property="fireLossTotal" column="fire_loss_total"/>
+            <result property="forestArea" column="forest_area"/>
+            <result property="forestPrice" column="forest_price"/>
+            <result property="treesNumber" column="trees_number"/>
+            <result property="treesPrice" column="trees_price"/>
+            <result property="minorInjuriesNumber" column="minor_injuries_number"/>
+            <result property="minorInjuriesPrice" column="minor_injuries_price"/>
+            <result property="seriouslyInjuredNumber" column="seriously_injured_number"/>
+            <result property="seriouslyInjuredPrice" column="seriously_injured_price"/>
+            <result property="deathNumber" column="death_number"/>
+            <result property="deathPrice" column="death_price"/>
+            <result property="elseFireLossPrice" column="else_fire_loss_price"/>
+            <result property="blazesPriceTotal" column="blazes_price_total"/>
+            <result property="artificialDays" column="artificial_days"/>
+            <result property="artificialPrice" column="artificial_price"/>
+            <result property="vehicleNumber" column="vehicle_number"/>
+            <result property="carNumber" column="car_number"/>
+            <result property="vehiclePrice" column="vehicle_price"/>
+            <result property="planeNumber" column="plane_number"/>
+            <result property="planePrice" column="plane_price"/>
+            <result property="elseBlazesPrice" column="else_blazes_price"/>
+            <result property="note" column="note"/>
+        </association>
     </resultMap>
 
     <insert id="addFireInformation" parameterType="FireInformation">
@@ -193,4 +225,203 @@
             <if test="table2.cityAudit != null">#{table2.cityAudit},</if>
         </trim>
     </insert>
-</mapper>
+
+    <select id="fireInformation" resultMap="FireInformationResult">
+        SELECT
+            a.event_code,
+            a.event_name,
+            b.fire_time,
+            b.found_time,
+            b.blazes_time,
+            b.address,
+            b.fire_place,
+            b.found_type,
+            b.longitude_d,
+            b.longitude_m,
+            b.longitude_s,
+            b.latitude_d,
+            b.latitude_m,
+            b.latitude_s,
+            b.fire_source,
+            b.fire_type,
+            b.fire_level,
+            b.area_total,
+            b.forest_loss_area_total,
+            b.original_forest_area,
+            b.artificial_forest_area,
+            b.people_total,
+            b.blazes_team_number,
+            b.police_number,
+            b.army_number,
+            b.crowd_number,
+            b.wind_extinguisher,
+            b.second_tool,
+            b.water_gun,
+            b.else_things,
+            b.forest_composition,
+            b.forest_token,
+            b.porosities,
+            b.weather,
+            b.temperature,
+            b.fire_insurance_level,
+            b.wind_level,
+            b.wind_direction,
+            b.command_unit,
+            b.command_name,
+            b.command_position,
+            b.survey_unit,
+            b.survey_name,
+            b.survey_position,
+            b.accident_name,
+            b.accident_sex,
+            b.accident_age,
+            b.accident_position,
+            b.accident_unit,
+            b.deal_type,
+            b.deal_number,
+            b.criminal_deal_number,
+            b.accident_deal_situation,
+            b.responsibility_deal_situation,
+            b.leadership_deal_situation,
+            b.town_form,
+            b.town_audit,
+            b.city_form,
+            b.city_audit,
+            c.event_id,
+            c.report_unit,
+            c.report_time_y,
+            c.report_time_m,
+            c.report_time_d,
+            c.forest_fire_loss_total,
+            c.fire_loss_total,
+            c.forest_area,
+            c.forest_price,
+            c.trees_number,
+            c.trees_price,
+            c.minor_injuries_number,
+            c.minor_injuries_price,
+            c.seriously_injured_number,
+            c.seriously_injured_price,
+            c.death_number,
+            c.death_price,
+            c.else_fire_loss_price,
+            c.blazes_price_total,
+            c.artificial_days,
+            c.artificial_price,
+            c.vehicle_number,
+            c.car_number,
+            c.vehicle_price,
+            c.plane_number,
+            c.plane_price,
+            c.else_blazes_price,
+            c.note
+        FROM
+            centerevent_t_eventcatalogue a
+            LEFT JOIN centerevent_t_fire_information b ON a.event_code = b.event_id
+            LEFT JOIN centerevent_t_forest_fire_loss c ON a.event_code = c.event_id
+            LEFT JOIN ${database_system}.sys_dept d ON a.dept_id = d.dept_id
+        WHERE 1=1
+        <if test="eventName != null">and a.event_name like concat('%', #{eventName}, '%')</if>
+        <if test="table2 != null and table2.fireSource != null">and b.fire_source like concat('%', #{table2.fireSource}, '%')</if>
+        <if test="table2 != null and table2.fireInsuranceLevel != null">and b.fire_insurance_level like concat('%', #{table2.fireInsuranceLevel}, '%')</if>
+        <if test="day != null">and DATE_FORMAT(a.gd_time,'%Y-%m-%d') = #{day}</if>
+            and a.event_type_xl = '101'
+            AND a.event_status_value = 'forest_event_status_6'
+            ${params.dataScope}
+    </select>
+
+    <select id="getDetails" resultMap="FireInformationResult">
+        SELECT
+            a.event_name,
+            b.fire_time,
+            b.found_time,
+            b.blazes_time,
+            b.address,
+            b.fire_place,
+            b.found_type,
+            b.longitude_d,
+            b.longitude_m,
+            b.longitude_s,
+            b.latitude_d,
+            b.latitude_m,
+            b.latitude_s,
+            b.fire_source,
+            b.fire_type,
+            b.fire_level,
+            b.area_total,
+            b.forest_loss_area_total,
+            b.original_forest_area,
+            b.artificial_forest_area,
+            b.people_total,
+            b.blazes_team_number,
+            b.police_number,
+            b.army_number,
+            b.crowd_number,
+            b.wind_extinguisher,
+            b.second_tool,
+            b.water_gun,
+            b.else_things,
+            b.forest_composition,
+            b.forest_token,
+            b.porosities,
+            b.weather,
+            b.temperature,
+            b.fire_insurance_level,
+            b.wind_level,
+            b.wind_direction,
+            b.command_unit,
+            b.command_name,
+            b.command_position,
+            b.survey_unit,
+            b.survey_name,
+            b.survey_position,
+            b.accident_name,
+            b.accident_sex,
+            b.accident_age,
+            b.accident_position,
+            b.accident_unit,
+            b.deal_type,
+            b.deal_number,
+            b.criminal_deal_number,
+            b.accident_deal_situation,
+            b.responsibility_deal_situation,
+            b.leadership_deal_situation,
+            b.town_form,
+            b.town_audit,
+            b.city_form,
+            b.city_audit,
+            c.event_id,
+            c.report_unit,
+            c.report_time_y,
+            c.report_time_m,
+            c.report_time_d,
+            c.forest_fire_loss_total,
+            c.fire_loss_total,
+            c.forest_area,
+            c.forest_price,
+            c.trees_number,
+            c.trees_price,
+            c.minor_injuries_number,
+            c.minor_injuries_price,
+            c.seriously_injured_number,
+            c.seriously_injured_price,
+            c.death_number,
+            c.death_price,
+            c.else_fire_loss_price,
+            c.blazes_price_total,
+            c.artificial_days,
+            c.artificial_price,
+            c.vehicle_number,
+            c.car_number,
+            c.vehicle_price,
+            c.plane_number,
+            c.plane_price,
+            c.else_blazes_price,
+            c.note
+        FROM
+            centerevent_t_eventcatalogue a
+            LEFT JOIN centerevent_t_fire_information b ON a.event_code = b.event_id
+            LEFT JOIN centerevent_t_forest_fire_loss c ON a.event_code = c.event_id
+        WHERE a.event_code = #{eventCode}
+    </select>
+</mapper>

+ 1 - 0
src/main/resources/mapper/download/CentereventTDownloadsMapper.xml

@@ -38,6 +38,7 @@
             <if test="updateName != null  and updateName != ''">and update_name like concat('%', #{updateName}, '%')
             </if>
         </where>
+        order by create_time desc
     </select>
 
     <select id="selectCentereventTDownloadsById" parameterType="String" resultMap="CentereventTDownloadsResult">