Commit bbb054a1 authored by duanruiming's avatar duanruiming

[add] 绿波图存库

parent e0aea029
package net.wanji.opt.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.opt.entity.GreenChartSchemeHist;
/**
* @author duanruiming
* @date 2025/04/10 11:32
*/
public interface GreenChartSchemeHistMapper extends BaseMapper<GreenChartSchemeHist> {
}
package net.wanji.opt.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author duanruiming
* @date 2025/04/10 11:28
*/
@Data
@TableName("t_green_chart_scheme_hist")
public class GreenChartSchemeHist {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@TableField("green_id")
private Integer greenId;
@TableField("green_chart")
private String greenChart;
@TableField("scheme_detail")
private String schemeDetail;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("gmt_create")
private Date gmtCreate;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("gmt_modified")
private Date gmtModified;
}
......@@ -14,9 +14,11 @@ import net.wanji.opt.cache.GreenCrossDirInfoCache;
import net.wanji.opt.common.CommonUtils;
import net.wanji.opt.common.RedisUtils;
import net.wanji.opt.common.enums.GreenBeltDirEnum;
import net.wanji.opt.dao.mapper.GreenChartSchemeHistMapper;
import net.wanji.opt.dto.GreenBeltChartDTO;
import net.wanji.opt.dto.RingPhaseInfoDTO;
import net.wanji.opt.dto.SchemeGreenDirGreenTimeDTO;
import net.wanji.opt.entity.GreenChartSchemeHist;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.Scheduled;
......@@ -41,6 +43,8 @@ public class HisenseGreenChartTask {
private RedisUtils redisUtils;
@Resource
private GreenwaveRealtimeMapper greenwaveRealtimeMapper;
@Resource
private GreenChartSchemeHistMapper greenChartSchemeHistMapper;
//@Scheduled(fixedRate = 10 * 60 * 1000, initialDelay = 1 * 60 * 1000)
......@@ -52,6 +56,7 @@ public class HisenseGreenChartTask {
// 绿波路口数据
List<GreenCrossDirDTO> greenCrossDirCache = GreenCrossDirInfoCache.greenCrossDirCache;
List<SchemeGreenDirGreenTimeDTO> schemeGreenDirGreenTimeDTOS = getSchemeGreenDirGreenTimeDTOS(greenCrossDirCache);
Map<Integer, List<SchemeGreenDirGreenTimeDTO>> greenSchemeRingPhaseMap = new HashMap<>(10);
if (!CollectionUtils.isEmpty(greenCrossDirCache) && !CollectionUtils.isEmpty(schemeGreenDirGreenTimeDTOS)) {
// 将海信方案环相位转成map形式
HashMap<String, SchemeGreenDirGreenTimeDTO> greenDirGreenTimeMap = new HashMap<>();
......@@ -59,6 +64,22 @@ public class HisenseGreenChartTask {
String crossId = dto.getCrossId();
Integer dir = dto.getDir();
greenDirGreenTimeMap.put(CommonUtils.getStrJoin(crossId, String.valueOf(dir)), dto);
// 存储海信方案环图信息
for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) {
Integer greenId = greenCrossDirDTO.getGreenId();
String greenCrossId = greenCrossDirDTO.getCrossId();
if (StringUtils.equalsIgnoreCase(greenCrossId, crossId)) {
List<SchemeGreenDirGreenTimeDTO> list1 = greenSchemeRingPhaseMap.get(greenId);
if (CollectionUtils.isEmpty(list1)) {
List<SchemeGreenDirGreenTimeDTO> list2 = new ArrayList<>();
list2.add(dto);
greenSchemeRingPhaseMap.put(greenId, list2);
} else {
list1.add(dto);
greenSchemeRingPhaseMap.put(greenId, list1);
}
}
}
}
// 1.根据绿波带长度和速度计算行程时间
......@@ -191,7 +212,17 @@ public class HisenseGreenChartTask {
}
});
}
log.error("绿波实体参数:{}", mapper.writeValueAsString(results));
for (GreenBeltChartDTO result : results) {
Integer greenId = result.getGreenId();
List<SchemeGreenDirGreenTimeDTO> list = greenSchemeRingPhaseMap.get(greenId);
GreenChartSchemeHist greenChartSchemeHist = new GreenChartSchemeHist();
greenChartSchemeHist.setGreenId(greenId);
greenChartSchemeHist.setGreenChart(mapper.writeValueAsString(result));
greenChartSchemeHist.setSchemeDetail(mapper.writeValueAsString(list));
greenChartSchemeHistMapper.insert(greenChartSchemeHist);
}
log.debug("绿波图实体参数:{}", mapper.writeValueAsString(results));
log.debug("绿波路口方案环图信息:{}", mapper.writeValueAsString(greenSchemeRingPhaseMap));
}
} catch (Exception e) {
log.error("通过海信方案处理绿波波定时任务失败:{}", e);
......
<?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.GreenChartSchemeHistMapper">
</mapper>
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