Commit bf976b87 authored by zhoushiguang's avatar zhoushiguang

区域概览接口

parent f09fcee1
......@@ -42,7 +42,7 @@ public class CrossIndexController {
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = TBaseCrossInfo.class),
})
public JsonViewObject crossInfoList() {
public JsonViewObject crossInfoList(@RequestParam(defaultValue = "") Integer areaId) {
List<TBaseCrossInfo> baseCrossInfoPOS = crossIndexService.crossInfoList();
return JsonViewObject.newInstance().success(baseCrossInfoPOS);
}
......
......@@ -46,15 +46,14 @@ public class AnalysisProblemAreaDayController {
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@GetMapping(value = "/overview")
@ApiImplicitParams({
@ApiImplicitParam(name = "areaId", value = "区域ID", required = true, dataType = "String", defaultValue = "1"),
@ApiImplicitParam(name = "timeType", value = "事件类型 1:近一个月 2:近一周", required = false, dataType = "int"),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250318"),
@ApiImplicitParam(name = "areaId", value = "区域ID", required = true, dataType = "String", defaultValue = "12"),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250318"),
})
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = AreaProblemOverview.class),
})
public JsonViewObject areaProblemOverview(String timeType, String areaId, String startTime, String endTime) {
public JsonViewObject areaProblemOverview(String areaId, Integer startTime, Integer endTime) {
JsonViewObject jsonView = JsonViewObject.newInstance();
try {
Map<String, Object> map = new HashMap<>();
......@@ -76,14 +75,13 @@ public class AnalysisProblemAreaDayController {
@GetMapping(value = "/trend")
@ApiImplicitParams({
@ApiImplicitParam(name = "areaId", value = "区域ID", required = true, dataType = "String", defaultValue = "1"),
@ApiImplicitParam(name = "timeType", value = "事件类型 1:近一个月 2:近一周", required = false, dataType = "int", defaultValue = ""),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250318"),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250318"),
})
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = AreaProblemTrendAnalysisResult.class),
})
public JsonViewObject trend(String timeType, String areaId) {
public JsonViewObject trend(String areaId, Integer startTime, Integer endTime) {
return JsonViewObject.newInstance().success(null);
}
......@@ -93,16 +91,15 @@ public class AnalysisProblemAreaDayController {
@ApiImplicitParams({
@ApiImplicitParam(name = "eventType", value = "事件代码 701:路口空放 702:路口失衡,703:路口溢出 707:路口拥堵", required = true, dataType = "String", defaultValue = ""),
@ApiImplicitParam(name = "areaId", value = "区域ID", required = true, dataType = "String", defaultValue = "1"),
@ApiImplicitParam(name = "timeType", value = "事件类型 1:近一个月 2:近一周", required = false, dataType = "int", defaultValue = ""),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250318"),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250318"),
})
@GetMapping(value = "/cross-problem-number")
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = AreaCrossProblemAnalysisResult.class),
})
public JsonViewObject crossProblemNumber(String eventType, String timeType, String areaId) {
public JsonViewObject crossProblemNumber(String eventType, String areaId, Integer startTime, Integer endTime) {
return JsonViewObject.newInstance().success(null);
}
......@@ -112,15 +109,14 @@ public class AnalysisProblemAreaDayController {
@ApiImplicitParams({
@ApiImplicitParam(name = "eventType", value = "事件代码 705:干线缓行 706:干线拥堵 ", required = true, dataType = "String", defaultValue = ""),
@ApiImplicitParam(name = "areaId", value = "区域ID", required = true, dataType = "String", defaultValue = "1"),
@ApiImplicitParam(name = "timeType", value = "事件类型 1:近一个月 2:近一周", required = false, dataType = "int", defaultValue = ""),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "String", defaultValue = "20250318"),
@ApiImplicitParam(name = "startTime", value = "开始时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250317"),
@ApiImplicitParam(name = "endTime", value = "结束时间,格式:yyyyMMdd", required = false, dataType = "Integer", defaultValue = "20250318"),
})
@GetMapping(value = "/green-problem-number")
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = AreaGreenProblemAnalysisResult.class),
})
public JsonViewObject greenProblemNumber(String eventType, String timeType, String areaId) {
public JsonViewObject greenProblemNumber(String eventType, String areaId, Integer startTime, Integer endTime) {
return JsonViewObject.newInstance().success(null);
}
......
<?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="net.wanji.opt.dao.mapper.judgeanalysis.AnalysisProblemCrossDayMapper">
<!-- 通用设置 -->
<!-- 通用查询列 -->
<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
</sql>
<!-- 通用条件列 -->
<sql id="AnalysisProblemCrossDayByCondition">
<if test="id!=null and id!=''">
AND id = #{id}
</if>
<if test="areaId!=null and areaId!=''">
AND area_id = #{areaId}
</if>
<if test="eventCategory!=null and eventCategory!=''">
AND event_category = #{eventCategory}
</if>
<if test="eventType!=null and eventType!=''">
AND event_type = #{eventType}
</if>
<if test="eventNumber!=null and eventNumber!=''">
AND event_number = #{eventNumber}
</if>
<if test="eventTotalTime!=null and eventTotalTime!=''">
AND event_total_time = #{eventTotalTime}
</if>
<if test="windowStartTime!=null">
AND window_start_time = #{windowStartTime}
</if>
<if test="windowEndTime!=null">
AND window_end_time = #{windowEndTime}
</if>
<if test="crossId!=null and crossId!=''">
AND cross_id = #{crossId}
</if>
<if test="dt!=null and dt!=''">
AND dt = #{dt}
</if>
<if test="insertTime!=null">
AND insert_time = #{insertTime}
</if>
</sql>
<!-- 通用设置列 -->
<sql id="AnalysisProblemCrossDaySetColumns">
<if test="areaId!=null and areaId!=''">
area_id = #{areaId},
</if>
<if test="eventCategory!=null and eventCategory!=''">
event_category = #{eventCategory},
</if>
<if test="eventType!=null and eventType!=''">
event_type = #{eventType},
</if>
<if test="eventNumber!=null and eventNumber!=''">
event_number = #{eventNumber},
</if>
<if test="eventTotalTime!=null and eventTotalTime!=''">
event_total_time = #{eventTotalTime},
</if>
<if test="windowStartTime!=null">
window_start_time = #{windowStartTime},
</if>
<if test="windowEndTime!=null">
window_end_time = #{windowEndTime},
</if>
<if test="crossId!=null and crossId!=''">
cross_id = #{crossId},
</if>
<if test="dt!=null and dt!=''">
dt = #{dt},
</if>
<if test="insertTime!=null">
insert_time = #{insertTime},
</if>
</sql>
<!-- 通用查询映射结果 -->
<resultMap id="AnalysisProblemCrossDayMap" type="net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay">
<id column="id" property="id"/>
<result column="area_id" property="areaId"/>
<result column="event_category" property="eventCategory"/>
<result column="event_type" property="eventType"/>
<result column="event_number" property="eventNumber"/>
<result column="event_total_time" property="eventTotalTime"/>
<result column="window_start_time" property="windowStartTime"/>
<result column="window_end_time" property="windowEndTime"/>
<result column="cross_id" property="crossId"/>
<result column="dt" property="dt"/>
<result column="insert_time" property="insertTime"/>
</resultMap>
<!-- 查询表t_analysis_problem_cross_day所有信息 -->
<select id="findAllAnalysisProblemCrossDay" resultMap="AnalysisProblemCrossDayMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_analysis_problem_cross_day
</select>
<!-- 根据主键id查询表t_analysis_problem_cross_day信息 -->
<select id="findAnalysisProblemCrossDayByid" resultMap="AnalysisProblemCrossDayMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_analysis_problem_cross_day
WHERE id=#{id}
</select>
<!-- 根据条件查询表t_analysis_problem_cross_day信息 -->
<select id="findAnalysisProblemCrossDayByCondition" resultMap="AnalysisProblemCrossDayMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_analysis_problem_cross_day
WHERE 1=1
<include refid="AnalysisProblemCrossDayByCondition" />
</select>
<!-- 根据主键id删除表t_analysis_problem_cross_day信息 -->
<delete id="deleteAnalysisProblemCrossDayByid">
DELETE FROM
t_analysis_problem_cross_day
WHERE id=#{id}
</delete>
<!-- 根据主键id更新表t_analysis_problem_cross_day信息 -->
<update id="updateAnalysisProblemCrossDayByid" parameterType="net.wanji.opt.entity.judgeanalysis.AnalysisProblemCrossDay">
UPDATE t_analysis_problem_cross_day
<set>
<include refid="AnalysisProblemCrossDaySetColumns"/>
</set>
WHERE
id=#{id}
</update>
<!-- 新增表t_analysis_problem_cross_day信息 -->
<insert id="addAnalysisProblemCrossDay">
INSERT INTO t_analysis_problem_cross_day (
id
,area_id
,event_category
,event_type
,event_number
,event_total_time
,window_start_time
,window_end_time
,cross_id
,dt
,insert_time
) VALUES (
#{id}
,#{areaId}
,#{eventCategory}
,#{eventType}
,#{eventNumber}
,#{eventTotalTime}
,#{windowStartTime}
,#{windowEndTime}
,#{crossId}
,#{dt}
,#{insertTime}
)
</insert>
</mapper>
<?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="net.wanji.opt.dao.mapper.judgeanalysis.AnalysisProblemGreenDayMapper">
<!-- 通用设置 -->
<!-- 通用查询列 -->
<sql id="Base_Column_List">
id, area_id, event_category, event_type, event_number, event_total_time, window_start_time, window_end_time, green_id, dt, insert_time
</sql>
<!-- 通用条件列 -->
<sql id="AnalysisProblemGreenDayByCondition">
<if test="id!=null and id!=''">
AND id = #{id}
</if>
<if test="areaId!=null and areaId!=''">
AND area_id = #{areaId}
</if>
<if test="eventCategory!=null and eventCategory!=''">
AND event_category = #{eventCategory}
</if>
<if test="eventType!=null and eventType!=''">
AND event_type = #{eventType}
</if>
<if test="eventNumber!=null and eventNumber!=''">
AND event_number = #{eventNumber}
</if>
<if test="eventTotalTime!=null and eventTotalTime!=''">
AND event_total_time = #{eventTotalTime}
</if>
<if test="windowStartTime!=null">
AND window_start_time = #{windowStartTime}
</if>
<if test="windowEndTime!=null">
AND window_end_time = #{windowEndTime}
</if>
<if test="greenId!=null and greenId!=''">
AND green_id = #{greenId}
</if>
<if test="dt!=null and dt!=''">
AND dt = #{dt}
</if>
<if test="insertTime!=null">
AND insert_time = #{insertTime}
</if>
</sql>
<!-- 通用设置列 -->
<sql id="AnalysisProblemGreenDaySetColumns">
<if test="areaId!=null and areaId!=''">
area_id = #{areaId},
</if>
<if test="eventCategory!=null and eventCategory!=''">
event_category = #{eventCategory},
</if>
<if test="eventType!=null and eventType!=''">
event_type = #{eventType},
</if>
<if test="eventNumber!=null and eventNumber!=''">
event_number = #{eventNumber},
</if>
<if test="eventTotalTime!=null and eventTotalTime!=''">
event_total_time = #{eventTotalTime},
</if>
<if test="windowStartTime!=null">
window_start_time = #{windowStartTime},
</if>
<if test="windowEndTime!=null">
window_end_time = #{windowEndTime},
</if>
<if test="greenId!=null and greenId!=''">
green_id = #{greenId},
</if>
<if test="dt!=null and dt!=''">
dt = #{dt},
</if>
<if test="insertTime!=null">
insert_time = #{insertTime},
</if>
</sql>
<!-- 通用查询映射结果 -->
<resultMap id="AnalysisProblemGreenDayMap" type="net.wanji.opt.entity.judgeanalysis.AnalysisProblemGreenDay">
<id column="id" property="id"/>
<result column="area_id" property="areaId"/>
<result column="event_category" property="eventCategory"/>
<result column="event_type" property="eventType"/>
<result column="event_number" property="eventNumber"/>
<result column="event_total_time" property="eventTotalTime"/>
<result column="window_start_time" property="windowStartTime"/>
<result column="window_end_time" property="windowEndTime"/>
<result column="green_id" property="greenId"/>
<result column="dt" property="dt"/>
<result column="insert_time" property="insertTime"/>
</resultMap>
<!-- 查询表t_analysis_problem_green_day所有信息 -->
<select id="findAllAnalysisProblemGreenDay" resultMap="AnalysisProblemGreenDayMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_analysis_problem_green_day
</select>
<!-- 根据主键id查询表t_analysis_problem_green_day信息 -->
<select id="findAnalysisProblemGreenDayByid" resultMap="AnalysisProblemGreenDayMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_analysis_problem_green_day
WHERE id=#{id}
</select>
<!-- 根据条件查询表t_analysis_problem_green_day信息 -->
<select id="findAnalysisProblemGreenDayByCondition" resultMap="AnalysisProblemGreenDayMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_analysis_problem_green_day
WHERE 1=1
<include refid="AnalysisProblemGreenDayByCondition" />
</select>
<!-- 根据主键id删除表t_analysis_problem_green_day信息 -->
<delete id="deleteAnalysisProblemGreenDayByid">
DELETE FROM
t_analysis_problem_green_day
WHERE id=#{id}
</delete>
<!-- 根据主键id更新表t_analysis_problem_green_day信息 -->
<update id="updateAnalysisProblemGreenDayByid" parameterType="net.wanji.opt.entity.judgeanalysis.AnalysisProblemGreenDay">
UPDATE t_analysis_problem_green_day
<set>
<include refid="AnalysisProblemGreenDaySetColumns"/>
</set>
WHERE
id=#{id}
</update>
<!-- 新增表t_analysis_problem_green_day信息 -->
<insert id="addAnalysisProblemGreenDay">
INSERT INTO t_analysis_problem_green_day (
id
,area_id
,event_category
,event_type
,event_number
,event_total_time
,window_start_time
,window_end_time
,green_id
,dt
,insert_time
) VALUES (
#{id}
,#{areaId}
,#{eventCategory}
,#{eventType}
,#{eventNumber}
,#{eventTotalTime}
,#{windowStartTime}
,#{windowEndTime}
,#{greenId}
,#{dt}
,#{insertTime}
)
</insert>
</mapper>
......@@ -41,7 +41,7 @@ public class BaseAreaInfoServiceImpl implements BaseAreaInfoService {
List<BaseAreaInfoPO> list = baseAreaInfoMapper.selectByType(type);
if (list.size() > 0){
list.stream().forEach(item ->{
List<BaseAreaInfoPO> areaInfoPOList = baseAreaInfoMapper.selectListByParentCode(item.getId());
List<BaseAreaInfoPO> areaInfoPOList = baseAreaInfoMapper.selectByParentCode(item.getId());
if (areaInfoPOList.size() > 0){
item.setAreaInfoPOList(areaInfoPOList);
}
......
......@@ -220,21 +220,34 @@
</select>
<select id="selectCountByType" parameterType="map" resultMap="AnalysisProblemCrossDayMap">
SELECT COUNT(tapcd.id) as countNumber,
SELECT sum(event_number) as event_number,
tapcd.event_type,
tec.label as typeName
FROM t_analysis_problem_cross_day tapcd
LEFT JOIN t_config_event_category tec ON tapcd.event_type = tec.event_type
WHERE
1 = 1
<if test="startTime != null and startTime != ''">
and DATE_FORMAT( tapcd.insert_time, '%Y%m%d' ) BETWEEN #{startTime} AND #{endTime}
<if test="startTime != null and endTime != ''">
and dt >= #{startTime} AND dt &lt; #{endTime}
</if>
<if test="startTime == null or startTime == ''">
and DATE_FORMAT(tapcd.insert_time, '%Y%m%d') BETWEEN DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 8 DAY), '%Y%m%d')
AND DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%Y%m%d')
<if test="areaId != null and areaId != ''">
and tapcd.area_id = #{areaId}
</if>
GROUP BY tapcd.event_type
union
SELECT sum(event_number) as event_number,
tapcd.event_type,
tec.label as typeName
FROM t_analysis_problem_green_day tapcd
LEFT JOIN t_config_event_category tec ON tapcd.event_type = tec.event_type
WHERE
1 = 1
<if test="startTime != null and endTime != ''">
and dt >= #{startTime} AND dt &lt; #{endTime}
</if>
<if test="areaId != null and areaId != ''">
and tapcd.area_id = #{areaId}
</if>
and tapcd.area_id = #{areaId}
GROUP BY tapcd.event_type
</select>
......
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