Browse Source

感知统计相关接口

develop
zhao-meiyu 1 year ago
parent
commit
7b53f23f0b
  1. 30
      zc-business/src/main/java/com/zc/business/controller/DCPerceivedEventsWarningController.java
  2. 8
      zc-business/src/main/java/com/zc/business/mapper/DcPerceivedEventsWarningMapper.java
  3. 6
      zc-business/src/main/java/com/zc/business/service/IDCPerceivedEventsWarningService.java
  4. 38
      zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java
  5. 55
      zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml

30
zc-business/src/main/java/com/zc/business/controller/DCPerceivedEventsWarningController.java

@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author 王思祥 * @author 王思祥
@ -37,7 +38,15 @@ public class DCPerceivedEventsWarningController extends BaseController {
public AjaxResult getEvenTypeList(){ public AjaxResult getEvenTypeList(){
return AjaxResult.success(perceivedEventsWarningService.selectEventTypeList()); return AjaxResult.success(perceivedEventsWarningService.selectEventTypeList());
} }
//感知事件详情
@PostMapping("/getWarningById")
public AjaxResult getWarningById(@RequestBody DcWarning dcWarning){
Long id = dcWarning.getId();
if (id==null){
return AjaxResult.error("参数错误");
}
return AjaxResult.success(perceivedEventsWarningService.selectWarningById(id));
}
//根据类型和状态查询预计事件 //根据类型和状态查询预计事件
@PostMapping("/perceivedEventsList") @PostMapping("/perceivedEventsList")
public TableDataInfo getPerceivedEventsList(@RequestBody DcWarning dcWarning){ public TableDataInfo getPerceivedEventsList(@RequestBody DcWarning dcWarning){
@ -68,7 +77,12 @@ public class DCPerceivedEventsWarningController extends BaseController {
//按事件源统计感知事件统计信息 //按事件源统计感知事件统计信息
@PostMapping("/warningSourceGroup") @PostMapping("/warningSourceGroup")
public AjaxResult getWarningSourceGroup(){ public AjaxResult getWarningSourceGroup(){
return AjaxResult.success(perceivedEventsWarningService.selectWarningSourceGroup()); HashMap<Object, Object> map = new HashMap<>();
List<HashMap<String, Object>> mapList = perceivedEventsWarningService.selectWarningSourceGroup();
String total = perceivedEventsWarningService.selectWarningSourceGroupCount();
map.put("warningSourceList",mapList);
map.put("total",total);
return AjaxResult.success(map);
} }
//当日感知事件的处置情况占比 //当日感知事件的处置情况占比
@PostMapping("/warningStateDay") @PostMapping("/warningStateDay")
@ -96,6 +110,7 @@ public class DCPerceivedEventsWarningController extends BaseController {
//某一路段某一时间段的感知事件类型占比 //某一路段某一时间段的感知事件类型占比
@PostMapping("/warningSectionType") @PostMapping("/warningSectionType")
public AjaxResult getWarningSectionType(@RequestBody DcWarning dcWarning){ public AjaxResult getWarningSectionType(@RequestBody DcWarning dcWarning){
HashMap<String, Object> map = new HashMap<>();
String type = dcWarning.getType();//类型 String type = dcWarning.getType();//类型
String sectionId = dcWarning.getSectionId();//路段辖区id String sectionId = dcWarning.getSectionId();//路段辖区id
Date createTime = dcWarning.getCreateTime();//时间参数,参数根据类型配置,比如2022年,传值2022-00-00 00:00:00 Date createTime = dcWarning.getCreateTime();//时间参数,参数根据类型配置,比如2022年,传值2022-00-00 00:00:00
@ -103,7 +118,16 @@ public class DCPerceivedEventsWarningController extends BaseController {
if (StringUtils.isBlank(type)||StringUtils.isBlank(sectionId)||createTime==null||StringUtils.isBlank(direction)){ if (StringUtils.isBlank(type)||StringUtils.isBlank(sectionId)||createTime==null||StringUtils.isBlank(direction)){
return AjaxResult.error("参数数据异常"); return AjaxResult.error("参数数据异常");
} }
return AjaxResult.success(perceivedEventsWarningService.selectWarningSectionType(dcWarning)); if (type.equals("quarter")) {
List<HashMap<String, Object>> total = perceivedEventsWarningService.selectWarningSectionTypeCountQuarter(dcWarning);
map.put("total",total);
} else {
String total = perceivedEventsWarningService.selectWarningSectionTypeCount(dcWarning);
map.put("total",total);
}
List<HashMap<String, Object>> mapList = perceivedEventsWarningService.selectWarningSectionType(dcWarning);
map.put("warningTypeList",mapList);
return AjaxResult.success(map);
} }
//查询某个路段下的全部桩号 //查询某个路段下的全部桩号
@PostMapping("/sectionMarkNumber") @PostMapping("/sectionMarkNumber")

8
zc-business/src/main/java/com/zc/business/mapper/DcPerceivedEventsWarningMapper.java

@ -20,7 +20,8 @@ public interface DcPerceivedEventsWarningMapper {
//感知事件类型 //感知事件类型
List<DcEventType> selectEventTypeList(); List<DcEventType> selectEventTypeList();
//感知事件详情
DcWarning selectWarningById(Long id);
//根据类型查询预计事件 //根据类型查询预计事件
List<DcWarning> selectPerceivedEventsList(DcWarning dcWarning); List<DcWarning> selectPerceivedEventsList(DcWarning dcWarning);
//查询感知数量按照路段进行排名 //查询感知数量按照路段进行排名
@ -33,6 +34,7 @@ public interface DcPerceivedEventsWarningMapper {
List<HashMap<String,Object>> selectDailyCumulativeMonth(); List<HashMap<String,Object>> selectDailyCumulativeMonth();
//按事件源统计感知事件统计信息 //按事件源统计感知事件统计信息
List<HashMap<String,Object>> selectWarningSourceGroup(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningSourceGroup(DcWarning dcWarning);
String selectWarningSourceGroupCount(DcWarning dcWarning);
//当日感知事件的处置情况占比 //当日感知事件的处置情况占比
List<HashMap<String,Object>> selectWarningStateDay(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningStateDay(DcWarning dcWarning);
//感知事件类型占比 //感知事件类型占比
@ -47,12 +49,16 @@ public interface DcPerceivedEventsWarningMapper {
List<HashMap<String,Object>> selectWarningTrendYear(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningTrendYear(DcWarning dcWarning);
//感知事件某路段类型日占比 //感知事件某路段类型日占比
List<HashMap<String,Object>> selectWarningSectionTypeDay(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningSectionTypeDay(DcWarning dcWarning);
String selectWarningSectionTypeDayCount(DcWarning dcWarning);
//感知事件某路段类型月占比 //感知事件某路段类型月占比
List<HashMap<String,Object>> selectWarningSectionTypeMonth(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningSectionTypeMonth(DcWarning dcWarning);
String selectWarningSectionTypeMonthCount(DcWarning dcWarning);
//感知事件某路段类型季占比 //感知事件某路段类型季占比
List<HashMap<String,Object>> selectWarningSectionTypeQuarter(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningSectionTypeQuarter(DcWarning dcWarning);
List<HashMap<String,Object>> selectWarningSectionTypeQuarterCount(DcWarning dcWarning);
//感知事件某路段类型年占比 //感知事件某路段类型年占比
List<HashMap<String,Object>> selectWarningSectionTypeYear(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningSectionTypeYear(DcWarning dcWarning);
String selectWarningSectionTypeYearCount(DcWarning dcWarning);
//查询某个路段下的全部桩号 //查询某个路段下的全部桩号
List<HashMap<String,Object>> selectSectionMark(DcWarning dcWarning); List<HashMap<String,Object>> selectSectionMark(DcWarning dcWarning);
//根据桩号查询条数 //根据桩号查询条数

6
zc-business/src/main/java/com/zc/business/service/IDCPerceivedEventsWarningService.java

@ -14,6 +14,8 @@ import java.util.List;
public interface IDCPerceivedEventsWarningService { public interface IDCPerceivedEventsWarningService {
//查询预警表所有感知事件的数量 //查询预警表所有感知事件的数量
HashMap<String,Object> perceivedEventsWarningNum(); HashMap<String,Object> perceivedEventsWarningNum();
//感知事件详情
DcWarning selectWarningById(Long id);
//感知事件类型 //感知事件类型
List<DcEventType> selectEventTypeList(); List<DcEventType> selectEventTypeList();
@ -29,6 +31,7 @@ public interface IDCPerceivedEventsWarningService {
List<HashMap<String,Object>> selectDailyCumulativeMonth(); List<HashMap<String,Object>> selectDailyCumulativeMonth();
//按事件源统计感知事件统计信息 //按事件源统计感知事件统计信息
List<HashMap<String,Object>> selectWarningSourceGroup(); List<HashMap<String,Object>> selectWarningSourceGroup();
String selectWarningSourceGroupCount();
//当日感知事件的处置情况占比 //当日感知事件的处置情况占比
List<HashMap<String,Object>> selectWarningStateDay(); List<HashMap<String,Object>> selectWarningStateDay();
//感知事件类型占比 //感知事件类型占比
@ -37,6 +40,8 @@ public interface IDCPerceivedEventsWarningService {
List<HashMap<String,Object>> selectWarningTrend(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningTrend(DcWarning dcWarning);
//感知事件某路段类型占比 //感知事件某路段类型占比
List<HashMap<String,Object>> selectWarningSectionType(DcWarning dcWarning); List<HashMap<String,Object>> selectWarningSectionType(DcWarning dcWarning);
String selectWarningSectionTypeCount(DcWarning dcWarning);
List<HashMap<String,Object>> selectWarningSectionTypeCountQuarter(DcWarning dcWarning);
//查询某个路段下的全部桩号 //查询某个路段下的全部桩号
List<HashMap<String,Object>> selectSectionMark(DcWarning dcWarning); List<HashMap<String,Object>> selectSectionMark(DcWarning dcWarning);
//预警事件,事件列表 查询状态为上报的感知事件 //预警事件,事件列表 查询状态为上报的感知事件
@ -46,4 +51,5 @@ public interface IDCPerceivedEventsWarningService {
} }

38
zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java

@ -40,6 +40,12 @@ public class DcPerceivedEventsWarningServiceImpl implements IDCPerceivedEventsWa
map.put("number",number); map.put("number",number);
return map; return map;
} }
@Override
public DcWarning selectWarningById(Long id) {
return perceivedEventsWarningMapper.selectWarningById(id);
}
//感知事件类型 //感知事件类型
@Override @Override
public List<DcEventType> selectEventTypeList() { public List<DcEventType> selectEventTypeList() {
@ -87,6 +93,15 @@ public class DcPerceivedEventsWarningServiceImpl implements IDCPerceivedEventsWa
dcWarning.setCreateTime(nowDate); dcWarning.setCreateTime(nowDate);
return perceivedEventsWarningMapper.selectWarningSourceGroup(dcWarning); return perceivedEventsWarningMapper.selectWarningSourceGroup(dcWarning);
} }
@Override
public String selectWarningSourceGroupCount() {
DcWarning dcWarning = new DcWarning();
Date nowDate = DateUtils.getNowDate();
dcWarning.setCreateTime(nowDate);
return perceivedEventsWarningMapper.selectWarningSourceGroupCount(dcWarning);
}
//当日感知事件的处置情况占比 //当日感知事件的处置情况占比
@Override @Override
public List<HashMap<String, Object>> selectWarningStateDay() { public List<HashMap<String, Object>> selectWarningStateDay() {
@ -138,6 +153,29 @@ public class DcPerceivedEventsWarningServiceImpl implements IDCPerceivedEventsWa
return null; return null;
} }
} }
@Override
public String selectWarningSectionTypeCount(DcWarning dcWarning) {
String type = dcWarning.getType();
switch (type){
case "day":
return perceivedEventsWarningMapper.selectWarningSectionTypeDayCount(dcWarning);
case "month":
return perceivedEventsWarningMapper.selectWarningSectionTypeMonthCount(dcWarning);
case "year":
return perceivedEventsWarningMapper.selectWarningSectionTypeYearCount(dcWarning);
}
return null;
}
@Override
public List<HashMap<String,Object>> selectWarningSectionTypeCountQuarter(DcWarning dcWarning) {
if (dcWarning.getType().equals("quarter")==false){
return null;
}
return perceivedEventsWarningMapper.selectWarningSectionTypeQuarterCount(dcWarning);
}
//查询某个路段下的全部桩号 //查询某个路段下的全部桩号
@Override @Override
public List<HashMap<String, Object>> selectSectionMark(DcWarning dcWarning) { public List<HashMap<String, Object>> selectSectionMark(DcWarning dcWarning) {

55
zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml

@ -13,7 +13,17 @@
<select id="selectEventTypeList" resultType="com.zc.business.domain.DcEventType"> <select id="selectEventTypeList" resultType="com.zc.business.domain.DcEventType">
select event_type, event_name from dc_event_type select event_type, event_name from dc_event_type
</select> </select>
<select id="selectWarningById" resultType="com.zc.business.domain.DcWarning">
SELECT warning.`id`,warning.`stake_mark`, warning.`direction`,
mark.longitude,mark.latitude,warning.lane,
warning.`dept_id`,warning.`warning_state`,warning.`warning_time`,
warning.`user_id`, warning.`warning_source`,warning.`warning_level`,
warning.`remark`, warning.`create_time`,warning.`update_time`,
warning.`warning_type`,warning.`warning_subclass`,warning.`warning_title`,
warning.`other_config` FROM dc_warning AS warning
LEFT JOIN dc_stake_mark AS mark ON mark.stake_mark=warning.stake_mark
where warning.`id`=#{id}
</select>
<select id="selectPerceivedEventsList" resultType="com.zc.business.domain.DcWarning"> <select id="selectPerceivedEventsList" resultType="com.zc.business.domain.DcWarning">
SELECT warning.`id`,warning.`stake_mark`, warning.`direction`, SELECT warning.`id`,warning.`stake_mark`, warning.`direction`,
mark.longitude,mark.latitude,warning.lane, mark.longitude,mark.latitude,warning.lane,
@ -63,6 +73,10 @@
where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
GROUP BY warning_source GROUP BY warning_source
</select> </select>
<select id="selectWarningSourceGroupCount" resultType="java.lang.String">
SELECT COUNT(*) AS number FROM dc_warning
where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
</select>
<select id="selectWarningStateDay" resultType="java.util.HashMap"> <select id="selectWarningStateDay" resultType="java.util.HashMap">
SELECT warning_state warningState,COUNT(*) AS number FROM dc_warning SELECT warning_state warningState,COUNT(*) AS number FROM dc_warning
where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
@ -119,6 +133,13 @@
and DATE_FORMAT(warning.create_time,'%Y')=DATE_FORMAT(#{createTime},'%Y') and DATE_FORMAT(warning.create_time,'%Y')=DATE_FORMAT(#{createTime},'%Y')
GROUP BY month GROUP BY month
</select> </select>
<select id="selectWarningSectionTypeDayCount" resultType="java.lang.String">
SELECT COUNT(*) AS number FROM dc_warning as warning
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.stake_mark
where DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId}
</select>
<select id="selectWarningSectionTypeDay" resultType="java.util.HashMap"> <select id="selectWarningSectionTypeDay" resultType="java.util.HashMap">
SELECT warning.warning_type warningType, SELECT warning.warning_type warningType,
COUNT(*) AS number COUNT(*) AS number
@ -130,6 +151,13 @@
GROUP BY warning_type GROUP BY warning_type
ORDER BY number DESC ORDER BY number DESC
</select> </select>
<select id="selectWarningSectionTypeMonthCount" resultType="java.lang.String">
SELECT COUNT(*) AS number FROM dc_warning as warning
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.stake_mark
where DATE_FORMAT(warning.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m')
AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId}
</select>
<select id="selectWarningSectionTypeMonth" resultType="java.util.HashMap"> <select id="selectWarningSectionTypeMonth" resultType="java.util.HashMap">
SELECT warning.warning_type warningType,COUNT(*) AS number SELECT warning.warning_type warningType,COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
@ -140,6 +168,21 @@
GROUP BY warning_type GROUP BY warning_type
ORDER BY number DESC ORDER BY number DESC
</select> </select>
<select id="selectWarningSectionTypeQuarterCount" resultType="hashmap">
SELECT
CASE
WHEN MONTH(warning.create_time) BETWEEN 1 AND 3 THEN '第一季度'
WHEN MONTH(warning.create_time) BETWEEN 4 AND 6 THEN '第二季度'
WHEN MONTH(warning.create_time) BETWEEN 7 AND 9 THEN '第三季度'
ELSE '第四季度'
END AS QUARTER,COUNT(*) AS number
FROM dc_warning as warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
WHERE YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y')
AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId}
GROUP BY QUARTER
</select>
<select id="selectWarningSectionTypeQuarter" resultType="java.util.HashMap"> <select id="selectWarningSectionTypeQuarter" resultType="java.util.HashMap">
SELECT SELECT
CASE CASE
@ -158,6 +201,13 @@
GROUP BY QUARTER, warningType GROUP BY QUARTER, warningType
ORDER BY QUARTER; ORDER BY QUARTER;
</select> </select>
<select id="selectWarningSectionTypeYearCount" resultType="java.lang.String">
SELECT COUNT(*) AS number FROM dc_warning as warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
where mark.`section_id`=#{sectionId} AND warning.direction=#{direction}
and DATE_FORMAT(warning.create_time,'%Y')=DATE_FORMAT(#{createTime},'%Y')
</select>
<select id="selectWarningSectionTypeYear" resultType="java.util.HashMap"> <select id="selectWarningSectionTypeYear" resultType="java.util.HashMap">
SELECT warning.warning_type warningType, COUNT(*) AS number SELECT warning.warning_type warningType, COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
@ -231,4 +281,7 @@
GROUP BY QUARTER GROUP BY QUARTER
ORDER BY QUARTER; ORDER BY QUARTER;
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save