Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
谢明辉
/
fanxing3
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit a8fc8049
authored
Nov 17, 2021
by
xmh
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
<feat> 移植流量检索功能
<feat> 检索时加日志
1 parent
005d6629
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
791 additions
and
10 deletions
fanxing-query/src/main/java/com/viontech/fanxing/query/controller/web/BehaviorController.java
fanxing-query/src/main/java/com/viontech/fanxing/query/controller/web/FlowEventController.java
fanxing-query/src/main/java/com/viontech/fanxing/query/controller/web/TrafficController.java
fanxing-query/src/main/java/com/viontech/fanxing/query/feign/OpsClient.java
fanxing-query/src/main/java/com/viontech/fanxing/query/mapper/FlowMapper.java
fanxing-query/src/main/java/com/viontech/fanxing/query/mapping/FlowMapper.xml
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficBaseModel.java
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowBaseRequestVo.java
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowDataModel.java
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowEventModel.java
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowRequestVo.java
fanxing-query/src/main/java/com/viontech/fanxing/query/service/impl/TrafficServiceImpl.java
fanxing-query/src/main/java/com/viontech/fanxing/query/service/main/OpsClientService.java
fanxing-query/src/main/java/com/viontech/fanxing/query/controller/web/BehaviorController.java
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
controller
.
web
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializeConfig
;
import
com.alibaba.fastjson.serializer.SerializeFilter
;
import
com.alibaba.fastjson.serializer.SimplePropertyPreFilter
;
import
com.viontech.fanxing.commons.base.BaseExample
;
import
com.viontech.fanxing.commons.
base.BaseMapper
;
import
com.viontech.fanxing.commons.
model.BehaviorExample
;
import
com.viontech.fanxing.commons.vo.BehaviorVo
;
import
com.viontech.fanxing.query.controller.base.BehaviorBaseController
;
import
com.viontech.fanxing.commons.model.Behavior
;
import
com.viontech.fanxing.commons.model.BehaviorExample
;
import
com.viontech.fanxing.query.service.main.OpsClientService
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.util.Assert
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
javax.annotation.Resource
;
@Controller
@RequestMapping
(
"/behaviors"
)
public
class
BehaviorController
extends
BehaviorBaseController
{
@Resource
private
OpsClientService
opsClientService
;
@Override
protected
BaseExample
getExample
(
BehaviorVo
behaviorVo
,
int
type
)
{
BehaviorExample
behaviorExample
=
(
BehaviorExample
)
super
.
getExample
(
behaviorVo
,
type
);
BehaviorExample
behaviorExample
=
(
BehaviorExample
)
super
.
getExample
(
behaviorVo
,
type
);
return
behaviorExample
;
}
@Override
public
Object
page
(
BehaviorVo
behaviorVo
,
int
page
,
int
pageSize
,
String
sortName
,
String
sortOrder
)
{
Assert
.
notNull
(
behaviorVo
.
getEventTime_gte
(),
"起始时间不能为空"
);
Assert
.
notNull
(
behaviorVo
.
getEventTime_lte
(),
"结束时间不能为空"
);
SimplePropertyPreFilter
simplePropertyPreFilter
=
new
SimplePropertyPreFilter
();
simplePropertyPreFilter
.
getExcludes
().
add
(
"model"
);
opsClientService
.
addLog
(
"检索分析结果,条件:"
+
JSON
.
toJSONString
(
behaviorVo
,
SerializeConfig
.
globalInstance
,
new
SerializeFilter
[]{
simplePropertyPreFilter
},
"yyyy-MM-dd HH:mm:ss"
,
JSON
.
DEFAULT_GENERATE_FEATURE
));
return
super
.
page
(
behaviorVo
,
page
,
pageSize
,
sortName
,
sortOrder
);
}
}
\ No newline at end of file
fanxing-query/src/main/java/com/viontech/fanxing/query/controller/web/FlowEventController.java
View file @
a8fc804
This diff is collapsed.
Click to expand it.
fanxing-query/src/main/java/com/viontech/fanxing/query/controller/web/TrafficController.java
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
controller
.
web
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializeConfig
;
import
com.alibaba.fastjson.serializer.SerializeFilter
;
import
com.alibaba.fastjson.serializer.SimplePropertyPreFilter
;
import
com.github.pagehelper.PageInfo
;
import
com.viontech.fanxing.commons.base.BaseExample
;
import
com.viontech.fanxing.commons.
base.BaseMapper
;
import
com.viontech.fanxing.commons.
model.TrafficExample
;
import
com.viontech.fanxing.commons.vo.TrafficVo
;
import
com.viontech.fanxing.query.controller.base.TrafficBaseController
;
import
com.viontech.fanxing.commons.model.Traffic
;
import
com.viontech.fanxing.commons.model.TrafficExample
;
import
com.viontech.fanxing.query.service.main.OpsClientService
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.util.Assert
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
static
com
.
viontech
.
keliu
.
util
.
JsonMessageUtil
.
getSuccessJsonMsg
;
@Controller
@RequestMapping
(
"/traffics"
)
public
class
TrafficController
extends
TrafficBaseController
{
@Resource
private
OpsClientService
opsClientService
;
@Override
protected
BaseExample
getExample
(
TrafficVo
trafficVo
,
int
type
)
{
TrafficExample
trafficExample
=
(
TrafficExample
)
super
.
getExample
(
trafficVo
,
type
);
TrafficExample
trafficExample
=
(
TrafficExample
)
super
.
getExample
(
trafficVo
,
type
);
trafficExample
.
createColumns
().
hasIdColumn
().
hasEventTimeColumn
();
return
trafficExample
;
}
@Override
@RequestMapping
(
value
=
""
,
method
=
RequestMethod
.
GET
)
@ResponseBody
public
Object
page
(
TrafficVo
trafficVo
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"-1"
)
int
page
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"30"
)
int
pageSize
,
String
sortName
,
String
sortOrder
)
{
Assert
.
hasLength
(
trafficVo
.
getEventType
(),
"数据类型不能为空"
);
Assert
.
notNull
(
trafficVo
.
getEventTime_gte
(),
"起始时间不能为空"
);
Assert
.
notNull
(
trafficVo
.
getEventTime_lte
(),
"结束时间不能为空"
);
SimplePropertyPreFilter
simplePropertyPreFilter
=
new
SimplePropertyPreFilter
();
simplePropertyPreFilter
.
getExcludes
().
add
(
"model"
);
opsClientService
.
addLog
(
"检索分析结果,条件:"
+
JSON
.
toJSONString
(
trafficVo
,
SerializeConfig
.
globalInstance
,
new
SerializeFilter
[]{
simplePropertyPreFilter
},
"yyyy-MM-dd HH:mm:ss"
,
JSON
.
DEFAULT_GENERATE_FEATURE
));
BaseExample
baseExample
=
getExample
(
trafficVo
,
EXAMPLE_TYPE_PAGE
);
if
(
isNotNull
(
sortOrder
)
&&
isNotNull
(
sortName
))
{
baseExample
.
setOrderByClause
(
baseExample
.
getTableAlias
()
+
"."
+
sortName
+
" "
+
sortOrder
);
}
else
if
(
isNotNull
(
sortName
)
&&
!
isNotNull
(
sortOrder
))
{
baseExample
.
setOrderByClause
(
sortName
);
}
if
(
page
<=
0
)
{
List
result
=
getService
().
selectByExample
(
baseExample
);
return
getSuccessJsonMsg
(
MESSAGE_SELECT_SUCCESS
,
result
);
}
else
{
PageInfo
pageInfo
=
getService
().
pagedQuery
(
baseExample
,
page
,
pageSize
);
return
getSuccessJsonMsg
(
MESSAGE_PAGE_SUCCESS
,
pageInfo
);
}
}
}
\ No newline at end of file
fanxing-query/src/main/java/com/viontech/fanxing/query/feign/OpsClient.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
feign
;
import
com.viontech.fanxing.commons.model.*
;
import
com.viontech.fanxing.commons.vo.LogVo
;
import
com.viontech.keliu.util.JsonMessageUtil
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* .
*
* @author 谢明辉
* @date 2021/7/20
*/
@Component
@FeignClient
(
value
=
"fanxing-ops"
)
public
interface
OpsClient
{
@GetMapping
(
"/storeConfigs/{id}"
)
JsonMessageUtil
.
JsonMessage
<
StoreConfig
>
getStoreConfigById
(
@PathVariable
(
"id"
)
Long
storeConfigId
);
@GetMapping
(
"/contents"
)
JsonMessageUtil
.
JsonMessage
<
List
<
Content
>>
getContentByName
(
@RequestParam
(
"name"
)
String
name
);
@GetMapping
(
"/channels"
)
JsonMessageUtil
.
JsonMessage
<
List
<
Channel
>>
getChannelByChannelUnid
(
@RequestParam
(
"channelUnid"
)
String
channelUnid
);
@GetMapping
(
"/dictCodes"
)
JsonMessageUtil
.
JsonMessage
<
List
<
DictCode
>>
getDictCodeByUnid
(
@RequestParam
(
"unid"
)
String
unid
);
@PostMapping
(
"/logs"
)
JsonMessageUtil
.
JsonMessage
<
Log
>
addLog
(
@RequestBody
LogVo
logVo
);
}
fanxing-query/src/main/java/com/viontech/fanxing/query/mapper/FlowMapper.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
mapper
;
import
com.viontech.fanxing.query.model.TrafficFlowDataModel
;
import
com.viontech.fanxing.query.model.TrafficFlowEventModel
;
import
com.viontech.fanxing.query.model.TrafficFlowRequestVo
;
import
java.util.List
;
/**
* .
*
* @author 谢明辉
* @date 2021/11/16
*/
public
interface
FlowMapper
{
List
<
TrafficFlowEventModel
>
selectEvents
(
TrafficFlowRequestVo
trafficFlowRequestVo
);
int
counts
(
TrafficFlowRequestVo
trafficFlowRequestVo
);
List
<
TrafficFlowDataModel
>
flowstatistics
(
TrafficFlowRequestVo
trafficFlowRequestVo
);
}
fanxing-query/src/main/java/com/viontech/fanxing/query/mapping/FlowMapper.xml
0 → 100644
View file @
a8fc804
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.viontech.fanxing.query.mapper.FlowMapper"
>
<resultMap
id=
"baseMap"
type=
"com.viontech.fanxing.query.model.TrafficFlowEventModel"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"event_dt"
property=
"event_dt"
/>
</resultMap>
<resultMap
id=
"dataMap"
type=
"com.viontech.fanxing.query.model.TrafficFlowDataModel"
>
<result
column=
"flow_event_id"
property=
"eventId"
/>
<result
column=
"event_time"
property=
"eventTime"
/>
<result
column=
"road"
property=
"road"
/>
<result
column=
"device_name"
property=
"deviceName"
/>
<result
column=
"location_name"
property=
"locationName"
/>
<result
column=
"velocity"
property=
"velocity"
/>
<result
column=
"occupy"
property=
"occupy"
/>
<result
column=
"distance"
property=
"distance"
/>
<result
column=
"sample_dura"
property=
"sampleDura"
/>
<result
column=
"queue_length"
property=
"queueLength"
/>
<result
column=
"sample_num"
property=
"sampleNum"
/>
<result
column=
"direction"
property=
"direction"
/>
<result
column=
"time_occupy"
property=
"timeOccupy"
/>
<result
column=
"dist_time"
property=
"distTime"
/>
</resultMap>
<select
id=
"selectEvents"
parameterType=
"com.viontech.fanxing.query.model.TrafficFlowRequestVo"
resultMap=
"baseMap"
>
select date_format(te.event_time, '%Y-%m-%d %H:%i:%s') as event_dt,
date_format(te.event_time, '%Y-%m-%d %H:%i:%s') as gevent_dt,
te.id
from d_flow_event te
, d_flow_data
<where>
and d_flow_data.flow_event_id = te.id
AND d_flow_data.road_code != '0'
<if
test=
"task_id != null and task_id != ''"
>
and te.task_id = #{task_id}
</if>
<if
test=
"event_dt__gte != null and event_dt__lt != null"
>
and te.event_time
<![CDATA[>=]]>
#{event_dt__gte}
and te.event_time
<![CDATA[<=]]>
#{event_dt__lt}
</if>
</where>
GROUP BY gevent_dt, te.id
<if
test=
"statistic_type == 'road'"
>
, d_flow_data.road_code
</if>
order by event_dt desc
<if
test=
"offset != null and limit != null"
>
LIMIT #{limit} offset #{offset}
</if>
</select>
<select
id=
"counts"
parameterType=
"com.viontech.fanxing.query.model.TrafficFlowRequestVo"
resultType=
"int"
>
select count(1) as count from (
select date_format(te.event_time, '%Y-%m-%d %H:%i:%s') as gevent_dt
from d_flow_event te
, d_flow_data
<where>
and d_flow_data.flow_event_id = te.id
AND d_flow_data.road_code != '0'
<if
test=
"task_id != null and task_id != ''"
>
and te.task_id = #{task_id}
</if>
<if
test=
"event_dt__gte != null and event_dt__lt != null"
>
and te.event_time
<![CDATA[>=]]>
#{event_dt__gte}
and te.event_time
<![CDATA[<=]]>
#{event_dt__lt}
</if>
</where>
GROUP BY gevent_dt, te.id
) as con
</select>
<select
id=
"flowstatistics"
parameterType=
"com.viontech.fanxing.query.model.TrafficFlowRequestVo"
resultMap=
"dataMap"
>
select ${column_List}
from d_flow_event te,
d_flow_data td
<where>
<if
test=
"idSet != null"
>
and td.flow_event_id in
<foreach
collection=
"idSet"
item=
"id"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{id}
</foreach>
</if>
and te.id = td.flow_event_id
<if
test=
"task_id != null"
>
and td.task_id = #{task_id}
</if>
<if
test=
"detection_type != null and detection_type.size > 0"
>
and detection_type in
<foreach
item=
"item"
index=
"index"
collection=
"detection_type"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"vehicle_type != null and vehicle_type.length != 0"
>
and td.detection_type in
<foreach
item=
"item"
index=
"index"
collection=
"vehicle_type"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
and road_code != '0'
</where>
GROUP BY ${groupByClause}
ORDER BY ${orderByClause}
<if
test=
"limit != null"
>
LIMIT #{limit}
</if>
</select>
</mapper>
\ No newline at end of file
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficBaseModel.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
model
;
/**
* Created by Administrator on 2018/8/9.
*/
public
class
TrafficBaseModel
{
private
String
event_cate
;
private
String
task_id
;
private
String
task_type
;
private
String
subtask_id
;
private
String
source_type
;
private
String
event_type
;
private
String
dev_unid
;
private
String
vchan_refid
;
private
String
vdev_unid
;
private
String
vchan_duid
;
private
String
event_dt
;
private
String
event_data
;
private
String
device_name
;
private
String
location_name
;
private
String
device_code
;
private
String
location_code
;
public
String
getEvent_cate
()
{
return
event_cate
;
}
public
void
setEvent_cate
(
String
event_cate
)
{
this
.
event_cate
=
event_cate
;
}
public
String
getTask_id
()
{
return
task_id
;
}
public
void
setTask_id
(
String
task_id
)
{
this
.
task_id
=
task_id
;
}
public
String
getTask_type
()
{
return
task_type
;
}
public
void
setTask_type
(
String
task_type
)
{
this
.
task_type
=
task_type
;
}
public
String
getSubtask_id
()
{
return
subtask_id
;
}
public
void
setSubtask_id
(
String
subtask_id
)
{
this
.
subtask_id
=
subtask_id
;
}
public
String
getSource_type
()
{
return
source_type
;
}
public
void
setSource_type
(
String
source_type
)
{
this
.
source_type
=
source_type
;
}
public
String
getEvent_type
()
{
return
event_type
;
}
public
void
setEvent_type
(
String
event_type
)
{
this
.
event_type
=
event_type
;
}
public
String
getDev_unid
()
{
return
dev_unid
;
}
public
void
setDev_unid
(
String
dev_unid
)
{
this
.
dev_unid
=
dev_unid
;
}
public
String
getVchan_refid
()
{
return
vchan_refid
;
}
public
void
setVchan_refid
(
String
vchan_refid
)
{
this
.
vchan_refid
=
vchan_refid
;
}
public
String
getVdev_unid
()
{
return
vdev_unid
;
}
public
void
setVdev_unid
(
String
vdev_unid
)
{
this
.
vdev_unid
=
vdev_unid
;
}
public
String
getVchan_duid
()
{
return
vchan_duid
;
}
public
void
setVchan_duid
(
String
vchan_duid
)
{
this
.
vchan_duid
=
vchan_duid
;
}
public
String
getEvent_dt
()
{
return
event_dt
;
}
public
void
setEvent_dt
(
String
event_dt
)
{
this
.
event_dt
=
event_dt
;
}
public
String
getEvent_data
()
{
return
event_data
;
}
public
void
setEvent_data
(
String
event_data
)
{
this
.
event_data
=
event_data
;
}
public
String
getDevice_name
()
{
return
device_name
;
}
public
void
setDevice_name
(
String
device_name
)
{
this
.
device_name
=
device_name
;
}
public
String
getLocation_name
()
{
return
location_name
;
}
public
void
setLocation_name
(
String
location_name
)
{
this
.
location_name
=
location_name
;
}
public
String
getDevice_code
()
{
return
device_code
;
}
public
void
setDevice_code
(
String
device_code
)
{
this
.
device_code
=
device_code
;
}
public
String
getLocation_code
()
{
return
location_code
;
}
public
void
setLocation_code
(
String
location_code
)
{
this
.
location_code
=
location_code
;
}
}
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowBaseRequestVo.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
model
;
public
class
TrafficFlowBaseRequestVo
{
private
String
[]
location_codes
;
private
String
[]
vehicle_type
;
private
String
[]
device_codes
;
private
String
event_date
;
private
String
start_time
;
private
String
end_time
;
private
String
exportType
;
private
String
start_event_date
;
public
String
[]
getLocation_codes
()
{
return
location_codes
;
}
public
void
setLocation_codes
(
String
[]
location_codes
)
{
this
.
location_codes
=
location_codes
;
}
public
String
[]
getVehicle_type
()
{
return
vehicle_type
;
}
public
void
setVehicle_type
(
String
[]
vehicle_type
)
{
this
.
vehicle_type
=
vehicle_type
;
}
public
String
[]
getDevice_codes
()
{
return
device_codes
;
}
public
void
setDevice_codes
(
String
[]
device_codes
)
{
this
.
device_codes
=
device_codes
;
}
public
String
getEvent_date
()
{
return
event_date
;
}
public
void
setEvent_date
(
String
event_date
)
{
this
.
event_date
=
event_date
;
}
public
String
getStart_time
()
{
return
start_time
;
}
public
void
setStart_time
(
String
start_time
)
{
this
.
start_time
=
start_time
;
}
public
String
getEnd_time
()
{
return
end_time
;
}
public
void
setEnd_time
(
String
end_time
)
{
this
.
end_time
=
end_time
;
}
public
String
getExportType
()
{
return
exportType
;
}
public
void
setExportType
(
String
exportType
)
{
this
.
exportType
=
exportType
;
}
public
String
getStart_event_date
()
{
return
start_event_date
;
}
public
void
setStart_event_date
(
String
start_event_date
)
{
this
.
start_event_date
=
start_event_date
;
}
}
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowDataModel.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
public
class
TrafficFlowDataModel
{
private
Long
eventId
;
private
Date
eventTime
;
/** 车道标志符编码 */
private
String
road
;
/** 行驶方向编码 */
private
String
direction
;
/** 采样周期(秒) */
private
Integer
sampleDura
;
/** 车流量,辆/采样周期 */
private
Integer
sampleNum
;
/** 流速 */
private
Double
velocity
;
/** km/h", 流速单位 */
private
String
velocityUnit
;
/** 车道占有率 */
private
Double
occupy
;
/** 车头间距 */
private
Double
distance
;
private
String
deviceName
;
private
String
locationName
;
private
String
queueLength
;
private
String
detectionType
;
private
Double
timeOccupy
;
private
Double
distTime
;
}
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowEventModel.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
model
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
java.util.List
;
/**
* Created by Administrator on 2018/8/9.
*/
@JsonInclude
(
value
=
JsonInclude
.
Include
.
NON_NULL
)
public
class
TrafficFlowEventModel
extends
TrafficBaseModel
{
private
String
unid
;
private
String
event_id
;
private
Long
Id
;
//大车
private
List
<
TrafficFlowDataModel
>
big_vehicle
;
//小车
private
List
<
TrafficFlowDataModel
>
small_vehicle
;
//非机动车
private
List
<
TrafficFlowDataModel
>
xcycle
;
//行人
private
List
<
TrafficFlowDataModel
>
pedestrian
;
private
Object
json_data
;
private
String
pic_name
;
private
String
video_name
;
private
String
event_dtime
;
public
String
getPic_name
()
{
return
pic_name
;
}
public
void
setPic_name
(
String
pic_name
)
{
this
.
pic_name
=
pic_name
;
}
public
String
getVideo_name
()
{
return
video_name
;
}
public
void
setVideo_name
(
String
video_name
)
{
this
.
video_name
=
video_name
;
}
public
String
getUnid
()
{
return
unid
;
}
public
void
setUnid
(
String
unid
)
{
this
.
unid
=
unid
;
}
public
String
getEvent_id
()
{
return
event_id
;
}
public
void
setEvent_id
(
String
event_id
)
{
this
.
event_id
=
event_id
;
}
public
List
<
TrafficFlowDataModel
>
getBig_vehicle
()
{
return
big_vehicle
;
}
public
void
setBig_vehicle
(
List
<
TrafficFlowDataModel
>
big_vehicle
)
{
this
.
big_vehicle
=
big_vehicle
;
}
public
List
<
TrafficFlowDataModel
>
getSmall_vehicle
()
{
return
small_vehicle
;
}
public
void
setSmall_vehicle
(
List
<
TrafficFlowDataModel
>
small_vehicle
)
{
this
.
small_vehicle
=
small_vehicle
;
}
public
List
<
TrafficFlowDataModel
>
getXcycle
()
{
return
xcycle
;
}
public
void
setXcycle
(
List
<
TrafficFlowDataModel
>
xcycle
)
{
this
.
xcycle
=
xcycle
;
}
public
List
<
TrafficFlowDataModel
>
getPedestrian
()
{
return
pedestrian
;
}
public
void
setPedestrian
(
List
<
TrafficFlowDataModel
>
pedestrian
)
{
this
.
pedestrian
=
pedestrian
;
}
public
Object
getJson_data
()
{
return
json_data
;
}
public
void
setJson_data
(
Object
json_data
)
{
this
.
json_data
=
json_data
;
}
public
String
getEvent_dtime
()
{
return
event_dtime
;
}
public
void
setEvent_dtime
(
String
event_dtime
)
{
this
.
event_dtime
=
event_dtime
;
}
public
Long
getId
()
{
return
Id
;
}
public
TrafficFlowEventModel
setId
(
Long
id
)
{
Id
=
id
;
return
this
;
}
}
fanxing-query/src/main/java/com/viontech/fanxing/query/model/TrafficFlowRequestVo.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
model
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
import
java.util.Set
;
@Getter
@Setter
public
class
TrafficFlowRequestVo
extends
TrafficFlowBaseRequestVo
{
private
String
event_dt__gte
;
// 可选,查询时间范围的起始时刻(包含),默认为event_dt_lt前7天。
private
String
event_dt__lt
;
//可选,查询时间范围的结束时刻(不含),默认为当前时间后10分钟。
private
String
dev_unid
;
// 可选,精确匹配,产生数据的设备的unid
private
String
vchan_refid
;
//可选,精确匹配,视频通道的参考id
private
String
vdev_unid
;
// 可选,精确匹配,视频通道所在设备的unid
private
String
vchan_duid
;
//可选,精确匹配,视频通道的duid
private
String
road
;
//车道编号
private
String
direction
;
//行驶方向编码,参见统一编码服务。
private
String
task_name__like
;
//任务名称
private
String
device_name
;
// 相机名称
private
String
source_type
;
//任务输入源的类型,目前有三种push_pic_files,pull_video_stream,pull_pic_files(
private
String
statistic_type
;
// 必填,统计类型(road 表示车道、detection表示检测类型)
private
String
param_type
;
// 必填,参数类型(1为流量统计、2为平均车速、3为车头间距、4为时间占有率、5为排队长度)
private
List
<
String
>
detection_type
;
//["big_vehicle","small_vehicle",...] #检测类型(big_vehicle大车、small_vehicle小车、xcycle非机动车、pedestrian行人
private
Integer
statistic_time
;
private
String
statistic_time_unit
;
private
Long
task_id
;
private
String
subtask_id
;
private
String
unids
;
private
String
eventdts
;
private
String
event_type
;
private
Integer
offset
=
0
;
private
Integer
limit
=
500
;
private
List
task_ids
;
private
String
[]
location_codes
;
private
String
[]
device_codes
;
private
String
location_name
;
private
String
column_List
;
private
String
orderByClause
;
private
String
groupByClause
;
private
Set
<
Long
>
idSet
;
}
fanxing-query/src/main/java/com/viontech/fanxing/query/service/impl/TrafficServiceImpl.java
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
service
.
impl
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.viontech.fanxing.commons.base.BaseExample
;
import
com.viontech.fanxing.commons.base.BaseMapper
;
import
com.viontech.fanxing.commons.base.BaseServiceImpl
;
import
com.viontech.fanxing.query.mapper.TrafficMapper
;
import
com.viontech.fanxing.commons.model.Traffic
;
import
com.viontech.fanxing.commons.model.TrafficExample
;
import
com.viontech.fanxing.query.mapper.TrafficMapper
;
import
com.viontech.fanxing.query.service.adapter.TrafficService
;
import
javax.annotation.Resource
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.List
;
@Service
public
class
TrafficServiceImpl
extends
BaseServiceImpl
<
Traffic
>
implements
TrafficService
{
@Resource
...
...
@@ -17,4 +24,24 @@ public class TrafficServiceImpl extends BaseServiceImpl<Traffic> implements Traf
public
BaseMapper
<
Traffic
>
getMapper
()
{
return
trafficMapper
;
}
@Override
public
List
<
Traffic
>
selectByExample
(
BaseExample
example
)
{
return
trafficMapper
.
selectByExampleWithBLOBs
((
TrafficExample
)
example
);
}
@Override
public
PageInfo
<
Traffic
>
pagedQuery
(
BaseExample
example
,
int
pageNum
,
int
pageSize
)
{
if
(
pageSize
>
0
)
{
PageHelper
.
startPage
(
pageNum
,
pageSize
);
Page
<
Traffic
>
result
=
(
Page
<
Traffic
>)
trafficMapper
.
selectByExampleWithBLOBs
((
TrafficExample
)
example
);
return
new
PageInfo
<>(
result
);
}
else
{
List
<
Traffic
>
result
=
trafficMapper
.
selectByExampleWithBLOBs
((
TrafficExample
)
example
);
Page
<
Traffic
>
p
=
new
Page
<>();
p
.
addAll
(
result
);
return
new
PageInfo
<>(
p
);
}
}
}
\ No newline at end of file
fanxing-query/src/main/java/com/viontech/fanxing/query/service/main/OpsClientService.java
0 → 100644
View file @
a8fc804
package
com
.
viontech
.
fanxing
.
query
.
service
.
main
;
import
com.viontech.fanxing.commons.constant.LogType
;
import
com.viontech.fanxing.commons.exception.FanXingException
;
import
com.viontech.fanxing.commons.model.Channel
;
import
com.viontech.fanxing.commons.model.Content
;
import
com.viontech.fanxing.commons.model.DictCode
;
import
com.viontech.fanxing.commons.model.StoreConfig
;
import
com.viontech.fanxing.commons.vo.LogVo
;
import
com.viontech.fanxing.query.feign.OpsClient
;
import
com.viontech.keliu.util.JsonMessageUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
/**
* .
*
* @author 谢明辉
* @date 2021/9/28
*/
@Service
@Slf4j
public
class
OpsClientService
{
@Resource
private
OpsClient
opsClient
;
public
StoreConfig
getStoreConfigById
(
Long
id
)
{
JsonMessageUtil
.
JsonMessage
<
StoreConfig
>
res
=
opsClient
.
getStoreConfigById
(
id
);
if
(
res
.
getCode
()
!=
200
)
{
throw
new
FanXingException
(
res
.
getMsg
());
}
else
{
return
res
.
getData
();
}
}
public
String
getContentByName
(
String
name
)
{
JsonMessageUtil
.
JsonMessage
<
List
<
Content
>>
res
=
opsClient
.
getContentByName
(
name
);
if
(
res
.
getCode
()
!=
200
)
{
throw
new
FanXingException
(
res
.
getMsg
());
}
else
{
List
<
Content
>
data
=
res
.
getData
();
return
(
data
==
null
||
data
.
size
()
==
0
)
?
null
:
data
.
get
(
0
).
getContent
();
}
}
public
Channel
getChannelByChannelUnid
(
String
channelUnid
)
{
JsonMessageUtil
.
JsonMessage
<
List
<
Channel
>>
res
=
opsClient
.
getChannelByChannelUnid
(
channelUnid
);
if
(
res
.
getCode
()
!=
200
)
{
throw
new
FanXingException
(
res
.
getMsg
());
}
else
{
List
<
Channel
>
data
=
res
.
getData
();
return
(
data
==
null
||
data
.
size
()
==
0
)
?
null
:
data
.
get
(
0
);
}
}
public
DictCode
getDictCodeByUnid
(
String
unid
)
{
JsonMessageUtil
.
JsonMessage
<
List
<
DictCode
>>
res
=
opsClient
.
getDictCodeByUnid
(
unid
);
if
(
res
.
getCode
()
!=
200
)
{
throw
new
FanXingException
(
res
.
getMsg
());
}
else
{
List
<
DictCode
>
data
=
res
.
getData
();
return
(
data
==
null
||
data
.
size
()
==
0
)
?
null
:
data
.
get
(
0
);
}
}
public
void
addLog
(
String
content
)
{
try
{
RequestAttributes
requestAttributes
=
RequestContextHolder
.
getRequestAttributes
();
String
username
=
null
;
if
(
requestAttributes
!=
null
)
{
HttpServletRequest
request
=
((
ServletRequestAttributes
)
requestAttributes
).
getRequest
();
username
=
request
.
getHeader
(
"username"
);
}
LogVo
logVo
=
new
LogVo
();
logVo
.
setUsername
(
username
);
logVo
.
setLogType
(
LogType
.
QUERY
.
value
);
logVo
.
setContent
(
content
);
opsClient
.
addLog
(
logVo
);
}
catch
(
Exception
e
)
{
log
.
error
(
"添加日志失败:"
,
e
);
}
}
}
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment