From 1b5578be64dbd09144a1d102096cf04f85f728a9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 29 二月 2024 18:33:46 +0800
Subject: [PATCH] 整理
---
admin/src/views/business/carEvent.vue | 8
admin/src/components/business/OperaCarEventHkWindow.vue | 173 +++++++++++++++++++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java | 18 ++
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java | 2
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkCrossRecordInfoResponse.java | 37 ++++
server/dmvisit_service/src/main/resources/application-testYL.yml | 3
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java | 11 +
server/dmvisit_admin/src/main/resources/application.yml | 2
server/dmvisit_screen/src/main/java/com/doumee/service/impl/ScreenServiceImpl.java | 42 +++-
server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java | 1
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java | 4
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkCrossRecordListRequest.java | 13 +
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java | 11 +
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java | 140 +++++++++++++++
server/dmvisit_admin/src/main/java/com/doumee/api/business/CarEventController.java | 13 +
admin/src/api/business/carEvent.js | 4
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java | 4
17 files changed, 462 insertions(+), 24 deletions(-)
diff --git a/admin/src/api/business/carEvent.js b/admin/src/api/business/carEvent.js
index 60df117..f3959bd 100644
--- a/admin/src/api/business/carEvent.js
+++ b/admin/src/api/business/carEvent.js
@@ -14,3 +14,7 @@
download: true
})
}
+
+export function syncByDate (data) {
+ return request.post('/business/carEvent/syncByDate', data)
+}
diff --git a/admin/src/components/business/OperaCarEventHkWindow.vue b/admin/src/components/business/OperaCarEventHkWindow.vue
new file mode 100644
index 0000000..d42bf43
--- /dev/null
+++ b/admin/src/components/business/OperaCarEventHkWindow.vue
@@ -0,0 +1,173 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="500px"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules" >
+ <el-form-item label="鍚屾鏃ユ湡" prop="createDate">
+ <el-date-picker
+ v-model="form.createDate"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:ss:mm"
+ type="date">
+ </el-date-picker>
+ </el-form-item>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { syncByDate } from '@/api/business/carEvent'
+export default {
+ name: 'OperaVisitsHkWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ form:{createDate: null},
+ rules: {
+ createDate: [
+ { required: true, message: '璇烽�夋嫨鏃ユ湡', trigger: 'blur' }
+ ]
+ }
+ }
+ },
+ methods: {
+ open(title){
+ this.visible=true
+ this.title=title
+ },
+ // 鍚屾淇℃伅
+ confirm () {
+
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ syncByDate({
+ createDate: this.form.createDate
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鍚屾鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ }
+ }
+}
+</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/views/business/carEvent.vue b/admin/src/views/business/carEvent.vue
index c925a69..baf8d1e 100644
--- a/admin/src/views/business/carEvent.vue
+++ b/admin/src/views/business/carEvent.vue
@@ -51,7 +51,8 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:carevent:exportExcel']">
- <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:carevent:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
+ <li><el-button type="primary" v-permissions="['business:carevent:sync']" @click="$refs.OperaCarEventHkWindow.open('鍚屾杩囪溅璁板綍')">鍚屾</el-button></li>
+ <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:carevent:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
@@ -108,6 +109,8 @@
:pagination="tableData.pagination"
>
</pagination>
+
+ <OperaCarEventHkWindow ref="OperaCarEventHkWindow" @success="search()" />
</template>
</TableLayout>
</template>
@@ -116,11 +119,12 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
+import OperaCarEventHkWindow from '@/components/business/OperaCarEventHkWindow'
import { timeForMat } from '@/utils/util'
export default {
name: 'CarEvent',
extends: BaseTable,
- components: { TableLayout, Pagination },
+ components: { TableLayout, Pagination ,OperaCarEventHkWindow},
data () {
return {
// 鎼滅储
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarEventController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarEventController.java
index 717c587..19e8665 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarEventController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarEventController.java
@@ -10,12 +10,14 @@
import com.doumee.dao.business.model.CarEvent;
import com.doumee.dao.system.vo.CarEventVo;
import com.doumee.service.business.CarEventService;
+import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import javax.swing.event.CaretEvent;
import java.util.ArrayList;
import java.util.List;
@@ -28,6 +30,9 @@
@RestController
@RequestMapping("/business/carEvent")
public class CarEventController extends BaseController {
+
+ @Autowired
+ private HkSyncParkServiceImpl hkSyncParkService;
@Autowired
private CarEventService carEventService;
@@ -83,7 +88,13 @@
// ExcelExporter.build(CarEventVo.class).exportWithFirstAndEnd (carEventService.findPageExcel(pageWrap),"鍋滆溅鍦轰簨浠舵帹閫佽褰曡〃", null, "鍋滆溅鍦轰簨浠舵帹閫佽褰曞鍑烘姤琛�",null , response);
ExcelExporter.build(CarEventDTO.class).export(carEventService.findVisitCarPage(pageWrap).getRecords(), "鍋滆溅鍦轰簨浠舵帹閫佽褰曡〃", response);
}
-
+ @ApiOperation("鏍规嵁鏃ユ湡(starttime)鍚屾杩囪溅鏁版嵁")
+ @PostMapping("/syncByDate")
+ @RequiresPermissions("business:carevent:sync")
+ public ApiResponse syncByDate(@RequestBody CarEvent param) {
+ hkSyncParkService.syncParkRecords(param.getCreateDate());
+ return ApiResponse.success(null);
+ }
@ApiOperation("鏍规嵁ID鏌ヨ")
@GetMapping("/{id}")
@RequiresPermissions("business:carevent:query")
diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index 2153ee8..f31fd8b 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: doumeemes
profiles:
- active: testHS
+ active: devYL
# JSON杩斿洖閰嶇疆
jackson:
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 b42f62c..590c909 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
@@ -38,13 +38,13 @@
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(create_date)=TO_DAYS(now()) and status not in(5,6,8)) as applyPassNum");
- queryWrapper.select("(select count(1) from visits where TO_DAYS(create_date)=TO_DAYS(now()) and status in (5)) as visitInNum");
- queryWrapper.select("(select count(1) from visits where TO_DAYS(create_date)=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(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 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(create_date)=TO_DAYS(now())" );
+ 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());//浠婃棩璁垮鎬绘暟
@@ -56,7 +56,7 @@
wrapper.last("limit 1");
CountDataResponse cModel =carEventMapper.selectJoinOne(CountDataResponse.class,wrapper);
vModel.setMemberCarNum(vModel.getMemberCarNum());//浠婃棩鍛樺伐杞﹁締杩涘満鏁�
- vModel.setMemberCarNum(vModel.getCarInNum() - vModel.getMemberCarNum());//浠婃棩棰勭害杞﹁締杩涘満鏁�
+ vModel.setVisitCarNum(vModel.getCarInNum() - vModel.getMemberCarNum());//浠婃棩棰勭害杞﹁締杩涘満鏁�
return vModel;
}
@@ -99,7 +99,7 @@
wrapper.selectAll(VisitEvent.class) ;
wrapper.apply("TO_DAYS(create_date)=TO_DAYS(now())" );
wrapper.last("limit 50");
- wrapper.orderByDesc(VisitEvent::getCreateDate);
+ wrapper.orderByDesc(VisitEvent::getStartTime);
List<VisitEvent> result =visitEventMapper.selectList( wrapper);
if(result!=null){
for(VisitEvent event :result){
@@ -202,7 +202,7 @@
MPJLambdaWrapper<CarEvent> wrapper = new MPJLambdaWrapper<>();
wrapper.select("count(id) as num, create_date");
wrapper.apply("TO_DAYS(create_date)+"+days+" >= TO_DAYS(now()) " );
- wrapper.eq(CarEvent::getEventType, HKConstants.EventTypes.PARK_LINE_IN.getKey());
+ wrapper.in(CarEvent::getEventType, HKConstants.EventTypes.PARK_PASS_IN.getKey(), HKConstants.EventTypes.PARK_PASS_OUT.getKey());
wrapper.groupBy("TO_DAYS(create_date)");
wrapper.orderByDesc(CarEvent::getCreateDate);
List<CarEvent> result =carEventMapper.selectJoinList(CarEvent.class,wrapper);
@@ -210,12 +210,22 @@
}
private List<VisitEvent> getVisitEventListByDays(int days) {
MPJLambdaWrapper<VisitEvent> wrapper = new MPJLambdaWrapper<>();
- wrapper.select("count(id) as num, create_date");
- wrapper.apply("TO_DAYS(create_date)+"+days+" >= TO_DAYS(now()) " );
+ wrapper.select("count(id) as num, starttime");
+ wrapper.apply("TO_DAYS(starttime)+"+days+" >= TO_DAYS(now()) " );
wrapper.eq(VisitEvent::getEventType, HKConstants.EventTypes.VISIT_SIGN_IN.getKey());
- wrapper.groupBy("TO_DAYS(create_date)");
+ wrapper.groupBy("TO_DAYS(starttime)");
wrapper.orderByDesc(CarEvent::getCreateDate);
List<VisitEvent> result =visitEventMapper.selectJoinList(VisitEvent.class,wrapper);
+ return result;
+ }
+ private List<Visits> getVisitListByDays(int days) {
+ 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.groupBy("TO_DAYS(starttime)");
+ wrapper.orderByDesc(CarEvent::getCreateDate);
+ List<Visits> result =visitsMapper.selectJoinList(Visits.class,wrapper);
return result;
}
@Override
@@ -254,9 +264,17 @@
}
return 0;
}
- private Integer getVisistNumByDate(String s, List<VisitEvent> result) {
+ private Integer getVisistEventNumByDate(String s, List<VisitEvent> result) {
for(VisitEvent event:result){
if(StringUtils.equals(s,DateUtil.formatDate(event.getCreateDate(),"MM.dd"))){
+ return event.getNum();
+ }
+ }
+ return 0;
+ }
+ private Integer getVisistNumByDate(String s, List<Visits> result) {
+ for(Visits event:result){
+ if(StringUtils.equals(s,DateUtil.formatDate(event.getStarttime(),"MM.dd"))){
return event.getNum();
}
}
@@ -287,7 +305,7 @@
times.add(DateUtil.formatDate(DateUtil.dateDayAdd(new Date(), -(days-i)+1),"MM.dd"));
numList.add(0);
}
- List<VisitEvent> result = getVisitEventListByDays(days);
+ List<Visits> result = getVisitListByDays(days);
if(result!=null&& result.size()>0){
for (int i = 0; i < days; i++) {
numList.set(i,getVisistNumByDate(times.get(i),result));
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 44bdb2d..fc17cc3 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
@@ -28,7 +28,7 @@
public interface InterfacePath{
// String doorEvents = "/api/acs/v2/door/events";//闂ㄧ浜嬩欢鏌ヨ
// String visitEvents = "/api/visitor/v1/event/turnover/search";//璁垮浜嬩欢鏌ヨ
-// String parkEvents = "/api/pms/v1/crossRecords/page";//鍋滆溅鍦轰簨浠舵煡璇�
+ String parkCrossRecords = "/api/pms/v1/crossRecords/page";//鍋滆溅鍦鸿繃绋嬭褰�
String rootOrg = "/api/resource/v1/org/rootOrg";//鑾峰彇璺熺粍缁�
String orgAllList = "/api/resource/v1/org/orgList";//鑾峰彇鍏ㄩ噺缁勭粐淇℃伅
String userAllList = "/api/resource/v2/person/personList";//鑾峰彇鍏ㄩ噺鐢ㄦ埛鍒楄〃
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 cf3b378..9680ddc 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
@@ -684,5 +684,16 @@
saveInterfaceLog(body,result,path);
return result;
}
+ /**
+ * 鍋滆溅鍦鸿繃杞﹁褰曟煡璇�
+ * @param body
+ * @return
+ */
+ public static String parkCrossRecords(String body) {
+ Map<String, String> path = getPath(HKConstants.InterfacePath.parkCrossRecords);
+ String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post璇锋眰application/json绫诲瀷鍙傛暟
+ saveInterfaceLog(body,result,path);
+ return result;
+ }
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkCrossRecordListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkCrossRecordListRequest.java
new file mode 100644
index 0000000..2ee471e
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/ParkCrossRecordListRequest.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class ParkCrossRecordListRequest {
+
+ private String startTime ;//string True 閽堝鏇存柊鏃堕棿鐨勬煡璇㈠紑濮嬫棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+ private String endTime;// string False 閽堝鏇存柊鏃堕棿鐨勬煡璇㈡埅姝㈡棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
+ private Integer pageNo ;//integer True 椤电爜,pageNo鈮�1
+ private Integer pageSize;// integer True 鍒嗛〉澶у皬
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java
index bac0630..435537b 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/TimeRangeListRequest.java
@@ -4,7 +4,16 @@
@Data
public class TimeRangeListRequest {
-
+ private String parkSyscode;// string False 鍋滆溅搴撳敮涓�鏍囪瘑锛堟渶澶ч暱搴�64锛� 涓嶅~涓嶅皢鍏朵綔涓鸿繃婊ゆ潯浠讹紝 鍙�氳繃鑾峰彇鍋滆溅搴撳垪琛ㄦ帴鍙h幏鍙�
+ private String entranceSyscode;// string False 鍑哄叆鍙e敮涓�鏍囪瘑锛堟渶澶ч暱搴�64锛� 涓嶅~涓嶅皢鍏朵綔涓鸿繃婊ゆ潯浠�
+ private String plateNo ;//string False 杞︾墝鍙凤紙鏈�澶ч暱搴�16锛�
+ private String cardNo ;//string False 鍗″彿
+ private Integer vehicleOut;// number False 杩涘嚭鍦烘爣璇�0-杩涘満1-鍑哄満
+ private Integer vehicleType;// number False 杞﹁締绫诲瀷0锛氬叾浠栬溅1锛氬皬鍨嬭溅2锛氬ぇ鍨嬭溅3锛氭懇鎵樿溅
+ private Integer releaseResult;// number False 鏀捐缁撴灉0-鏈斁琛�1-姝e父鏀捐2-绂荤嚎鏀捐
+ private Integer releaseWay;// number False 鏀捐鏂瑰紡10-鏈紑闂�11-鑷姩寮�闂�12-浜哄伐/浜哄伐寮�闂�13-閬ユ帶鍣ㄥ紑闂�
+ private Integer releaseReason;// number False 鏀捐鍘熷洜100-鍥哄畾杞﹁嚜鍔ㄦ斁琛�101-涓存椂杞﹁嚜鍔ㄦ斁琛�102-棰勭害杞﹁嚜鍔ㄦ斁琛�103-涓�鎴峰杞﹁嚜鍔ㄦ斁琛�
+ private String carCategory ;//string False 杞﹁締鍒嗙被9-榛戝悕鍗�10-鍥哄畾杞�11-涓存椂杞�12-棰勭害杞�14-鐗规畩杞�
private String startTime ;//string True 閽堝鏇存柊鏃堕棿鐨勬煡璇㈠紑濮嬫棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
private String endTime;// string False 閽堝鏇存柊鏃堕棿鐨勬煡璇㈡埅姝㈡棩鏈燂紝IOS8601鏍煎紡锛屽弬鑰冮檮褰旴 ISO8601鏃堕棿鏍煎紡璇存槑
private Integer pageNo ;//integer True 椤电爜,pageNo鈮�1
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkCrossRecordInfoResponse.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkCrossRecordInfoResponse.java
new file mode 100644
index 0000000..30d1ab6
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/ParkCrossRecordInfoResponse.java
@@ -0,0 +1,37 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class ParkCrossRecordInfoResponse {
+
+
+
+ private String vehicleId ;// string False 杞﹁締ID锛堟渶澶ч暱搴�64锛�
+ private String crossRecordSyscode;// string False 杩囪溅璁板綍鍞竴鏍囪瘑锛堟渶澶ч暱搴�64锛�
+ private String parkSyscode;// string False 鍋滆溅搴撳敮涓�鏍囪瘑锛堟渶澶ч暱搴�64锛�
+ private String parkName ;//string False 鍋滆溅搴撳悕绉帮紙鏈�澶ч暱搴�64锛�
+ private String entranceSyscode ;//string False 鍑哄叆鍙e敮涓�鏍囪瘑锛堟渶澶ч暱搴�64锛�
+ private String entranceName;// string False 鍑哄叆鍙e悕绉帮紙鏈�澶ч暱搴�64锛�
+ private String roadwaySyscode ;//string False 杞﹂亾鍞竴鏍囪瘑
+ private String roadwayName;// string False 杞﹂亾鍚嶇О
+ private Integer vehicleOut ;//number False 鏄惁鍑哄満0-杩涘満锛�1-鍑哄満
+ private Integer releaseMode ;//number False 鏀捐妯″紡0-绂佹鏀捐锛�1-鍥哄畾杞﹀寘鏈燂紝2-涓存椂杞﹀叆鍦猴紝3-棰勭害杞﹀叆鍦猴紝10-绂荤嚎鍑哄満锛�11-缂磋垂鍑哄満锛�12-棰勪粯璐瑰嚭鍦猴紝13-鍏嶈垂鍑哄満锛�30- 闈炴硶鍗′笉鏀捐锛�31-鎵嬪姩鏀捐锛�32-鐗规畩杞﹁締鏀捐锛�33-鑺傚亣鏃ユ斁琛岋紝35-缇ょ粍鏀捐锛�36-閬ユ帶鍣ㄥ紑闂�
+ private Integer releaseResult ;//number False 鏀捐缁撴灉0-鏈斁琛�1-姝e父鏀捐2-绂荤嚎鏀捐
+ private Integer releaseWay;// number False 鏀捐鏂瑰紡10-鏈紑闂�11-鑷姩寮�闂�12-浜哄伐/浜哄伐寮�闂�13-閬ユ帶鍣ㄥ紑闂�
+ private Integer releaseReason;// number False 鏀捐鍘熷洜锛�100-鍥哄畾杞﹁嚜鍔ㄦ斁琛�101-涓存椂杞﹁嚜鍔ㄦ斁琛�102-棰勭害杞﹁嚜鍔ㄦ斁琛�103-涓�鎴峰杞﹁嚜鍔ㄦ斁琛�
+ private String plateNo ;//string False 杞︾墝鍙风爜锛堟渶澶ч暱搴�16锛�
+ private String cardNo ;//string False 鍗$墖鍙风爜锛堟渶澶ч暱搴�32锛�
+ private Integer vehicleColor;// number False 杞﹁締棰滆壊0锛氬叾浠栭鑹诧紱1锛氱櫧鑹诧紱2锛氶摱鑹诧紱3锛氱伆鑹诧紱4锛氶粦鑹诧紱 5锛氱孩鑹诧紱 6锛氭繁钃濊壊锛� 7锛氳摑鑹诧紱8锛氶粍鑹诧紱9锛氱豢鑹诧紱10锛氭鑹诧紱 11锛氱矇鑹诧紱 12锛氱传鑹测��
+ private Integer vehicleType ;//number False 杞﹁締绫诲瀷0锛氬叾浠栬溅锛�1锛氬皬鍨嬭溅锛�2锛氬ぇ鍨嬭溅锛� 3锛氭懇鎵樿溅
+ private Integer plateColor ;// number False 杞︾墝棰滆壊0:钃濊壊,1:榛勮壊,2:鐧借壊,3:榛戣壊,4:缁胯壊,5:姘戣埅榛戣壊, 255:鍏朵粬棰滆壊
+ private Integer plateType ;// number False 杞︾墝绫诲瀷0:鏍囧噯姘戠敤杞�,1:02寮忔皯鐢ㄨ溅,3:璀﹁溅,4:姘戠敤杞﹀弻琛屽熬鐗岃溅,5:浣块杞�,6:鍐滅敤杞�,7:鎽╂墭杞�,8:鏂拌兘婧愯溅
+ private String carCategory;// string False 杞﹁締鍒嗙被
+ private String carCategoryName;// string False 杞﹁締鍒嗙被鍚嶇О
+ private String vehiclePicUri;// string False 杞﹁締鍥剧墖uri锛堟渶澶ч暱搴�256锛�
+ private String plateNoPicUri;// string False 杞︾墝鍥剧墖uri锛堟渶澶ч暱搴�256锛�
+ private String facePicUri;// string False 浜鸿劯鍥剧墖uri锛堟渶澶ч暱搴�256锛�
+ private String aswSyscode ;//string False 鍥剧墖鏈嶅姟鍞竴鏍囪瘑锛堟渶澶ч暱搴�64锛�
+ private String crossTime ;//string False 閫氳繃鏃堕棿ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛屼緥濡傚寳浜椂闂达細 2018-07-26T15:00:00+08:00 璇﹁ISO8601鍗忚瑙i噴
+ private String createTime;// string False 鍒涘缓鏃堕棿 ISO8601鏍煎紡锛� yyyy-MM-ddTHH:mm:ss+褰撳墠鏃跺尯锛屼緥濡傚寳浜椂闂达細 2018-07-26T15:00:00+08:00璇﹁ISO8601鍗忚瑙i噴
+}
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 b4c1173..633cfdf 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
@@ -910,6 +910,24 @@
return null;
}
/**
+ *杩囪溅璁板綍鏌ヨ锛堝垎椤碉級
+ * @return
+ */
+ public static BaseResponse<BaseListPageResponse<ParkCrossRecordInfoResponse>> parkCrossRecords(ParkCrossRecordListRequest param){
+ log.info("銆愭捣搴疯繃杞﹁褰曟煡璇㈡煡璇€��================寮�濮�===="+JSONObject.toJSONString(param));
+ try {
+ String res = HKTools.parkCrossRecords(JSONObject.toJSONString(param));
+ TypeReference typeReference =
+ new TypeReference< BaseResponse<BaseListPageResponse<ParkCrossRecordInfoResponse>> >(){};
+ BaseResponse<BaseListPageResponse<ParkCrossRecordInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType());
+ logResult(result,"娴峰悍杩囪溅璁板綍鏌ヨ鏌ヨ");
+ return result;
+ }catch (Exception e){
+ log.error("銆愭捣搴疯繃杞﹁褰曟煡璇㈡煡璇€��================澶辫触====锛歕n"+ e.getMessage());
+ }
+ return null;
+ }
+ /**
*澧為噺杞﹁締鏌ヨ锛堝垎椤碉級
* @return
*/
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
index 38bacc3..7b6ebfe 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -228,6 +228,10 @@
private String erpId;
+ @ApiModelProperty(value = "缁熻鏁伴噺 ")
+ @TableField(exist = false)
+ private int num ;
+
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮侊紙鍏宠仈member琛�)", example = "1")
@ExcelColumn(name="鍒涘缓浜虹紪鐮侊紙鍏宠仈member琛�)")
private Integer createMemberId;
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 96ea7fa..918db83 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
@@ -74,4 +74,5 @@
void syncParkBookBySingleModel(ParkBook c);
void syncEmpowerResultData();
void syncEmpowerDetailData();
+ void syncParkRecords(Date date);
}
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 e485929..cbad3b6 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
@@ -42,6 +42,10 @@
}
@Override
// @Async
+ public void syncParkRecords(Date date){
+ }
+ @Override
+// @Async
public String syncDoors(DoorsListRequest param){
return null;
}
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 9056ab5..b902487 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
@@ -1,16 +1,23 @@
package com.doumee.service.business.impl.hksync;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.config.DataSyncConfig;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseListPageResponse;
import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.CarChargeAddRequest;
-import com.doumee.core.haikang.model.param.request.CarChargeDelRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
+import com.doumee.core.haikang.model.param.request.*;
+import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
+import com.doumee.core.haikang.model.param.respose.ParkCrossRecordInfoResponse;
import com.doumee.core.haikang.model.param.respose.ParkListResponse;
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.Utils;
+import com.doumee.dao.business.CarEventMapper;
import com.doumee.dao.business.ParksMapper;
import com.doumee.dao.business.join.ParkBookJoinMapper;
import com.doumee.dao.business.model.*;
@@ -18,6 +25,8 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -31,9 +40,13 @@
public class HkSyncParkServiceImpl extends HkSyncBaseServiceImpl {
@Autowired
+ private DataSyncConfig dataSyncConfig;
+ @Autowired
private ParksMapper parksMapper;
@Autowired
private ParkBookJoinMapper parkBookMapper;
+ @Autowired
+ private CarEventMapper carEventMapper;
@Override
public void syncParkBookData() {
if(Constants.DEALING_HK_PARKBOOK){
@@ -282,5 +295,124 @@
return true;
}
-
+
+
+
+ @Override
+ @Transactional
+ public void syncParkRecords(Date date){
+ try {
+ if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵");
+ }
+ ParkCrossRecordListRequest param = new ParkCrossRecordListRequest();
+ //锛堝叏閲忓悓姝ワ級
+ 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.setStartTime(DateUtil.getISO8601Timestamp2( start));
+ param.setEndTime(DateUtil.getISO8601Timestamp2( end));
+
+ List<CarEvent> allHkList = new ArrayList<>();
+ while (hasNext){
+ //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹�
+ param.setPageNo(curPage);
+ param.setPageSize(100);
+ BaseResponse<BaseListPageResponse<ParkCrossRecordInfoResponse>> response = HKService.parkCrossRecords(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<ParkCrossRecordInfoResponse> 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(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
+ }
+ //娓呯┖鍘熸湁褰撳ぉ鐨勬暟鎹�
+ carEventMapper.delete(new UpdateWrapper<CarEvent>().lambda()
+ .ge(CarEvent::getCreateDate,start)
+ .le(CarEvent::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<CarEvent> sublist = allHkList.subList(startIndex, endIndex);
+ if(sublist.size()>0){
+ carEventMapper.insertBatchSomeColumn(sublist);//鎻掑叆鏂版暟鎹�
+ }
+ startIndex = endIndex;
+ endIndex += sublistSize;
+ }
+ }
+
+ }catch (BusinessException e){
+ throw e;
+ }
+ }
+
+ private List<CarEvent> getNewCarEventModelBYList(List<ParkCrossRecordInfoResponse> list ) {
+ List<CarEvent> newList = new ArrayList<>();
+ if(list == null || list.size()==0){
+ return newList;
+ }
+ for(ParkCrossRecordInfoResponse model :list){
+ if( model.getReleaseResult() ==null || !( model.getReleaseResult() == 1|| model.getReleaseResult() == 2 )){
+ continue;
+ }
+ CarEvent c = new CarEvent();
+ c.setHappenTime(model.getCrossTime());
+ c.setCreateDate(DateUtil.getISO8601DateByStr2(model.getCrossTime()));
+ c.setSvrIndex(model.getAswSyscode());
+ c.setVehiclePicUrl(model.getVehiclePicUri());
+ c.setPlatePicUrl(model.getPlateNoPicUri());
+ c.setVehicleType(model.getVehicleType());
+ c.setPlateColor(model.getPlateColor());
+ c.setPlateType(model.getPlateType());
+ c.setCardNo(model.getCardNo());
+ c.setReleaseReason(model.getReleaseReason());
+ c.setPlateNos(model.getPlateNo());
+ c.setReleaseResult(model.getReleaseResult());
+ c.setInoutType(model.getVehicleOut());
+ c.setParkIndex(model.getParkSyscode());
+ c.setParkName(model.getParkName());
+ c.setEventId(model.getCrossRecordSyscode());
+ c.setGateIndex(model.getEntranceSyscode());
+ c.setGateName(model.getEntranceName());
+ c.setIsdeleted(Constants.ZERO);
+ if(model.getVehicleOut() !=null &&model.getVehicleOut() == 0 ){
+ c.setEventType(HKConstants.EventTypes.PARK_PASS_IN.getKey());
+ }else {
+ c.setEventType(HKConstants.EventTypes.PARK_PASS_OUT.getKey());
+ }
+ newList.add(c);
+ }
+ return newList;
+ }
+
+
}
diff --git a/server/dmvisit_service/src/main/resources/application-testYL.yml b/server/dmvisit_service/src/main/resources/application-testYL.yml
index e76e605..4324462 100644
--- a/server/dmvisit_service/src/main/resources/application-testYL.yml
+++ b/server/dmvisit_service/src/main/resources/application-testYL.yml
@@ -43,7 +43,7 @@
title: ${project.name}鎺ュ彛鏂囨。
description: ${project.name}鎺ュ彛鏂囨。
enabled: true
- context-path: /erp_api
+ context-path:
# 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
redirect-uri: /
@@ -61,7 +61,6 @@
map:
remoteHost: https://apis.map.qq.com
appKey: 3AYBZ-I5R3V-2BVP3-UWBDQ-ETBM5-B2BBQ
-
des_pwd: 123456SDFKDJF
--
Gitblit v1.9.3