重点区域事件30天时间趋势
重点区域场景添加根据区域类型查询区域的最新时间的人数 优化重点区域场景事件接口 工地场景注释优化
This commit is contained in:
parent
e8e096719f
commit
e3264d71c5
|
@ -412,11 +412,11 @@ public class BuildingController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 查询近30天视频感知事件时间趋势
|
||||
* 查询近30天工地视频感知事件时间趋势
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("selectMonthCurrentByEvent")
|
||||
@ApiOperation("查询近30天视频感知事件时间趋势")
|
||||
@ApiOperation("查询近30天工地视频感知事件时间趋势")
|
||||
public Result selectMonthCurrentByEvent(){
|
||||
List<BuildingRecordsDtos> buildingRecordsDtos = buildingRecordsMapper.selectMonthCurrentByEvent();
|
||||
buildingRecordsDtos.forEach(buildingRecordsDto -> {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package com.hisense.monitormanage.controller;
|
||||
|
||||
import com.hisense.monitormanage.dto.BuildingRecordsDtos;
|
||||
import com.hisense.monitormanage.dto.EventDto;
|
||||
import com.hisense.monitormanage.dto.KeyAreaDto;
|
||||
import com.hisense.monitormanage.dto.KeyAreaDtos;
|
||||
import com.hisense.monitormanage.entity.KeyArea;
|
||||
import com.hisense.monitormanage.entity.KeyAreaLocation;
|
||||
import com.hisense.monitormanage.entity.PassengerFlow;
|
||||
|
@ -36,17 +38,37 @@ public class KeyAreaController {
|
|||
@Autowired
|
||||
private EventMapper eventMapper;
|
||||
|
||||
/**
|
||||
* 根据区域类型查询全部区域列表的最新时间的人数
|
||||
* @param type1
|
||||
* @param type2
|
||||
* @param type3
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("selectKeyAreaList")
|
||||
@ApiOperation("根据区域类型查询全部区域列表的最新时间的人数")
|
||||
public Result selectKeyAreaList(String type1,String type2,String type3){
|
||||
PassengerFlow maxId = passengerFlowMapper.getByMaxId();
|
||||
String timeId = maxId.getTimeId();
|
||||
List<KeyAreaDto> keyAreaDtos = keyAreaMapper.selectKeyAreaList(type1,type2,type3,timeId);
|
||||
keyAreaDtos.forEach(keyAreaDto -> {
|
||||
keyAreaDto.setTimeId(timeId);
|
||||
});
|
||||
Result success = Result.success(keyAreaDtos);
|
||||
return success;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据区域类型查询区域的最新时间的人数
|
||||
* @param type
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("selectKeyAreaList")
|
||||
@GetMapping("selectKeyArea")
|
||||
@ApiOperation("根据区域类型查询区域的最新时间的人数")
|
||||
public Result selectKeyAreaList(String type){
|
||||
public Result selectKeyArea(String type){
|
||||
PassengerFlow maxId = passengerFlowMapper.getByMaxId();
|
||||
String timeId = maxId.getTimeId();
|
||||
List<KeyAreaDto> keyAreaDtos = keyAreaMapper.selectKeyAreaList(type,timeId);
|
||||
List<KeyAreaDto> keyAreaDtos = keyAreaMapper.selectKeyArea(type,timeId);
|
||||
keyAreaDtos.forEach(keyAreaDto -> {
|
||||
keyAreaDto.setTimeId(timeId);
|
||||
});
|
||||
|
@ -121,10 +143,10 @@ public class KeyAreaController {
|
|||
* 重点区域场景查询当天事件
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("selectAreaByTime")
|
||||
@GetMapping("selectByDayAreaEvent")
|
||||
@ApiOperation("重点区域场景查询当天事件")
|
||||
public Result selectAreaByTime(){
|
||||
List<EventDto> events = eventMapper.selectByTime();
|
||||
public Result selectByDayAreaEvent(){
|
||||
List<EventDto> events = keyAreaMapper.selectByDayAreaEvent();
|
||||
events.forEach(event -> {
|
||||
if (event.getEventCnName().equals("街头伞篷") || event.getEventCnName().equals("水果和食品摊")
|
||||
|| event.getEventCnName().equals("地摊")|| event.getEventCnName().equals("户外桌椅")){
|
||||
|
@ -140,9 +162,10 @@ public class KeyAreaController {
|
|||
event.setEventNewName(event.getEventCnName());
|
||||
}
|
||||
});
|
||||
|
||||
Result success = Result.success(events);
|
||||
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("sum",events.size());
|
||||
map.put("events",events);
|
||||
Result success = Result.success(map);
|
||||
return success;
|
||||
|
||||
}
|
||||
|
@ -152,53 +175,31 @@ public class KeyAreaController {
|
|||
* @param eventNewName
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("selectAreaByName")
|
||||
@GetMapping("selectByNameAreaEvent")
|
||||
@ApiOperation("重点区域场景根据事件名称查询事件")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "eventNewName",value = "事件名称",required = true,dataType = "String"),
|
||||
@ApiImplicitParam(name = "page", value = "页码", required = false, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "页码大小", required = false, dataType = "Integer")
|
||||
})
|
||||
public Result selectAreaByName(String eventNewName,Integer page,Integer pageSize){
|
||||
public Result selectByNameAreaEvent(String eventNewName,Integer page,Integer pageSize){
|
||||
if (eventNewName.equals("环境卫生")){
|
||||
List<EventDto> lists = eventMapper.selectByName("'塑料篮子','纸箱','街头散落垃圾'",page,pageSize);
|
||||
List<EventDto> lists = keyAreaMapper.selectByNameAreaEvent("'塑料篮子','纸箱','街头散落垃圾'",page,pageSize);
|
||||
lists.forEach(list ->{
|
||||
list.setEventNewName("环境卫生");
|
||||
});
|
||||
Integer integer = eventMapper.selectCountByName("'塑料篮子','纸箱','街头散落垃圾'");
|
||||
Integer integer = keyAreaMapper.selectCountByNameAreaEvent("'塑料篮子','纸箱','街头散落垃圾'");
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("sum",integer);
|
||||
map.put("events",lists);
|
||||
Result success = Result.success(map);
|
||||
return success;
|
||||
}else if (eventNewName.equals("占道经营")){
|
||||
List<EventDto> lists = eventMapper.selectByName("'街头伞篷','水果和食品摊','地摊','户外桌椅'",page,pageSize);
|
||||
List<EventDto> lists = keyAreaMapper.selectByNameAreaEvent("'街头伞篷','水果和食品摊','地摊','户外桌椅'",page,pageSize);
|
||||
lists.forEach(list ->{
|
||||
list.setEventNewName("占道经营");
|
||||
});
|
||||
Integer integer = eventMapper.selectCountByName("'街头伞篷','水果和食品摊','地摊','户外桌椅'");
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("sum",integer);
|
||||
map.put("events",lists);
|
||||
Result success = Result.success(map);
|
||||
return success;
|
||||
}else if (eventNewName.equals("沿街晾晒")){
|
||||
List<EventDto> lists = eventMapper.selectByName("'沿街晾晒衣物被单'",page,pageSize);
|
||||
lists.forEach(list ->{
|
||||
list.setEventNewName("沿街晾晒");
|
||||
});
|
||||
Integer integer = eventMapper.selectCountByName("'沿街晾晒衣物被单'");
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("sum",integer);
|
||||
map.put("events",lists);
|
||||
Result success = Result.success(map);
|
||||
return success;
|
||||
}else if (eventNewName.equals("违章停车")){
|
||||
List<EventDto> lists = eventMapper.selectByName("'机动车违停'",page,pageSize);
|
||||
lists.forEach(list ->{
|
||||
list.setEventNewName("违章停车");
|
||||
});
|
||||
Integer integer = eventMapper.selectCountByName("'机动车违停'");
|
||||
Integer integer = keyAreaMapper.selectCountByNameAreaEvent("'街头伞篷','水果和食品摊','地摊','户外桌椅'");
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("sum",integer);
|
||||
map.put("events",lists);
|
||||
|
@ -207,11 +208,11 @@ public class KeyAreaController {
|
|||
}else {
|
||||
StringBuilder str = new StringBuilder(eventNewName);
|
||||
String s = str.insert(0, "'").append("'").toString();
|
||||
List<EventDto> lists = eventMapper.selectByName(s, page, pageSize);
|
||||
List<EventDto> lists = keyAreaMapper.selectByNameAreaEvent(s, page, pageSize);
|
||||
lists.forEach(list ->{
|
||||
list.setEventNewName(list.getEventCnName());
|
||||
});
|
||||
Integer integer = eventMapper.selectCountByName(s);
|
||||
Integer integer = keyAreaMapper.selectCountByNameAreaEvent(s);
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("sum",integer);
|
||||
map.put("events",lists);
|
||||
|
@ -220,5 +221,22 @@ public class KeyAreaController {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询近30天重点区域视频感知事件时间趋势
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("selectMonthAreaEvent")
|
||||
@ApiOperation("查询近30天重点区域视频感知事件时间趋势")
|
||||
public Result selectMonthAreaEvent(){
|
||||
List<KeyAreaDtos> keyAreaDtos = keyAreaMapper.selectMonthAreaEvent();
|
||||
keyAreaDtos.forEach(keyAreaDtos1 -> {
|
||||
if (keyAreaDtos1.getNumber() == null){
|
||||
keyAreaDtos1.setNumber(0);
|
||||
}
|
||||
});
|
||||
Result success = Result.success(keyAreaDtos);
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package com.hisense.monitormanage.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class KeyAreaDtos {
|
||||
|
||||
private String pushTime;
|
||||
|
||||
private Integer number;
|
||||
}
|
|
@ -3,6 +3,7 @@ package com.hisense.monitormanage.mapper;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.hisense.monitormanage.dto.EventDto;
|
||||
import com.hisense.monitormanage.dto.KeyAreaDto;
|
||||
import com.hisense.monitormanage.dto.KeyAreaDtos;
|
||||
import com.hisense.monitormanage.entity.KeyArea;
|
||||
import com.hisense.monitormanage.entity.KeyAreaLocation;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
@ -14,7 +15,9 @@ import java.util.List;
|
|||
@Repository
|
||||
public interface KeyAreaMapper extends BaseMapper<KeyArea> {
|
||||
|
||||
List<KeyAreaDto> selectKeyAreaList(@Param("type") String type,@Param("timeId") String timeId);
|
||||
List<KeyAreaDto> selectKeyAreaList(@Param("type1") String type1,@Param("type2") String type2,@Param("type3") String type3,@Param("timeId") String timeId);
|
||||
|
||||
List<KeyAreaDto> selectKeyArea(@Param("type") String type,@Param("timeId") String timeId);
|
||||
|
||||
@Select("SELECT * FROM t_key_area_location kal JOIN t_key_area ka ON kal.area_id = ka.area_id WHERE ka.area_name = #{areaName}")
|
||||
List<KeyAreaLocation> selectByAreaName(String areaName);
|
||||
|
@ -27,6 +30,16 @@ public interface KeyAreaMapper extends BaseMapper<KeyArea> {
|
|||
@Select("SELECT COUNT(*) FROM t_event te JOIN t_scene_event tse ON te.camera_name = tse.channel_name WHERE te.track_event = 'START' AND tse.scene_id = 2")
|
||||
Integer selectCountAreaEvent();
|
||||
|
||||
@Select("SELECT * FROM t_event te JOIN t_scene_event tse ON te.camera_name = tse.channel_name WHERE te.track_event = 'START' AND tse.scene_id = 2 AND TO_DAYS(te.capture_time) = TO_DAYS(NOW())")
|
||||
List<EventDto> selectByDayAreaEvent();
|
||||
|
||||
List<EventDto> selectByNameAreaEvent(@Param("eventNewName") String eventNewName,@Param("page") Integer page,@Param("pageSize") Integer pageSize);
|
||||
|
||||
@Select("SELECT COUNT(*) FROM t_event te JOIN t_scene_event tse ON te.camera_name = tse.channel_name WHERE te.track_event = 'START' AND tse.scene_id = 2 AND event_cn_name IN (${eventNewName})")
|
||||
Integer selectCountByNameAreaEvent(@Param("eventNewName")String eventNewName);
|
||||
|
||||
List<KeyAreaDtos> selectMonthAreaEvent();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -337,7 +337,7 @@ public class MonitorService{
|
|||
/**
|
||||
* 所有摄像头抓图 sql持续更新
|
||||
*/
|
||||
@Scheduled(cron = "0 15 9 * * ?")
|
||||
@Scheduled(cron = "0 0 6 * * ?")
|
||||
public void CameraScreenshot() {
|
||||
try {
|
||||
log.info("[monitor-capture]: start capture");
|
||||
|
|
|
@ -4,23 +4,141 @@
|
|||
<select id="selectKeyAreaList" resultType="com.hisense.monitormanage.dto.KeyAreaDto">
|
||||
SELECT * FROM
|
||||
(SELECT ka.type,ka.location,ka.service_time,ka.management,ka.scenic_level,
|
||||
ka.about,ka.area_id,ss.area_name,ss.allNums,ss.localNums,ss.nonlocalNums
|
||||
ka.about,ka.area_id,ka.area_name,ss.allNums,ss.localNums,ss.nonlocalNums
|
||||
FROM t_key_area ka LEFT JOIN
|
||||
(SELECT pt.area_name,SUM(pf.all_nums) AS allNums,SUM(pf.local_nums) AS localNums,
|
||||
SUM(pf.nonlocal_nums) AS nonlocalNums
|
||||
FROM t_passenger_flow pf JOIN t_passenger_test pt
|
||||
ON pf.longitude = pt.longitude AND pf.latitude = pt.latitude
|
||||
WHERE pf.time_id = #{timeId} AND pt.type IN (${type}) GROUP BY pt.area_name)
|
||||
ss ON ka.area_name = ss.area_name WHERE ka.type IN (${type})) a
|
||||
WHERE pf.time_id = #{timeId} AND pt.type IN (${type1}) GROUP BY pt.area_name)
|
||||
ss ON ka.area_name = ss.area_name WHERE ka.type IN (${type1})) a
|
||||
LEFT JOIN t_key_area_location kal ON kal.area_id = a.area_id
|
||||
UNION
|
||||
SELECT * FROM
|
||||
(SELECT ka.type,ka.location,ka.service_time,ka.management,ka.scenic_level,
|
||||
ka.about,ka.area_id,ka.area_name,ss.allNums,ss.localNums,ss.nonlocalNums
|
||||
FROM t_key_area ka LEFT JOIN
|
||||
(SELECT pt.area_name,SUM(pf.all_nums) AS allNums,SUM(pf.local_nums) AS localNums,
|
||||
SUM(pf.nonlocal_nums) AS nonlocalNums
|
||||
FROM t_passenger_flow pf JOIN t_passenger_test pt
|
||||
ON pf.longitude = pt.longitude AND pf.latitude = pt.latitude
|
||||
WHERE pf.time_id = #{timeId} AND pt.type IN (${type2}) GROUP BY pt.area_name)
|
||||
ss ON ka.area_name = ss.area_name WHERE ka.type IN (${type2})) a
|
||||
LEFT JOIN t_key_area_location kal ON kal.area_id = a.area_id
|
||||
UNION
|
||||
SELECT * FROM
|
||||
(SELECT ka.type,ka.location,ka.service_time,ka.management,ka.scenic_level,
|
||||
ka.about,ka.area_id,ka.area_name,ss.allNums,ss.localNums,ss.nonlocalNums
|
||||
FROM t_key_area ka LEFT JOIN
|
||||
(SELECT pt.area_name,SUM(pf.all_nums) AS allNums,SUM(pf.local_nums) AS localNums,
|
||||
SUM(pf.nonlocal_nums) AS nonlocalNums
|
||||
FROM t_passenger_flow pf JOIN t_passenger_test pt
|
||||
ON pf.longitude = pt.longitude AND pf.latitude = pt.latitude
|
||||
WHERE pf.time_id = #{timeId} AND pt.type IN (${type3}) GROUP BY pt.area_name)
|
||||
ss ON ka.area_name = ss.area_name WHERE ka.type IN (${type3})) a
|
||||
LEFT JOIN t_key_area_location1 kal1 ON kal1.area_id = a.area_id
|
||||
</select>
|
||||
<select id="selectKeyArea" resultType="com.hisense.monitormanage.dto.KeyAreaDto">
|
||||
SELECT * FROM
|
||||
(SELECT ka.type,ka.location,ka.service_time,ka.management,ka.scenic_level,
|
||||
ka.about,ka.area_id,ka.area_name,ss.allNums,ss.localNums,ss.nonlocalNums
|
||||
FROM t_key_area ka LEFT JOIN
|
||||
(SELECT pt.area_name,SUM(pf.all_nums) AS allNums,SUM(pf.local_nums) AS localNums,
|
||||
SUM(pf.nonlocal_nums) AS nonlocalNums
|
||||
FROM t_passenger_flow pf JOIN t_passenger_test pt
|
||||
ON pf.longitude = pt.longitude AND pf.latitude = pt.latitude
|
||||
WHERE pf.time_id = #{timeId} AND pt.type = #{type} GROUP BY pt.area_name)
|
||||
ss ON ka.area_name = ss.area_name WHERE ka.type = #{type}) a
|
||||
LEFT JOIN t_key_area_location kal ON kal.area_id = a.area_id
|
||||
</select>
|
||||
<select id="selectByAreaEvent" resultType="com.hisense.monitormanage.dto.EventDto">
|
||||
SELECT * FROM t_event te
|
||||
JOIN t_scene_event tse ON te.camera_name = tse.channel_name
|
||||
WHERE te.track_event = 'START' AND tse.scene_id = 2
|
||||
ORDER BY te.capture_time DESC
|
||||
<if test="page!=null and '' != page and pageSize != null and '' != pageSize">
|
||||
<bind name="page" value="(page-1)*pageSize"/>
|
||||
limit #{page},#{pageSize}
|
||||
</if>
|
||||
</select>
|
||||
<select id="selectByNameAreaEvent" resultType="com.hisense.monitormanage.dto.EventDto">
|
||||
SELECT * FROM t_event te
|
||||
JOIN t_scene_event tse ON te.camera_name = tse.channel_name
|
||||
WHERE te.track_event = 'START' AND tse.scene_id = 2 AND event_cn_name IN (${eventNewName})
|
||||
ORDER BY te.capture_time DESC
|
||||
<if test="page!=null and '' != page and pageSize != null and '' != pageSize">
|
||||
<bind name="page" value="(page-1)*pageSize"/>
|
||||
limit #{page},#{pageSize}
|
||||
</if>
|
||||
</select>
|
||||
<select id="selectMonthAreaEvent" resultType="com.hisense.monitormanage.dto.KeyAreaDtos">
|
||||
SELECT b.pushTime,a.number FROM (
|
||||
SELECT date_sub(curdate(), INTERVAL 1 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 2 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 3 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 4 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 5 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 6 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 7 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 8 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 9 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 10 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 11 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 12 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 13 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 14 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 15 day) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 16 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 17 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 18 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 19 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 20 DAY) as pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 21 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 22 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 23 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 24 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 25 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 26 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 27 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 28 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 29 DAY) AS pushTime
|
||||
UNION ALL
|
||||
SELECT date_sub(curdate(), INTERVAL 30 DAY) AS pushTime
|
||||
) b LEFT JOIN (
|
||||
SELECT DATE_FORMAT(te.capture_time,'%Y%-%m-%d') AS pushTime,COUNT(1) AS number
|
||||
FROM t_event te
|
||||
JOIN t_scene_event tse ON te.camera_name = tse.channel_name
|
||||
WHERE te.track_event = 'START' AND tse.scene_id = 2
|
||||
AND DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= DATE(te.capture_time)
|
||||
GROUP BY pushTime) a
|
||||
ON b.pushTime = a.pushTime ORDER BY b.pushTime
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue