Commit 84a42920 authored by zhoushiguang's avatar zhoushiguang

路口事件问题分析计算

parent 1b2afdd4
......@@ -72,7 +72,15 @@ public class AnalysisProblemCrossDay implements Serializable {
*/
private LocalDateTime insertTime;
private String seriousTimeSpan;
private Integer seriousDuration;
private String timeSpanList;
private Integer weekDay;
private Integer yearWeek;
/***非数据库字段****/
//类型名称
......@@ -80,4 +88,7 @@ public class AnalysisProblemCrossDay implements Serializable {
//数量统计
private String countNumber;
}
......@@ -5,7 +5,7 @@
<!-- 通用设置 -->
<!-- 通用查询列 -->
<sql id="Base_Column_List">
id, area_id, event_category, event_type, event_number, event_total_time, window_start_time, window_end_time, cross_id, dt, insert_time
id, area_id, event_category, event_type, event_number, event_total_time, window_start_time, window_end_time, cross_id, dt, insert_time,serious_time_span,serious_duration,time_span_list,week_day,year_week
</sql>
<!-- 通用条件列 -->
......@@ -92,6 +92,12 @@
<result column="cross_id" property="crossId"/>
<result column="dt" property="dt"/>
<result column="insert_time" property="insertTime"/>
<result column="serious_time_span" property="seriousTimeSpan"/>
<result column="serious_duration" property="seriousDuration"/>
<result column="time_span_list" property="timeSpanList"/>
<result column="week_day" property="weekDay"/>
<result column="year_week" property="yearWeek"/>
</resultMap>
<!-- 通用查询映射结果 -->
......@@ -203,13 +209,38 @@
<!-- 新增表t_analysis_problem_cross_day信息 -->
<insert id="insertAnalysisProblemCrossDay">
insert into t_analysis_problem_cross_day (id,cross_id,area_id,event_category,event_type,event_number,event_total_time,dt,insert_time)
<!-- 先设置会话级group_conct的最大长度 -->
SET SESSION group_concat_max_len = 1048576;
insert into t_analysis_problem_cross_day (id,cross_id,area_id,event_category,event_type,event_number,event_total_time,dt,insert_time,
serious_time_span,serious_duration,time_span_list,week_day,year_week)
select UUID(), a.cross_id, b.area_id,a.category,a.type,count(1) as event_number , sum( TIMESTAMPDIFF(SECOND, a.start_time , a.end_time) ) as duration ,
DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 DAY),'%Y%m%d') as dt , now()
DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 DAY),'%Y%m%d') as dt , now(),
SUBSTRING_INDEX(
GROUP_CONCAT(
CONCAT(
date_format(a.start_time,'%H:%i:%s'),
'~',
CONCAT(date_format(a.end_time,'%H:%i:%s'))
)
ORDER BY TIMESTAMPDIFF( SECOND, a.start_time, a.end_time ) desc
)
,',',1) as serious_time_span,
max(TIMESTAMPDIFF( SECOND, a.start_time, a.end_time )) as serious_duration,
GROUP_CONCAT(CONCAT(
date_format(a.start_time,'%H:%i:%s'),
'~',
CONCAT(date_format(a.end_time,'%H:%i:%s'))
)
) time_span_list,
(WEEKDAY(start_time)+1) week_day,
concat(year(start_time),'',(week(start_time)+1)) year_week
from t_event_info a
left join t_base_cross_info b on a.cross_id = b.id
where DATE_FORMAT(a.start_time,'%Y-%m-%d') = DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 DAY),'%Y-%m-%d') and a.type in (701,702,703,707)
where dt = DATE_FORMAT(DATE_SUB(now(),INTERVAL 1 DAY),'%Y%m%d') and a.type in (701,702,703,707)
group by a.cross_id, b.area_id,a.category,a.type
ON DUPLICATE KEY UPDATE
id=VALUES(id),
cross_id=VALUES(cross_id),
......@@ -221,10 +252,15 @@
window_start_time=VALUES(window_start_time),
window_end_time=VALUES(window_end_time),
dt=VALUES(dt),
insert_time=VALUES(insert_time)
</insert>
insert_time=VALUES(insert_time),
serious_time_span=VALUES(serious_time_span),
serious_duration=VALUES(serious_duration),
time_span_list=VALUES(time_span_list),
week_day=VALUES(week_day),
year_week=VALUES(year_week)
</insert>
<!-- 新增表t_analysis_problem_cross_dir_hour信息 -->
<!-- 新增表t_analysis_problem_cross_dir_hour信息 -->
<insert id="insertAnalysisProblemCrossHour">
insert into t_analysis_problem_cross_dir_hour (id,cross_id,area_id,event_category,event_type,dir,event_number,event_total_time,window_start_time,window_end_time,dt,insert_time)
select uuid(), d.cross_id, e.area_id,d.category,d.type,d.dir,count(1) as event_number , sum( TIMESTAMPDIFF(SECOND, d.start_time , d.end_time) ) as duration ,
......
/**
*
*/
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import net.wanji.opt.SignalOptimizeApplication;
import net.wanji.opt.dao.mapper.judgeanalysis.AnalysisProblemCrossDayMapper;
import net.wanji.opt.task.AnalysisProblemDayTask;
import net.wanji.opt.task.OptimizeStatisticTask;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
/**
* @author fengyi
* @date
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SignalOptimizeApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class AnalysisProblemDayTaskTest {
@Autowired
private AnalysisProblemCrossDayMapper analysisProblemCrossDayMapper;
@Test
public void testProducerTrack() {
long st = System.currentTimeMillis();
analysisProblemCrossDayMapper.insertAnalysisProblemCrossDay();
long et = System.currentTimeMillis();
System.out.println((et-st)+"ms");
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment