From eea92f23bf8ead897f346ae6ccc8603ac039e566 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 30 七月 2024 09:48:47 +0800
Subject: [PATCH] 修复bug
---
admin/.env | 3
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmValuesParamRequest.java | 41 +
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java | 5
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDataRequest.java | 29
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInfoRequest.java | 17
admin/vue.config.js | 10
server/dmvisit_service/src/main/resources/application-testYL.yml | 8
admin/src/components/business/OperaVisitsIccmDesWindow.vue | 297 ++++++++
server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java | 1
server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java | 9
server/dmvisit_service/src/main/resources/application-proYL.yml | 80 ++
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java | 12
admin/src/api/business/member.js | 3
server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java | 10
admin/src/views/business/visitsIccmHk.vue | 135 +++
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java | 13
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmParamRequest.java | 17
server/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java | 2
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleAdminTool.java | 92 ++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmRequest.java | 13
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java | 120 +++
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java | 18
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmTargetParamRequest.java | 23
server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java | 31
admin/public/index.html | 2
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java | 42 +
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 2
server/dmvisit_admin/src/main/resources/application.yml | 2
server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java | 19
server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java | 8
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentVisitorInfoResponse.java | 34
server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitEventController.java | 12
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentEventInfoResponse.java | 28
server/dmvisit_screen/src/main/resources/application.yml | 2
server/openapi/src/main/resources/logback-spring.xml | 61 +
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java | 139 +++
server/dmvisit_web/src/main/resources/logback-spring.xml | 61 +
server/admin_sys_timer/src/main/java/com/doumee/task/ScheduleTool.java | 68 -
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 246 ++++++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java | 23
server/dmvisit_service/src/main/java/com/doumee/service/system/SystemLoginService.java | 2
server/admin_sys_timer/src/main/resources/application.yml | 2
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java | 10
admin/src/utils/request.js | 2
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentEventListRequest.java | 15
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDetailParamRequest.java | 29
server/pom.xml | 1
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInvoiceParamRequest.java | 45 +
admin/src/views/business/visitEventIccm.vue | 150 ++++
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java | 25
server/dmvisit_admin/src/main/resources/logback-spring.xml | 64 +
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentIccmInfoResponse.java | 30
admin/src/views/business/internalMember.vue | 27
53 files changed, 2,051 insertions(+), 89 deletions(-)
diff --git a/admin/.env b/admin/.env
index 69bdb2d..a23a518 100644
--- a/admin/.env
+++ b/admin/.env
@@ -10,4 +10,5 @@
VUE_APP_API_PREFIX = '/admin_interface'
# 椤圭洰鍚嶇О
-VUE_APP_TITLE = '鍗庢櫉鏅烘収鍥尯绯荤粺'
+# VUE_APP_TITLE = '鍗庢櫉鏅烘収鍥尯绯荤粺'
+VUE_APP_TITLE = '浼婂埄澶у睆绯荤粺'
diff --git a/admin/public/index.html b/admin/public/index.html
index 7169097..5d80d0c 100644
--- a/admin/public/index.html
+++ b/admin/public/index.html
@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
- <title>鍗庢櫉鏅烘収鍥尯绯荤粺</title>
+ <title>浼婂埄澶у睆绯荤粺</title>
</head>
<body>
<noscript>
diff --git a/admin/src/api/business/member.js b/admin/src/api/business/member.js
index d45f627..fbe36b8 100644
--- a/admin/src/api/business/member.js
+++ b/admin/src/api/business/member.js
@@ -13,6 +13,9 @@
export function memberSync (data) {
return request.post('/business/member/syncAll', data)
}
+export function syncUserData (data) {
+ return request.post('/business/hksync/syncUserData', data)
+}
export function delHkForce (data) {
return request.post('/business/member/delHkForce', data)
}
diff --git a/admin/src/components/business/OperaVisitsIccmDesWindow.vue b/admin/src/components/business/OperaVisitsIccmDesWindow.vue
new file mode 100644
index 0000000..30f082f
--- /dev/null
+++ b/admin/src/components/business/OperaVisitsIccmDesWindow.vue
@@ -0,0 +1,297 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="70%"
+ :visible.sync="visible"
+ append-to-body
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="list">
+ <div class="list_item">
+ <div class="list_item_label">鎷滆淇℃伅</div>
+ <div class="list_item_val" v-if="info" style="display: inline-block">
+ <div class="list_item_val_item">鎷滆瀵规柟锛歿{info.receptMemberName}} - {{info.receptMemberDepartment}}</div>
+ <div class="list_item_val_item">棰勭害鏃堕棿锛歿{info.starttime}} 鑷� {{info.endtime}}</div>
+ <div class="list_item_val_item" v-if="info.inDate && info.outDate">绛惧埌鏃堕棿锛歿{info.inDate}} 鑷� {{info.outDate}}</div>
+ <div class="list_item_val_item" v-else>绛惧埌鏃堕棿锛�-</div>
+ <div class="list_item_val_item">鎷滆浜嬬敱锛歿{info.reason}}</div>
+ <div class="list_item_val_item">鐢宠浜哄憳锛歿{info.name}} {{info.companyName}}</div>
+ <div class="list_item_val_item">鐢宠闂ㄧ锛歿{info.deviceRoleList ? info.deviceRoleList.map(item => item.name).join(' | ') : '-'}}</div>
+ <div class="list_item_val_item">鍒涘缓鏃堕棿锛歿{info.createDate}}</div>
+ </div>
+ <div class="list_item_val" v-if="info" style="display: inline-block;float: right">
+ <div class="list_item_val_item" id="qrcode2" ref="qrcode2"></div>
+ </div>
+ </div>
+ <div class="list_item">
+ <div class="list_item_label">璁垮淇℃伅</div>
+ <div class="list_item_table" v-if="info">
+ <el-table
+ :data="info.withUserList ? info.withUserList : []"
+ border
+ :header-cell-style="{background: '#dcdde2', color: 'rgb(51, 51, 51)'}"
+ style="width: 100%">
+ <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <template slot-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>
+ <span v-if="row.status === 4">鏈闂�</span>
+ <span v-if="row.status === 5">鑷姩绛剧</span>
+ <span v-if="row.status === 6">鏈閫�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ width="150"
+ label="濮撳悕">
+ <template slot-scope="{row}">
+ <span>{{row.name}}</span>
+ <span style="border-radius: 5px; padding: 2px 5px; box-sizing: border-box; border: 1px solid #0d68ff; color: #0d68ff; margin-left: 5px;" v-if="info.memberId === row.memberId">鐢宠浜�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎬у埆">
+ <template slot-scope="{row}">
+ <span v-if="row.sex === 1">鐢�</span>
+ <span v-if="row.sex === 2">濂�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="birthday"
+ label="骞撮緞">
+ <template slot-scope="{row}">
+ <span>{{getAge(row.birthday)}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ width="150"
+ prop="phone"
+ label="鎵嬫満鍙�">
+ </el-table-column>
+ <el-table-column
+ label="璇佷欢绫诲瀷">
+ <template slot-scope="{row}">
+ <span v-if="row.idcardType === 111">韬唤璇�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ width="160"
+ prop="idcardDecode"
+ label="韬唤璇佸彿鐮�">
+ </el-table-column>
+ <el-table-column
+ width="150"
+ prop="companyName"
+ label="鍏徃">
+ </el-table-column>
+ <el-table-column
+ width="150"
+ prop="carNos"
+ label="闅忚杞﹁締">
+ </el-table-column>
+ <el-table-column
+ width="150"
+ label="璁垮浜岀淮鐮�">
+ <template slot-scope="{row}">
+ <div :id="`qrcode${row.id}`" :ref="`qrcode${row.id}`"></div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ width="150"
+ label="浜鸿劯鐓х墖">
+ <template slot-scope="{row}">
+ <el-image
+ v-if="row.faceImg"
+ style="width: 100px; height: 100px"
+ :src="info.prefixUrl + row.faceImg"
+ :preview-src-list="[info.prefixUrl + row.faceImg]">
+ </el-image>
+ </template>
+ </el-table-column>
+ <el-table-column
+ width="150"
+ label="鍋ュ悍璇�">
+ <template slot-scope="{row}">
+ <el-image
+ v-if="row.imgurl"
+ style="width: 100px; height: 100px"
+ :src="info.prefixUrl + row.imgurl"
+ :preview-src-list="[info.prefixUrl + row.imgurl]">
+ </el-image>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </div>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { queryById } from '@/api/business/visits'
+import QRCode from "qrcodejs2";
+export default {
+ name: 'OperaVisitsIccmDesWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ list: [],
+ info: null,
+ innerVisible:false
+ }
+ },
+ created () {
+ },
+ methods: {
+ getAge (val) {
+ if (!val) return ''
+ const currentYear = new Date().getFullYear() // 褰撳墠鐨勫勾浠�
+ const calculationYear = new Date(val).getFullYear() // 璁$畻鐨勫勾浠�
+ const wholeTime = currentYear + val.substring(4) // 鍛ㄥ瞾鏃堕棿
+ const calculationAge = currentYear - calculationYear // 鎸夌収骞翠唤璁$畻鐨勫勾榫�
+ // 鍒ゆ柇鏄惁杩囦簡鐢熸棩
+ if (new Date().getTime() > new Date(wholeTime).getTime()) {
+ return calculationAge
+ } else {
+ return calculationAge - 1
+ }
+ },
+ crateQrcodeShow (div,qrcode1) {
+ if(qrcode1 ==null ||qrcode1 ==''){
+ return;
+ }
+ this.qr = new QRCode(div, {
+ width: 90,
+ height: 90,
+ text: qrcode1
+ })
+ },
+
+ open (title, id) {
+ this.title = title
+ this.visible = true
+ queryById(id)
+ .then(res => {
+ console.log(res)
+ this.info = res
+ this.$nextTick(() => {
+ // this.$refs.qrcode2.innerHTML = ''
+ // this.crateQrcodeShow('qrcode2',res.qrcode)
+ if(this.info.withUserList ){
+ this.info.withUserList.forEach(row => {
+ this.$refs['qrcode'+row.id].innerHTML = ''
+ this.crateQrcodeShow('qrcode'+row.id,row.qrcode)
+ })
+ }
+ })
+ })
+ }
+ }
+}
+</script>
+<style>
+ .el-image-viewer__wrapper {
+ z-index: 3000 !important;
+ }
+</style>
+<style lang="scss" scoped>
+ .list {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ .list_item {
+ width: 100%;
+ margin-bottom: 30px;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ .list_item_label {
+ font-size: 18px;
+ font-weight: 600;
+ color: #000000;
+ margin-bottom: 15px;
+ }
+ .list_item_info {
+ font-size: 14px;
+ color: #222222;
+ margin-bottom: 10px;
+ }
+ .list_item_status {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ .list_item_status_item {
+ width: 100%;
+ max-height: 100px;
+ position: relative;
+ margin-bottom: 30px;
+ .dian {
+ width: 15px;
+ height: 15px;
+ border-radius: 50%;
+ background: #ffb447;
+ position: absolute;
+ left: 0;
+ top: 50%;
+ transform: translate(0, -50%);
+ }
+ .xian {
+ width: 1px;
+ height: calc(100% + 30px);
+ background: #ffb447;
+ position: absolute;
+ top: 50%;
+ left: 7px;
+ transform: translate(-50%, 0);
+ }
+ .status_info {
+ /*width: 100%;*/
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-left: 30px;
+ box-sizing: border-box;
+ .status_info_a {
+ font-size: 16px;
+ color: black;
+ margin-bottom: 10px;
+ }
+ .status_info_b {
+ font-size: 13px;
+ color: #666666;
+ margin-bottom: 10px;
+ }
+ .status_info_c {
+ padding: 5px 10px;
+ background: #ececec;
+ font-size: 13px;
+ color: black;
+ border-radius: 5px;
+ box-sizing: border-box;
+ }
+ }
+ }
+ }
+ .list_item_val {
+ width: 100%;
+ margin-bottom: 15px;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ .list_item_val_item {
+ font-size: 14px;
+ color: #222222;
+ margin-bottom: 5px;
+ &:last-child {
+ margin-bottom: 0 !important;
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/admin/src/utils/request.js b/admin/src/utils/request.js
index e73f3ae..f1f64be 100644
--- a/admin/src/utils/request.js
+++ b/admin/src/utils/request.js
@@ -52,7 +52,7 @@
// 鏈櫥褰�
if (response.data.code === 401) {
if (response.config.autoLogin !== false) {
- window.location.href = process.env.VUE_APP_ROUTER_MODE === 'history' ? '/#/login' : '/login'
+ window.location.href = process.env.VUE_APP_ROUTER_MODE === 'history' ? 'admin/#/login' : 'admin/login'
}
return Promise.reject(response.data)
}
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index a192b7c..aeed504 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -44,10 +44,11 @@
</template>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:member:delete','business:member:sync']">
+ <ul class="toolbar" v-permissions="['business:member:delete','business:member:sync','business:member:syncdata']">
<!-- <li><el-button type="primary">闂ㄧ鎺堟潈</el-button></li>-->
- <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">鍚屾</el-button></li>
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>
+ <li><el-button type="primary" v-permissions="['business:member:syncdata']" :loading="loading" @click="syncUserData()">绔嬪嵆涓嬪彂寰呭悓姝ュ憳宸�</el-button></li>
+ <li><el-button type="primary" v-permissions="['business:member:sync']" :loading="loading" @click="synchronous()">鍚屾</el-button></li>
+ <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鍒犻櫎</el-button></li>-->
</ul>
<el-table
v-loading="isWorking.search"
@@ -137,7 +138,7 @@
import cardOpeningRecord from '@/components/business/cardOpeningRecord'
import Tree from '@/components/common/Tree'
import { fetchList } from '@/api/business/company'
-import { memberSync, roleAuth } from '@/api/business/member'
+import { memberSync, roleAuth, syncUserData } from '@/api/business/member'
export default {
name: 'internalMember',
extends: BaseTable,
@@ -218,6 +219,24 @@
})
.catch(() => {})
},
+ async syncUserData () {
+ this.$dialog.actionConfirm('璇ユ搷浣滃皢瑙﹀彂涓嬪彂鐨勪汉鍛樹俊鎭洿鏂板拰閲嶆柊涓嬪彂锛佽璋ㄦ厧鎿嶄綔', '鎮ㄧ‘璁ょ珛鍗充笅鍙戝叏閮ㄥ緟鍚屾浜哄憳淇℃伅鍚楋紵')
+ .then(() => {
+ this.loading = true
+ syncUserData({})
+ .then(res => {
+ this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+ this.search()
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.loading = false
+ })
+ })
+ .catch(() => {})
+ },
callback (row) {
this.searchForm.erpOrgId = row.erpId
this.searchForm.companyId = row.id
diff --git a/admin/src/views/business/visitEventIccm.vue b/admin/src/views/business/visitEventIccm.vue
new file mode 100644
index 0000000..edd7593
--- /dev/null
+++ b/admin/src/views/business/visitEventIccm.vue
@@ -0,0 +1,150 @@
+<template>
+ <TableLayout :permissions="['business:visitevent:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyWords">
+ <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="杞︾墝鍙�" prop="carNo">
+ <el-input v-model="searchForm.carNo" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍏徃鍚嶇О" prop="visitorWorkUint">
+ <el-input v-model="searchForm.visitorWorkUint" placeholder="璇疯緭鍏ュ叕鍙稿悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜嬩欢绫诲瀷" prop="eventType">
+ <el-select v-model="searchForm.eventType" placeholder="璇烽�夋嫨">
+ <el-option label="璁垮鐧昏" value="541200006"></el-option>
+ <el-option label="璁垮绛剧" value="541200007"></el-option>
+ <el-option label="璁垮閫氳" value="541200060"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璧峰鏃堕棿" prop="carNo">
+ <el-date-picker
+ @change="seleTime"
+ v-model="time"
+ type="datetimerange"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ range-separator="鑷�"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </el-form-item>
+ <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
+ <el-radio-button label="0">褰撳ぉ</el-radio-button>
+ <el-radio-button label="1">杩�7澶�</el-radio-button>
+ <el-radio-button label="2">杩�30澶�</el-radio-button>
+ </el-radio-group>
+ <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" v-permissions="['business:visitevent:exportExcel']">
+ <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:visitevent:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column prop="personName" label="濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鎵嬫満鍙风爜" min-width="100px"></el-table-column>
+ <el-table-column prop="idcardDecode" label="韬唤璇佸彿鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="visitorWorkUint" label="鍏徃" min-width="100px"></el-table-column>
+ <el-table-column prop="carNo" label="杞︾墝鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="beVisitedPersonName" label="琚浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="beVisitedPersonOrg" label="琚浜虹粍缁�" min-width="100px"></el-table-column>
+ <el-table-column prop="eventTypeName" label="浜嬩欢绫诲瀷" min-width="100px"></el-table-column>
+ <el-table-column label="鎶撴媿鍥�" min-width="100px">
+ <template slot-scope="{row}">
+ <el-image v-if="row.captureUrlFull!=null"
+ style="width: 80px; height: 80px"
+ :src="row.captureUrlFull"
+ :preview-src-list="[row.captureUrlFull]">
+ </el-image>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createDate" label="浜嬩欢鏃堕棿" min-width="100px"></el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import { timeForMat } from '@/utils/util'
+export default {
+ name: 'VisitEvent',
+ extends: BaseTable,
+ components: { TableLayout, Pagination },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ personName: '',
+ carNo: '',
+ keyWords: '',
+ startTime: '',
+ endTime: '',
+ eventType: '',
+ visitorWorkUint: '',
+ radio: '0'
+ },
+ time: []
+ }
+ },
+ created () {
+ this.config({
+ module: '璁垮浜嬩欢鎺ㄩ�佽褰曡〃',
+ api: '/business/visitEvent',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+
+ this.changeRadio('0')
+ this.search()
+ },
+ methods: {
+ seleTime (e) {
+ this.searchForm.startTime = e[0]
+ this.searchForm.endTime = e[1]
+ this.searchForm.radio = null
+ this.search()
+ },
+ changeRadio (e) {
+ if (e === '0') {
+ this.searchForm.startTime = timeForMat(0)[0]
+ this.searchForm.endTime = timeForMat(0)[1]
+ this.time = timeForMat(0)
+ } else if (e === '1') {
+ this.searchForm.startTime = timeForMat(6)[0]
+ this.searchForm.endTime = timeForMat(6)[1]
+ this.time = timeForMat(6)
+ } else if (e === '2') {
+ this.searchForm.startTime = timeForMat(29)[0]
+ this.searchForm.endTime = timeForMat(29)[1]
+ this.time = timeForMat(29)
+ }
+ this.search()
+ },
+ reset () {
+ this.$refs.searchForm.resetFields()
+ this.time = []
+ this.searchForm.radio = '0'
+ this.changeRadio('0')
+ this.search()
+ }
+ }
+}
+</script>
diff --git a/admin/src/views/business/visitsIccmHk.vue b/admin/src/views/business/visitsIccmHk.vue
new file mode 100644
index 0000000..bcfa1c7
--- /dev/null
+++ b/admin/src/views/business/visitsIccmHk.vue
@@ -0,0 +1,135 @@
+<template>
+ <TableLayout :permissions="['business:visits: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>
+ <el-form-item label="韬唤璇佸彿" prop="idcardNo">
+ <el-input v-model="searchForm.idcardNo" placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鍏徃鍚嶇О" prop="companyName">
+ <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ュ叕鍙稿悕绉�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="瀹℃壒鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+ <el-option label="鏈鍒�" value="0"></el-option>
+ <el-option label="宸茬鍒�" value="1"></el-option>
+ <el-option label="宸茬閫�" value="2"></el-option>
+ <el-option label="婊炵暀" value="3"></el-option>
+ <el-option label="鏈闂�" value="4"></el-option>
+ <el-option label="鑷姩绛剧" value="5"></el-option>
+ <el-option label="鏈閫�" value="6"></el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+<!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:visits:exportExcel']" @click="exportExcel">瀵煎嚭</el-button>-->
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:visits:sync']">
+ <li><el-button type="primary" v-permissions="['business:visits:sync']" @click="$refs.OperaVisitsHkWindow.open('鍚屾璁垮璁板綍')">鍚屾</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="name" label="璁垮濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" label="鍏徃鍚嶇О" min-width="100px"></el-table-column>
+ <el-table-column prop="receptMemberName" label="琚浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="reason" label="鎷滆浜嬬敱" min-width="100px"></el-table-column>
+ <el-table-column label="鎷滆鏃堕棿" min-width="170px">
+ <template slot-scope="{row}">
+ <span>璧凤細{{row.starttime}}</span><br/>
+ <span>姝細{{row.endtime}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="闅忚浜哄憳" min-width="100px">
+ <template slot-scope="{row}">
+ <span>{{row.memberNum || '-'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="闅忚杞﹁締" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.carNos">{{row.carNos.split(',').length}}</span>
+ <span v-else>-</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="status" fixed="right" label="鐘舵��" min-width="100px">
+ <template slot-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>
+ <span v-if="row.status === 4">鏈闂�</span>
+ <span v-if="row.status === 5">鑷姩绛剧</span>
+ <span v-if="row.status === 6">鏈閫�</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:visits:update', 'business:visits:delete'])"
+ label="鎿嶄綔"
+ min-width="100"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.OperaVisitsIccmDecWindow.open('璇︽儏', row.id)" >鏌ョ湅璇︽儏</el-button>
+<!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:visits:delete']">鏌ヨ瀹℃壒缁撴灉</el-button>-->
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ <!-- 璇︽儏 -->
+ <OperaVisitsIccmDecWindow ref="OperaVisitsIccmDecWindow" />
+ <OperaVisitsHkWindow ref="OperaVisitsHkWindow" @success="search()" />
+ </template>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaVisitsHkWindow from '@/components/business/OperaVisitsHkWindow'
+import OperaVisitsIccmDecWindow from '@/components/business/OperaVisitsIccmDesWindow'
+export default {
+ name: 'Visits',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaVisitsIccmDecWindow,OperaVisitsHkWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ name: '',
+ companyName: '',
+ idcardNo: '',
+ status: ''
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '璁垮鐢宠淇℃伅琛�',
+ api: '/business/visits',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+
+ }
+}
+</script>
diff --git a/admin/vue.config.js b/admin/vue.config.js
index 19105d0..32e4750 100644
--- a/admin/vue.config.js
+++ b/admin/vue.config.js
@@ -1,5 +1,6 @@
// 璇︾粏閰嶇疆璇峰弬鑰僪ttps://cli.vuejs.org/zh/config/#vue-config-js
// const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length - 1)
+const path = require('path')
module.exports = {
publicPath: process.env.VUE_APP_CONTEXT_PATH,
outputDir: 'admin',
@@ -21,12 +22,19 @@
// target: 'http://218.23.218.228:8018/admin_interface',
// http://218.23.218.228:9912/admin_interface
// http://facepay.huasunsolar.com/admin_interface
- target: 'http://localhost:10028',
+ target: 'http://localhost/admin_interface ',
changeOrigin: true,
pathRewrite: {
[`^${[process.env.VUE_APP_API_PREFIX]}`]: ''
}
}
}
+ },
+ configureWebpack: {
+ resolve: {
+ alias: {
+ '@': path.resolve(__dirname, 'src')
+ }
+ }
}
}
diff --git a/server/admin_sys_timer/src/main/java/com/doumee/task/ScheduleTool.java b/server/admin_sys_timer/src/main/java/com/doumee/task/ScheduleTool.java
index 4237c2a..86278fd 100644
--- a/server/admin_sys_timer/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/admin_sys_timer/src/main/java/com/doumee/task/ScheduleTool.java
@@ -53,33 +53,7 @@
@Autowired
private DataSyncConfig dataSyncConfig;
- /**
- * 姣忓垎閽熸媺鍙栦竴娆′粖鏃ョ殑璁垮棰勭害鏁版嵁
- * @throws Exception
- */
- @Scheduled(cron= "0 0 23 * * ?")
- public void syncVehicleUpdateData() throws Exception {
- hkSyncVehicleFromHKService.syncVehicleUpdateData(new Date(System.currentTimeMillis()-24*60*60*1000));
- }
- /**
- * 姣忓垎閽熸媺鍙栦竴娆′粖鏃ョ殑璁垮棰勭害鏁版嵁
- * @throws Exception
- */
- @Scheduled(fixedRate= 3*60*1000)
- public void syncVistAppointData() throws Exception {
- if(Constants.DEALING_FROM_HK_VISIT){
- return ;
- }
- try {
- Constants.DEALING_FROM_HK_VISIT =true;
- hkSyncVisitFromHKService.syncVistAppointData(new Date());
- Constants.DEALING_FROM_HK_VISIT =false;
- }catch (Exception e){
-// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
- }finally {
- Constants.DEALING_FROM_HK_VISIT =false;
- }
- }
+
/**
* 姣�10鍒嗛挓鎷夊彇涓�娆℃渶鏂拌瀹㈢櫥璁扮姸鎬侊紙棰勭害鎴愬姛鍜屽凡鐧昏锛�
* @throws Exception
@@ -92,7 +66,7 @@
* 涓嬭浇娴峰悍绯荤粺鍥剧墖鏁版嵁
* @throws Exception
*/
- @Scheduled(fixedRate= 60*1000)
+// @Scheduled(fixedRate= 60*1000)
public void downloadHkImg() throws Exception {
if(dataSyncConfig.getNeedDealImg()!=null && dataSyncConfig.getNeedDealImg()){
hkSyncImgService.downHKImgs(0);
@@ -129,21 +103,31 @@
hkSyncVisitService.syncVisitData();
}
+ /**
+ * 姣忓垎閽熸媺鍙栦竴娆′粖鏃ョ殑璁垮棰勭害鏁版嵁
+ * @throws Exception
+ */
+ @Scheduled(cron= "0 0 23 * * ?")
+ public void syncVehicleUpdateData() throws Exception {
+ hkSyncVehicleFromHKService.syncVehicleUpdateData(new Date(System.currentTimeMillis()-24*60*60*1000));
+ }
- /**
- * 瀹氭椂鍐荤粨鍐呴儴浜哄憳
- */
+ /**
+ * 瀹氭椂鍐荤粨鍐呴儴浜哄憳
+ */
// @Scheduled(fixedRate= 60*1000)
- public void memberFreeze() {
- memberService.memberFreeze();
- }
- /**
- * 姣忓ぉ娓呯悊瓒呰繃涓�鍛ㄧ殑鎺ュ彛鏃ュ織鏁版嵁锛堟竻闄ゅ拰瀹夐槻骞冲彴瀵规帴鐨勬帴鍙f暟鎹級
- * @throws Exception
- */
-// @Scheduled(cron= "0 0 23 * * ?")
- public void clearThreeMonthLog() throws Exception {
- interfaceLogService.clearThreeMonthLog();
- }
+ public void memberFreeze() {
+ memberService.memberFreeze();
+ }
+ /**
+ * 姣忓ぉ娓呯悊瓒呰繃涓�鍛ㄧ殑鎺ュ彛鏃ュ織鏁版嵁锛堟竻闄ゅ拰瀹夐槻骞冲彴瀵规帴鐨勬帴鍙f暟鎹級
+ * @throws Exception
+ */
+ @Scheduled(cron= "0 0 23 * * ?")
+ public void remainLastLogs() throws Exception {
+ interfaceLogService.remainLastLogs();
+ }
+
+
}
diff --git a/server/admin_sys_timer/src/main/resources/application.yml b/server/admin_sys_timer/src/main/resources/application.yml
index fefb609..b029ad3 100644
--- a/server/admin_sys_timer/src/main/resources/application.yml
+++ b/server/admin_sys_timer/src/main/resources/application.yml
@@ -67,7 +67,7 @@
compression:
enabled: true
mime-types: application/json
- port: 10031
+ port: 10033
tomcat:
max-swallow-size: -1
servlet:
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
index 2de1007..e9628de 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -1,6 +1,7 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
+import com.doumee.config.DataSyncConfig;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
import com.doumee.core.haikang.model.param.request.EventSubRequest;
@@ -8,12 +9,17 @@
import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmDataRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
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.Member;
import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncPrivilegeServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
+import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -36,6 +42,8 @@
public class HkSyncController extends BaseController {
@Autowired
+ private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserService;
+ @Autowired
private HkSyncDeviceServiceImpl hkSyncDeviceService;
@Autowired
private HkSyncParkServiceImpl hkSyncParkService;
@@ -44,6 +52,23 @@
@Autowired
private HkSyncPushServiceImpl hkSyncPushService;
+
+ /**
+ * 鏄惁寮�鍙戣��
+ */
+ @Autowired
+ private DataSyncConfig dataSyncConfig;
+
+ @ApiOperation("绔嬪嵆鍚屾寰呬笅鍙戜汉鍛樻暟鎹�")
+ @PostMapping("/syncUserData")
+ @RequiresPermissions("business:member:syncdata")
+ public ApiResponse syncUserData(@RequestBody Member member) {
+ if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) {
+ //濡傛灉鏄疎RP绯荤粺鍚屾涓嬪彂
+ hkSyncOrgUserService.syncUserData();
+ }
+ return ApiResponse.success(null);
+ }
@PreventRepeat
@ApiOperation("銆愭捣搴枫�戝叏閲忓悓姝ラ棬绂佽澶囨帴鍙�")
@PostMapping("/syncDevices")
@@ -82,6 +107,12 @@
String result = hkSyncPushService.dealVisitEvent(param,response);
return ApiResponse.success(result);
}
+ @ApiOperation("銆愭捣搴枫�戣瀹CCM浜嬩欢璁㈤槄鎺ㄩ�佸鎺ュ鐞嗘帴鍙�")
+ @PostMapping("/push/visitIccm")
+ public ApiResponse pushVisitIccm(@RequestBody EventVisitIccmRequest param, HttpServletResponse response) {
+ String result = hkSyncPushService.dealVisitEventIccm(param,response);
+ return ApiResponse.success(result);
+ }
// @PreventRepeat
@ApiOperation("銆愭捣搴枫�戝仠杞﹀満浜嬩欢璁㈤槄鎺ㄩ�佸鎺ュ鐞嗘帴鍙�")
@PostMapping("/push/parks")
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
index fe6cd5c..e2f8fa6 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -115,6 +115,7 @@
return ApiResponse.success(null);
}
+
@ApiOperation("鏍规嵁ID 绂佸惎鐢� ")
@PostMapping("/updateStatusById")
@RequiresPermissions("business:member:update")
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitEventController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitEventController.java
index 52a6202..dbb45ad 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitEventController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitEventController.java
@@ -7,9 +7,11 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.admin.response.VisitEventDTO;
+import com.doumee.dao.business.model.CarEvent;
import com.doumee.dao.business.model.VisitEvent;
import com.doumee.dao.system.vo.VisitEventVo;
import com.doumee.service.business.VisitEventService;
+import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -31,6 +33,8 @@
@Autowired
private VisitEventService visitEventService;
+ @Autowired
+ private HkSyncVisitServiceImpl hkSyncVisitService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -89,4 +93,12 @@
public ApiResponse findById(@PathVariable Integer id) {
return ApiResponse.success(visitEventService.findById(id));
}
+
+ @ApiOperation("鏍规嵁鏃ユ湡(starttime)鍚屾杩囪溅鏁版嵁")
+ @PostMapping("/syncByDate")
+ @RequiresPermissions("business:carevent:sync")
+ public ApiResponse syncByDate(@RequestBody VisitEvent param) {
+ hkSyncVisitService.syncVisitRecords(param.getCreateDate());
+ return ApiResponse.success(null);
+ }
}
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
index 62e35ec..db1f550 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
@@ -79,9 +79,16 @@
return ApiResponse.success(null);
}
- @ApiOperation("鏍规嵁鏃ユ湡(starttime)鍚屾璁垮鏁版嵁")
+ @ApiOperation("鏍规嵁鏃ユ湡(starttime)鍚屾璁垮鏁版嵁ICCM鐗堟湰")
@PostMapping("/syncByDate")
@RequiresPermissions("business:visits:sync")
+ public ApiResponse syncByDateIccm(@RequestBody Visits visits) {
+ hkSyncVisitFromHKService.syncVistAppointDataIccm(visits.getStarttime());
+ return ApiResponse.success(null);
+ }
+ @ApiOperation("鏍规嵁鏃ユ湡(starttime)鍚屾璁垮鏁版嵁")
+ @PostMapping("/syncByDateV2")
+ @RequiresPermissions("business:visits:sync")
public ApiResponse syncByDate(@RequestBody Visits visits) {
hkSyncVisitFromHKService.syncVistAppointData(visits.getStarttime());
return ApiResponse.success(null);
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java b/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
index c0f4baf..0644266 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
@@ -87,7 +87,14 @@
param.setEventDest(path+"/visit");
param.setEventTypes(new Integer[]{HKConstants.EventTypes.VISIT_SIGN_IN.getKey()
- ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey()});
+ ,HKConstants.EventTypes.VISIT_SIGN_OUT.getKey() });
+ HKService.cancelEventSub(param);//鍏堝彇娑�
+ HKService.eventSub(param);//璁垮浜嬩欢
+
+ param.setEventDest(path+"/visitIccm");
+ param.setEventTypes(new Integer[]{HKConstants.EventTypes.VISIT_SIGN_ICCM_IN.getKey()
+ ,HKConstants.EventTypes.VISIT_SIGN_ICCM_PASS.getKey()
+ ,HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey()});
HKService.cancelEventSub(param);//鍏堝彇娑�
HKService.eventSub(param);//璁垮浜嬩欢
@@ -95,7 +102,6 @@
param.setEventTypes(new Integer[]{HKConstants.EventTypes.DOOR_FACE_AUTH_FAIL.getKey(),HKConstants.EventTypes.DOOR_FACE_AUTH_SUCCESS.getKey()});
HKService.cancelEventSub(param);//鍏堝彇娑�
HKService.eventSub(param);//闂ㄧ浜嬩欢
-
}
/**
* 鍙栨秷璁㈤槄闂ㄧ浜嬩欢銆佽瀹簨浠躲�佸拰鍋滆溅鍦轰簨浠�
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleAdminTool.java b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleAdminTool.java
new file mode 100644
index 0000000..a8b55db
--- /dev/null
+++ b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleAdminTool.java
@@ -0,0 +1,92 @@
+package com.doumee.task;
+
+
+import com.doumee.config.DataSyncConfig;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.Constants;
+import com.doumee.service.business.InterfaceLogService;
+import com.doumee.service.business.MemberService;
+import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
+import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
+import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
+import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
+import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVehicleFromHKServiceImpl;
+import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * 瀹氭椂浠诲姟锛堝簾寮冿級
+ * @author jiangping
+ * @date 2021-10-10 14:40:35
+ * https://www.bejson.com/othertools/cron/ cron 琛ㄨ揪寮忕敓鎴愬湴鍧�
+ */
+@Component
+@EnableScheduling
+public class ScheduleAdminTool {
+
+ @Autowired
+ private HkSyncVisitFromHKServiceImpl hkSyncVisitFromHKService;
+ @Autowired
+ private HkSyncVehicleFromHKServiceImpl hkSyncVehicleFromHKService;
+ @Autowired
+ private InterfaceLogService interfaceLogService;
+ /**
+ * 鏄惁寮�鍙戣��
+ */
+ @Autowired
+ private DataSyncConfig dataSyncConfig;
+
+ /**
+ * 姣忓ぉ澧為噺鎷夊彇杞﹁締鏁版嵁
+ * @throws Exception
+ */
+ @Scheduled(cron= "0 0 23 * * ?")
+ public void syncVehicleUpdateData() throws Exception {
+ if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+ return;
+ }
+ hkSyncVehicleFromHKService.syncVehicleUpdateData(new Date(System.currentTimeMillis()-24*60*60*1000));
+ }
+ /**
+ * 姣忓垎閽熸媺鍙栦竴娆′粖鏃ョ殑璁垮棰勭害鏁版嵁
+ * @throws Exception
+ */
+ @Scheduled(fixedRate= 3*60*1000)
+ public void syncVistAppointData() throws Exception {
+ if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+ return;
+ }
+ if(Constants.DEALING_FROM_HK_VISIT){
+ return ;
+ }
+ try {
+ Constants.DEALING_FROM_HK_VISIT =true;
+ hkSyncVisitFromHKService.syncVistAppointDataIccm(new Date());
+ Constants.DEALING_FROM_HK_VISIT =false;
+ }catch (Exception e){
+// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }finally {
+ Constants.DEALING_FROM_HK_VISIT =false;
+ }
+ }
+ /**
+ * 姣忓ぉ娓呯悊瓒呰繃涓�鍛ㄧ殑鎺ュ彛鏃ュ織鏁版嵁锛堟竻闄ゅ拰瀹夐槻骞冲彴瀵规帴鐨勬帴鍙f暟鎹級
+ * @throws Exception
+ */
+ @Scheduled(cron= "0 0 23 * * ?")
+ public void remainLastLogs() throws Exception {
+ if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+ return;
+ }
+ interfaceLogService.remainLastLogs();
+ }
+
+
+}
diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index ae8d663..65d9221 100644
--- a/server/dmvisit_admin/src/main/resources/application.yml
+++ b/server/dmvisit_admin/src/main/resources/application.yml
@@ -10,7 +10,7 @@
# application:
# name: doumeevisit
profiles:
- active: proHS
+ active: proYL
# JSON杩斿洖閰嶇疆
jackson:
diff --git a/server/dmvisit_admin/src/main/resources/logback-spring.xml b/server/dmvisit_admin/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..43854cc
--- /dev/null
+++ b/server/dmvisit_admin/src/main/resources/logback-spring.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <pattern>%highlight(%date{yyyy-MM-dd HH:mm:ss}) | %highlight(%-5level) | %highlight(%thread) | %highlight(%logger) | %msg%n</pattern>
+ </layout>
+ </appender>
+<!--
+ <property name="log.path" value="/usr/local/jars/log/admin"></property>
+-->
+ <property name="log.path" value="C:\\ylscreen\\jars\\logs\\admin"></property>
+ <property name="log.fileSize" value="100MB"></property>
+ <property name="log.historyDays" value="7"></property>
+
+ <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>ERROR</level>
+ <!--鍖归厤灏辫垗鍘�-->
+ <onMatch>DENY</onMatch>
+ <onMismatch>ACCEPT</onMismatch>
+ </filter>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+ </encoder>
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--璺緞-->
+ <fileNamePattern>${log.path}/info.%d.%i.log</fileNamePattern>
+ <maxFileSize>${log.fileSize}</maxFileSize>
+ <maxHistory>${log.historyDays}</maxHistory>
+ <totalSizeCap>1GB</totalSizeCap>
+ </rollingPolicy>
+ </appender>
+
+ <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>ERROR</level>
+ </filter>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+ </encoder>
+ <!--婊氬姩绛栫暐-->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--璺緞-->
+ <fileNamePattern>${log.path}/error.%d.%i.log</fileNamePattern>
+ <maxFileSize>${log.fileSize}</maxFileSize>
+ <maxHistory>${log.historyDays}</maxHistory>
+ <totalSizeCap>1GB</totalSizeCap>
+ </rollingPolicy>
+ </appender>
+ <!-- 寮傛鍐欏叆鏃ュ織 -->
+ <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
+ <!-- 涓嶄涪澶辨棩蹇�.榛樿鐨�,濡傛灉闃熷垪鐨�80%宸叉弧,鍒欎細涓㈠純TRACT銆丏EBUG銆両NFO绾у埆鐨勬棩蹇� -->
+ <discardingThreshold >0</discardingThreshold>
+ <!-- 鏇存敼榛樿鐨勯槦鍒楃殑娣卞害,璇ュ�间細褰卞搷鎬ц兘.榛樿鍊间负256 -->
+ <queueSize>512</queueSize>
+ <!-- 娣诲姞闄勫姞鐨刟ppender,鏈�澶氬彧鑳芥坊鍔犱竴涓� -->
+ <appender-ref ref ="fileInfoLog"/>
+ </appender>
+ <root level="info">
+ <appender-ref ref="consoleLog"/>
+ <appender-ref ref="fileInfoLog"/>
+ <appender-ref ref="fileErrorLog"/>
+ </root>
+</configuration>
\ No newline at end of file
diff --git a/server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java b/server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java
index 2081ede..a7870ec 100644
--- a/server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java
+++ b/server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java
@@ -47,25 +47,26 @@
public CountDataResponse countData(BaseRequest param){
MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.select("count(1) as applyTotalNum");
- queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status not in(5,6,8)) as applyPassNum");
- queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (5)) as visitInNum");
- queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (6,8)) as visitOutNum");
+ queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status not in(0)) as applyPassNum");
+ queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status not in(0,4)) as visitorNum");
+ queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (1,3,6)) as visitInNum");
+ queryWrapper.select("(select count(1) from visits where TO_DAYS(starttime)=TO_DAYS(now()) and status in (2,5)) as visitOutNum");
queryWrapper.select("(select count(1) from car_event where TO_DAYS(create_date)=TO_DAYS(now()) and inout_type=0 and event_type="+ HKConstants.EventTypes.PARK_PASS_IN.getKey() +") as carInNum");
queryWrapper.select("(select count(1) from car_event where TO_DAYS(create_date)=TO_DAYS(now()) and (inout_type !=0 ) and event_type="+ HKConstants.EventTypes.PARK_PASS_OUT.getKey() +") as carOutNum");
queryWrapper.eq(Visits::getIsdeleted, Constants.ZERO );
queryWrapper.apply("TO_DAYS(starttime)=TO_DAYS(now())" );
queryWrapper.last("limit 1");
CountDataResponse vModel =visitsMapper.selectJoinOne(CountDataResponse.class,queryWrapper);
- vModel.setVisitorNum(vModel.getVisitInNum()+vModel.getVisitOutNum());//浠婃棩璁垮鎬绘暟
+// vModel.setVisitorNum(vModel.getVisitInNum()+vModel.getVisitOutNum());//浠婃棩璁垮鎬绘暟
MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>();
wrapper.select("count(1) as memberCarNum");
wrapper.exists("select b.id from cars b where b.code=t.plate_nos" );
- wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
+ wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now()) and inout_type=0 and event_type="+ HKConstants.EventTypes.PARK_PASS_IN.getKey() );
wrapper.last("limit 1");
CountDataResponse cModel =carEventMapper.selectJoinOne(CountDataResponse.class,wrapper);
- vModel.setMemberCarNum(vModel.getMemberCarNum());//浠婃棩鍛樺伐杞﹁締杩涘満鏁�
- vModel.setVisitCarNum(vModel.getCarInNum() - vModel.getMemberCarNum());//浠婃棩棰勭害杞﹁締杩涘満鏁�
+ vModel.setMemberCarNum(Constants.formatIntegerNum(cModel.getMemberCarNum()));//浠婃棩鍛樺伐杞﹁締杩涘満鏁�
+ vModel.setVisitCarNum(vModel.getCarInNum() - cModel.getMemberCarNum());//浠婃棩棰勭害杞﹁締杩涘満鏁�
vModel.setCarNum(getCarInRecordCount());
return vModel;
}
@@ -129,6 +130,8 @@
List<VisitDataListResponse> list = new ArrayList<>();
MPJLambdaWrapper<VisitEvent> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(VisitEvent.class) ;
+ //鍙煡璇㈤�氳璁板綍
+ wrapper.eq(VisitEvent::getEventType,HKConstants.EventTypes.VISIT_SIGN_ICCM_PASS.getKey() );
wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
wrapper.last("limit 50");
wrapper.orderByDesc(VisitEvent::getStartTime);
@@ -254,7 +257,7 @@
MPJLambdaWrapper<Visits> wrapper = new MPJLambdaWrapper<>();
wrapper.select("count(id) as num, starttime");
wrapper.apply("TO_DAYS(starttime)+"+days+" >= TO_DAYS(now()) " );
- wrapper.in(Visits::getStatus, 5,6,7);
+ wrapper.in(Visits::getStatus, 1,2,3,5,6);
wrapper.groupBy("TO_DAYS(starttime)");
wrapper.orderByDesc(CarEvent::getCreateDate);
List<Visits> result =visitsMapper.selectJoinList(Visits.class,wrapper);
diff --git a/server/dmvisit_screen/src/main/resources/application.yml b/server/dmvisit_screen/src/main/resources/application.yml
index 6f450bc..fedfd64 100644
--- a/server/dmvisit_screen/src/main/resources/application.yml
+++ b/server/dmvisit_screen/src/main/resources/application.yml
@@ -10,7 +10,7 @@
# application:
# name: doumeevisit
profiles:
- active: devYL
+ active: proYL
# JSON杩斿洖閰嶇疆
jackson:
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index 01dafc1..0d8cfe6 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -81,12 +81,14 @@
String cardUnloss= "/api/cis/v1/card/batch/unLoss";//鎵归噺瑙f寕
String taskPersoDetail= "/api/acps/v1/download_record/person/detail/search";//鏌ヨ璁惧閫氶亾鐨勪汉鍛樻潈闄愪笅杞借鎯�
String appointmentRecords= "/api/visitor/v2/appointment/records";//鏌ヨ璁垮棰勭害璁板綍v2
+ String appointmentRecordsIccm= "/api/iccm/v2/appointment/records";//iccm鏌ヨ璁垮棰勭害璁板綍V2
String visitingRecords= "/api/visitor/v2/visiting/records";//鏌ヨ璁垮鏉ヨ璁板綍v2
String vehicleList= "/api/resource/v2/vehicle/advance/vehicleList";//鏌ヨ杞﹁締鍒楄〃v2
String vehicleTimeRangeList= "/api/resource/v1/vehicle/timeRange";//澧為噺鑾峰彇杞﹁締鏁版嵁
String facePictureCheck= "/api/frs/v1/face/picture/check";//浜鸿劯璇勫垎
String acsDeviceStatus= "/api/nms/v1/online/acs_device/get";//鑾峰彇闂ㄧ璁惧鍦ㄧ嚎鐘舵��
String tempCarInRecords= "/api/pms/v1/tempCarInRecords/page";//鏌ヨ鍦哄唴杞﹀仠杞︿俊鎭�
+ String appointmentEventQuery= "/api/iccm/v1/event/query";//鏌ヨ鍦哄唴杞﹀仠杞︿俊鎭�
}
/**
@@ -223,6 +225,9 @@
PARK_PASS_OUT(771760134, "鍑哄満鏀捐浜嬩欢" ),
VISIT_SIGN_IN(1392513025, "璁垮鐧昏" ),
VISIT_SIGN_OUT(1392513026, "璁垮绛剧" ),
+ VISIT_SIGN_ICCM_IN(541200006, "璁垮鐧昏" ),
+ VISIT_SIGN_ICCM_OUT(541200007, "璁垮绛剧" ),
+ VISIT_SIGN_ICCM_PASS(541200060, "璁垮閫氳" ),
DOOR_FACE_AUTH_FAIL(197163, "浜鸿劯璁よ瘉澶辫触" ),
DOOR_FACE_AUTH_SUCCESS(196893, "浜鸿劯璁よ瘉閫氳繃" )
;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index f6b12c8..fb5af07 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -621,6 +621,29 @@
saveInterfaceLog(body,result,path);
return result;
}
+
+ /**
+ * 鑾峰彇璁垮棰勭害璁板綍鍒楄〃
+ * @param body
+ * @return
+ */
+ public static String appointmentRecordsIccm(String body) {
+ Map<String, String> path = getPath(HKConstants.InterfacePath.appointmentRecordsIccm);
+ String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+ saveInterfaceLog(body,result,path);
+ return result;
+ }
+ /**
+ * 鑾峰彇璁垮杩涘嚭鍦轰簨浠舵煡璇㈠垎椤�
+ * @param body
+ * @return
+ */
+ public static String appointmentEventQuery(String body) {
+ Map<String, String> path = getPath(HKConstants.InterfacePath.appointmentEventQuery);
+ String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+ saveInterfaceLog(body,result,path);
+ return result;
+ }
/**
* 鑾峰彇鍏ㄩ噺缁勭粐鍒楄〃
* @param body
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentEventListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentEventListRequest.java
new file mode 100644
index 0000000..5d5d61f
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/AppointmentEventListRequest.java
@@ -0,0 +1,15 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class AppointmentEventListRequest {
+ private String visitorId;// String false 璁垮id锛堣瀹汉鍛榠d锛涜瀹汉鍛樺悕绉帮紱璁惧璧勬簮code涓嶈兘鍚屾椂涓虹┖锛�
+ private String visitorName;// String false 璁垮鍚嶇О
+ private String resourceCode ;//String false 璁惧璧勬簮code
+ private String eventTimeBegin;// String true 浜嬩欢寮�濮嬫椂闂�
+ private String eventTimeEnd ;//String true 浜嬩欢缁撴潫鏃堕棿
+ private int pageNo;// integer True pageNo瑕佹眰澶т簬0涓嶈秴杩�2147483647
+ private int pageSize;// integer True pageSize瑕佹眰澶т簬0涓斾笉瓒呰繃1000
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDataRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDataRequest.java
new file mode 100644
index 0000000..e8517db
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDataRequest.java
@@ -0,0 +1,29 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventVisitIccmDataRequest {
+
+ /**
+ * 棰勭害璁板綍淇℃伅
+ */
+ private EventVisitIccmInvoiceParamRequest visitorInvoices;
+ /**
+ * 琚浜轰俊鎭�
+ */
+ private EventVisitIccmTargetParamRequest targetPerson;
+ /**
+ * 琚浜轰俊鎭�
+ */
+ private EventVisitIccmValuesParamRequest paramValues;
+
+ /**
+ * 鎷滆浜轰俊鎭�
+ */
+ private List<EventVisitIccmDetailParamRequest> visitorInformationList;
+
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDetailParamRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDetailParamRequest.java
new file mode 100644
index 0000000..28d81e1
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmDetailParamRequest.java
@@ -0,0 +1,29 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+@Data
+public class EventVisitIccmDetailParamRequest {
+
+ private String visitorId;// eda8994f399544aaaee6eca64ed79827, #璁垮id
+ private String visitorName;// 灏忓垬, #璁垮鍚嶇О
+ private Integer sex;// 1, #璁垮鎬у埆
+ private String phone;// 18229602833, #璁垮鎵嬫満鍙�
+ private String unit;// , #璁垮鍗曚綅
+ private Integer certType;// 111, #璁垮璇佷欢绫诲瀷
+ private String certNo;// , #璁垮璇佷欢鍙风爜
+ private String certPicUrl;// , #璁垮璇佷欢鐓ase64
+ private String faceUrl;// , #浜鸿劯base64
+ private String plateNo;// , #璁垮涓汉淇℃伅閲岀殑杞︾墝
+ private String createTime;// 2023-02-16T20;//19;//46.382+08;//00,
+ private String updateTime;// 2023-02-16T20;//19;//46.382+08;//00,
+ private String visitNum;// 0,
+ private String isBlocked;// 0, #鏄惁鎷夐粦
+ private String tempCardNo;// 123456, #缁戝畾鐨勪复鏃跺崱鍙�
+ private String companionPerson;// 0, #鏄惁涓洪�氳浜猴細0涓嶆槸1鏄�
+ private String cardNo;// 1676549986273, #璁垮鍗″彿
+ private String appointmentCode;// 5998, #璁垮鐮�
+ private String facePic;// /pic?ad00=3001led-do671a*o0d1=4686*2l4767184156*8tp===119***sb9=defce2d7736fc--*49e3=pi17fo=0-510090, #璁垮浜鸿劯鍥剧墖
+ private String faceDeviceId;// 894c1bfa-e8a7-419a-84d1-1a1fb5f3896a #鍥剧墖璁惧id
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInfoRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInfoRequest.java
new file mode 100644
index 0000000..de7773e
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInfoRequest.java
@@ -0,0 +1,17 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+@Data
+public class EventVisitIccmInfoRequest {
+ private String eventId;// String 浜嬩欢鍞竴鏍囪瘑 鏄� 64
+ private String srcIndex;// String 浜嬩欢婧愮紪鍙凤紝鐗╃悊璁惧鏄祫婧愮紪鍙� 鏄� 64
+ private String srcType;// String 浜嬩欢婧愮被鍨� 鏄� 16
+ private Integer eventType ;//Number 浜嬩欢绫诲瀷 鏄�
+ private String srcName;// String 浜嬩欢婧愬悕绉� 鍚� 64
+ private Integer status ;//Number 浜嬩欢鐘舵�� 鏄� 0-鐬椂1-寮�濮�2-鍋滄3-浜嬩欢鑴夊啿4-浜嬩欢鑱斿姩缁撴灉鏇存柊5-寮傛鍥剧墖涓婁紶
+ private Integer timeout ;//Number 鑴夊啿瓒呮椂鏃堕棿 鏄� 鍗曚綅锛氱
+ private String happenTime ;//String 浜嬩欢鍙戠敓鏃堕棿锛堣澶囨椂闂达級 鏄� 64
+ private String srcParentIndex ;//String 浜嬩欢鍙戠敓鐨勪簨浠舵簮鐖惰澶囩紪鍙� 鍚� 64
+ private EventVisitIccmDataRequest data;
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInvoiceParamRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInvoiceParamRequest.java
new file mode 100644
index 0000000..3b1a92e
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmInvoiceParamRequest.java
@@ -0,0 +1,45 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+@Data
+public class EventVisitIccmInvoiceParamRequest {
+
+ private String invoicesId;// 5bc15cabf24141c6ab3da357e29e5d53, #璁垮鍗昳d
+ private String invoicesNo;// FK20230220090002, #璁垮鍗曞彿
+ private String visitorId;// eda8994f399544aaaee6eca64ed79827, #璁垮id
+ private String visitorTypeId;// , #璁垮绫诲瀷id
+ private String deptId;// fe3d4470fa824449b8dcdf34e833890e, #璁块棶閮ㄩ棬id
+ private String campusId;// 39ce5586087c4d78873ff187396acf5b, #鍥尯id
+ private String visitReason;// 7744d9691f1e45b7b4a06394280e45a3, #璁块棶浜嬬敱id
+ private String visitReasonRemark;// , #璁块棶浜嬬敱澶囨敞
+ private String visitTargetId;// 2cb0bd1b312941569c43f64d781b7cf7, #琚浜篿d
+ private String companionIds;// , #鍚岃浜篿d,閫楀彿鍒嗗壊
+ private String type;// 0, #绫诲瀷锛�0锛岄绾︼紱1锛岄個绾�
+ private String appointmentType;// 0, #棰勭害绫诲瀷锛�0锛氭櫘閫氶绾︼紱1锛氬揩閫熼绾︼紱2;//鍏嶇櫥璁伴绾�; 3;// 绗笁鏂归绾� ; 4;//璁垮鏈洪绾�; 5;// 浼氱璁垮棰勭害; 6;// 蹇�熼個绾�; 7;//鏅�氶個绾�; 8;//绾ц仈閭�绾�; 9;//绾ц仈蹇�熼绾�; 10;//绾ц仈棰勭害
+ private String workflowInstanceId;// f1b53b54414641d58cd7cd332105d723, #娴佺▼id
+ private String approveRemark;// , #娴佺▼瀹℃壒澶囨敞
+ private String ifInfoAbnormal;// 0,
+ private String beginTime;// 2023-02-20T10;//00;//00.000+08;//00, #璁块棶寮�濮嬫椂闂�
+ private String finishTime;// 2023-02-20T23;//30;//00.000+08;//00, #璁块棶缁撴潫鏃堕棿
+ private String invoicesStatus;// 3, #璁垮鍗曠姸鎬�(0;//寰呭鎵�,1;//寰呰闂�,2;//宸查┏鍥�,3;//宸蹭綔搴�,4;//宸插彇娑�,5;//宸插畬鎴�)
+ private String workflowInitiatorId;// eda8994f399544aaaee6eca64ed79827, #娴佺▼鍙戣捣浜篿d
+ private String workflowInitiatorType;// 0, #娴佺▼鍙戣捣浜虹被鍨�(0;//璁垮,1;//鍛樺伐)
+ private String operator;// eda8994f399544aaaee6eca64ed79827, #鎿嶄綔浜�
+ private String operatorType;// 0, #鎿嶄綔浜虹被鍨�(0;//璁垮,1;//鍛樺伐)
+ private String extendJson;// , #鎵╁睍瀛楁
+ private String authIssueStatus;// 0, #鏉冮檺涓嬪彂鐘舵��(0;//鏈笅鍙�,1;//涓嬪彂鎴愬姛,2;//涓嬪彂澶辫触,3;//鏉冮檺娓呴櫎,4;//鏉冮檺鍥炴敹)
+ private String createTime;// 2023-02-20T09;//43;//39.479+08;//00, #鍒涘缓鏃堕棿
+ private String updateTime;// 2023-02-20T19;//42;//32.640+08;//00,
+ private String campusName;// 鍗曠嫭鍋滆溅鍦烘祴璇�, #鍥尯鍚嶇О
+ private String deptName;// 榛樿閮ㄩ棬, #閮ㄩ棬鍚嶇О
+ private String visitorTypeName;// 鏅�氳瀹�, #璁垮绫诲瀷
+ private String sceneNames;// 娴嬭瘯7, #鏉冮檺鍦烘櫙鍚嶇О锛屽涓�楀彿鍒嗛殧
+ private String visitReasonName;// 鍟嗗姟娲借皥, #璁块棶浜嬬敱鍚嶇О
+ private String regionId;//eda8994f399544aaaee6eca64ed79827,#鍖哄煙id锛�2.2鏀寔锛�2.3搴熷純璇ュ瓧娈�
+ private String regionName;//婊ㄦ睙,#鍖哄煙鍚嶇О锛�2.2鏀寔锛�2.3搴熷純璇ュ瓧娈�
+ private String campusRegionIds;//pda8994f399544aaaee6eca64ed79828,#鍖哄煙id锛�2.3鏀寔
+ private String campusRegionNames;//娴峰悍涓夋湡, #鍖哄煙鍚嶇О锛�2.3鏀寔
+ private String isRepast;//1 #璁垮灏遍,0;//鍚�,1;//鏄�
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmParamRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmParamRequest.java
new file mode 100644
index 0000000..64c7a96
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmParamRequest.java
@@ -0,0 +1,17 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EventVisitIccmParamRequest {
+
+
+ private String sendTime;// P String 浜嬩欢浠庢帴鏀惰�咃紙绋嬪簭澶勭悊鍚庯級鍙戝嚭鐨勬椂闂� 鏄� 32 浜嬩欢鍙戦�佹椂闂�
+ private String ability;// P String 浜嬩欢绫诲埆 鏄� 64 鏍囪瘑鍋滆溅鍦轰簨浠�
+ private String[] uids;// String[] 鐢ㄦ埛id 鍚� 涓嶉檺
+ private String[] clients ;//String[] 缁勪欢鏍囪瘑 鍚� 涓嶉檺
+ private List<EventVisitIccmInfoRequest> events;// P Events[] 浜嬩欢淇℃伅 鏄� 涓嶉檺
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmRequest.java
new file mode 100644
index 0000000..cfa1802
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmRequest.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+@Data
+public class EventVisitIccmRequest {
+
+// private String parkIndexCodes ;// string False 鍋滆溅搴撳敮涓�鏍囪瘑闆嗗悎 澶氫釜鍊间娇鐢ㄨ嫳鏂囬�楀彿鍒嗛殧锛屼笉瓒呰繃1000涓�
+
+ private String method ;// String 鏂规硶鍚嶏紝鐢ㄤ簬鏍囪瘑鎶ユ枃鐢ㄩ�� 鏄� 16 浜嬩欢鍥哄畾OnEventNotify
+ private EventVisitIccmParamRequest params ;// Params 浜嬩欢鍙傛暟淇℃伅 鏄� 涓嶉檺 鍏蜂綋鍙傛暟淇℃伅
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmTargetParamRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmTargetParamRequest.java
new file mode 100644
index 0000000..733adcb
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmTargetParamRequest.java
@@ -0,0 +1,23 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+@Data
+public class EventVisitIccmTargetParamRequest {
+
+ private String personId;// 2cb0bd1b312941569c43f64d781b7cf7, #琚浜篿d
+ private String personNumber;// 10001, #琚浜哄伐鍙�
+ private String name;// Lhk绠$悊鍛�, #琚浜虹紪鍙�
+ private String sex;// 1, #琚浜烘�у埆
+ private String jobNo;// 10001, #琚浜哄伐鍙�
+ private String pinyin;// lhkguanliyuan, #琚浜烘嫾闊�
+ private String mobile;// 17700001111, #琚浜烘墜鏈哄彿
+ private String orgId;// root000000, #琚浜虹粍缁噄d
+ private String certType;// 111, #琚浜鸿瘉浠剁被鍨�
+ private String certificateNo;// 330282202302160001, #琚浜鸿瘉浠跺彿鐮�
+ private String orgPathName;// 榛樿缁勭粐, #琚浜虹粍缁�
+ private String userName;// Lhk绠$悊鍛�, #琚浜虹敤鎴峰悕
+ private String createTime;// 2023-02-16T10;//10;//51.683+08;//00,
+ private String updateTime;// 2023-02-20T19;//40;//54.138+08;//00
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmValuesParamRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmValuesParamRequest.java
new file mode 100644
index 0000000..9535b0b
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/event/visit/EventVisitIccmValuesParamRequest.java
@@ -0,0 +1,41 @@
+package com.doumee.core.haikang.model.param.request.event.visit;
+
+import lombok.Data;
+
+@Data
+public class EventVisitIccmValuesParamRequest {
+
+ private String type;// 1, #浜嬩欢婧愮被鍨嬶細1璁垮鏈�2淇濆畨浜哄伐3闂ㄧ4鍋滆溅鍦哄嚭鍏ュ彛5api6琚浜�
+ private String eventType;// 541200007, #541200006[绛惧埌娑堟伅閫氱煡],541200007[绛剧娑堟伅閫氱煡],541200009[璁垮婊炵暀]锛�541200060[閫氳浜嬩欢]
+ private String sourceName;// 1鍙烽棬绂�, #闂ㄧ鍚嶇О
+ private String eventId;// demoData, #浜嬩欢id
+ private String eventTypeName;// demoData, #浜嬩欢绫诲瀷鍚嶇О
+ private String happenTime;// 23/6/2 0002 11;//36, #鍙戠敓鏃堕棿
+ private String srcParentIndex;// demoData, #鐖剁被璧勬簮 indexcode
+ private String srcIndex;// demoData, #瀛愮被indexcode
+ private String srcName;// demoData, #璁惧鍚嶇О
+ private String srcType;// demoData, #璧勬簮绫诲瀷
+ private String extEventCardNo;// demoData, #鍗″彿
+ private String extEventInOut;// demoData, #闂ㄧ鐐瑰敮涓�鎺ュ叆缂栫爜
+ private String extEventPictureURL;// demoData, #鍥剧墖鐨剈rl
+ private String svrIndexCode;// demoData, #鍥剧墖鏈嶅姟鍣ㄥ敮涓�缂栫爜
+ private String extEventReaderKind;// demoData, #璇诲崱鍣ㄧ被鍒�
+ private String extEventReaderID;// demoData, #璇诲崱鍣╥d
+ private String userType;// demoData, #浜哄憳绫诲瀷锛�0鏈煡锛�1鏅�氾紝2鏉ュ锛�3榛戝悕鍗曪紝4绠$悊鍛�
+ private String visitorNames;// demoData, #璁垮濮撳悕,澶氫釜閫楀彿鎷兼帴
+ private String phones;// demoData, #鎵嬫満鍙�,澶氫釜閫楀彿鎷兼帴
+ private String certificateNos;// demoData, #韬唤璇�,澶氫釜閫楀彿鎷兼帴
+ private String certTypes;// 333, #璇佷欢绫诲瀷,澶氫釜閫楀彿鎷兼帴
+ private String invoicesIds;// 5a9e731d6b9043feb665282786dd8914, #璁垮鍗昳d,澶氫釜閫楀彿鎷兼帴
+ private String defineEventType;// 9, #浜嬩欢绫诲瀷
+ private String plateNos;// demoData, #杞︾墝鍙风爜,澶氫釜閫楀彿鎷兼帴
+ private String parkName;// demoData, #鍋滆溅搴撳悕绉�
+ private String parkIndex;// demoData, #鍋滆溅搴撶紪鍙�
+ private String gateName;// demoData,#鍑哄叆鍙e悕绉�
+ private String gateIndex;// demoData, #鍑哄叆鍙g紪鍙�
+ private String inOrOut;// 1,#杩涘嚭绫诲瀷锛�1杩涘叆2鍑哄幓
+ private String accessType;// 1, #浜嬩欢绫诲瀷锛�1闂ㄧ浜嬩欢2杞﹁締浜嬩欢
+ private String regionName;// demoData#鍖哄煙鍚嶇О,
+ private String typeId;//1 #鍓嶇璺宠浆url鐨則ypeId
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentEventInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentEventInfoResponse.java
new file mode 100644
index 0000000..3185d0b
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentEventInfoResponse.java
@@ -0,0 +1,28 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class AppointmentEventInfoResponse {
+
+
+ private String visitorName;// String false 璁垮濮撳悕
+ private String visitorSex ;//String false 鎬у埆,1鐢�,2濂�
+ private String cardNum;// String false 鍗″彿
+ private String cardType;// String false 鍗$被鍨�,0-韬唤璇佸彿 2-IC鍗″彿
+ private String deviceIndexCode;// String false 璁惧缂栫爜
+ private String deviceType;// String false 璁惧绫诲瀷
+ private String deviceDesc;// String false 璁惧鎻忚堪
+ private String eventName;// String false 浜嬩欢鍚嶇О
+ private String eventId ;//String false 浜嬩欢id
+ private String phoneNum ;//String false 鎵嬫満鍙�
+ private String carNumber ;//String false 杞︾墝鍙�
+ private String identityId;// String false 璇佷欢绫诲瀷
+ private String identityNum ;//String false 璇佷欢鍙风爜
+ private String visitorPhotoUri;// String false 璁垮澶村儚
+ private String identityPhotoUri;// String false 璇佷欢鐓х墖
+ private String eventTime;// String false 浜嬩欢鏃堕棿
+ private String visitorId;// String false 璁垮id
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentIccmInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentIccmInfoResponse.java
new file mode 100644
index 0000000..e88eac3
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentIccmInfoResponse.java
@@ -0,0 +1,30 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AppointmentIccmInfoResponse {
+
+
+ private String campusId;// String false 鍥尯id
+ private String campusName;// String false 鍥尯鍚嶇О
+ private String deptId ;//String false 閮ㄩ棬id
+ private String deptName;// String false 閮ㄩ棬鍚嶇О
+ private String visitorTypeId;// String false 璁垮绫诲瀷id
+ private String visitorTypeName;// String false 璁垮绫诲瀷
+ private String appointRecordId;// String false 璁垮棰勭害璁板綍id
+ private String orderId;// String false 璁垮鍗曞彿
+ private String visitPurpose;//String false 鏉ヨ浜嬬敱id
+ private String visitPurposeName;// String false 鏉ヨ浜嬬敱
+ private String visitEndTime;// String false 璁块棶缁撴潫鏃堕棿
+ private String receptionistId ;//String false 琚浜篿d
+ private String receptionistName;// String false 琚浜哄鍚�
+ private String visitStartTime ;//String false 璁块棶寮�濮嬫椂闂�
+ private String oneOrPeople;// String false 閫氳鐮佺瓥鐣� 0锛氫竴浜轰竴鐮� 1锛氬浜轰竴鐮�
+
+ private List<AppointmentResInfoResponse> designatedResources;// object False 鏉冮檺涓嬪彂鎸囧畾鐨勮祫婧愮偣闆嗗悎
+ private String[] privilegeGroupNames;// string[] False 鏉冮檺缁勫悕绉伴泦鍚�
+ private List<AppointmentVisitorInfoResponse> visitorList;// Array false 璁垮鍒楄〃
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentVisitorInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentVisitorInfoResponse.java
new file mode 100644
index 0000000..3650ceb
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/AppointmentVisitorInfoResponse.java
@@ -0,0 +1,34 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.models.auth.In;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AppointmentVisitorInfoResponse {
+
+
+ private String appointRecordId ;//string False 棰勭害璁板綍ID锛屽彲浣滀负淇敼棰勭害鐨勪緷鎹�
+ private Boolean companion;// Boolean false 鏄惁鍚岃浜�
+ private String visitorId ;//String false 璁垮id
+ private String phoneNo ;//String false 璁垮鎵嬫満鍙�
+ private String visitorName;// String false 璁垮濮撳悕
+ private Integer gender;// Number false 鎬у埆(1:鐢�,2:濂�)
+ private String svrIndexCode;// String false 鍥剧墖瀛樺偍鏈嶅姟鐨勫敮涓�鏍囪瘑
+ private String picUri;// String false 璁垮澶村儚,鍥剧墖鐨勭浉瀵筓RL
+ private String identityUri;// String false 璇佷欢鐓�,鍥剧墖鐨勭浉瀵筓RL
+ private String identitySvrCode;// String false 璇佷欢鐓у搴斿浘鐗囨湇鍔″櫒serviceNodes
+ private String plateNo;// String false 璁垮杞︾墝鍙�
+ private String certificateNo;// String false 璇佷欢鍙�
+ private String visitorWorkUnit ;//String false 鏉ヨ鍗曚綅
+ private Integer visitorStatus ;//Number false 璁垮鐘舵��(0:鏈鍒�,1:宸茬鍒�,2:宸茬閫�,3:婊炵暀,4:鏈闂�,5:鑷姩绛剧,6:鏈閫�)
+ private String certificateType ;//;//Number false 璇佷欢绫诲瀷
+ private String isCompanion;// Boolean false 鏄惁鍚岃浜�
+ private String appointmentCode ;//String false 璁垮鐮�
+ @JsonProperty(value = "QRCode")
+ @JSONField(name = "QRCode")
+ private String qrCode ;//String false 鍔ㄦ�佷簩缁寸爜鍐呭
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 1a63ab1..654f283 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -802,6 +802,42 @@
return null;
}
/**
+ *娴峰悍璁垮棰勭害璁板綍鏌ヨICCM鐗堟湰锛堝垎椤碉級
+ * @return
+ */
+ public static BaseResponse<BaseListPageResponse<AppointmentIccmInfoResponse>> appointmentRecordsIccm(AppointmentListRequest param){
+ log.info("銆愭捣搴疯瀹㈤绾﹁褰曟煡璇CCM鐗堟湰銆�================寮�濮�===="+JSONObject.toJSONString(param));
+ try {
+ String res = HKTools.appointmentRecordsIccm(JSONObject.toJSONString(param));
+ TypeReference typeReference =
+ new TypeReference<BaseResponse<BaseListPageResponse<AppointmentIccmInfoResponse>>>(){};
+ BaseResponse<BaseListPageResponse<AppointmentIccmInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType());
+ logResult(result,"娴峰悍璁垮棰勭害璁板綍鏌ヨICCM鐗堟湰");
+ return result;
+ }catch (Exception e){
+ log.error("銆愭捣搴疯瀹㈤绾﹁褰曟煡璇CCM鐗堟湰銆�================澶辫触====锛歕n"+ e.getMessage());
+ }
+ return null;
+ }
+ /**
+ *娴峰悍璁垮浜嬩欢浠介鏌ヨICCM鐗堟湰锛堝垎椤碉級
+ * @return
+ */
+ public static BaseResponse<BaseListPageResponse<AppointmentEventInfoResponse>> appointmentEventQuery(AppointmentEventListRequest param){
+ log.info("銆愭捣搴疯瀹簨浠朵唤棰濇煡璇CCM鐗堟湰銆�================寮�濮�===="+JSONObject.toJSONString(param));
+ try {
+ String res = HKTools.appointmentEventQuery(JSONObject.toJSONString(param));
+ TypeReference typeReference =
+ new TypeReference<BaseResponse<BaseListPageResponse<AppointmentEventInfoResponse>>>(){};
+ BaseResponse<BaseListPageResponse<AppointmentEventInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType());
+ logResult(result,"娴峰悍璁垮浜嬩欢浠介鏌ヨICCM鐗堟湰");
+ return result;
+ }catch (Exception e){
+ log.error("銆愭捣搴疯瀹簨浠朵唤棰濇煡璇CCM鐗堟湰銆�================澶辫触====锛歕n"+ e.getMessage());
+ }
+ return null;
+ }
+ /**
*鏌ヨ璁垮鏉ヨ璁板綍锛堝凡鐧昏锛夛紙鍒嗛〉锛�
* @return
*/
@@ -950,16 +986,16 @@
* @return
*/
public static BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>> vehicleTimeRangeList(TimeRangeListRequest param){
- log.info("銆愭捣搴峰閲忎汉鍛樻煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+ log.info("銆愭捣搴峰閲忚溅杈嗘煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
try {
String res = HKTools.vehicleTimeRangeList(JSONObject.toJSONString(param));
TypeReference typeReference =
new TypeReference< BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>> >(){};
BaseResponse<BaseListPageResponse<VehicleTimeRangeInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType());
- logResult(result,"娴峰悍澧為噺浜哄憳鏌ヨ");
+ logResult(result,"娴峰悍澧為噺杞﹁締鏌ヨ");
return result;
}catch (Exception e){
- log.error("銆愭捣搴峰閲忎汉鍛樻煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+ log.error("銆愭捣搴峰閲忚溅杈嗘煡璇€��================澶辫触====锛歕n"+ e.getMessage());
}
return null;
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index 2114b39..f265a0d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -228,6 +228,16 @@
int signout = 8;
int invalid =9;
}
+ public interface VisitIccmStatus{
+ //璁垮鐘舵��(0:鏈鍒�,1:宸茬鍒�,2:宸茬閫�,3:婊炵暀,4:鏈闂�,5:鑷姩绛剧,6:鏈閫�)
+ int waitSign = 0;
+ int signin= 1;
+ int signout = 2;
+ int noleave =3;
+ int novisit =4;
+ int autoOut =5;
+ int noSignout =6;
+ }
public interface EmpowerStatus{
//涓�鍗¢�氭巿鏉冧笅鍙戠姸鎬� 0寰呬笅鍙� 1宸蹭笅鍙� 2涓嬪彂鎴愬姛 3宸插彇娑� 4涓嬪彂澶辫触 5浠诲姟涓嬭浇宸茬粨鏉�
int wait = 0;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java
index 01d40d7..adbe13a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/InterfaceLogService.java
@@ -96,4 +96,6 @@
long count(InterfaceLog interfaceLog);
void clearThreeMonthLog();
+
+ void remainLastLogs();
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index 7af1926..d41ca7f 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -6,6 +6,8 @@
import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmDataRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
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.ParkBook;
@@ -83,4 +85,10 @@
void syncMemberFailData();
void syncMemberDelData();
+
+ void syncVistAppointDataIccm(Date date);
+
+ void syncVisitRecords(Date createDate);
+
+ String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response);
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
index 9f11835..45091d7 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/InterfaceLogServiceImpl.java
@@ -2,6 +2,7 @@
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.InterfaceLogMapper;
import com.doumee.dao.business.model.InterfaceLog;
@@ -13,6 +14,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import org.yaml.snakeyaml.scanner.Constant;
import java.util.List;
@@ -161,4 +163,15 @@
.apply("to_days(create_date)+15 < to_days(now())")
.like(InterfaceLog::getUrl,"/artemis/api/"));
}
+ @Override
+ public void remainLastLogs(){
+ InterfaceLog log = interfaceLogMapper.selectOne(new QueryWrapper<InterfaceLog>()
+ .select("max(id) as id").last("limit 1"));
+ //鍙繚鐣欒繘10w鏉℃暟鎹�
+ if(log!=null) {
+ interfaceLogMapper.delete(new UpdateWrapper<InterfaceLog>().lambda()
+ .lt(InterfaceLog::getId, Constants.formatIntegerNum(log.getId()) - 100000));
+ }
+
+ }
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 9cdf479..0f9a0ab 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -1160,7 +1160,7 @@
}catch (BusinessException e){
throw e;
}finally {
- saveInterfaceLog(param,"/visitBiz/resource/approveApply",null,Constants.ZERO);
+// saveInterfaceLog(param,"/visitBiz/resource/approveApply",null,Constants.ZERO);
}
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 9ed642b..17aa040 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -7,6 +7,8 @@
import com.doumee.core.haikang.model.param.request.*;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmDataRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
import com.doumee.core.haikang.model.param.respose.TaskAdditionResponse;
@@ -76,6 +78,10 @@
public String dealVisitEvent(EventVisitRequest param, HttpServletResponse response){
return null;
}
+ @Override
+ public String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
+ return null;
+ }
@Override
public String dealParkEvent(EventParkRequest param, HttpServletResponse response){
@@ -96,6 +102,9 @@
@Override
public void syncVistAppointData(Date date){
}
+ @Override
+ public void syncVistAppointDataIccm(Date date){
+ }
public void syncVehicleData(){
}
@Override
@@ -112,6 +121,9 @@
public void syncVisitData() {
}
@Override
+ public void syncVisitRecords(Date createDate){
+ }
+ @Override
public void getOutTimeVisitRecord(){
}
@Override
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
index c10c289..8d25f41 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -18,7 +18,9 @@
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CarEventMapper;
+import com.doumee.dao.business.CarsMapper;
import com.doumee.dao.business.ParksMapper;
+import com.doumee.dao.business.VisitsMapper;
import com.doumee.dao.business.join.ParkBookJoinMapper;
import com.doumee.dao.business.model.*;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -48,6 +50,10 @@
private ParkBookJoinMapper parkBookMapper;
@Autowired
private CarEventMapper carEventMapper;
+ @Autowired
+ private CarsMapper carsMapper;
+ @Autowired
+ private VisitsMapper visitsMapper;
@Override
public void syncParkBookData() {
if(Constants.DEALING_HK_PARKBOOK){
@@ -405,6 +411,25 @@
c.setParkIndex(model.getParkSyscode());
c.setParkName(model.getParkName());
c.setEventId(model.getCrossRecordSyscode());
+ if(StringUtils.isNotBlank(model.getPlateNo())){
+ Cars car = carsMapper.selectOne(new QueryWrapper<Cars>().lambda()
+ .eq(Cars::getIsdeleted,Constants.ZERO)
+ .eq(Cars::getCode,model.getPlateNo())
+ .last("limit 1" ));
+ if(car!=null){
+ //濡傛灉鏄唴閮ㄤ汉鍛�
+ c.setMemberId(car.getMemberId());
+ }
+
+ Visits visits = visitsMapper.selectOne(new QueryWrapper<Visits>().lambda()
+ .eq(Visits::getIsdeleted,Constants.ZERO)
+ .eq(Visits::getCarNos,model.getPlateNo())
+ .last("limit 1" ));
+ if(visits!=null){
+ //濡傛灉鏄瀹�
+ c.setMemberId(visits.getMemberId());
+ }
+ }
c.setGateIndex(model.getEntranceSyscode());
c.setGateName(model.getEntranceName());
c.setIsdeleted(Constants.ZERO);
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 128d9b6..48571be 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -11,9 +11,7 @@
import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkInfoRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
-import com.doumee.core.haikang.model.param.request.event.visit.EventVisitDataRequest;
-import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest;
-import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
+import com.doumee.core.haikang.model.param.request.event.visit.*;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
import com.doumee.core.utils.DateUtil;
@@ -263,6 +261,58 @@
* @return
*/
@Override
+ public String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response){
+ log.info("銆愭捣搴疯瀹簨浠舵帹閫併��==========寮�濮�=======锛歕n"+JSONObject.toJSONString(param));
+ String result = null;
+ try {
+ if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+ return null;
+ }
+ //闂ㄧ浜嬩欢闆嗗悎
+ List<EventVisitIccmInfoRequest> events = param.getParams().getEvents();
+ List<VisitEvent> list = new ArrayList<>();
+ List<Integer> delRetentionLis = new ArrayList<>();
+ List<Retention> retentionList = new ArrayList<>();
+ for(EventVisitIccmInfoRequest request : events){
+ if(request.getData() ==null || request.getData().getVisitorInvoices() ==null){
+ continue;
+ }
+ if(request.getData().getVisitorInformationList() == null || request.getData().getVisitorInformationList().size() ==0){
+ continue;
+ }
+ //娴峰悍璁垮璁板綍缂栫爜
+ dealVisitDataByRequstIccm(request,delRetentionLis,retentionList,list);
+ }
+ if(list.size()>0){
+ //鎻掑叆闂ㄧ璁板綍
+ visitEventMapper.insertBatchSomeColumn(list);
+ }
+ if(delRetentionLis.size()>0){
+ //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級
+ retentionMapper.delete(new UpdateWrapper<Retention>().lambda()
+ .eq(Retention::getType,Constants.memberType.visitor)
+ .in(Retention::getMemberId,delRetentionLis));
+ }
+ if(retentionList.size()>0){
+ //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
+ retentionMapper.insertBatchSomeColumn(retentionList);
+ }
+ log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========鎴愬姛=======");
+ }catch (Exception e){
+
+ log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
+ }
+ saveInterfaceLog(param,"/business/hksync/push/visitIccm",result,true);
+ return null;
+
+ }
+ /**
+ * 娴峰悍璁垮浜嬩欢鎺ㄩ��
+ * @param param
+ * @param response
+ * @return
+ */
+ @Override
public String dealVisitEvent(EventVisitRequest param, HttpServletResponse response){
log.info("銆愭捣搴疯瀹簨浠舵帹閫併��==========寮�濮�=======锛歕n"+JSONObject.toJSONString(param));
String result = null;
@@ -314,6 +364,143 @@
/**
* 鏍规嵁璁垮鎺ㄩ�佽瀹㈣褰曠紪鐮侊紝澶勭悊璁垮璁板綍銆佸湪鍦轰汉鍛樼瓑淇℃伅
*/
+ private void dealVisitDataByRequstIccm(EventVisitIccmInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList,List<VisitEvent> list) {
+ EventVisitIccmInvoiceParamRequest data = request.getData().getVisitorInvoices();
+ Integer memberId = null;
+ if(request.getData().getTargetPerson().getPersonId()!=null){
+ Member m = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getHkId,request.getData().getTargetPerson().getPersonId())
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .last( "limit 1"));
+ if(m!=null){
+ memberId = m.getId();
+ }
+ }
+ for(EventVisitIccmDetailParamRequest model : request.getData().getVisitorInformationList()){
+
+ Visits updateVistis = new Visits();
+ MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper.selectAll(Visits.class);
+ queryWrapper.selectAs(Member::getType,Visits::getMemberType);
+ queryWrapper.eq(Visits::getHkId,model.getVisitorId() );
+ queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId );
+ queryWrapper.last("limit 1");
+ Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper);
+ if(visits !=null) {
+ //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
+ delRetentionLis.add(visits.getMemberId());
+ if (dataSyncConfig.getOrgUserDataOrigin() == DataSyncConfig.origin.hk) {
+ //濡傛灉鏄紛鍒╁ぇ灞忛」鐩紝涓嶅仛澶勭悊
+ return;
+ }
+ updateVistis.setId(visits.getId());
+ if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_IN.getKey()) {
+ //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
+ retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
+ //鏉ヨ鏃堕棿
+ updateVistis.setStatus(Constants.VisitIccmStatus.signin);
+ updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
+ updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
+ updateVistis.setEditDate(new Date());
+ //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭�
+ visitsMapper.updateById(updateVistis);
+ //鏇存柊鏈�鏂版潵璁挎椂闂�
+ Member member = new Member();
+ member.setLastVisitDate(updateVistis.getInDate());
+ member.setId(visits.getMemberId());
+ memberMapper.updateById(member);
+ } else if (Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_ICCM_OUT.getKey()) {
+ //濡傛灉鏄瀹㈢绂讳簨浠�
+ updateVistis.setStatus(Constants.VisitIccmStatus.signout);
+ updateVistis.setInDate(DateUtil.getISO8601DateByStr(data.getBeginTime()));
+ updateVistis.setOutDate(DateUtil.getISO8601DateByStr(data.getFinishTime()));
+ updateVistis.setOutType(Constants.ZERO);
+ updateVistis.setOutInfo("璁垮姝e父绛剧");
+ updateVistis.setEditDate(new Date());
+ //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭�
+ visitsMapper.updateById(updateVistis);
+ }else{
+ updateVistis.setStatus(visits.getStatus());
+ }
+ }else{
+ //鏂板璁垮鐧昏鏁版嵁
+ addNewVisitInfo(request,model,updateVistis.getStatus());
+ }
+ //灏佽闂ㄧ浜嬩欢淇℃伅琛ㄥ璞�
+ list.add(getVisitEventModelByRequest(request,model));
+ }
+ }
+
+ private void addNewVisitInfo(EventVisitIccmInfoRequest request, EventVisitIccmDetailParamRequest model,Integer status) {
+ try{
+ Visits c = new Visits();
+ c.setHkId(model.getVisitorId());
+ c.setCode(model.getAppointmentCode());
+ c.setName(model.getVisitorName());
+ c.setHkStatus(Constants.ONE);
+ c.setHkDate(new Date());
+ c.setIsdeleted(Constants.ZERO);
+ c.setCreateDate(c.getHkDate());
+ c.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, model.getCertNo()));
+ c.setIdcardDecode(Constants.getTuominStr(model.getCertNo()));
+ c.setIdcardType( model.getCertType());
+ c.setStarttime(DateUtil.getISO8601DateByStr2(request.getData().getVisitorInvoices().getBeginTime()));
+ c.setEndtime(DateUtil.getISO8601DateByStr2(request.getData().getVisitorInvoices().getFinishTime()));
+ c.setReason(request.getData().getVisitorInvoices().getVisitReason());
+ c.setStatus(status);
+ c.setType(Constants.ONE);
+ if(StringUtils.isNotBlank(request.getData().getTargetPerson().getPersonId())){
+ //琚闂汉
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId
+ ,request.getData().getTargetPerson().getPersonId()).last("limit 1"));
+ c.setReceptMemberId(member!=null?member.getId():null);
+ }
+ c.setCompanyName(model.getUnit());
+ c.setPhone(model.getPhone());
+ c.setCarNos(model.getPlateNo());
+ if(StringUtils.isNotBlank(model.getCertNo())){
+ //琚闂汉
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getType,Constants.ONE)
+ .eq(Member::getIdcardNo , c.getIdcardNo())
+ .last("limit 1"));
+ if(member == null){
+ member = new Member();
+ member.setName(model.getVisitorName());
+ member.setPhone(model.getPhone());
+ member.setSex(model.getSex());
+ member.setIsdeleted(Constants.ZERO);
+ member.setType(Constants.ONE);
+ member.setIdcardNo(c.getIdcardNo());
+ member.setIdcardDecode(c.getIdcardDecode());
+ member.setVisitCompanyName(model.getUnit());
+ member.setCreateDate(new Date());
+ if(StringUtils.isNotBlank(model.getFacePic())){
+ member.setImgurl(HKConstants.IMG_INDEX+model.getFacePic());
+ member.setFaceServerIndexCode(model.getFaceDeviceId());
+ }
+ memberMapper.insert(member);
+ }else{
+ member.setIsdeleted(Constants.ZERO);
+ member.setEditDate(new Date());
+ member.setName(model.getVisitorName());
+ member.setPhone(model.getPhone());
+ member.setSex(model.getSex());
+ member.setVisitCompanyName(model.getUnit());
+ if(StringUtils.isNotBlank(model.getFacePic())){
+ member.setImgurl(HKConstants.IMG_INDEX+model.getFacePic());
+ member.setFaceServerIndexCode(model.getFaceDeviceId());
+ }
+ memberMapper.updateById(member);
+ }
+ c.setMemberId(member.getId());
+ visitsMapper.insert(c);
+ }
+ }catch (Exception e){
+ log.error("====================璁垮鎺ㄩ�佹柊澧炶瀹㈣褰曞け璐�:"+e.getMessage());
+ }
+ }
+
private void dealVisitDataByRequst(EventVisitInfoRequest request, List<Integer> delRetentionLis, List<Retention> retentionList) {
EventVisitDataRequest model = request.getData();
MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>();
@@ -334,7 +521,7 @@
updateVistis.setId(visits.getId());
if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.VISIT_SIGN_IN.getKey()){
//濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰�
- retentionList.add(getRetentionModelByVisitRequest(visits,request));
+ retentionList.add(getRetentionModelByVisitRequest(visits, request.getHappenTime(),request.getSrcType()));
//鏉ヨ鏃堕棿
updateVistis.setStatus(Constants.VisitStatus.signin);
updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime()));
@@ -358,6 +545,49 @@
}
}
+ private VisitEvent getVisitEventModelByRequest(EventVisitIccmInfoRequest request,EventVisitIccmDetailParamRequest detail) {
+ if(request.getData().getTargetPerson() ==null){
+ request.getData().setTargetPerson(new EventVisitIccmTargetParamRequest());
+ }
+ VisitEvent event = new VisitEvent();
+ event.setIsdeleted(Constants.ZERO);
+ event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+ event.setVisitorWorkUint(detail.getUnit());
+ event.setVisitorId(detail.getVisitorId());
+ event.setVisitorCode(detail.getAppointmentCode());
+ event.setTimeout(request.getTimeout());
+ event.setSvrIndexCode(request.getSrcIndex());
+ event.setHappenTime(request.getHappenTime());
+ event.setStatus(request.getStatus());
+ event.setEndTime(request.getData().getVisitorInvoices().getFinishTime());
+ event.setStartTime(request.getData().getVisitorInvoices().getBeginTime());
+ event.setSrcType(request.getSrcType());
+ event.setSrcParentIndex(request.getSrcParentIndex());
+ event.setSrcName(request.getSrcName());
+ event.setSrcIndex(request.getSrcIndex());
+ event.setSex(detail.getSex());
+ event.setPurpose(request.getData().getVisitorInvoices().getVisitReason());
+ event.setPhone(detail.getPhone());
+ event.setBeVisitedPersonId(request.getData().getVisitorInvoices().getVisitTargetId());
+ event.setBeVisitedPersonName(request.getData().getTargetPerson().getName());
+ event.setBeVisitedPersonOrg(request.getData().getTargetPerson().getOrgPathName());
+ event.setBeVisitedPersonOrgId(request.getData().getTargetPerson().getName());
+ event.setPhotoUrl(getHkImgUrl(detail.getFacePic()));
+ event.setPersonName(detail.getVisitorName());
+ event.setCarNo(detail.getPlateNo());
+
+ event.setIdType(detail.getCertType());
+ String idnum = detail.getCertNo();
+ if(StringUtils.isNotBlank(idnum)){
+ //韬唤璇佸彿瀛樺偍瀵嗘枃
+ event.setIdNo(DESUtil.encrypt(Constants.EDS_PWD,idnum));//韬唤璇佸彿鍔犲瘑
+ //鑴辨晱鎵嬫満鍙锋樉绀簄
+ event.setIdcardDecode(Constants.getTuominStr(idnum));
+ }
+ event.setEventType(request.getEventType());
+ event.setEventId(request.getEventId());
+ return event;
+ }
private VisitEvent getVisitEventModelByRequest(EventVisitInfoRequest request) {
VisitEvent event = new VisitEvent();
event.setIsdeleted(Constants.ZERO);
@@ -408,10 +638,10 @@
return event;
}
- private Retention getRetentionModelByVisitRequest(Visits visits, EventVisitInfoRequest request) {
+ private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) {
Retention retention = new Retention();
retention.setIsdeleted(Constants.ZERO);
- retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
+ retention.setCreateDate(DateUtil.getISO8601DateByStr(happentTime));
retention.setClasses(visits.getClasses());
retention.setCode(visits.getCode());
retention.setIdcardNo(visits.getIdcardNo());
@@ -421,7 +651,7 @@
retention.setType(visits.getMemberType());
retention.setCompanyId(visits.getCompanyId());
retention.setCompanyName(visits.getCompanyName());
- retention.setEventCode(request.getSrcType()+"");
+ retention.setEventCode(srcType);
retention.setEventDate(retention.getCreateDate());
retention.setFaceImg(visits.getFaceImg());
retention.setImgurl(visits.getImgurl());
@@ -473,7 +703,7 @@
//鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳
retentionMapper.insertBatchSomeColumn(retentionList);
}
- log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
+ log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
}catch (Exception e){
log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========澶辫触=======锛歕n"+e.getMessage());
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index 8a287bf..5bdeaf0 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.config.DataSyncConfig;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
@@ -13,25 +14,22 @@
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest;
import com.doumee.core.haikang.model.param.respose.*;
import com.doumee.core.haikang.service.HKService;
-import com.doumee.core.utils.Constants;
-import com.doumee.core.utils.DESUtil;
-import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.ImageBase64Util;
+import com.doumee.core.utils.*;
import com.doumee.core.wx.wxPlat.WxPlatNotice;
import com.doumee.dao.business.DeviceRoleMapper;
import com.doumee.dao.business.RetentionMapper;
+import com.doumee.dao.business.VisitEventMapper;
import com.doumee.dao.business.join.VisitsJoinMapper;
-import com.doumee.dao.business.model.DeviceRole;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Retention;
-import com.doumee.dao.business.model.Visits;
+import com.doumee.dao.business.model.*;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
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.*;
+import java.util.Date;
/**
* 娴峰悍璁垮涓氬姟Service瀹炵幇
@@ -41,8 +39,13 @@
@Service
@Slf4j
public class HkSyncVisitServiceImpl extends HkSyncBaseServiceImpl {
+
+ @Autowired
+ private DataSyncConfig dataSyncConfig;
@Autowired
private VisitsJoinMapper visitsMapper;
+ @Autowired
+ private VisitEventMapper visitEventMapper;
@Autowired
private RetentionMapper retentionMapper;
@Autowired
@@ -498,6 +501,107 @@
List<Visits> list = visitsMapper.selectJoinList(Visits.class,queryWrapper);
return list;
}
+ @Override
+ @Transactional
+ public void syncParkRecords(Date date){
+ try {
+ if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
+ }
+ AppointmentEventListRequest param = new AppointmentEventListRequest();
+ //锛堝叏閲忓悓姝ワ級
+ boolean hasNext = true;
+ int curTotal = 0;
+ int curPage = 1;
+ //鏌ヨ浠婂ぉ鐨�
+ Date start = Utils.Date.getStart(date);
+ Date end = new Date();
+ if(DateUtil.daysBetweenDates(end,start) >1){
+ end = Utils.Date.getEnd(date);
+ }
+ param.setEventTimeBegin(DateUtil.getISO8601Timestamp2( start));
+ param.setEventTimeBegin(DateUtil.getISO8601Timestamp2( end));
+ List<VisitEvent> allHkList = new ArrayList<>();
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<AppointmentEventInfoResponse>> response = HKService.appointmentEventQuery(param);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }
+ if(response.getData() == null || response.getData().getTotal() ==0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+ }
+ BaseListPageResponse<AppointmentEventInfoResponse> r = response.getData();
+ curTotal += 100;
+ if(curTotal >= r.getTotal()){
+ hasNext = false;
+ }
+ if(r.getList() == null || r.getList().size()==0){
+ hasNext =false;
+ }else{
+ allHkList.addAll(getNewCarEventModelBYList(r.getList()));
+ }
+ curPage++;
+ }
+ if(allHkList .size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+ }
+ //娓呯┖鍘熸湁褰撳ぉ鐨勬暟鎹�
+ visitEventMapper.delete(new UpdateWrapper<VisitEvent>().lambda()
+ .ge(VisitEvent::getCreateDate,start)
+ .le(VisitEvent::getCreateDate,end));
+ if(allHkList.size()>0){
+ int sublistSize = 500;
+
+ int startIndex = 0;
+ int endIndex = sublistSize;
+
+ while (startIndex < allHkList.size()) {
+ if (endIndex > allHkList.size()) {
+ endIndex = allHkList.size();
+ }
+
+ List<VisitEvent> sublist = allHkList.subList(startIndex, endIndex);
+ if(sublist.size()>0){
+ visitEventMapper.insertBatchSomeColumn(sublist);//鎻掑叆鏂版暟鎹�
+ }
+ startIndex = endIndex;
+ endIndex += sublistSize;
+ }
+ }
+
+ }catch (BusinessException e){
+ throw e;
+ }
+ }
+
+ private List<VisitEvent> getNewCarEventModelBYList(List<AppointmentEventInfoResponse> list ) {
+ List<VisitEvent> newList = new ArrayList<>();
+ if(list == null || list.size()==0){
+ return newList;
+ }
+ for(AppointmentEventInfoResponse model :list){
+ VisitEvent c = new VisitEvent();
+ c.setHappenTime(model.getEventTime());
+ c.setCreateDate(DateUtil.getISO8601DateByStr2(model.getEventTime()));
+ c.setPersonName(model.getVisitorName());
+ c.setSex(Integer.parseInt(model.getVisitorSex()));
+ c.setCarNo(model.getCarNumber());
+ c.setIdNo(model.getIdentityNum());
+ c.setIdType(Integer.parseInt(model.getIdentityId()));
+ c.setPhone(model.getPhoneNum());
+ c.setRemark(model.getCardNum());
+ c.setPhotoUrl(model.getIdentityPhotoUri());
+ c.setVisitorId(model.getVisitorId());
+ c.setIsdeleted(Constants.ZERO);
+ c.setEventTypeName(model.getEventName());
+
+ newList.add(c);
+ }
+ return newList;
+ }
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
index 4f8ce59..14a4c4d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVehicleFromHKServiceImpl.java
@@ -21,6 +21,7 @@
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
+import com.doumee.dao.business.model.CarEvent;
import com.doumee.dao.business.model.Cars;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Visits;
@@ -49,6 +50,8 @@
private MemberMapper memberMapper;
@Autowired
private ParksMapper parksMapper;
+ @Autowired
+ private CarEventMapper carEventMapper;
@Autowired
private CarsMapper carsMapper;
@Autowired
@@ -176,6 +179,13 @@
//琚闂汉
Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,model.getPersonId()).last("limit 1"));
c.setMemberId(member!=null?member.getId():null);
+ if(member!=null){
+ carEventMapper.update(null,new UpdateWrapper<CarEvent>().lambda()
+ .set(CarEvent::getMemberId,member.getId())
+ .eq(CarEvent::getPlateNos,c.getCode())
+ .apply("member_id is null or member_id=''")
+ );
+ }
}
Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>().lambda().eq(Cars::getHkId,model.getVehicleId()).last("limit 1"));
if(cars!=null){
@@ -212,11 +222,17 @@
//琚闂汉
Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,model.getPersonId()).last("limit 1"));
c.setMemberId(member!=null?member.getId():null);
+ if(member!=null){
+ carEventMapper.update(null,new UpdateWrapper<CarEvent>().lambda()
+ .set(CarEvent::getMemberId,member.getId())
+ .eq(CarEvent::getPlateNos,c.getCode())
+ .apply("member_id is null or member_id=''")
+ );
+ }
}
newList.add(c);
}
return newList;
}
-
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
index d92e58f..f5150c9 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java
@@ -10,7 +10,9 @@
import com.doumee.core.haikang.model.param.BaseListPageResponse;
import com.doumee.core.haikang.model.param.BaseResponse;
import com.doumee.core.haikang.model.param.request.AppointmentListRequest;
+import com.doumee.core.haikang.model.param.respose.AppointmentIccmInfoResponse;
import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
+import com.doumee.core.haikang.model.param.respose.AppointmentVisitorInfoResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DESUtil;
@@ -52,6 +54,64 @@
private SystemDictDataBiz systemDictDataBiz;
+ /**
+ * 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁�
+ */
+ @Override
+ @Transactional
+ public void syncVistAppointDataIccm(Date date){
+ try {
+ if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
+ }
+ AppointmentListRequest param = new AppointmentListRequest();
+ //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級
+ boolean hasNext = true;
+ int curTotal = 0;
+ int curPage = 1;
+ //鏌ヨ浠婂ぉ鐨�
+ Date start =Utils.Date.getStart(date);
+ Date end = Utils.Date.getEnd(new Date());
+ param.setVisitStartTimeBegin(DateUtil.getISO8601Timestamp2( start));
+ param.setVisitStartTimeEnd(DateUtil.getISO8601Timestamp2( end));
+
+ List<Visits> allHkList = new ArrayList<>();
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<AppointmentIccmInfoResponse>> response = HKService.appointmentRecordsIccm(param);
+ if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) ){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~");
+ }
+ if(response.getData() == null || response.getData().getTotal() ==0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+ }
+ BaseListPageResponse<AppointmentIccmInfoResponse> r = response.getData();
+ curTotal += 100;
+ if(curTotal >= r.getTotal()){
+ hasNext = false;
+ }
+ if(r.getList() == null || r.getList().size()==0){
+ hasNext =false;
+ }else{
+ allHkList.addAll(getNewVisitModelBYListIccm(r.getList()));
+ }
+ curPage++;
+ }
+ if(allHkList .size() == 0){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+ }
+ //娓呯┖鍘熸湁褰撳ぉ鐨勬暟鎹�
+ visitsMapper.delete(new UpdateWrapper<Visits>().lambda()
+ .ge(Visits::getStarttime,start)
+ .eq(Visits::getType,Constants.ONE)
+ .le(Visits::getStarttime,end));
+ visitsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹�
+ }catch (BusinessException e){
+ throw e;
+ }
+ }
/**
* 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁�
*/
@@ -114,6 +174,84 @@
}
}
+ private List<Visits> getNewVisitModelBYListIccm(List<AppointmentIccmInfoResponse> list ) {
+ List<Visits> newList = new ArrayList<>();
+ if(list == null || list.size()==0){
+ return newList;
+ }
+ for(AppointmentIccmInfoResponse data :list){
+ if(data.getVisitorList()==null || data.getVisitorList().size() ==0){
+ continue;
+ }
+ for(AppointmentVisitorInfoResponse model : data.getVisitorList()){
+ Visits c = new Visits();
+ c.setHkId(model.getVisitorId());
+ c.setCode(model.getQrCode());
+ c.setName(model.getVisitorName());
+ c.setHkStatus(Constants.ONE);
+ c.setHkDate(new Date());
+ c.setIsdeleted(Constants.ZERO);
+ c.setCreateDate(c.getHkDate());
+ c.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, model.getCertificateNo()));
+ c.setIdcardDecode(Constants.getTuominStr(model.getCertificateNo()));
+ c.setIdcardType(Integer.parseInt(model.getCertificateType()));
+ c.setStarttime(DateUtil.getISO8601DateByStr2(data.getVisitStartTime()));
+ c.setEndtime(DateUtil.getISO8601DateByStr2(data.getVisitEndTime()));
+ c.setReason(data.getVisitPurpose());
+ c.setStatus(model.getVisitorStatus());
+ c.setType(Constants.ONE);
+ if(StringUtils.isNotBlank(data.getReceptionistId())){
+ //琚闂汉
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,data.getReceptionistId()).last("limit 1"));
+ c.setReceptMemberId(member!=null?member.getId():null);
+ }
+ c.setCompanyName(model.getVisitorWorkUnit());
+ c.setPhone(model.getPhoneNo());
+ c.setCarNos(model.getPlateNo());
+ if(StringUtils.isNotBlank(model.getCertificateNo())){
+ //琚闂汉
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getType,Constants.ONE)
+ .eq(Member::getIdcardNo , c.getIdcardNo())
+ .last("limit 1"));
+ if(member == null){
+ member = new Member();
+ member.setName(model.getVisitorName());
+ member.setPhone(model.getPhoneNo());
+ member.setSex(model.getGender());
+ member.setIsdeleted(Constants.ZERO);
+ member.setType(Constants.ONE);
+ member.setIdcardNo(c.getIdcardNo());
+ member.setIdcardDecode(c.getIdcardDecode());
+ member.setVisitCompanyName(model.getVisitorWorkUnit());
+ member.setCreateDate(new Date());
+ if(StringUtils.isNotBlank(model.getPicUri())){
+ member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri());
+ member.setFaceServerIndexCode(model.getSvrIndexCode());
+ }
+ memberMapper.insert(member);
+ }else{
+ member.setIsdeleted(Constants.ZERO);
+ member.setEditDate(new Date());
+ member.setName(model.getVisitorName());
+ member.setPhone(model.getPhoneNo());
+ member.setSex(model.getGender());
+ member.setVisitCompanyName(model.getVisitorWorkUnit());
+ if(StringUtils.isNotBlank(model.getPicUri())){
+ member.setFaceServerIndexCode(model.getSvrIndexCode());
+ member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri());
+ }
+ memberMapper.updateById(member);
+ }
+ c.setMemberId(member.getId());
+
+ }
+ newList.add(c);
+ }
+
+ }
+ return newList;
+ }
private List<Visits> getNewVisitModelBYList(List<AppointmentInfoResponse> list ) {
List<Visits> newList = new ArrayList<>();
if(list == null || list.size()==0){
@@ -183,4 +321,5 @@
}
+
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemLoginService.java b/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemLoginService.java
index 07d70b8..dbad804 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemLoginService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemLoginService.java
@@ -2,6 +2,7 @@
import com.doumee.dao.system.dto.LoginDTO;
+import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
/**
@@ -16,5 +17,6 @@
* @author Eva.Caesar Liu
* @date 2023/03/21 14:49
*/
+
String loginByPassword (LoginDTO dto, HttpServletRequest request);
}
diff --git a/server/dmvisit_service/src/main/resources/application-proYL.yml b/server/dmvisit_service/src/main/resources/application-proYL.yml
new file mode 100644
index 0000000..9c94e0d
--- /dev/null
+++ b/server/dmvisit_service/src/main/resources/application-proYL.yml
@@ -0,0 +1,80 @@
+spring:
+ # 鏁版嵁婧愰厤缃�
+ datasource:
+ url: jdbc:mysql://127.0.0.1:3306/visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: test1
+ password: Doumee@168
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ type: com.alibaba.druid.pool.DruidDataSource
+ redis:
+ # database: 0
+ host: 127.0.0.1
+ port: 6379
+ password:
+ timeout: 5000 # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
+ jackson:
+ time-zone: GMT+8
+ date-format: yyyy-MM-dd HH:mm:ss
+
+#rocketmq:
+# namesrvAddr: rmq-cn-pe335rcnn06.cn-shanghai.rmq.aliyuncs.com:8080
+# groupId: GID-wakatest
+# topic: waka-test
+# username: 4derRb4Sw5EkqUMI
+# password: v50N97wf4av8Q8I4
+
+knife4j:
+ enable: true
+ basic:
+ enable: true
+ username: admin
+ password: 111111
+
+debug_model: false
+########################鍚屾鏁版嵁妯″紡 ########################
+data-sync:
+ org-user-data-origin: 2 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
+ visitor-data-origin: 2 #璁垮鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
+ need-deal-img: false #鏄惁闇�瑕佸鐞嗗浘鐗囨暟鎹�
+
+# Swagger閰嶇疆
+swagger:
+ host: 127.0.0.1
+ title: ${project.name}鎺ュ彛鏂囨。
+ description: ${project.name}鎺ュ彛鏂囨。
+ enabled: true
+ context-path:
+ # 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
+ redirect-uri: /
+
+########################寰俊鏀粯鐩稿叧閰嶇疆########################
+wx:
+ pay:
+ appId: wxfab6da18632e28de
+ appSecret: 4ee3b22afa90287834319fc3c1635271
+ mchId: 1229817002
+ mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
+ notifyUrl: https://dmtest.ahapp.net/smartmeeting_interface/web/api/wxPayNotify
+ keyPath: /usr/local/apiclient_cert.p12
+
+tencent:
+ map:
+ remoteHost: https://apis.map.qq.com
+ appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
+
+
+des_pwd: 123456SDFKDJF
+
+## MQTT##
+mqtt:
+ host: tcp://192.168.10.198:1883
+ userName: root
+ passWord: 123456
+ qos: 1
+ clientId: ClientId_local #ClientId_local蹇呴』鍞竴 姣斿浣犲凡缁忓畾浜嗗彨ABC 閭d綘灏变竴鐩村彨ABC 鍏朵粬鍦版柟灏变笉瑕佷娇鐢ˋBC浜�
+ timeout: 10
+ keepalive: 20
+ topic1: A/pick/warn/# #绗﹀彿鏄唬琛ㄦ暣涓獁arn涓嬮潰鐨勫叏閮ㄥ瓙涓婚 娌℃湁鐞嗚В鐨勮瘽 鍙互鐧惧害浠旂粏鐞嗚В涓�涓�
+ topic2: A/cmd/resp
+ topic3: ABCF
+ topic4: ABCH
diff --git a/server/dmvisit_service/src/main/resources/application-testYL.yml b/server/dmvisit_service/src/main/resources/application-testYL.yml
index 4324462..9c94e0d 100644
--- a/server/dmvisit_service/src/main/resources/application-testYL.yml
+++ b/server/dmvisit_service/src/main/resources/application-testYL.yml
@@ -1,9 +1,9 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/dm_visit_yl?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
- username: doumee
- password: rtjgfEr@&0c0m
+ url: jdbc:mysql://127.0.0.1:3306/visit?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+ username: test1
+ password: Doumee@168
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
redis:
@@ -30,7 +30,7 @@
username: admin
password: 111111
-debug_model: true
+debug_model: false
########################鍚屾鏁版嵁妯″紡 ########################
data-sync:
org-user-data-origin: 2 #缁勭粐鏁版嵁 0鑷缓 2浠ユ捣搴蜂负涓� 1鍗庢櫉ERP绯荤粺
diff --git a/server/dmvisit_web/src/main/resources/logback-spring.xml b/server/dmvisit_web/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..d79c185
--- /dev/null
+++ b/server/dmvisit_web/src/main/resources/logback-spring.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <pattern>%highlight(%date{yyyy-MM-dd HH:mm:ss}) | %highlight(%-5level) | %highlight(%thread) | %highlight(%logger) | %msg%n</pattern>
+ </layout>
+ </appender>
+ <property name="log.path" value="/usr/local/jars/log/web"></property>
+ <property name="log.fileSize" value="100MB"></property>
+ <property name="log.historyDays" value="7"></property>
+
+ <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>ERROR</level>
+ <!--鍖归厤灏辫垗鍘�-->
+ <onMatch>DENY</onMatch>
+ <onMismatch>ACCEPT</onMismatch>
+ </filter>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+ </encoder>
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--璺緞-->
+ <fileNamePattern>${log.path}/info.%d.%i.log</fileNamePattern>
+ <maxFileSize>${log.fileSize}</maxFileSize>
+ <maxHistory>${log.historyDays}</maxHistory>
+ <totalSizeCap>1GB</totalSizeCap>
+ </rollingPolicy>
+ </appender>
+
+ <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>ERROR</level>
+ </filter>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+ </encoder>
+ <!--婊氬姩绛栫暐-->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--璺緞-->
+ <fileNamePattern>${log.path}/error.%d.%i.log</fileNamePattern>
+ <maxFileSize>${log.fileSize}</maxFileSize>
+ <maxHistory>${log.historyDays}</maxHistory>
+ <totalSizeCap>1GB</totalSizeCap>
+ </rollingPolicy>
+ </appender>
+ <!-- 寮傛鍐欏叆鏃ュ織 -->
+ <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
+ <!-- 涓嶄涪澶辨棩蹇�.榛樿鐨�,濡傛灉闃熷垪鐨�80%宸叉弧,鍒欎細涓㈠純TRACT銆丏EBUG銆両NFO绾у埆鐨勬棩蹇� -->
+ <discardingThreshold >0</discardingThreshold>
+ <!-- 鏇存敼榛樿鐨勯槦鍒楃殑娣卞害,璇ュ�间細褰卞搷鎬ц兘.榛樿鍊间负256 -->
+ <queueSize>512</queueSize>
+ <!-- 娣诲姞闄勫姞鐨刟ppender,鏈�澶氬彧鑳芥坊鍔犱竴涓� -->
+ <appender-ref ref ="fileInfoLog"/>
+ </appender>
+ <root level="info">
+ <appender-ref ref="consoleLog"/>
+ <appender-ref ref="fileInfoLog"/>
+ <appender-ref ref="fileErrorLog"/>
+ </root>
+</configuration>
\ No newline at end of file
diff --git a/server/openapi/src/main/resources/logback-spring.xml b/server/openapi/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..63d508b
--- /dev/null
+++ b/server/openapi/src/main/resources/logback-spring.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <pattern>%highlight(%date{yyyy-MM-dd HH:mm:ss}) | %highlight(%-5level) | %highlight(%thread) | %highlight(%logger) | %msg%n</pattern>
+ </layout>
+ </appender>
+ <property name="log.path" value="/usr/local/jars/log/erp"></property>
+ <property name="log.fileSize" value="100MB"></property>
+ <property name="log.historyDays" value="7"></property>
+
+ <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>ERROR</level>
+ <!--鍖归厤灏辫垗鍘�-->
+ <onMatch>DENY</onMatch>
+ <onMismatch>ACCEPT</onMismatch>
+ </filter>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+ </encoder>
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--璺緞-->
+ <fileNamePattern>${log.path}/info.%d.%i.log</fileNamePattern>
+ <maxFileSize>${log.fileSize}</maxFileSize>
+ <maxHistory>${log.historyDays}</maxHistory>
+ <totalSizeCap>1GB</totalSizeCap>
+ </rollingPolicy>
+ </appender>
+
+ <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>ERROR</level>
+ </filter>
+ <encoder>
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+ </encoder>
+ <!--婊氬姩绛栫暐-->
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <!--璺緞-->
+ <fileNamePattern>${log.path}/error.%d.%i.log</fileNamePattern>
+ <maxFileSize>${log.fileSize}</maxFileSize>
+ <maxHistory>${log.historyDays}</maxHistory>
+ <totalSizeCap>1GB</totalSizeCap>
+ </rollingPolicy>
+ </appender>
+ <!-- 寮傛鍐欏叆鏃ュ織 -->
+ <appender name ="ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
+ <!-- 涓嶄涪澶辨棩蹇�.榛樿鐨�,濡傛灉闃熷垪鐨�80%宸叉弧,鍒欎細涓㈠純TRACT銆丏EBUG銆両NFO绾у埆鐨勬棩蹇� -->
+ <discardingThreshold >0</discardingThreshold>
+ <!-- 鏇存敼榛樿鐨勯槦鍒楃殑娣卞害,璇ュ�间細褰卞搷鎬ц兘.榛樿鍊间负256 -->
+ <queueSize>512</queueSize>
+ <!-- 娣诲姞闄勫姞鐨刟ppender,鏈�澶氬彧鑳芥坊鍔犱竴涓� -->
+ <appender-ref ref ="fileInfoLog"/>
+ </appender>
+ <root level="info">
+ <appender-ref ref="consoleLog"/>
+ <appender-ref ref="fileInfoLog"/>
+ <appender-ref ref="fileErrorLog"/>
+ </root>
+</configuration>
\ No newline at end of file
diff --git a/server/pom.xml b/server/pom.xml
index c46240c..8eeb1ee 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -17,6 +17,7 @@
<module>openapi</module>
<module>admin_timer</module>
<module>admin_sys_timer</module>
+ <module>dmvisit_screen</module>
</modules>
--
Gitblit v1.9.3