From 7755e9ba6ca8ce58cc0a58578ddc1d965aba380a Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 14 八月 2024 18:13:23 +0800
Subject: [PATCH] 最新版本
---
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java | 22 +
admin/src/views/business/deviceBroadcast.vue | 121 ++++++
admin/src/components/business/OperaPlatformWindow.vue | 199 ++++++-----
admin/src/views/business/deviceLed.vue | 121 ++++++
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/LedRecordsRequest.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LedRecordsInfoResponse.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java | 13
admin/src/api/platform/platformGroup.js | 45 ++
admin/src/views/platform/platform.vue | 43 +-
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java | 2
admin/src/utils/form.js | 10
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java | 7
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java | 3
admin/src/views/business/device.vue | 6
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java | 6
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java | 14
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java | 13
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java | 8
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformStatusInfoResponse.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java | 44 ++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java | 321 +++++++++++++++++
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java | 10
24 files changed, 869 insertions(+), 152 deletions(-)
diff --git a/admin/src/api/platform/platformGroup.js b/admin/src/api/platform/platformGroup.js
new file mode 100644
index 0000000..87cdd5a
--- /dev/null
+++ b/admin/src/api/platform/platformGroup.js
@@ -0,0 +1,45 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/visitsAdmin/cloudService/business/platformGroup/page', data, {
+ trim: true
+ })
+}
+export function allList (data) {
+ return request.post('/visitsAdmin/cloudService/business/platformGroup/list', data, {
+ trim: true
+ })
+}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/visitsAdmin/cloudService/business/platformGroup/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
+
+// 鍒涘缓
+export function create (data) {
+ return request.post('/visitsAdmin/cloudService/business/platformGroup/create', data)
+}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/visitsAdmin/cloudService/business/platformGroup/updateById', data)
+}
+
+// 鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/visitsAdmin/cloudService/business/platformGroup/delete/${id}`)
+}
+
+// 鎵归噺鍒犻櫎
+export function deleteByIdInBatch (ids) {
+ return request.get('/visitsAdmin/cloudService/business/platformGroup/delete/batch', {
+ params: {
+ ids
+ }
+ })
+}
diff --git a/admin/src/components/business/OperaPlatformWindow.vue b/admin/src/components/business/OperaPlatformWindow.vue
index 753000b..de11275 100644
--- a/admin/src/components/business/OperaPlatformWindow.vue
+++ b/admin/src/components/business/OperaPlatformWindow.vue
@@ -1,88 +1,60 @@
<template>
<GlobalWindow
:title="title"
+ width="50%"
:visible.sync="visible"
:confirm-working="isWorking"
@confirm="confirm"
>
<el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
+ <el-form-item label="鏈堝彴鍚嶇О锛�" >
+ <span>{{form.name}}</span>
</el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
+ <el-form-item label="鏈堝彴缂栫爜锛�" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ユ湀鍙扮紪鐮�" v-trim/>
+ <span class="tip-warn"><i class="el-icon-warning"></i>璇存槑锛氬搴擶MS绯荤粺涓殑缂栫爜</span>
</el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
+ <el-form-item label="鎵�灞炴湀鍙板垎缁勶細" prop="groupId">
+ <el-select v-model="form.groupId" >
+ <el-option
+ v-for="item in groupList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
+ <el-form-item label="骞挎挱璁惧锛�" prop="broadcastIds">
+ <el-select v-model="form.broadcastIds" multiple >
+ <el-option
+ v-for="item in broadcastList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
+ <el-form-item label="LED璁惧锛�" prop="ledIds">
+ <el-select v-model="form.ledIds" multiple >
+ <el-option
+ v-for="item in ledList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鍚嶇О" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
+ <el-form-item label="鍚屾椂浣滀笟鏁伴噺锛�" prop="workingNum" >
+ <el-input type="number" v-model="form.workingNum" placeholder="璇疯緭鍏ュ悓鏃朵綔涓氭暟閲�" v-trim/>
</el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
+ <el-form-item label="鏈堝彴浣滀笟鏁堢巼(涓囧彧/灏忔椂)锛�" prop="workRate">
+ <el-input type="number" v-model="form.workRate" placeholder="璇疯緭鍏ユ湀鍙颁綔涓氭晥鐜�(涓囧彧/灏忔椂)" v-trim/>
</el-form-item>
- <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+ <el-form-item label="浣滀笟瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓)锛�" prop="waitCallTime">
+ <el-input type="number" v-model="form.waitCallTime" placeholder="璇疯緭鍏ヤ綔涓氳秴鏃舵姤璀︽椂闂�(鍒嗛挓)" v-trim/>
</el-form-item>
- <el-form-item label="鎺掑簭鐮�" prop="sortnum">
- <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
- </el-form-item>
- <el-form-item label="鎵�灞炴湀鍙板垎閽熺紪鐮侊紙g鍏宠仈platform_group)" prop="groupId">
- <el-input v-model="form.groupId" placeholder="璇疯緭鍏ユ墍灞炴湀鍙板垎閽熺紪鐮侊紙g鍏宠仈platform_group)" v-trim/>
- </el-form-item>
- <el-form-item label="宸ヤ綔寮�濮嬫椂闂�" prop="startTime">
- <el-input v-model="form.startTime" placeholder="璇疯緭鍏ュ伐浣滃紑濮嬫椂闂�" v-trim/>
- </el-form-item>
- <el-form-item label="宸ヤ綔缁撴潫鏃堕棿" prop="endTime">
- <el-input v-model="form.endTime" placeholder="璇疯緭鍏ュ伐浣滅粨鏉熸椂闂�" v-trim/>
- </el-form-item>
- <el-form-item label="鍚屾椂浣滀笟鏁伴噺" prop="workingNum">
- <el-input v-model="form.workingNum" placeholder="璇疯緭鍏ュ悓鏃朵綔涓氭暟閲�" v-trim/>
- </el-form-item>
- <el-form-item label="绛夊緟鏁欏ソ鏃堕棿(绉掞級" prop="wariCallTime">
- <el-input v-model="form.wariCallTime" placeholder="璇疯緭鍏ョ瓑寰呮暀濂芥椂闂�(绉掞級" v-trim/>
- </el-form-item>
- <el-form-item label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(绉掞級" prop="alermTime">
- <el-input v-model="form.alermTime" placeholder="璇疯緭鍏ュ仠鐣欒秴鏃舵姤璀︽椂闂�(绉掞級" v-trim/>
- </el-form-item>
- <el-form-item label="鏈�鍚庝簨浠舵帹閫佹椂闂�" prop="lastEventTime">
- <el-date-picker v-model="form.lastEventTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ渶鍚庝簨浠舵帹閫佹椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鐩戞帶鐐瑰悕绉帮紝澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑" prop="deviceNames">
- <el-input v-model="form.deviceNames" placeholder="璇疯緭鍏ョ洃鎺х偣鍚嶇О锛屽涓敤鑻辨枃閫楀彿闅斿紑" v-trim/>
- </el-form-item>
- <el-form-item label="鏈堝彴灞忓箷鍚嶇О锛屽涓敤鑻辨枃閫楀彿闅斿紑" prop="screenName">
- <el-input v-model="form.screenName" placeholder="璇疯緭鍏ユ湀鍙板睆骞曞悕绉帮紝澶氫釜鐢ㄨ嫳鏂囬�楀彿闅斿紑" v-trim/>
- </el-form-item>
- <el-form-item label="娴峰悍鏍囪瘑" prop="hkId">
- <el-input v-model="form.hkId" placeholder="璇疯緭鍏ユ捣搴锋爣璇�" v-trim/>
- </el-form-item>
- <el-form-item label="鍏宠仈鎵跨鍏徃" prop="companys">
- <el-input v-model="form.companys" placeholder="璇疯緭鍏ュ叧鑱旀壙绉熷叕鍙�" v-trim/>
- </el-form-item>
- <el-form-item label="X鍧愭爣" prop="xpos">
- <el-input v-model="form.xpos" placeholder="璇疯緭鍏鍧愭爣" v-trim/>
- </el-form-item>
- <el-form-item label="Y鍧愭爣" prop="ypos">
- <el-input v-model="form.ypos" placeholder="璇疯緭鍏鍧愭爣" v-trim/>
- </el-form-item>
- <el-form-item label="瀹藉害" prop="width">
- <el-input v-model="form.width" placeholder="璇疯緭鍏ュ搴�" v-trim/>
- </el-form-item>
- <el-form-item label="楂樺害" prop="height">
- <el-input v-model="form.height" placeholder="璇疯緭鍏ラ珮搴�" v-trim/>
- </el-form-item>
- <el-form-item label="瑙掑害" prop="angle">
- <el-input v-model="form.angle" placeholder="璇疯緭鍏ヨ搴�" v-trim/>
- </el-form-item>
- <el-form-item label="娴峰悍鏍囪瘑鍚屾鏃堕棿" prop="hkData">
- <el-date-picker v-model="form.hkData" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ捣搴锋爣璇嗗悓姝ユ椂闂�"></el-date-picker>
+ <el-form-item label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛夛細" prop="alermTime">
+ <el-input type="number" v-model="form.alermTime" placeholder="璇疯緭鍏ヨ杈撳叆鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓)" v-trim/>
</el-form-item>
</el-form>
</GlobalWindow>
@@ -91,6 +63,9 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+import { numRuleGtZero } from '@/utils/form'
+import { allList } from '@/api/platform/platformGroup'
+import { getList as deviceList } from '@/api/business/device'
export default {
name: 'OperaPlatformWindow',
extends: BaseOpera,
@@ -98,37 +73,25 @@
data () {
return {
// 琛ㄥ崟鏁版嵁
+ groupList: [],
+ broadcastList: [],
+ ledList: [],
form: {
id: null,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
+ ledIds: null,
+ broadcastIds: null,
name: '',
- remark: '',
- status: '',
- sortnum: '',
groupId: '',
startTime: '',
endTime: '',
- workingNum: '',
- wariCallTime: '',
- alermTime: '',
- lastEventTime: '',
- deviceNames: '',
- screenName: '',
- hkId: '',
- companys: '',
- xpos: '',
- ypos: '',
- width: '',
- height: '',
- angle: '',
- hkData: ''
+ workingNum: 1,
+ workRate: '',
+ waitCallTime: '',
+ alermTime: ''
},
// 楠岃瘉瑙勫垯
rules: {
+ workingNum: [{ required: true, validator: numRuleGtZero, message: '璇疯緭鍏ュ悓鏃朵綔涓氭暟閲�,蹇呴』澶т簬0! ', trigger: 'blur' }]
}
}
},
@@ -137,6 +100,60 @@
api: '/platform/platform',
'field.id': 'id'
})
+ },
+ methods: {
+ /**
+ * 鎵撳紑绐楀彛
+ * @title 绐楀彛鏍囬
+ * @target 缂栬緫鐨勫璞�
+ */
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ this.form.company = []
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ this.form.workingNum = this.form.workingNum || 1
+ })
+ this.loadGroupList()
+ this.loadLedList()
+ this.loadBroadcastList()
+ },
+ loadGroupList () {
+ allList({})
+ .then(res => {
+ this.groupList = res || []
+ })
+ },
+ loadLedList () {
+ deviceList({ type: 2 })
+ .then(res => {
+ this.ledList = res || []
+ })
+ },
+ loadBroadcastList () {
+ deviceList({ type: 3 })
+ .then(res => {
+ this.broadcastList = res || []
+ })
+ }
}
}
</script>
+<style scoped>
+.labelTip{
+ font-size: 12px;
+ color: #666666;
+}
+</style>
diff --git a/admin/src/utils/form.js b/admin/src/utils/form.js
index bb53d89..5ca6e9d 100644
--- a/admin/src/utils/form.js
+++ b/admin/src/utils/form.js
@@ -26,7 +26,15 @@
export function numRule (rule, value, callback) {
// debugger
- if (value == null || value < 0 || !value) {
+ if (value == null || !value || value < 0) {
+ callback(new Error())
+ } else {
+ callback()
+ }
+}
+export function numRuleGtZero (rule, value, callback) {
+ // debugger
+ if (value == null || !value || value <= 0) {
callback(new Error())
} else {
callback()
diff --git a/admin/src/views/business/device.vue b/admin/src/views/business/device.vue
index 701414d..0ffb767 100644
--- a/admin/src/views/business/device.vue
+++ b/admin/src/views/business/device.vue
@@ -80,7 +80,6 @@
import Pagination from '@/components/common/Pagination'
import OperaDeviceWindow from '@/components/business/OperaDeviceWindow'
import { syncDevices, updateEntranceById } from '@/api/business/device'
-import { memberSync } from '@/api/business/member'
export default {
name: 'Device',
extends: BaseTable,
@@ -92,7 +91,8 @@
doorName: '',
regionPathName: '',
isEntrance: '',
- online: ''
+ online: '',
+ type:0
},
options: []
}
@@ -117,7 +117,7 @@
this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
.then(() => {
this.isWorking.delete = true
- syncDevices({})
+ syncDevices({type:0})
.then(res => {
this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
this.search()
diff --git a/admin/src/views/business/deviceBroadcast.vue b/admin/src/views/business/deviceBroadcast.vue
new file mode 100644
index 0000000..f5a4e65
--- /dev/null
+++ b/admin/src/views/business/deviceBroadcast.vue
@@ -0,0 +1,121 @@
+<template>
+ <TableLayout :permissions="['business:device:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="synchronousData">鍚屾</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="name" label="璁惧鍚嶇О"></el-table-column>
+ <el-table-column prop="doorName" label="闂ㄧ鐐瑰悕绉�"></el-table-column>
+ <el-table-column prop="regionPathName" label="鍖哄煙鍚嶇О"></el-table-column>
+ <el-table-column prop="doorNo" label="闂ㄧ鐐圭紪鍙�"></el-table-column>
+ <el-table-column prop="manufature" label="鍘傚晢"></el-table-column>
+ <el-table-column prop="online" label="鍦ㄧ嚎鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.online == 0">绂荤嚎</span>
+ <span v-if="row.online == 1">鍦ㄧ嚎</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="ip" label="璁惧ip"></el-table-column>
+ <el-table-column prop="port" label="璁惧绔彛"></el-table-column>
+ <el-table-column label="鏄惁鍥尯鍏ュ彛">
+ <template slot-scope="{row}">
+ <el-switch
+ @change="changeManufature($event, row)"
+ v-model="row.isEntrance"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="1"
+ :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column prop="no" label="璁惧鍙�"></el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+<!-- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>-->
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaDeviceWindow from '@/components/business/OperaDeviceWindow'
+import { syncDevices, updateEntranceById } from '@/api/business/device'
+export default {
+ name: 'Device',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaDeviceWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ doorName: '',
+ regionPathName: '',
+ isEntrance: '',
+ online: '',
+ type: 3
+ },
+ options: []
+ }
+ },
+ created () {
+ this.config({
+ module: '璁惧淇℃伅琛�',
+ api: '/business/device',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ changeManufature(e, row) {
+ updateEntranceById({
+ id: row.id,
+ isEntrance: e
+ })
+ },
+ synchronousData () {
+ this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
+ .then(() => {
+ this.isWorking.delete = true
+ syncDevices({type: 3})
+ .then(res => {
+ this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.delete = false
+ })
+ })
+ .catch(() => {})
+ }
+ }
+}
+</script>
diff --git a/admin/src/views/business/deviceLed.vue b/admin/src/views/business/deviceLed.vue
new file mode 100644
index 0000000..05737ca
--- /dev/null
+++ b/admin/src/views/business/deviceLed.vue
@@ -0,0 +1,121 @@
+<template>
+ <TableLayout :permissions="['business:device:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="synchronousData">鍚屾</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="name" label="璁惧鍚嶇О"></el-table-column>
+ <el-table-column prop="doorName" label="闂ㄧ鐐瑰悕绉�"></el-table-column>
+ <el-table-column prop="regionPathName" label="鍖哄煙鍚嶇О"></el-table-column>
+ <el-table-column prop="doorNo" label="闂ㄧ鐐圭紪鍙�"></el-table-column>
+ <el-table-column prop="manufature" label="鍘傚晢"></el-table-column>
+ <el-table-column prop="online" label="鍦ㄧ嚎鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.online == 0">绂荤嚎</span>
+ <span v-if="row.online == 1">鍦ㄧ嚎</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="ip" label="璁惧ip"></el-table-column>
+ <el-table-column prop="port" label="璁惧绔彛"></el-table-column>
+ <el-table-column label="鏄惁鍥尯鍏ュ彛">
+ <template slot-scope="{row}">
+ <el-switch
+ @change="changeManufature($event, row)"
+ v-model="row.isEntrance"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="1"
+ :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column prop="no" label="璁惧鍙�"></el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+<!-- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>-->
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaDeviceWindow from '@/components/business/OperaDeviceWindow'
+import { syncDevices, updateEntranceById } from '@/api/business/device'
+export default {
+ name: 'Device',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaDeviceWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ doorName: '',
+ regionPathName: '',
+ isEntrance: '',
+ online: '',
+ type:2
+ },
+ options: []
+ }
+ },
+ created () {
+ this.config({
+ module: '璁惧淇℃伅琛�',
+ api: '/business/device',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ changeManufature(e, row) {
+ updateEntranceById({
+ id: row.id,
+ isEntrance: e
+ })
+ },
+ synchronousData () {
+ this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
+ .then(() => {
+ this.isWorking.delete = true
+ syncDevices({type:2})
+ .then(res => {
+ this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.delete = false
+ })
+ })
+ .catch(() => {})
+ }
+ }
+}
+</script>
diff --git a/admin/src/views/platform/platform.vue b/admin/src/views/platform/platform.vue
index 19d6d74..a06f52b 100644
--- a/admin/src/views/platform/platform.vue
+++ b/admin/src/views/platform/platform.vue
@@ -25,21 +25,28 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="鏈堝彴鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="hkId" label="鏈堝彴缂栫爜" min-width="100px"></el-table-column>
- <el-table-column prop="groupName" label="鎵�灞炴湀鍙扮粍" min-width="100px"></el-table-column>
- <el-table-column prop="workingNum" label="鍚屾椂鍙彿杞﹁締鏁�" min-width="100px"></el-table-column>
- <el-table-column prop="alermTime" label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="100px">
- <template scope="{row}">{{row.alermTime?(row.alermTime/60):'-'}}</template>
+ <el-table-column prop="name" label="鏈堝彴鍚嶇О" fixed min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="鏈堝彴缂栫爜" fixed min-width="100px"></el-table-column>
+ <el-table-column prop="groupName" label="鎵�灞炴湀鍙扮粍" fixed min-width="100px"></el-table-column>
+ <el-table-column prop="workingNum" label="鍚屾椂鍙彿杞﹁締鏁�" min-width="120px"></el-table-column>
+ <el-table-column prop="alermTime" label="鍋滅暀瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="180px">
+ <template scope="{row}">{{row.alermTime?(row.alermTime):'-'}}</template>
</el-table-column>
- <el-table-column prop="waitCallTime" label="浣滀笟瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="100px">
- <template scope="{row}"> {{row.waitCallTime?(row.alermTime/60):'-'}}</template>
+ <el-table-column prop="waitCallTime" label="浣滀笟瓒呮椂鎶ヨ鏃堕棿(鍒嗛挓锛�" min-width="180px">
+ <template scope="{row}"> {{row.waitCallTime?(row.alermTime):'-'}}</template>
</el-table-column>
- <el-table-column prop="workRate" label="鏈堝彴浣滀笟鏁堢巼(涓囧彧/灏忔椂)" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px"></el-table-column>
- <el-table-column prop="broadcastName" label="鍏宠仈骞挎挱" min-width="100px"></el-table-column>
- <el-table-column prop="ledName" label="鍏宠仈LED" min-width="100px"></el-table-column>
- <el-table-column prop="hkDate" label="鍚屾鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="workRate" label="鏈堝彴浣滀笟鏁堢巼(涓囧彧/灏忔椂)" min-width="180px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <template scope="{row}">
+ <span v-if="row.status == 0">鏃犺溅</span>
+ <span v-if="row.status == 1">鏈夎溅</span>
+ <span v-if="row.status == 2">瓒呮椂鍋滈潬</span>
+ <span v-if="row.status == 3">閿欒鍋滈潬</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="broadcastNames" label="鍏宠仈骞挎挱" min-width="100px"></el-table-column>
+ <el-table-column prop="ledNames" label="鍏宠仈LED" min-width="100px"></el-table-column>
+ <el-table-column prop="hkDate" label="鍚屾鏃堕棿" min-width="140px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:platform:update', 'business:platform:delete'])"
label="鎿嶄綔"
@@ -70,8 +77,6 @@
import SearchFormCollapse from '@/components/common/SearchFormCollapse'
import Pagination from '@/components/common/Pagination'
import OperaPlatformWindow from '@/components/business/OperaPlatformWindow'
-import { syncDevices, updateEntranceById } from '@/api/business/device'
-import { syncPlatforms } from '@/api/platform/platform'
export default {
name: 'Platform',
extends: BaseTable,
@@ -96,12 +101,6 @@
this.search()
},
methods: {
- changeManufature (e, row) {
- updateEntranceById({
- id: row.id,
- isEntrance: e
- })
- },
syncData () {
this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
.then(() => {
@@ -124,7 +123,7 @@
this.$dialog.actionConfirm('鎿嶄綔纭鎻愰啋', '鎮ㄧ‘璁ゅ悓姝ュ叏閮ㄤ俊鎭悧锛�')
.then(() => {
this.isWorking.working = true
- this.api.syncPlatforms({})
+ this.api.syncPlatformStatus({})
.then(res => {
this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
this.search()
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
index 2af227f..144d6dc 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -8,6 +8,7 @@
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.model.Device;
import com.doumee.service.business.impl.hksync.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -58,7 +59,7 @@
@ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ラ棬绂佽澶囨帴鍙�")
@PostMapping("/syncDevices")
@RequiresPermissions("business:hksync:device")
- public ApiResponse syncHkDevices(@RequestBody AcsDeviceListRequest param) {
+ public ApiResponse syncHkDevices(@RequestBody Device param) {
String result = hkSyncDeviceService.syncHkDevices(param);
return ApiResponse.success(result);
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
index 256358f..48c67b6 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -9,6 +9,7 @@
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.Device;
import com.doumee.service.business.impl.hksync.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -59,8 +60,17 @@
@ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ラ棬绂佽澶囨帴鍙�")
@PostMapping("/syncDevices")
@CloudRequiredPermission("business:hksync:device")
- public ApiResponse syncHkDevices(@RequestBody AcsDeviceListRequest param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
- String result = hkSyncDeviceService.syncHkDevices(param);
+ public ApiResponse syncHkDevices(@RequestBody Device param, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ String result = null;
+ if(Constants.equalsInteger(param.getType(),Constants.ZERO)){
+ result = hkSyncDeviceService.syncHkDevices(param);
+ }else if(Constants.equalsInteger(param.getType(),Constants.TWO)){
+ //鍚屾LED
+ result = hkSyncDeviceService.syncHkLed(param);
+ }else if(Constants.equalsInteger(param.getType(),Constants.THREE)){
+ //鍚屾骞挎挱
+ result = hkSyncDeviceService.syncHkBroadcast(param);
+ }
return ApiResponse.success(result);
}
@PreventRepeat
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
index b8c30f1..150f083 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
@@ -16,6 +16,8 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
/**
* @author 姹熻箘韫�
* @since 2024/04/28 16:06
@@ -64,8 +66,16 @@
@PostMapping("/page")
@CloudRequiredPermission("business:platformgroup:query")
public ApiResponse<PageData<PlatformGroup>> findPage (@RequestBody PageWrap<PlatformGroup> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
return ApiResponse.success(platformGroupService.findPage(pageWrap));
}
+ @ApiOperation("鏌ヨ鍒楄〃")
+ @PostMapping("/list")
+ @CloudRequiredPermission("business:platformgroup:query")
+ public ApiResponse<List<PlatformGroup>> list (@RequestBody PlatformGroup pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ pageWrap.setIsdeleted(Constants.ZERO);
+ return ApiResponse.success(platformGroupService.findList(pageWrap));
+ }
@ApiOperation("瀵煎嚭Excel")
@PostMapping("/exportExcel")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index ef6947a..019195d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -10,6 +10,7 @@
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.tomcat.util.bcel.Const;
@@ -625,11 +626,14 @@
}
/**
* 鑾峰彇鏈堝彴鐘舵��
- * @param body
* @return
*/
public static String platformStatus(String param) {
- return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus+"?platformIds="+param,null);
+ if(StringUtils.isNotBlank(param)){
+ return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus+"?platformIds="+param,null);
+ }else{
+ return startDoPostStringArtemis(HKConstants.InterfacePath.platformStatus,null);
+ }
}
/**
* 鑾峰彇鏈堝彴缁勪欢閰嶇疆鐨凩ED璁惧娓呭崟
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/LedRecordsRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/LedRecordsRequest.java
index 6485703..f1ae6ec 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/LedRecordsRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/LedRecordsRequest.java
@@ -4,5 +4,6 @@
@Data
public class LedRecordsRequest {
-
+ private Integer pageNo ;//String true 鍒嗛〉椤电爜
+ private Integer pageSize ;//String true 鍒嗛〉澶у皬
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LedRecordsInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LedRecordsInfoResponse.java
index 071ff26..84197ed 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LedRecordsInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LedRecordsInfoResponse.java
@@ -7,4 +7,5 @@
@Data
public class LedRecordsInfoResponse {
+ private String indexCode;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformStatusInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformStatusInfoResponse.java
index d3c8834..4b050a5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformStatusInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/PlatformStatusInfoResponse.java
@@ -8,7 +8,7 @@
public class PlatformStatusInfoResponse {
- private String platformtId ;//String false 鏈堝彴ID
+ private String platformId ;//String false 鏈堝彴ID
private String cameraIndexcode ;//String false 鏈堝彴鍏宠仈鐩戞帶鐐�
private String plateNo ;//String false 杞︾墝鍙�
private String name;// String false 鏈堝彴鍚嶇О
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index a4f6d22..a185029 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1097,13 +1097,13 @@
*鐢ㄤ簬璁剧疆骞挎挱鐨勮嚜瀹氭挱鏀惧拰鍋滄
* @return
*/
- public static BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> customBroadcast(CustomBroadcastRequest param){
+ public static BaseResponse customBroadcast(CustomBroadcastRequest param){
log.info("銆愭捣搴风敤浜庤缃箍鎾殑鑷畾鎾斁鍜屽仠姝€��================寮�濮�===="+JSONObject.toJSONString(param));
try {
String res = HKTools.customBroadcast(JSONObject.toJSONString(param));
TypeReference typeReference =
- new TypeReference< BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> >(){};
- BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType());
+ new TypeReference< BaseResponse>(){};
+ BaseResponse result = JSONObject.parseObject(res, typeReference.getType());
logResult(result,"娴峰悍鐢ㄤ簬璁剧疆骞挎挱鐨勮嚜瀹氭挱鏀惧拰鍋滄");
return result;
}catch (Exception e){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java
index eb6c8c2..95a25af 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/PlatformMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.Platform;
+import com.github.yulichang.base.MPJBaseMapper;
/**
* @author 姹熻箘韫�
* @date 2024/06/28 10:03
*/
-public interface PlatformMapper extends BaseMapper<Platform> {
+public interface PlatformMapper extends MPJBaseMapper<Platform> {
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
index ee69b57..1209387 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
@@ -71,8 +71,8 @@
@ExcelColumn(name="鎺掑簭鐮�")
private Integer sortnum;
- @ApiModelProperty(value = "绫诲瀷 0闂ㄧ 1杞﹀簱", example = "1")
- @ExcelColumn(name="绫诲瀷 0闂ㄧ 1杞﹀簱")
+ @ApiModelProperty(value = "绫诲瀷 0闂ㄧ 1杞﹀簱 2LED 3骞挎挱", example = "1")
+ @ExcelColumn(name="绫诲瀷 0闂ㄧ 1杞﹀簱 2LED 3骞挎挱")
private Integer type;
@ApiModelProperty(value = "鏄惁鍥尯鍑哄叆鍙� 0涓嶆槸 1鏄�", example = "1")
@ExcelColumn(name="鏄惁鍥尯鍑哄叆鍙� 0涓嶆槸 1鏄�")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index 5dc5399..ca20201 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -52,13 +52,16 @@
@ApiModelProperty(value = "鍚嶇О")
@ExcelColumn(name="鍚嶇О")
private String name;
+ @ApiModelProperty(value = "缂栫爜")
+ @ExcelColumn(name="缂栫爜")
+ private String code;
@ApiModelProperty(value = "澶囨敞")
@ExcelColumn(name="澶囨敞")
private String remark;
- @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
- @ExcelColumn(name="鐘舵�� 0鍚敤 1绂佺敤")
+ @ApiModelProperty(value = "鏈堝彴鐘舵�� 0-鏃犺溅 1-鏈夎溅 2-瓒呮椂鍋滈潬 3-閿欒鍋滈潬", example = "1")
+ @ExcelColumn(name="鏈堝彴鐘舵�� 0-鏃犺溅 1-鏈夎溅 2-瓒呮椂鍋滈潬 3-閿欒鍋滈潬")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
@@ -143,5 +146,20 @@
@ApiModelProperty(value = "led鍚嶇О", example = "1")
@TableField(exist = false)
private String ledName;
+ @ApiModelProperty(value = "鍒嗙粍鍚嶇О", example = "1")
+ @TableField(exist = false)
+ private String groupName;
+ @ApiModelProperty(value = "鍏宠仈LED缂栫爜闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑", example = "1")
+ @TableField(exist = false)
+ private String ledIds;
+ @ApiModelProperty(value = "鍏宠仈骞挎挱缂栫爜闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑", example = "1")
+ @TableField(exist = false)
+ private String broadcaseIds;
+ @ApiModelProperty(value = "鍏宠仈LED鍚嶇О闆嗗悎锛岃嫳鏂囬�楀彿闅斿紑", example = "1")
+ @TableField(exist = false)
+ private String ledNames;
+ @ApiModelProperty(value = "鍏宠仈骞挎挱缂栧悕绉伴泦鍚堬紝鑻辨枃閫楀彿闅斿紑", example = "1")
+ @TableField(exist = false)
+ private String broadcaseNames;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index cbd7cb7..46ac584 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -7,6 +7,7 @@
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatWorkstatusRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
+import com.doumee.dao.business.model.Device;
import com.doumee.dao.business.model.ParkBook;
import io.swagger.models.auth.In;
@@ -24,7 +25,7 @@
* @param param
* @return
*/
- String syncHkDevices(AcsDeviceListRequest param);
+ String syncHkDevices(Device param);
/**
* 鍚屾娴峰悍鍋滆溅搴�
@@ -89,4 +90,8 @@
void dealWorkstatusEvent(EventPlatWorkstatusRequest param, HttpServletResponse response);
void dealCarstatusEvent(EventPlatCarstatusRequest param, HttpServletResponse response);
+
+ String syncHkLed(Device param);
+
+ String syncHkBroadcast(Device param);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index 12f2c3e..3617b81 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.DeviceMapper;
import com.doumee.dao.business.model.Device;
@@ -102,6 +103,7 @@
public PageData<Device> findPage(PageWrap<Device> pageWrap) {
IPage<Device> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
Utils.MP.blankToNull(pageWrap.getModel());
if (pageWrap.getModel().getId() != null) {
queryWrapper.lambda().eq(Device::getId, pageWrap.getModel().getId());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
index 486115c..552bbf5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -2,14 +2,17 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformMapper;
import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformGroup;
import com.doumee.service.business.PlatformService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -87,9 +90,13 @@
@Override
public PageData<Platform> findPage(PageWrap<Platform> pageWrap) {
IPage<Platform> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<Platform> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<Platform> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.selectAll(Platform.class)
+ .selectAs(PlatformGroup::getName,Platform::getGroupName)
+ .leftJoin(PlatformGroup.class,PlatformGroup::getId,Platform::getGroupId);
Utils.MP.blankToNull(pageWrap.getModel());
- queryWrapper.lambda()
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
+ queryWrapper
.eq(pageWrap.getModel().getId() != null, Platform::getId, pageWrap.getModel().getId())
.eq(pageWrap.getModel().getCreator() != null, Platform::getCreator, pageWrap.getModel().getCreator())
.ge(pageWrap.getModel().getCreateDate() != null, Platform::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -126,7 +133,7 @@
queryWrapper.orderByAsc(sortData.getProperty());
}
}
- return PageData.from(platformMapper.selectPage(page, queryWrapper));
+ return PageData.from(platformMapper.selectJoinPage(page,Platform.class, queryWrapper));
}
@Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 4209984..78e7198 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -69,8 +69,17 @@
* @return
*/
@Override
-// @Async
- public String syncHkDevices(AcsDeviceListRequest param){
+ public String syncHkDevices(Device param){
+
+ return null;
+ }
+ @Override
+ public String syncHkLed(Device param){
+
+ return null;
+ }
+ @Override
+ public String syncHkBroadcast(Device param){
return null;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
index 4e05b11..bf185ed 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncDeviceServiceImpl.java
@@ -2,16 +2,15 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.aliyun.tea.TeaException;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.haikang.model.param.BaseListPageResponse;
import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
-import com.doumee.core.haikang.model.param.request.AcsDeviceStatusListRequest;
-import com.doumee.core.haikang.model.param.request.DoorsListRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
+import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.utils.Constants;
@@ -46,7 +45,7 @@
*/
@Override
// @Async
- public String syncHkDevices(AcsDeviceListRequest param){
+ public String syncHkDevices(Device param){
if(Constants.DEALING_HK_SYNCDEVICE){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ;
}
@@ -57,13 +56,14 @@
List<Device> editList = new ArrayList<>();
Date date = new Date();
//鏌ヨ鍏ㄩ儴闂ㄧ璁惧鏁版嵁
- List<Device> allList = deviceMapper.selectList(null);
+ List<Device> allList = deviceMapper.selectList(new QueryWrapper<Device>().lambda()
+ .eq(Device::getType,Constants.ZERO));
List<DoorsInfoResponse> allDoors = getAllDoorList();
List<AcsDeviceInfoResponse> allHkList = getAllDeViceList();
/**
* 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
*/
- getDataChangeList(allList,allDoors,allHkList,addList,editList,deleteList,date);
+ getDataChangeList(allList,allDoors,allHkList,addList,editList,deleteList,date );
if(deleteList.size()>0){
//閫昏緫鍒犻櫎
for(Device d : deleteList){
@@ -86,6 +86,146 @@
Constants.DEALING_HK_SYNCDEVICE =false;
}
}
+ /**
+ * 鍚屾娴峰悍闂ㄧ璁惧鏁版嵁
+ * @param param
+ * @return
+ */
+ @Override
+// @Async
+ public String syncHkLed(Device param){
+ if(Constants.DEALING_HK_SYNCDEVICE){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ;
+ }
+ Constants.DEALING_HK_SYNCDEVICE =true;
+ try {
+ List<Device> deleteList = new ArrayList<>();
+ List<Device> addList = new ArrayList<>();
+ List<Device> editList = new ArrayList<>();
+ Date date = new Date();
+ //鏌ヨ鍏ㄩ儴闂ㄧ璁惧鏁版嵁
+ List<Device> allList = deviceMapper.selectList(new QueryWrapper<Device>().lambda()
+ .eq(Device::getType,Constants.TWO));
+ List<LedRecordsInfoResponse> allHkList = getAllLedList();
+ /**
+ * 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
+ */
+ getLedDataChangeList(allList,allHkList,addList,editList,deleteList,date);
+ if(deleteList.size()>0){
+ //閫昏緫鍒犻櫎
+ for(Device d : deleteList){
+ deviceMapper.updateById(d);
+ }
+ }
+ if(addList.size()>0){
+ deviceMapper.insert(addList);
+ }
+ if(editList.size()>0){
+ for(Device d : editList){
+ deviceMapper.updateById(d);
+ }
+ }
+ return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鍚屾澶辫触锛�");
+ }finally {
+ Constants.DEALING_HK_SYNCDEVICE =false;
+ }
+ }
+
+ private void getLedDataChangeList(List<Device> allList, List<LedRecordsInfoResponse> allHkList, List<Device> addList, List<Device> editList, List<Device> deleteList, Date date) {
+ if(allHkList!=null && allHkList.size()>0){
+ //鑾峰彇娴峰悍鍏ㄩ儴闂ㄧ缁勬暟鎹�
+ for(LedRecordsInfoResponse device : allHkList){
+ Device model = getExistedLed(device,allList);
+ if(model !=null){
+ //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
+ model = initLedDataByHkData(model,device,date);
+ editList.add(model);
+ }else{
+ //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
+ model = new Device();
+ model = initLedDataByHkData(model,device,date);
+ model.setIsEntrance(Constants.ZERO);
+ addList.add(model);
+ }
+ }
+ }
+ //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
+ getDeleteLedList(allList,allHkList,deleteList,date);
+ }
+
+ /**
+ * 鍚屾娴峰悍闂ㄧ璁惧鏁版嵁
+ * @param param
+ * @return
+ */
+ @Override
+// @Async
+ public String syncHkBroadcast(Device param){
+ if(Constants.DEALING_HK_SYNCDEVICE){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ;
+ }
+ Constants.DEALING_HK_SYNCDEVICE =true;
+ try {
+ List<Device> deleteList = new ArrayList<>();
+ List<Device> addList = new ArrayList<>();
+ List<Device> editList = new ArrayList<>();
+ Date date = new Date();
+ //鏌ヨ鍏ㄩ儴骞挎挱鐐硅澶囨暟鎹�
+ List<Device> allList = deviceMapper.selectList(new QueryWrapper<Device>().lambda()
+ .eq(Device::getType,Constants.THREE));
+ List<FetchAudioChannelInfoResponse> allHkList = getAllBroadcastList();
+ /**
+ * 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
+ */
+ getBroadcastDataChangeList(allList,allHkList,addList,editList,deleteList,date);
+ if(deleteList.size()>0){
+ //閫昏緫鍒犻櫎
+ for(Device d : deleteList){
+ deviceMapper.updateById(d);
+ }
+ }
+ if(addList.size()>0){
+ deviceMapper.insert(addList);
+ }
+ if(editList.size()>0){
+ for(Device d : editList){
+ deviceMapper.updateById(d);
+ }
+ }
+ return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+editList.size()+"銆戞潯锛屽垹闄ゃ��"+deleteList.size()+"銆戞潯";
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "鍚屾澶辫触锛�");
+ }finally {
+ Constants.DEALING_HK_SYNCDEVICE =false;
+ }
+ }
+
+ private void getBroadcastDataChangeList(List<Device> allList, List<FetchAudioChannelInfoResponse> allHkList, List<Device> addList, List<Device> editList, List<Device> deleteList, Date date) {
+ if(allHkList!=null && allHkList.size()>0){
+ //鑾峰彇娴峰悍鍏ㄩ儴闂ㄧ缁勬暟鎹�
+ for(FetchAudioChannelInfoResponse device : allHkList){
+ Device model = getExistedBroadcast(device,allList);
+ if(model !=null){
+ //濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
+ model = initBroadcastDataByHkData(model,device,date);
+ editList.add(model);
+ }else{
+ //濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
+ model = new Device();
+ model = initBroadcastDataByHkData(model,device,date);
+ model.setIsEntrance(Constants.ZERO);
+ addList.add(model);
+ }
+ }
+ }
+ //鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
+ getDeleteBroadcastList(allList,allHkList,deleteList,date);
+ }
+
@Override
// @Async
public void getAscDeviceStatus(){
@@ -177,6 +317,73 @@
}
return allDoorList;
}
+
+ /**
+ * 鑾峰彇鍏ㄩ儴骞挎挱鐐规暟鎹�
+ * @return
+ */
+ public List<FetchAudioChannelInfoResponse> getAllBroadcastList(){
+ List<FetchAudioChannelInfoResponse> allDoorList = new ArrayList<>();
+ Date date = new Date();
+ boolean hasNext = true;
+ int curTotal = 0;
+ int curPage = 1;
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ FetchAudioChannelRequest param = new FetchAudioChannelRequest();
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> response = HKService.fetchAudioChannel(param);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }
+ BaseListPageResponse<FetchAudioChannelInfoResponse> r = response.getData();
+ curTotal += 100;
+ if(curTotal >= r.getTotal()){
+ hasNext = false;
+ }
+ if(r.getList() == null || r.getList().size()==0){
+ hasNext =false;
+ }else{
+ allDoorList.addAll(r.getList());
+ }
+ curPage++;
+ }
+ return allDoorList;
+ }
+ /**
+ * 鑾峰彇鍏ㄩ儴LED鏁版嵁
+ * @return
+ */
+ public List<LedRecordsInfoResponse> getAllLedList(){
+ List<LedRecordsInfoResponse> allDoorList = new ArrayList<>();
+ Date date = new Date();
+ boolean hasNext = true;
+ int curTotal = 0;
+ int curPage = 1;
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ LedRecordsRequest param = new LedRecordsRequest();
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<LedRecordsInfoResponse>> response = HKService.ledRecords(param);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }
+ BaseListPageResponse<LedRecordsInfoResponse> r = response.getData();
+ curTotal += 100;
+ if(curTotal >= r.getTotal()){
+ hasNext = false;
+ }
+ if(r.getList() == null || r.getList().size()==0){
+ hasNext =false;
+ }else{
+ allDoorList.addAll(r.getList());
+ }
+ curPage++;
+ }
+ return allDoorList;
+ }
public List<AscDeviceStatusInfoResponse> getAllDeviceStatusList(){
List<AscDeviceStatusInfoResponse> allDoorList = new ArrayList<>();
Date date = new Date();
@@ -207,7 +414,13 @@
return allDoorList;
}
- private void getDataChangeList(List<Device> allList, List<DoorsInfoResponse> hkDoorList , List<AcsDeviceInfoResponse> allHkList, List<Device> addList, List<Device> editList,List<Device> deleteList, Date date) {
+ private void getDataChangeList(List<Device> allList,
+ List<DoorsInfoResponse> hkDoorList ,
+ List<AcsDeviceInfoResponse> allHkList,
+ List<Device> addList,
+ List<Device> editList,
+ List<Device> deleteList,
+ Date date ) {
if(hkDoorList!=null && hkDoorList.size()>0){
//鑾峰彇娴峰悍鍏ㄩ儴闂ㄧ缁勬暟鎹�
for(DoorsInfoResponse device : hkDoorList){
@@ -229,6 +442,30 @@
getDeleteDoorList(allList,hkDoorList,deleteList,date);
}
+ private Device initLedDataByHkData(Device model, LedRecordsInfoResponse door, Date date) {
+ model.setIsdeleted(Constants.ZERO);
+ model.setHkId(door.getIndexCode());
+ model.setHkDate(date);
+ model.setHkStatus(Constants.ONE);
+ model.setType(Constants.TWO);
+ model.setRemark(JSONObject.toJSONString(door));
+ model.setDoorId(door.getIndexCode());
+ return model;
+ }
+ private Device initBroadcastDataByHkData(Device model, FetchAudioChannelInfoResponse device, Date date) {
+ model.setIsdeleted(Constants.ZERO);
+ model.setHkDate(date);
+ model.setHkId(device.getAudioChannelIndexCode());
+ model.setName(device.getAudioChannelName());
+ model.setHkStatus(Constants.ONE);
+ model.setType(Constants.THREE);
+ model.setChannelNo(device.getChannelNo());
+ model.setChannelInfo(device.getChannelType());
+ model.setResourceType(device.getAudioChannelType());
+ model.setStatus(device.getState());
+ model.setRegionName(device.getRegionName());
+ return model;
+ }
private Device initDoorDataByHkData(Device model, DoorsInfoResponse door, Date date, List<AcsDeviceInfoResponse> allHkList) {
AcsDeviceInfoResponse device = getDeviceByDoorid(door.getParentIndexCode(),allHkList);
model.setIsdeleted(Constants.ZERO);
@@ -356,6 +593,28 @@
}
return null;
}
+ private Device getExistedLed(LedRecordsInfoResponse device, List<Device> allList) {
+ if(allList.size()>0){
+ for(Device r : allList){
+ if(StringUtils.equals(r.getHkId(), device.getIndexCode())){
+ //琛ㄧず鏈垹闄�
+ return r;
+ }
+ }
+ }
+ return null;
+ }
+ private Device getExistedBroadcast(FetchAudioChannelInfoResponse device, List<Device> allList) {
+ if(allList.size()>0){
+ for(Device r : allList){
+ if(StringUtils.equals(r.getHkId(), device.getAudioChannelIndexCode())){
+ //琛ㄧず鏈垹闄�
+ return r;
+ }
+ }
+ }
+ return null;
+ }
private Device getExistedDevice(AcsDeviceInfoResponse device, List<Device> allList) {
if(allList.size()>0){
for(Device r : allList){
@@ -390,6 +649,28 @@
}
}
}
+ private void getDeleteLedList(List<Device> allList, List<LedRecordsInfoResponse> allHkList,List<Device> deleteList ,Date date) {
+ if(allList!=null && allList.size()>0){
+ for(Device device : allList){
+ if(isDeletedLedDevice(device,allHkList)){
+ device.setIsdeleted(Constants.ONE);
+ device.setEditDate(date);
+ deleteList.add(device);
+ }
+ }
+ }
+ }
+ private void getDeleteBroadcastList(List<Device> allList, List<FetchAudioChannelInfoResponse> allHkList,List<Device> deleteList ,Date date) {
+ if(allList!=null && allList.size()>0){
+ for(Device device : allList){
+ if(isDeletedBroadcastDevice(device,allHkList)){
+ device.setIsdeleted(Constants.ONE);
+ device.setEditDate(date);
+ deleteList.add(device);
+ }
+ }
+ }
+ }
private boolean isDeletedDoorDevice(Device device, List<DoorsInfoResponse> allHkList) {
if(allHkList.size()>0){
@@ -403,6 +684,30 @@
return true;
}
+ private boolean isDeletedLedDevice(Device device, List<LedRecordsInfoResponse> allHkList) {
+ if(allHkList.size()>0){
+ for(LedRecordsInfoResponse r : allHkList){
+ if(StringUtils.equals(device.getDoorId(), r.getIndexCode())){
+ //琛ㄧず鏈垹闄�
+ return false;
+ }
+ }
+ }
+ return true;
+
+ }
+ private boolean isDeletedBroadcastDevice(Device device, List<FetchAudioChannelInfoResponse> allHkList) {
+ if(allHkList.size()>0){
+ for(FetchAudioChannelInfoResponse r : allHkList){
+ if(StringUtils.equals(device.getDoorId(), r.getAudioChannelIndexCode())){
+ //琛ㄧず鏈垹闄�
+ return false;
+ }
+ }
+ }
+ return true;
+
+ }
private boolean isDeletedDevice(Device device, List<AcsDeviceInfoResponse> allHkList) {
if(allHkList.size()>0){
for(AcsDeviceInfoResponse r : allHkList){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
index fdefd55..c0fceca 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPlatformsServiceImpl.java
@@ -13,14 +13,18 @@
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.DeviceMapper;
+import com.doumee.dao.business.PlatformDeviceMapper;
import com.doumee.dao.business.PlatformMapper;
import com.doumee.dao.business.model.Device;
import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformDevice;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.List;
@@ -34,6 +38,8 @@
@Autowired
private PlatformMapper platformMapper;
+ @Autowired
+ private PlatformDeviceMapper platformDeviceMapper;
/**
* 鍚屾娴峰悍鏈堝彴鏁版嵁
@@ -41,7 +47,7 @@
* @return
*/
@Override
-// @Async
+ @Transactional
public String syncPlatforms(PlatformsListRequest param){
if(Constants.DEALING_HK_SYNCPLATFORM){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍚屾浠诲姟姝e湪鎵ц鍝︼紝璇风◢鍚庢煡鐪嬬粨鏋滐紒") ;
@@ -51,6 +57,7 @@
List<Platform> deleteList = new ArrayList<>();
List<Platform> addList = new ArrayList<>();
List<Platform> editList = new ArrayList<>();
+ List<PlatformDevice> deviceList = new ArrayList<>();
Date date = new Date();
//鏌ヨ鍏ㄩ儴闂ㄧ璁惧鏁版嵁
List<Platform> allList = platformMapper.selectList(null);
@@ -58,15 +65,15 @@
/**
* 鑾峰彇澧炲垹鏀规暟鎹泦鍚�
*/
- getDataChangeList(allList,allHkList,addList,editList,deleteList,date);
+ getDataChangeList(allList,allHkList,addList,deviceList,editList,deleteList,date);
if(deleteList.size()>0){
//閫昏緫鍒犻櫎
for(Platform d : deleteList){
platformMapper.updateById(d);
}
}
- if(addList.size()>0){
- platformMapper.insert(addList);
+ if(deviceList.size()>0){
+ platformDeviceMapper.insert(deviceList);
}
if(editList.size()>0){
for(Platform d : editList){
@@ -100,7 +107,7 @@
platformMapper.update(null,new UpdateWrapper<Platform>().lambda()
.set(Platform::getStatus,d.getStatus())
.set(Platform::getEditDate,date)
- .eq(Platform::getHkId,d.getPlatformtId()));
+ .eq(Platform::getHkId,d.getPlatformId()));
}
}
}catch (Exception e){
@@ -144,7 +151,8 @@
}
private void getDataChangeList(List<Platform> allList,
List<PlatformListInfoResponse> allHkList,
- List<Platform> addList,
+ List<Platform> addList ,
+ List<PlatformDevice> deviceList,
List<Platform> editList,
List<Platform> deleteList, Date date) {
if(allHkList!=null && allHkList.size()>0){
@@ -155,16 +163,39 @@
//濡傛灉宸插瓨鍦紝鍒欐洿鏂版暟鎹�
model = initDataByHkData(model,device,date);
editList.add(model);
+ //娓呯┖鐩戞帶鐐规暟鎹�
+ platformDeviceMapper.delete(new UpdateWrapper<PlatformDevice>().lambda()
+ .eq(PlatformDevice::getPlatformId,model.getId()));
+ deviceList.addAll(getCameraList(device.getCameras(),model));
}else{
//濡傛灉涓嶅瓨鍦紝鍒欐柊澧炴暟鎹�
model = new Platform();
model = initDataByHkData(model,device,date);
+ platformMapper.insert(model);
addList.add(model);
+ deviceList.addAll(getCameraList(device.getCameras(),model));
}
}
}
//鍒ゆ柇鑾峰彇鍒犻櫎鐨勯棬绂佽澶囷紝閫昏緫鍒犻櫎
getDeleteList(allList,allHkList,deleteList,date);
+ }
+
+ private List<PlatformDevice> getCameraList(List<PlatformCameraInfoResponse> cameras, Platform model) {
+ List<PlatformDevice> list = new ArrayList<>();
+ if(cameras!=null || cameras.size()>0){
+ for(PlatformCameraInfoResponse param :cameras){
+ PlatformDevice d = new PlatformDevice();
+ d.setCreateDate(model.getCreateDate());
+ d.setPlatformId(model.getId());
+ d.setIsdeleted(Constants.ZERO);
+ d.setDeviceId(param.getCameraIdompan());
+ d.setName(param.getCameraName());
+ d.setType(Constants.ONE);
+ list.add(d);
+ }
+ }
+ return list;
}
/**
@@ -176,6 +207,7 @@
*/
private Platform initDataByHkData(Platform model, PlatformListInfoResponse device,Date date ) {
model.setIsdeleted(Constants.ZERO);
+ model.setCreateDate(date);
model.setHkDate(date);
model.setHkId(device.getPlatformId());
model.setCreateDate(DateUtil.getISO8601DateByStr(device.getCreateTime()));
--
Gitblit v1.9.3