Commit c6314d4e authored by duanruiming's avatar duanruiming

[add] 路口告警推送kafka

parent 68e7a695
package net.wanji.utc.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author duanruiming
* @date 2024/12/30 20:31
*/
@Data
public class LightStatusAlarmDTO {
@ApiModelProperty(value = "路口编号")
private String crossId;
@ApiModelProperty(value = "返回信息")
private String commandMsg;
@ApiModelProperty(value = "优化结果:1-成功 2-失败 3-自动任务解锁失败")
private Integer commandResult;
@ApiModelProperty(value = "自动任务解锁失败次数")
private Integer count;
@ApiModelProperty(value = "在线状态 0-离线 1-在线")
private Integer status;
@ApiModelProperty(value = "运行模式 `2=手动锁定当前相位`,`3=手动全红`,`4=手动黄闪`,`5=手动关灯`," +
"`6=全红闪控制`,`7=全黄控制`,`8=正常按计划运行`,`9=手动步进控制`,`10=自动步进控制`,`11=恢复时间表`," +
"`20=单点自适应控制`,`21=绿波协调`,`31=手动控制`,`255=临时控制方案`")
private String runMode;
@ApiModelProperty(value = "信号机时间")
private String machineTimestamp;
@ApiModelProperty(value = "请求操作时间")
private Date requestTime;
@ApiModelProperty(value = "请求操作时间")
private Date dbTime;
}
...@@ -130,26 +130,26 @@ public class SignalStatusTask { ...@@ -130,26 +130,26 @@ public class SignalStatusTask {
// 添加在线离线逻辑 // 添加在线离线逻辑
// 0-离线 1-在线 // 0-离线 1-在线
SignalCommandLogPO signalCommandLogPO = new SignalCommandLogPO(); SignalCommandLogPO signalCommandLogPO = new SignalCommandLogPO();
int status = 1; int status = 0;
String runMode = "11"; String runMode = "11";
String machineTimestamp = "";
if (!CollectionUtils.isEmpty(lightsStatusVOS)) { if (!CollectionUtils.isEmpty(lightsStatusVOS)) {
for (LightsStatusVO lightsStatusVO : lightsStatusVOS) { for (LightsStatusVO lightsStatusVO : lightsStatusVOS) {
if (Objects.nonNull(lightsStatusVO)) { if (Objects.nonNull(lightsStatusVO)) {
String machineTimestamp = lightsStatusVO.getTimeStamp(); machineTimestamp = lightsStatusVO.getTimeStamp();
long offsetTime = start - Long.valueOf(machineTimestamp); long offsetTime = start - Long.valueOf(machineTimestamp);
if (offsetTime > 1000 * 10) { if (offsetTime < 1000 * 10) {
status = 0; status = 1;
} }
runMode = lightsStatusVO.getRunMode(); runMode = lightsStatusVO.getRunMode();
} }
} }
} else {
status = 0;
} }
signalCommandLogPO.setCrossId(crossId); signalCommandLogPO.setCrossId(crossId);
signalCommandLogPO.setRunMode(runMode); signalCommandLogPO.setRunMode(runMode);
signalCommandLogPO.setStatus(status); signalCommandLogPO.setStatus(status);
signalCommandLogPO.setUpdateTime(new Date()); signalCommandLogPO.setUpdateTime(new Date());
signalCommandLogPO.setLampTime(machineTimestamp);
crossLightsStatusMap.put(crossId, signalCommandLogPO); crossLightsStatusMap.put(crossId, signalCommandLogPO);
} }
......
...@@ -4,10 +4,11 @@ ...@@ -4,10 +4,11 @@
<!-- 批量新增数据 --> <!-- 批量新增数据 -->
<insert id="insertBatch"> <insert id="insertBatch">
insert into t_signal_command_log(cross_id, status, run_mode, command_result, insert_time) insert into t_signal_command_log(cross_id, status, run_mode, command_result, insert_time, lamp_time, update_count)
values values
<foreach collection="list" item="entity" separator=","> <foreach collection="list" item="entity" separator=",">
(#{entity.crossId}, #{entity.status}, #{entity.runMode}, #{entity.commandResult}, #{entity.insertTime}) (#{entity.crossId}, #{entity.status}, #{entity.runMode}, #{entity.commandResult}, #{entity.insertTime},
#{entity.lampTime}, #{entity.updateCount})
</foreach> </foreach>
</insert> </insert>
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
<if test="item.runMode != null">run_mode = #{item.runMode},</if> <if test="item.runMode != null">run_mode = #{item.runMode},</if>
<if test="item.updateTime != null">update_time = #{item.updateTime},</if> <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
<if test="item.status != null">status = #{item.status}</if> <if test="item.status != null">status = #{item.status}</if>
<if test="item.lampTime != null">lamp_time = #{item.lampTime}</if>
</set> </set>
WHERE cross_id = #{item.crossId} WHERE cross_id = #{item.crossId}
</foreach> </foreach>
......
...@@ -4,10 +4,11 @@ ...@@ -4,10 +4,11 @@
<!-- 批量新增数据 --> <!-- 批量新增数据 -->
<insert id="insertBatch"> <insert id="insertBatch">
insert into t_signal_command(cross_id, status, run_mode, command_result, insert_time) insert into t_signal_command(cross_id, status, run_mode, command_result, insert_time, lamp_time, update_count)
values values
<foreach collection="list" item="entity" separator=","> <foreach collection="list" item="entity" separator=",">
(#{entity.crossId}, #{entity.status}, #{entity.runMode}, #{entity.commandResult}, #{entity.insertTime}) (#{entity.crossId}, #{entity.status}, #{entity.runMode}, #{entity.commandResult}, #{entity.insertTime},
#{entity.lampTime}, #{entity.updateCount})
</foreach> </foreach>
</insert> </insert>
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
<if test="item.runMode != null">run_mode = #{item.runMode},</if> <if test="item.runMode != null">run_mode = #{item.runMode},</if>
<if test="item.updateTime != null">update_time = #{item.updateTime},</if> <if test="item.updateTime != null">update_time = #{item.updateTime},</if>
<if test="item.status != null">status = #{item.status}</if> <if test="item.status != null">status = #{item.status}</if>
<if test="item.lampTime != null">lamp_time = #{item.lampTime}</if>
</set> </set>
WHERE cross_id = #{item.crossId} WHERE cross_id = #{item.crossId}
</foreach> </foreach>
......
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