Explorar el Código

Merge remote-tracking branch 'origin/master'

wangdong6 %!s(int64=4) %!d(string=hace) años
padre
commit
386313a9b0

+ 5 - 1
ebc-middle-platform/src/conf/services.js

@ -167,6 +167,10 @@ export default {
167 167
    UPD_MAP_TAG: '/mapTag/modifyMapTagInfo', // 查询地图标记信息用作修改
168 168
    MAP_TAG_TYPE: '/mapTag/queryMapAreaTypeList' // 查询标记类型下拉列表
169 169
  },
170
  gisParam: {
171
    GET_PARAM: '/gisParam/querySeaMapParam', // 获取默认地图参数
172
    UPD_PARAM: '/gisParam/modifySeaMapParam' // 修改默认地图参数
173
  },
170 174
  equipment: {
171 175
    EQUIPMENT_TYPE: '/equipment/loadAllResourceToolType', // 获取所有设备类型
172 176
    GET_EQUIPMENT: '/equipment/queryEquipmentInfo', // 查询设备管理信息
@ -189,7 +193,7 @@ export default {
189 193
    DEVICE_TRACK: '/device/queryOneDeviceLocationInfo' // 查询设备轨迹
190 194
  },
191 195
  trackAnalysis: {
192
    GET_TRACKANALYSIS: '/trackAnalysis/queryTrackAnalysisInfo' // 查询轨迹分析
196
    GET_TRACKANALYSIS: '/attendanceManagement/queryPageTrackRecord' // 查询轨迹分析
193 197
  },
194 198
  areaInOutRecord: {
195 199
    GET_ATTENDANCE: '/areaInOutRecord/queryPageAttendanceCount', // 分页查询考勤统计分析

+ 40 - 108
ebc-middle-platform/src/modules/attendance/track.vue

@ -7,7 +7,7 @@
7 7
            <t-date-picker v-model="queryCondition.rangeDate"
8 8
                           align-right
9 9
                           style="width:250px;"
10
                           type="dateRange"
10
                           type="dateTimeRange"
11 11
                           placeholder="选择时间段"
12 12
                           @date-change="onChange"></t-date-picker>
13 13
          </div>
@ -26,14 +26,14 @@
26 26
      </div>
27 27
    </div>
28 28
    <div>
29
      <t-table :data="table.data">
29
      <t-table :data="table.data" :loading="tableLoading" >
30 30
        <t-table-column type="selection" width="70"></t-table-column>
31
        <t-table-column prop="userName" label="姓名"></t-table-column>
32
        <t-table-column prop="duty" label="职务"></t-table-column>
33
        <t-table-column prop="RECORD_LOCATION" label="位置区域"></t-table-column>
34
        <t-table-column prop="stayTime" label="停留时长(h)"></t-table-column>
35
        <t-table-column prop="IN_DATE" label="进入时间"></t-table-column>
36
        <t-table-column prop="OUT_DATE" label="离开时间"></t-table-column>
31
        <t-table-column prop="entityName" label="姓名"></t-table-column>
32
        <t-table-column prop="entityPosition" label="职务"></t-table-column>
33
        <t-table-column prop="mapAreaName" label="位置区域"></t-table-column>
34
        <t-table-column prop="durationTime" label="停留时长(h)"></t-table-column>
35
        <t-table-column prop="inTime" :formatter="timestampToTime" label="进入时间"></t-table-column>
36
        <t-table-column prop="outTime" :formatter="timestampToTime" label="离开时间"></t-table-column>
37 37
      </t-table>
38 38
      <t-pager :total="table.pager.total" :current.sync="table.pager.currentPage"
39 39
               :page-size.sync="table.pager.size"
@ -63,7 +63,9 @@ export default {
63 63
      queryCondition: {
64 64
        rangeDate: [],
65 65
        alarmPerson: ''
66
      }
66
      },
67
      tableLoading: true,
68
      fullLoading: false
67 69
    }
68 70
  },
69 71
  mounted() {
@ -71,104 +73,33 @@ export default {
71 73
  },
72 74
  methods: {
73 75
    getList() {
74
      this.table.data = [{
75
        userName: '周杰',
76
        duty: '员工',
77
        RECORD_LOCATION: '休息区',
78
        stayTime: '0.5',
79
        IN_DATE: '2020-11-25 10:30:30',
80
        OUT_DATE: '2020-11-25 11:00:30'
81
      }, {
82
        userName: '李雷',
83
        duty: '员工',
84
        RECORD_LOCATION: '禁区',
85
        stayTime: '1',
86
        IN_DATE: '2020-11-25 9:30:33',
87
        OUT_DATE: '2020-11-25 10:30:44'
88
      }, {
89
        userName: '刘伟',
90
        duty: '员工',
91
        RECORD_LOCATION: '考勤区',
92
        stayTime: '3',
93
        IN_DATE: '2020-11-25 08:30:23',
94
        OUT_DATE: '2020-11-25 11:30:45'
95
      }, {
96
        userName: '韩梅梅',
97
        duty: '救援',
98
        RECORD_LOCATION: '作业区',
99
        stayTime: '4',
100
        IN_DATE: '2020-11-25 07:28:30',
101
        OUT_DATE: '2020-11-25 11:34:36'
102
      }, {
103
        userName: '韩梅梅',
104
        duty: '救援',
105
        RECORD_LOCATION: ' 考勤区',
106
        stayTime: '1',
107
        IN_DATE: '2020-11-24 09:30:30',
108
        OUT_DATE: '2020-11-24 10:35:26'
109
      }, {
110
        userName: '李雷',
111
        duty: '员工',
112
        RECORD_LOCATION: '考勤区',
113
        stayTime: '11.5',
114
        IN_DATE: '2020-11-24 07:18:12',
115
        OUT_DATE: '2020-11-24 18:44:06'
116
      }, {
117
        userName: '李雷',
118
        duty: '员工',
119
        RECORD_LOCATION: '作业区',
120
        stayTime: '11',
121
        IN_DATE: '2020-11-24 07:21:25',
122
        OUT_DATE: '2020-11-24 18:34:04'
123
      }, {
124
        userName: '李雷',
125
        duty: '员工',
126
        RECORD_LOCATION: '禁区',
127
        stayTime: '1',
128
        IN_DATE: '2020-11-24 16:37:23',
129
        OUT_DATE: '2020-11-25 17:24:35'
130
      }, {
131
        userName: '刘伟',
132
        duty: '员工',
133
        RECORD_LOCATION: '休息区',
134
        stayTime: '0.5',
135
        IN_DATE: '2020-11-24 13:28:36',
136
        OUT_DATE: '2020-11-24 13:58:29'
137
      }, {
138
        userName: '刘伟',
139
        duty: '员工',
140
        RECORD_LOCATION: '休息区',
141
        stayTime: '1',
142
        IN_DATE: '2020-11-24 18:38:27',
143
        OUT_DATE: '2020-11-24 19:24:41'
144
      }]
145
      this.table.pager.total = 10
146
      // var start = ''
147
      // var end = ''
148
      // if (this.queryCondition.rangeDate.length > 0) {
149
      //   start = this.queryCondition.rangeDate[0]
150
      //   end = this.queryCondition.rangeDate[1]
151
      // }
152
      // var params = new FormData()
153
      // params.append(
154
      //   'data',
155
      //   JSON.stringify({
156
      //     pageNum: this.table.pager.currentPage,
157
      //     pageSize: this.table.pager.size,
158
      //     queryStartDate: start,
159
      //     queryEndDate: end
160
      //   })
161
      // )
162
      // this.$test
163
      //   .post(services.trackAnalysis.GET_TRACKANALYSIS, params)
164
      //   .then((res) => {
165
      //   // 请求成功处理...
166
      //     this.table.data = res.data.result.list
167
      //     this.table.pager.total = res.data.result.total
168
      //   })
169
      //   .catch((res) => {
170
      //   // 请求失败处理...
171
      //   })
76
      this.tableLoading = true
77
      var start = ''
78
      var end = ''
79
      if (this.queryCondition.rangeDate.length > 0) {
80
        start = this.queryCondition.rangeDate[0]
81
        end = this.queryCondition.rangeDate[1]
82
      }
83
      this.$test
84
        .post(services.trackAnalysis.GET_TRACKANALYSIS, {
85
          pageNumber: this.table.pager.currentPage,
86
          pageSize: this.table.pager.size,
87
          data: {
88
            startTime: start,
89
            endTime: end,
90
            userName: this.queryCondition.alarmPerson
91
          }
92
        })
93
        .then((res) => {
94
        // 请求成功处理...
95
          this.tableLoading = false
96
          this.table.data = res.data.data
97
          this.table.pager.total = res.data.total
98
        })
99
        .catch((res) => {
100
        // 请求失败处理...
101
          this.tableLoading = false
102
        })
172 103
    },
173 104
    onChange(value) {
174 105
      console.log('date change:' + value)
@ -182,7 +113,8 @@ export default {
182 113
      this.getList()
183 114
    },
184 115
    onSearch() {
185
116
      this.table.pager.currentPage = 1
117
      this.getList()
186 118
    },
187 119
    toExport() {
188 120

+ 22 - 15
ebc-middle-platform/src/modules/layouts/BasicLayout.vue

@ -79,14 +79,14 @@ export default {
79 79
  methods: {
80 80
    async getGisToken() { // 获取GIS token并存入store
81 81
      await this.$test
82
          .post(services.mapTag.GET_MAP_PARAM, '')
83
          .then((res) => {
84
            this.$store.commit('setGisToken', res.data.ak)
85
            this.$store.commit('setMapParam', {center: [res.data.latitude, res.data.longitude], zoom: res.data.scale})
86
          })
87
          .catch((res) => {
88
            // 请求失败处理...
89
          })
82
        .post(services.mapTag.GET_MAP_PARAM, '')
83
        .then((res) => {
84
          this.$store.commit('setGisToken', res.data.ak)
85
          this.$store.commit('setMapParam', {center: [res.data.latitude, res.data.longitude], zoom: res.data.scale})
86
        })
87
        .catch((res) => {
88
          // 请求失败处理...
89
        })
90 90
    },
91 91
    load() {
92 92
      this.$test
@ -109,6 +109,7 @@ export default {
109 109
        .then((res) => {
110 110
          this.modal = false
111 111
          EventBus.$emit('reload', true)
112
          this.$router.push({path: '../call-help/current'})
112 113
        })
113 114
        .catch((res) => {
114 115
          // 请求失败处理...
@ -137,6 +138,7 @@ export default {
137 138
        ok: () => {
138 139
          this.modal = false
139 140
          EventBus.$emit('reload', true)
141
          this.$router.push({path: '../call-help/current'})
140 142
        }
141 143
      })
142 144
    },
@ -152,13 +154,18 @@ export default {
152 154
      this.speckText(str)
153 155
    },
154 156
    speckText(str) {
155
      // var url = "http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&text=" + encodeURI(str)
156
      // var n = new Audio(url)
157
      // n.src = url
158
      // n.play()
159
      var msg = new SpeechSynthesisUtterance(str)
160
      speechSynthesis.speak(msg)
161
      window.speechSynthesis.speak()
157
      str += '。' + str + '。' + str + '。'
158
      var userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
159
      var isOpera = userAgent.indexOf('Opera') > -1
160
      if (userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 && !isOpera) { // 判断是否IE浏览器
161
        var voiceObj = new ActiveXObject('Sapi.SpVoice')
162
        // 朗读
163
        voiceObj.Speak(str, 1)
164
      } else {
165
        var msg = new SpeechSynthesisUtterance(str)
166
        // 朗读
167
        speechSynthesis.speak(msg)
168
      }
162 169
    },
163 170
    connect() {
164 171
      if (this.stompClient == null || !this.stompClient.connected()) {

+ 30 - 0
ebc-middle-platform/src/modules/orientation/orientation.scss

@ -482,6 +482,36 @@ background: #344979!important;
482 482
      color: #000000;
483 483
    }
484 484
  }
485
  .container2{
486
    display: flex;
487
    //flex-wrap: wrap;
488
    padding: 10px 0 10px 0px;
489
    div{
490
      width: 45%;
491
      color: #ffffff;
492
      font-size: 10px;
493
      line-height: 20px;
494
      height: 20px;
495
      margin: 10px;
496
      text-align: center;
497
      border-radius: 3px;
498
    }
499
    .sos{
500
      background-color: #F5222D;
501
      animation:pointsos 1s ease infinite;
502
      -webkit-animation:pointsos 1s ease infinite;
503
    }
504
    .normal{
505
      background-color: #19BB20;
506
    }
507
    .outline{
508
      background-color: #FAAD14;
509
    }
510
    .offline{
511
      background-color: #D9D9D9;
512
      color: #000000;
513
    }
514
  }
485 515
  .footer{
486 516
    height: 40px;
487 517
    border-top: 1px solid #E0E0E0;

+ 13 - 3
ebc-middle-platform/src/modules/orientation/orientation.vue

@ -613,13 +613,23 @@ export default {
613 613
      // this.loadCoreEntity()
614 614
    },
615 615
    getPopup(point, positionList, type, name, offset, url) { // 生成Popup
616
      var container = 'container'
617
      if (positionList.length < 3) {
618
        container += positionList.length
619
      }
616 620
      var maxWidth = 100
617 621
      if (type) {
618
        maxWidth = 300
622
        if (positionList.length === 1) {
623
          maxWidth = 120
624
        } else if (positionList.length === 2) {
625
          maxWidth = 200
626
        } else {
627
          maxWidth = 300
628
        }
619 629
      }
620 630
      point.popup = Ai.Popup({
621 631
        maxWidth: maxWidth,
622
        minWidth: 100,
632
        minWidth: maxWidth,
623 633
        offset: offset,
624 634
        autoClose: false,
625 635
        autoPan: false,
@ -632,7 +642,7 @@ export default {
632 642
          content += '<div><img src="' + url + '" width="20" height="20"></div>'
633 643
        }
634 644
        content += '<div>' + name + '</div></div>'
635
        content += '<div class="container">'
645
        content += '<div class="' + container + '">'
636 646
        positionList.forEach(e => {
637 647
          content +=
638 648
              '<div class="' + this.getClassByStatus(e.locationStatus) + '">' + e.name + '</div>'

+ 36 - 0
ebc-middle-platform/src/modules/system-management/default-map.scss

@ -0,0 +1,36 @@
1
.content{
2
    width: 100%;
3
    height: 95%;
4
    padding-left: 0px;
5
    padding-right: 0px;
6
    box-sizing: border-box;
7
}
8
.container{
9
    margin: 20px 0;
10
}
11
.content{
12
    display: flex;
13
    .left{
14
        width: 75%;
15
        height: 90%;
16
    }
17
    .radio-left{
18
        width: 45%;
19
        height: 90%;
20
    }
21
    .right{
22
        width: 20%;
23
        height: 95%;
24
        .header{
25
            display: flex;
26
            justify-content: space-between;
27
            padding-right: 10px;
28
            .import-down{
29
                display: flex;
30
            }
31
        }
32
    }
33
}
34
.right-span{
35
    margin: 6px 0 0 0;
36
}

+ 204 - 0
ebc-middle-platform/src/modules/system-management/default-map.vue

@ -0,0 +1,204 @@
1
<template>
2
  <div class="content">
3
    <div id="div1" class="left" style="margin:0 auto;height: 100%;width: 80%;"></div>
4
    <div class="right">
5
      <div class="container">
6
        <t-form label-position="left">
7
          <div class="header">
8
            <div>中心点</div>
9
          </div>
10
          <div class="row">
11
            <div class="col">
12
              <t-form-item label="经度">
13
                <t-input v-model="lng" placeholder="" @blur="inputChange"></t-input>
14
              </t-form-item>
15
            </div>
16
            <div class="col">
17
              <t-form-item label="纬度">
18
                <t-input v-model="lat" placeholder="" @blur="inputChange"></t-input>
19
              </t-form-item>
20
            </div>
21
          </div>
22
          <div class="header">
23
            <div>缩放级别</div>
24
          </div>
25
          <div class="row">
26
            <div class="col">
27
              <t-radio-group v-model="zoom" vertical @change="radioChange">
28
                <div class="content">
29
                  <span class="radio-left">&nbsp;&nbsp;级别</span>
30
                  <span class="right-span">标尺</span>
31
                </div>
32
                <div class="content">
33
                  <t-radio :label="5" :type="5" class="radio-left"></t-radio>
34
                  <span class="right-span">300km</span>
35
                </div>
36
                <div class="content">
37
                  <t-radio :label="6" :type="6" class="radio-left"></t-radio>
38
                  <span class="right-span">200km</span>
39
                </div>
40
                <div class="content">
41
                  <t-radio :label="7" :type="7" class="radio-left"></t-radio>
42
                  <span class="right-span">100km</span>
43
                </div>
44
                <div class="content">
45
                  <t-radio :label="8" :type="8" class="radio-left"></t-radio>
46
                  <span class="right-span">50km</span>
47
                </div>
48
                <div class="content">
49
                  <t-radio :label="9" :type="9" class="radio-left"></t-radio>
50
                  <span class="right-span">20km</span>
51
                </div>
52
                <div class="content">
53
                  <t-radio :label="10" :type="10" class="radio-left"></t-radio>
54
                  <span class="right-span">10km</span>
55
                </div>
56
                <div class="content">
57
                  <t-radio :label="11" :type="11" class="radio-left"></t-radio>
58
                  <span class="right-span">5km</span>
59
                </div>
60
                <div class="content">
61
                  <t-radio :label="12" :type="12" class="radio-left"></t-radio>
62
                  <span class="right-span">2km</span>
63
                </div>
64
                <div class="content">
65
                  <t-radio :label="13" :type="13" class="radio-left"></t-radio>
66
                  <span class="right-span">1km</span>
67
                </div>
68
                <div class="content">
69
                  <t-radio :label="14" :type="14" class="radio-left"></t-radio>
70
                  <span class="right-span">500m</span>
71
                </div>
72
                <div class="content">
73
                  <t-radio :label="15" :type="15" class="radio-left"></t-radio>
74
                  <span class="right-span">300m</span>
75
                </div>
76
                <div class="content">
77
                  <t-radio :label="16" :type="16" class="radio-left"></t-radio>
78
                  <span class="right-span">200m</span>
79
                </div>
80
                <div class="content">
81
                  <t-radio :label="17" :type="17" class="radio-left"></t-radio>
82
                  <span class="right-span">100m</span>
83
                </div>
84
                <div class="content">
85
                  <t-radio :label="18" :type="18" class="radio-left"></t-radio>
86
                  <span class="right-span">50m</span>
87
                </div>
88
              </t-radio-group>
89
            </div>
90
          </div>
91
          <t-form-item>
92
            <t-button color="success" @click="submit">保存</t-button>
93
            <t-button @click="cancel">取消</t-button>
94
          </t-form-item>
95
        </t-form>
96
      </div>
97
    </div>
98
    <t-loading v-model="fullLoading" fullscreen tip="加载中...."></t-loading>
99
  </div>
100
</template>
101
102
<script>
103
import './default-map.scss'
104
import services from '../../conf/services'
105
import EventBus from '../../bus'
106
import { GIS_SEA_LAYER_URL, GIS_SEA_URL } from '../../constants'
107
export default {
108
  data() {
109
    return {
110
      fullLoading: false,
111
      map: null,
112
      zoom: null,
113
      lat: null,
114
      lng: null
115
    }
116
  },
117
  mounted() {
118
    this.getParam().then(() => {
119
      this.initMap()
120
    })
121
  },
122
  methods: {
123
    async getParam() {
124
      await this.$test.post(services.gisParam.GET_PARAM, {}
125
      ).then(res => {
126
        // 请求成功处理...
127
        this.lng = res.data.SEA_MAP_PARAM_LONGITUDE // 经度
128
        this.lat = res.data.SEA_MAP_PARAM_LATITUDE // 纬度
129
        this.zoom = parseInt(res.data.SEA_MAP_PARAM_SCALE) // 比例尺
130
      }).catch(res => {
131
        // 请求失败处理...
132
      })
133
    },
134
    initMap() { // 加载主屏地图
135
      if (this.map != null && this.map != '') {
136
        this.map.remove()
137
      }
138
      this.map = new Ai.Map('div1', {
139
        ak: this.$store.getters.getGisToken,
140
        center: this.$store.getters.getMapParam.center,
141
        zoom: this.$store.getters.getMapParam.zoom
142
      })
143
      var maplayer = Ai.TileLayer(GIS_SEA_LAYER_URL)
144
      this.map.addLayer(maplayer)
145
      var la = Ai.WMTSLayer(
146
        GIS_SEA_URL,
147
        { opacity: 0.5 }
148
      )
149
      this.map.addLayer(la)
150
      Ai.Scale({ position: 'bottomright' }).addTo(this.map)
151
      Ai.Zoom({ type: 'small' }).addTo(this.map)
152
      this.map.setMinZoom(5)
153
      this.map.setMaxZoom(18)
154
      this.map.on('mouseup', this.moveend)
155
      this.map.on('zoomend', this.zoomend)
156
    },
157
    zoomend(e) {
158
      this.zoom = this.map.getZoom()
159
      this.lat = this.map.getCenter().lat
160
      this.lng = this.map.getCenter().lng
161
    },
162
    moveend(e) {
163
      this.map.on('mouseup', (newe) => {
164
        this.lat = this.map.getCenter().lat
165
        this.lng = this.map.getCenter().lng
166
      })
167
    },
168
    radioChange() {
169
      this.map.setZoom(this.zoom)
170
    },
171
    inputChange() {
172
      if (this.lat && this.lng) {
173
        this.map.setView([this.lat, this.lng], this.zoom)
174
      } else {
175
        this.lat = this.map.getCenter().lat
176
        this.lng = this.map.getCenter().lng
177
      }
178
    },
179
    submit() {
180
      this.fullLoading = true
181
      this.$test
182
        .post(services.gisParam.UPD_PARAM, {
183
          SEA_MAP_PARAM_LONGITUDE: this.lng, // 经度
184
          SEA_MAP_PARAM_LATITUDE: this.lat, // 纬度
185
          SEA_MAP_PARAM_SCALE: this.zoom // 比例尺
186
        })
187
        .then((res) => {
188
          // 请求成功处理...
189
          this.fullLoading = false
190
          this.$Message.success('操作成功')
191
        })
192
        .catch((res) => {
193
          // 请求失败处理...
194
          this.fullLoading = false
195
        })
196
    },
197
    cancel() {
198
      this.getParam().then(() => {
199
        this.map.setView([this.lat, this.lng], this.zoom)
200
      })
201
    }
202
  }
203
}
204
</script>

+ 13 - 0
ebc-middle-platform/src/routes.js

@ -246,6 +246,19 @@ export default [
246 246
            }
247 247
          },
248 248
          {
249
            path: '/system-management/default-map',
250
            name: 'defaultMap',
251
            component: () =>
252
              import(
253
                /* webpackChunkName: "system-management" */ '@/modules/system-management/default-map.vue'
254
              ),
255
            meta: {
256
              title: '默认地图',
257
              hiddenHeaderContent: true,
258
              keepAlive: true
259
            }
260
          },
261
          {
249 262
            path: '/system-management/equipment-management',
250 263
            name: 'equipmentManagement',
251 264
            component: () =>

+ 2 - 2
location-rescue-service/pom.xml

@ -41,11 +41,11 @@
41 41
            <artifactId>httpmime</artifactId>
42 42
        </dependency>
43 43
44
        <dependency>
44
        <!-- <dependency>
45 45
            <groupId>com.ai.bss</groupId>
46 46
            <artifactId>work-tool-service-api</artifactId>
47 47
            <version>2.1.5-SNAPSHOT</version>
48
        </dependency>
48
        </dependency> -->
49 49
50 50
        <dependency>
51 51
            <groupId>com.ai.bss</groupId>

+ 2 - 4
location-rescue-service/src/main/java/com/ai/bss/location/rescue/controller/AttendanceManagementController.java

@ -94,10 +94,8 @@ public class AttendanceManagementController {
94 94
		Map<String, Object> dataMap = new HashMap<String, Object>();
95 95
		if (request != null && request.getData() != null) {
96 96
			dataMap.put("entityName", request.getData().get("userName"));
97
			dataMap.put("inTimeFrom", request.getData().get("inTimeStart"));
98
			dataMap.put("inTimeTo", request.getData().get("inTimeEnd"));
99
			dataMap.put("outTimeFrom", request.getData().get("outTimeStart"));
100
			dataMap.put("outTimeTo", request.getData().get("outTimeEnd"));
97
			dataMap.put("startTime", request.getData().get("startTime"));
98
			dataMap.put("endTime", request.getData().get("endTime"));
101 99
		}
102 100
103 101
		return attendanceManagementService.queryPageTrackRecord(dataMap, pageNumber, pageSize);

+ 1 - 1
location-rescue-service/src/main/java/com/ai/bss/location/rescue/controller/EquipmentManageController.java

@ -95,7 +95,7 @@ public class EquipmentManageController {
95 95
    }
96 96
97 97
    /**
98
	 * 获取所有绑定的设备
98
	 * 获取所有不可绑定的设备
99 99
	 */
100 100
	@ResponseBody
101 101
	@RequestMapping("/queryAllEquipmentNotBind")

+ 0 - 2
location-rescue-service/src/main/java/com/ai/bss/location/rescue/service/impl/DeviceManageServiceImpl.java

@ -14,9 +14,7 @@ import org.springframework.util.CollectionUtils;
14 14
15 15
import com.ai.abc.api.model.CommonRequest;
16 16
import com.ai.abc.api.model.CommonResponse;
17
import com.ai.bss.characteristic.spec.model.CharacteristicSpec;
18 17
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
19
import com.ai.bss.characteristic.spec.service.api.CharacteristicSpecService;
20 18
import com.ai.bss.components.common.model.PageInfo;
21 19
import com.ai.bss.location.rescue.service.interfaces.CharSpecService;
22 20
import com.ai.bss.location.rescue.service.interfaces.DeviceManageService;

+ 38 - 20
security-protection-service/src/main/java/com/ai/bss/security/protection/controller/AttendanceReportController.java

@ -4,18 +4,17 @@ package com.ai.bss.security.protection.controller;
4 4
import com.ai.abc.api.model.CommonRequest;
5 5
import com.ai.abc.api.model.CommonResponse;
6 6
import com.ai.bss.components.common.model.PageBean;
7
import com.ai.bss.security.protection.model.AttendanceReport;
7 8
import com.ai.bss.security.protection.service.interfaces.AttendanceReportService;
8 9
import com.ai.bss.security.protection.util.EbcConstant;
9
import com.github.pagehelper.PageInfo;
10 10
import org.slf4j.Logger;
11 11
import org.slf4j.LoggerFactory;
12 12
import org.springframework.beans.factory.annotation.Autowired;
13 13
import org.springframework.stereotype.Controller;
14
import org.springframework.web.bind.annotation.RequestBody;
14
import org.springframework.web.bind.annotation.ModelAttribute;
15 15
import org.springframework.web.bind.annotation.RequestMapping;
16 16
import org.springframework.web.bind.annotation.ResponseBody;
17 17
18
import java.util.Date;
19 18
import java.util.HashMap;
20 19
import java.util.List;
21 20
import java.util.Map;
@ -33,7 +32,7 @@ public class AttendanceReportController {
33 32
34 33
	/**
35 34
	 * 分页查询考勤报表日报
36
	 * @param request 组合条件
35
	 * @param  attendanceReport
37 36
	 *                                workDay : 日报日期 (yyyy-MM-dd格式),必选
38 37
	 *                                orgId:所属组织ID
39 38
	 *                                id:个人编码(员工编码)
@ -43,13 +42,19 @@ public class AttendanceReportController {
43 42
44 43
	@ResponseBody
45 44
	@RequestMapping("/queryDailyAttendanceReport")
46
	public CommonResponse<PageBean<Map<String,Object>>> queryDailyAttendanceReport(@RequestBody CommonRequest<Map<String, Object>> request) throws Exception {
45
	public CommonResponse<PageBean<Map<String,Object>>> queryDailyAttendanceReport(@ModelAttribute AttendanceReport attendanceReport) throws Exception {
47 46
		// 当前页数
48
		int pageNumber = request.getPageNumber() < 1 ? 1 : request.getPageNumber();
47
		int pageNumber = attendanceReport.getPageNumber() < 1 ? 1 : attendanceReport.getPageNumber();
49 48
		// 每页条数
50
		int pageSize = request.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : request.getPageSize();
49
		int pageSize = attendanceReport.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : attendanceReport.getPageSize();
50
51
		Map<String, Object> params = new HashMap<>();
52
		params.put("workDay",attendanceReport.getWorkDay());
53
		params.put("orgId",attendanceReport.getOrgId());
54
		params.put("id",attendanceReport.getId());
55
		params.put("nameAsLike",attendanceReport.getNameAsLike());
56
		params.put("mainJobPositionId",attendanceReport.getMainJobPositionId());
51 57
52
		Map<String, Object> params = request.getData() == null ? new HashMap<String, Object>() : request.getData();
53 58
		CommonResponse<PageBean<Map<String,Object>>> commonResponse = attendanceReportService.queryDailyAttendanceReport(params, pageNumber, pageSize);
54 59
55 60
@ -68,13 +73,18 @@ public class AttendanceReportController {
68 73
69 74
	@ResponseBody
70 75
	@RequestMapping("/queryMonthlyAttendanceReport")
71
	public CommonResponse<PageBean<Map<String,Object>>> queryMonthlyAttendanceReport(@RequestBody CommonRequest<Map<String, Object>> request) throws Exception {
76
	public CommonResponse<PageBean<Map<String,Object>>> queryMonthlyAttendanceReport(@ModelAttribute AttendanceReport attendanceReport) throws Exception {
72 77
		// 当前页数
73
		int pageNumber = request.getPageNumber() < 1 ? 1 : request.getPageNumber();
78
		int pageNumber = attendanceReport.getPageNumber() < 1 ? 1 : attendanceReport.getPageNumber();
74 79
		// 每页条数
75
		int pageSize = request.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : request.getPageSize();
76
77
		Map<String, Object> params = request.getData() == null ? new HashMap<String, Object>() : request.getData();
80
		int pageSize = attendanceReport.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : attendanceReport.getPageSize();
81
82
		Map<String, Object> params = new HashMap<>();
83
		params.put("month",attendanceReport.getMonth());
84
		params.put("orgId",attendanceReport.getOrgId());
85
		params.put("id",attendanceReport.getId());
86
		params.put("nameAsLike",attendanceReport.getNameAsLike());
87
		params.put("mainJobPositionId",attendanceReport.getMainJobPositionId());
78 88
		CommonResponse<PageBean<Map<String,Object>>> commonResponse= attendanceReportService.queryMonthlyAttendanceReport(params, pageNumber, pageSize);
79 89
80 90
		return commonResponse;
@ -87,13 +97,18 @@ public class AttendanceReportController {
87 97
	 */
88 98
	@ResponseBody
89 99
	@RequestMapping("/queryPageAbnormalAttendance")
90
	public CommonResponse<PageBean<Map<String,Object>>> queryPageAbnormalAttendance(@RequestBody CommonRequest<Map<String, Object>> request) throws Exception {
100
	public CommonResponse<PageBean<Map<String,Object>>> queryPageAbnormalAttendance(@ModelAttribute AttendanceReport attendanceReport) throws Exception {
91 101
		// 当前页数
92
		int pageNumber = request.getPageNumber() < 1 ? 1 : request.getPageNumber();
102
		int pageNumber = attendanceReport.getPageNumber() < 1 ? 1 : attendanceReport.getPageNumber();
93 103
		// 每页条数
94
		int pageSize = request.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : request.getPageSize();
95
96
		Map<String, Object> params = request.getData() == null ? new HashMap<String, Object>() : request.getData();
104
		int pageSize = attendanceReport.getPageSize() < 1 ? EbcConstant.DEFAULT_PAGE_SIZE : attendanceReport.getPageSize();
105
106
		Map<String, Object> params = new HashMap<>();
107
		params.put("month",attendanceReport.getMonth());
108
		params.put("orgId",attendanceReport.getOrgId());
109
		params.put("id",attendanceReport.getId());
110
		params.put("nameAsLike",attendanceReport.getNameAsLike());
111
		params.put("mainJobPositionId",attendanceReport.getMainJobPositionId());
97 112
		CommonResponse<PageBean<Map<String,Object>>> commonResponse= attendanceReportService.queryPageAbnormalAttendance(params, pageNumber, pageSize);
98 113
99 114
		return commonResponse;
@ -110,8 +125,11 @@ public class AttendanceReportController {
110 125
111 126
	@ResponseBody
112 127
	@RequestMapping("/queryAttendanceDetailReport")
113
	public CommonResponse<List<Map<String, Object>>> queryAttendanceDetailReport(@RequestBody CommonRequest<Map<String, Object>> request) throws Exception {
114
		Map<String, Object> params = request.getData() == null ? new HashMap<String, Object>() : request.getData();
128
	public CommonResponse<List<Map<String, Object>>> queryAttendanceDetailReport(@ModelAttribute AttendanceReport attendanceReport) throws Exception {
129
		Map<String, Object> params = new HashMap<>();
130
		params.put("beginDay",attendanceReport.getBeginDay());
131
		params.put("endDay",attendanceReport.getEndDay());
132
		params.put("id",attendanceReport.getId());
115 133
		CommonResponse<List<Map<String, Object>>> commonResponse = attendanceReportService.queryAttendanceDetailReport(params);
116 134
		return commonResponse;
117 135

+ 33 - 0
security-protection-service/src/main/java/com/ai/bss/security/protection/model/AttendanceReport.java

@ -0,0 +1,33 @@
1
package com.ai.bss.security.protection.model;
2
3
import lombok.Data;
4
import org.springframework.format.annotation.DateTimeFormat;
5
6
import java.io.Serializable;
7
import java.util.Date;
8
9
/*考勤参数接收类*/
10
11
@Data
12
public class AttendanceReport implements Serializable {
13
14
    private  String orgId; //组织id
15
16
    private  String id; //人员id 个人编码 员工编码
17
18
    private  String mainJobPositionId;  //职位id
19
20
    private  String nameAsLike; //姓名(模糊)
21
22
    private String workDay; //当前日期
23
24
    private String month; //月份
25
26
    private String beginDay; //开始日期
27
28
    private String endDay; //结束日期
29
30
    int pageNumber = 0; // 当前页数
31
32
    int pageSize = 0; // 每页条数
33
}