Commit c0d99f74 authored by 董国亮's avatar 董国亮

优化下发,处理异常

parent 7a246d65
...@@ -80,27 +80,27 @@ public class InduceSendServiceImpl implements InduceSendService { ...@@ -80,27 +80,27 @@ public class InduceSendServiceImpl implements InduceSendService {
public void send(MessageParam param) throws IOException, TemplateException { public void send(MessageParam param) throws IOException, TemplateException {
//生成诱导屏推送sourceId //生成诱导屏推送sourceId
String messageId = UUID.randomUUID().toString().toLowerCase(); String messageId = UUID.randomUUID().toString().toLowerCase();
InduceHist induceHist=new InduceHist(); InduceHist induceHist = new InduceHist();
param.setSourceId(messageId); param.setSourceId(messageId);
induceHist.setSourceId(messageId); induceHist.setSourceId(messageId);
GreenwaveInduces greenwaveinduces=greenwaveInducesService.getById(param.getInduceId()); GreenwaveInduces greenwaveinduces = greenwaveInducesService.getById(param.getInduceId());
// 读取图片模板参数 // 读取图片模板参数
InduceTemplate induceTemplate = induceTemplateService.getById(param.getTemplateId()); InduceTemplate induceTemplate = induceTemplateService.getById(param.getTemplateId());
if(param.getFlg()==1) { if (param.getFlg() == 1) {
LambdaQueryWrapper<DeviceInduces> deviceQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DeviceInduces> deviceQueryWrapper = new LambdaQueryWrapper<>();
deviceQueryWrapper.eq(DeviceInduces::getEquipCode, induceTemplate.getEquipCode()); deviceQueryWrapper.eq(DeviceInduces::getEquipCode, induceTemplate.getEquipCode());
DeviceInduces deviceInduces = deviceInducesService.getOne(deviceQueryWrapper); DeviceInduces deviceInduces = deviceInducesService.getOne(deviceQueryWrapper);
if(Objects.nonNull(deviceInduces)) { if (Objects.nonNull(deviceInduces)) {
param.setResolutionWidth(deviceInduces.getResolutionWidth().intValue()); param.setResolutionWidth(deviceInduces.getResolutionWidth().intValue());
param.setResolutionHeight(deviceInduces.getResolutionHeight().intValue()); param.setResolutionHeight(deviceInduces.getResolutionHeight().intValue());
} }
}
// 获取图片字节数组 // 获取图片字节数组
BufferedImage image = null;
try {
byte[] imageBytes = induceTemplate.getFileContent(); byte[] imageBytes = induceTemplate.getFileContent();
if (imageBytes != null || imageBytes.length > 0) { if (imageBytes != null || imageBytes.length > 0) {
// 将字节数组转换为字节对象 // 将字节数组转换为字节对象
BufferedImage image =null;
try {
image = ImageIO.read(new ByteArrayInputStream(imageBytes)); image = ImageIO.read(new ByteArrayInputStream(imageBytes));
// 修改图像中文字 // 修改图像中文字
//addTextToImage(image, param.getContents(), induceTemplate.getTextX(), induceTemplate.getTextY(), induceTemplate.getTextSize(), induceTemplate.getTextSign()); //addTextToImage(image, param.getContents(), induceTemplate.getTextX(), induceTemplate.getTextY(), induceTemplate.getTextSize(), induceTemplate.getTextSign());
...@@ -117,26 +117,26 @@ public class InduceSendServiceImpl implements InduceSendService { ...@@ -117,26 +117,26 @@ public class InduceSendServiceImpl implements InduceSendService {
// 图片生成操作 // 图片生成操作
boolean upDown = param.getContents()[0].contains("▲") || param.getContents()[0].contains("▼"); boolean upDown = param.getContents()[0].contains("▲") || param.getContents()[0].contains("▼");
createImageWithText(induceTemplate, image, param.getContents(), induceTemplate.getTextSign(), upDown, topLeftX, topLeftY, bottomRightX, bottomRightY); createImageWithText(induceTemplate, image, param.getContents(), induceTemplate.getTextSign(), upDown, topLeftX, topLeftY, bottomRightX, bottomRightY);
}catch (Exception ex){ }
} catch (Exception ex) {
log.error(ex.getMessage()); log.error(ex.getMessage());
} }
// 测试阶段保存图片到本地 // 测试阶段保存图片到本地
// ImageIO.write(image, "bmp", new File("D:\\tmp\\" + induceTemplate.getFileName())); // ImageIO.write(image, "bmp", new File("D:\\tmp\\" + induceTemplate.getFileName()));
// 上传文件至ftp // 上传文件至ftp
if (param.getFlg() == 1) { String dirName = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
String dirName=LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); String fileName = param.getEquipCode() + "_" + UUID.randomUUID().toString() + ".bmp";
String fileName=param.getEquipCode()+"_"+UUID.randomUUID().toString()+".bmp"; String filePath = uploadFile(image, dirName, fileName);
String filePath = uploadFile(image,dirName, fileName);
param.setFtpPath(filePath); param.setFtpPath(filePath);
induceHist.setFilePath(PATH + dirName+"/"+fileName); induceHist.setFilePath(PATH + dirName + "/" + fileName);
if(Objects.nonNull(param.getContents()) && param.getContents().length>0) { if (Objects.nonNull(param.getContents()) && param.getContents().length > 0) {
induceHist.setInduceSpeed(param.getContents()[0]); induceHist.setInduceSpeed(param.getContents()[0]);
} }
if(Objects.nonNull(greenwaveinduces)) { if (Objects.nonNull(greenwaveinduces)) {
greenwaveinduces.setSourceId(PATH + dirName + "/" + fileName); greenwaveinduces.setSourceId(PATH + dirName + "/" + fileName);
} }
}
log.info("上传文件至ftp-filePath:{}", param.getFtpPath()); log.info("上传文件至ftp-filePath:{}", param.getFtpPath());
}
// //如果已发布,则调用下屏服务 // //如果已发布,则调用下屏服务
// if(greenwaveinduces.getStatus()==1){ // if(greenwaveinduces.getStatus()==1){
// param.setFlg(2); // param.setFlg(2);
...@@ -155,7 +155,7 @@ public class InduceSendServiceImpl implements InduceSendService { ...@@ -155,7 +155,7 @@ public class InduceSendServiceImpl implements InduceSendService {
// rabbitTemplate.convertAndSend("",queueName, messageSend); // rabbitTemplate.convertAndSend("",queueName, messageSend);
// } // }
// 推送mq消息 // 推送mq消息
String message = convertMessage(param.getFlg()==1?"induce_up.xml":"induce_down.xml",param); String message = convertMessage(param.getFlg() == 1 ? "induce_up.xml" : "induce_down.xml", param);
// 去掉所有转义字符(\n、\t、\b、等) // 去掉所有转义字符(\n、\t、\b、等)
// message = message.replaceAll("[\\n\\t\\r]", ""); // 可以根据需要添加更多字符 // message = message.replaceAll("[\\n\\t\\r]", ""); // 可以根据需要添加更多字符
// 可以去掉反斜杠 // 可以去掉反斜杠
...@@ -165,23 +165,23 @@ public class InduceSendServiceImpl implements InduceSendService { ...@@ -165,23 +165,23 @@ public class InduceSendServiceImpl implements InduceSendService {
// messageProperties.setContentType("text/plain"); // 设置内容类型为text/plain // messageProperties.setContentType("text/plain"); // 设置内容类型为text/plain
// 创建Message并设置内容 // 创建Message并设置内容
// Message messageSend = new Message(message.getBytes(), messageProperties); // Message messageSend = new Message(message.getBytes(), messageProperties);
if(sending) if (sending) {
{
rabbitTemplate.convertAndSend("", queueName, message); rabbitTemplate.convertAndSend("", queueName, message);
} }
log.info("mqtt发送信息-topic:{},queueName:{},message:{}", queueName, message); log.info("mqtt发送信息-topic:{},queueName:{},message:{}", queueName, message);
//1、增加下发记录log 2、计数 3、标记已发布状体 //1、增加下发记录log 2、计数 3、标记已发布状体
if (Objects.nonNull(induceTemplate) && Objects.nonNull(induceTemplate.getEquipCode()) && param.getFlg() == 1) {
induceHist.setEquipCode(induceTemplate.getEquipCode()); induceHist.setEquipCode(induceTemplate.getEquipCode());
induceHist.setGreenId(param.getGreenId()); induceHist.setGreenId(param.getGreenId());
induceHistService.save(induceHist); induceHistService.save(induceHist);
}
//保存诱导状态信息 //保存诱导状态信息
if(Objects.nonNull(greenwaveinduces) && param.getFlg()==1) { if (Objects.nonNull(greenwaveinduces)) {
greenwaveinduces.setInducesCount(Objects.isNull(greenwaveinduces.getInducesCount()) ? 0 : greenwaveinduces.getInducesCount() + ((param.getFlg()==1)?1:0)); greenwaveinduces.setInducesCount(Objects.isNull(greenwaveinduces.getInducesCount()) ? 0 : greenwaveinduces.getInducesCount() + ((param.getFlg() == 1) ? 1 : 0));
greenwaveinduces.setStatus(param.getFlg()==1?1:0); greenwaveinduces.setStatus(param.getFlg() == 1 ? 1 : 0);
greenwaveInducesService.saveOrUpdate(greenwaveinduces); greenwaveInducesService.saveOrUpdate(greenwaveinduces);
} }
} }
}
@Override @Override
public String uploadFile(BufferedImage image,String directoryName, String fileName) { public String uploadFile(BufferedImage image,String directoryName, String fileName) {
......
...@@ -93,9 +93,9 @@ public class InducesMonitorTask { ...@@ -93,9 +93,9 @@ public class InducesMonitorTask {
/** /**
* #绿波调度计划扫描周期 * #绿波调度计划扫描周期
* 5 分钟 300000 * 2 分钟 120000
*/ */
@Scheduled(fixedRate = 300000) @Scheduled(fixedRate = 120000)
public void refresh() throws Exception { public void refresh() throws Exception {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
AtomicLong synCount = new AtomicLong(); AtomicLong synCount = new AtomicLong();
...@@ -106,7 +106,7 @@ public class InducesMonitorTask { ...@@ -106,7 +106,7 @@ public class InducesMonitorTask {
for(GreenwaveInfoPO greenwaveInfoPO :greenwaveInfoPOList) { for(GreenwaveInfoPO greenwaveInfoPO :greenwaveInfoPOList) {
AtomicBoolean flag = new AtomicBoolean(false);//是否已发布优化 AtomicBoolean flag = new AtomicBoolean(false);//是否已发布优化
AtomicReference<Integer> strategyId=new AtomicReference<Integer>(0); AtomicReference<Integer> strategyId = new AtomicReference<Integer>(0);
//1、查询所有绿波带路口信息,获取路口下的绿波策略计划 //1、查询所有绿波带路口信息,获取路口下的绿波策略计划
List<GreenwaveCrossPO> greenwaveCrossList = greenwaveCrossMapper.selectByGreenwaveId(greenwaveInfoPO.getId()); List<GreenwaveCrossPO> greenwaveCrossList = greenwaveCrossMapper.selectByGreenwaveId(greenwaveInfoPO.getId());
greenwaveCrossList.stream().forEach(o -> { greenwaveCrossList.stream().forEach(o -> {
...@@ -115,7 +115,7 @@ public class InducesMonitorTask { ...@@ -115,7 +115,7 @@ public class InducesMonitorTask {
List<StrategyPlanInfoEntity> strategyPlanInfoEntityList = strategyPlanInfoMapper.selectByCrossId(o.getCrossId()); List<StrategyPlanInfoEntity> strategyPlanInfoEntityList = strategyPlanInfoMapper.selectByCrossId(o.getCrossId());
//strategyPlanInfoEntityList.stream().filter(x->Objects.nonNull(x.getCrossId()) && x.getCrossId().equals(o.getCrossId()) ).forEach(x-> //strategyPlanInfoEntityList.stream().filter(x->Objects.nonNull(x.getCrossId()) && x.getCrossId().equals(o.getCrossId()) ).forEach(x->
for (StrategyPlanInfoEntity strategyPlanInfoEntity : strategyPlanInfoEntityList) { for (StrategyPlanInfoEntity strategyPlanInfoEntity : strategyPlanInfoEntityList) {
System.out.println("策略计划--->"+greenwaveInfoPO.getId()+"=="+strategyPlanInfoEntity.getPlanDetails()); System.out.println("策略计划--->" + greenwaveInfoPO.getId() + "==" + strategyPlanInfoEntity.getPlanDetails());
//2、检查绿波时段,判断是否在绿波时段内,如果不在,则判断是否执行过上屏操作,如果执行过,则调用下屏服务(此出屏幕自动处理,无需逻辑) //2、检查绿波时段,判断是否在绿波时段内,如果不在,则判断是否执行过上屏操作,如果执行过,则调用下屏服务(此出屏幕自动处理,无需逻辑)
//[{"dailyPlanId":1,"weeks":[1,2,3,4,5]}] //[{"dailyPlanId":1,"weeks":[1,2,3,4,5]}]
List<StrategyControlDetailList.ExecutePlan.PlanDetail> planDetails = new ArrayList<>(); List<StrategyControlDetailList.ExecutePlan.PlanDetail> planDetails = new ArrayList<>();
...@@ -175,16 +175,16 @@ public class InducesMonitorTask { ...@@ -175,16 +175,16 @@ public class InducesMonitorTask {
// LambdaQueryWrapper<GreenwaveInducesHist> greenwaveInducesHistQueryWrapper = new LambdaQueryWrapper<>(); // LambdaQueryWrapper<GreenwaveInducesHist> greenwaveInducesHistQueryWrapper = new LambdaQueryWrapper<>();
// greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getGreenId, greenwaveInfoPO.getId()); // greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getGreenId, greenwaveInfoPO.getId());
// greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getDir, getDir(greenOptHistEntity.getDir())); // greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getDir, getDir(greenOptHistEntity.getDir()));
List<GreenwaveInducesHist> greenwaveInducesHistList=greenwaveInducesHistss.stream().filter(g->g.getGreenId().equals(greenwaveInfoPO.getId()) && g.getDir().equals(getDir(greenOptHistEntity.getDir()))).collect(Collectors.toList()); List<GreenwaveInducesHist> greenwaveInducesHistList = greenwaveInducesHistss.stream().filter(g -> g.getGreenId().equals(greenwaveInfoPO.getId()) && g.getDir().equals(getDir(greenOptHistEntity.getDir()))).collect(Collectors.toList());
GreenwaveInducesHist greenwaveInducesHist=null; GreenwaveInducesHist greenwaveInducesHist = null;
if (Objects.isNull(greenwaveInducesHistList) || greenwaveInducesHistList.size()<1) { if (Objects.isNull(greenwaveInducesHistList) || greenwaveInducesHistList.size() < 1) {
greenwaveInducesHist = new GreenwaveInducesHist(); greenwaveInducesHist = new GreenwaveInducesHist();
greenwaveInducesHist.setCreateTime(greenOptHistEntity.getCreateTime()); greenwaveInducesHist.setCreateTime(greenOptHistEntity.getCreateTime());
greenwaveInducesHist.setGreenId(greenwaveInfoPO.getId()); greenwaveInducesHist.setGreenId(greenwaveInfoPO.getId());
greenwaveInducesHist.setDir(getDir(greenOptHistEntity.getDir())); greenwaveInducesHist.setDir(getDir(greenOptHistEntity.getDir()));
greenwaveInducesHistService.save(greenwaveInducesHist); greenwaveInducesHistService.save(greenwaveInducesHist);
}else{ } else {
greenwaveInducesHist=greenwaveInducesHistList.get(0); greenwaveInducesHist = greenwaveInducesHistList.get(0);
} }
greenwaveInducesHist.setStrategyId(strategyId.get()); greenwaveInducesHist.setStrategyId(strategyId.get());
greenwaveInducesHist.setStrategyName(greenwaveInfoPO.getName());//当前策略名称 greenwaveInducesHist.setStrategyName(greenwaveInfoPO.getName());//当前策略名称
...@@ -192,9 +192,9 @@ public class InducesMonitorTask { ...@@ -192,9 +192,9 @@ public class InducesMonitorTask {
greenwaveInducesHist.setControlOptTimes(greenOptHistEntity.getControlTime() + "|" + DateUtil.format(DateUtil.addSecond(greenOptHistEntity.getControlTime(), greenOptHistEntity.getControlDuration()), Constants.DATE_FORMAT.E_DATE_FORMAT_SECOND));//执行时段 greenwaveInducesHist.setControlOptTimes(greenOptHistEntity.getControlTime() + "|" + DateUtil.format(DateUtil.addSecond(greenOptHistEntity.getControlTime(), greenOptHistEntity.getControlDuration()), Constants.DATE_FORMAT.E_DATE_FORMAT_SECOND));//执行时段
} }
greenwaveInducesHist.setType(greenOptHistEntity.getType());// 执行策略 greenwaveInducesHist.setType(greenOptHistEntity.getType());// 执行策略
String upDown=""; String upDown = "";
// 计算绿波速度变化趋势 // 计算绿波速度变化趋势
if(Objects.nonNull(greenwaveInducesHist.getMinSpeed()) && Objects.nonNull(greenwaveInducesHist.getMaxSpeed()) && Objects.nonNull(greenOptHistEntity.getMinSpeed()) && Objects.nonNull(greenOptHistEntity.getMaxSpeed())) { if (Objects.nonNull(greenwaveInducesHist.getMinSpeed()) && Objects.nonNull(greenwaveInducesHist.getMaxSpeed()) && Objects.nonNull(greenOptHistEntity.getMinSpeed()) && Objects.nonNull(greenOptHistEntity.getMaxSpeed())) {
if (greenwaveInducesHist.getMinSpeed() > greenOptHistEntity.getMinSpeed() || greenwaveInducesHist.getMaxSpeed() > greenOptHistEntity.getMaxSpeed()) { if (greenwaveInducesHist.getMinSpeed() > greenOptHistEntity.getMinSpeed() || greenwaveInducesHist.getMaxSpeed() > greenOptHistEntity.getMaxSpeed()) {
upDown = "▼ "; upDown = "▼ ";
} }
...@@ -219,26 +219,26 @@ public class InducesMonitorTask { ...@@ -219,26 +219,26 @@ public class InducesMonitorTask {
messageParam.setFlg(1); messageParam.setFlg(1);
messageParam.setGreenId(greenwaveInfoPO.getId()); messageParam.setGreenId(greenwaveInfoPO.getId());
messageParam.setContents(new String[]{(upDown+(Objects.nonNull(greenOptHistEntity.getMinSpeed())?greenOptHistEntity.getMinSpeed().intValue()+"-":"")+(Objects.nonNull(greenOptHistEntity.getMaxSpeed())?greenOptHistEntity.getMaxSpeed().intValue():""))+"km/h"}); messageParam.setContents(new String[]{(upDown + (Objects.nonNull(greenOptHistEntity.getMinSpeed()) ? greenOptHistEntity.getMinSpeed().intValue() + "-" : "") + (Objects.nonNull(greenOptHistEntity.getMaxSpeed()) ? greenOptHistEntity.getMaxSpeed().intValue() : "")) + "km/h"});
messageParam.setType("TFMH"); messageParam.setType("TFMH");
try { try {
if(greenwaveInducesHist.getStatus()==0||greenwaveInducesHist.getModifyTime().before(greenOptHistEntity.getCreateTime())) { if (greenwaveInducesHist.getStatus() == 0 || greenwaveInducesHist.getModifyTime().before(greenOptHistEntity.getCreateTime())) {
LambdaQueryWrapper<GreenwaveInduces> greenwaveInducesQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<GreenwaveInduces> greenwaveInducesQueryWrapper = new LambdaQueryWrapper<>();
greenwaveInducesQueryWrapper.eq(GreenwaveInduces::getGreenId, greenwaveInfoPO.getId()); greenwaveInducesQueryWrapper.eq(GreenwaveInduces::getGreenId, greenwaveInfoPO.getId());
greenwaveInducesQueryWrapper.eq(GreenwaveInduces::getDir, getDir(greenOptHistEntity.getDir())); greenwaveInducesQueryWrapper.eq(GreenwaveInduces::getDir, getDir(greenOptHistEntity.getDir()));
List<GreenwaveInduces> greenwaveInducesList = greenwaveInducesService.list(greenwaveInducesQueryWrapper); List<GreenwaveInduces> greenwaveInducesList = greenwaveInducesService.list(greenwaveInducesQueryWrapper);
for(GreenwaveInduces greenwaveCross :greenwaveInducesList){ for (GreenwaveInduces greenwaveCross : greenwaveInducesList) {
LambdaQueryWrapper<InduceTemplate> induceTemplateQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<InduceTemplate> induceTemplateQueryWrapper = new LambdaQueryWrapper<>();
induceTemplateQueryWrapper.eq(InduceTemplate::getEquipCode, greenwaveCross.getEquipCode()); induceTemplateQueryWrapper.eq(InduceTemplate::getEquipCode, greenwaveCross.getEquipCode());
induceTemplateQueryWrapper.eq(InduceTemplate::getDefaultTemplate, 1);//筛选默认模板进行自动发送,目前屏幕轮播参数无效 induceTemplateQueryWrapper.eq(InduceTemplate::getDefaultTemplate, 1);//筛选默认模板进行自动发送,目前屏幕轮播参数无效
List<InduceTemplate> induceTemplateList=induceTemplateService.list(induceTemplateQueryWrapper); List<InduceTemplate> induceTemplateList = induceTemplateService.list(induceTemplateQueryWrapper);
for(InduceTemplate induceTemplate:induceTemplateList) { for (InduceTemplate induceTemplate : induceTemplateList) {
messageParam.setTemplateId(induceTemplate.getId()); messageParam.setTemplateId(induceTemplate.getId());
messageParam.setInduceId(greenwaveCross.getId()); messageParam.setInduceId(greenwaveCross.getId());
messageParam.setEquipCode(greenwaveCross.getEquipCode()); messageParam.setEquipCode(greenwaveCross.getEquipCode());
messageParam.setPlayorder(1);//induceTemplateList.size() messageParam.setPlayorder(1);//induceTemplateList.size()
messageParam.setDuration(greenwaveCross.getDuration()); messageParam.setDuration(greenwaveCross.getDuration());
if ( greenwaveInducesHist.getControlOptTimes().split("\\|").length > 0 && DateUtil.isBetween(new Date(), DateUtil.parse(greenwaveInducesHist.getControlOptTimes().split("\\|")[0], Constants.DATE_FORMAT.E_DATE_FORMAT_SECOND), DateUtil.parse(greenwaveInducesHist.getControlOptTimes().split("\\|")[1], Constants.DATE_FORMAT.E_DATE_FORMAT_SECOND))) { if (greenwaveInducesHist.getControlOptTimes().split("\\|").length > 0 && DateUtil.isBetween(new Date(), DateUtil.parse(greenwaveInducesHist.getControlOptTimes().split("\\|")[0], Constants.DATE_FORMAT.E_DATE_FORMAT_SECOND), DateUtil.parse(greenwaveInducesHist.getControlOptTimes().split("\\|")[1], Constants.DATE_FORMAT.E_DATE_FORMAT_SECOND))) {
messageParam.setStartTime(greenwaveInducesHist.getControlOptTimes().split("\\|")[0]); messageParam.setStartTime(greenwaveInducesHist.getControlOptTimes().split("\\|")[0]);
messageParam.setEndTime(greenwaveInducesHist.getControlOptTimes().split("\\|")[1]); messageParam.setEndTime(greenwaveInducesHist.getControlOptTimes().split("\\|")[1]);
} else { } else {
...@@ -259,48 +259,53 @@ public class InducesMonitorTask { ...@@ -259,48 +259,53 @@ public class InducesMonitorTask {
} }
greenwaveInducesHistService.updateById(greenwaveInducesHist); greenwaveInducesHistService.updateById(greenwaveInducesHist);
synCount.getAndIncrement(); synCount.getAndIncrement();
log.info("同步绿波状态信息成功->" + greenwaveInfoPO.getName()+greenwaveInducesHist.getDir()); log.info("同步绿波状态信息成功->" + greenwaveInfoPO.getName() + greenwaveInducesHist.getDir());
} }
} }
} }
//如果没有绿波方案则调用下屏服务 //如果没有绿波方案则调用下屏服务
else{ else {
LambdaQueryWrapper<GreenwaveInducesHist> greenwaveInducesHistQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<GreenwaveInducesHist> greenwaveInducesHistQueryWrapper = new LambdaQueryWrapper<>();
greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getGreenId, greenwaveInfoPO.getId()); greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getGreenId, greenwaveInfoPO.getId());
List<GreenwaveInducesHist> greenwaveInducesHistList = greenwaveInducesHistService.list(greenwaveInducesHistQueryWrapper); List<GreenwaveInducesHist> greenwaveInducesHistList = greenwaveInducesHistService.list(greenwaveInducesHistQueryWrapper);
greenwaveInducesHistList.stream().forEach(n -> { greenwaveInducesHistList.stream().forEach(n -> {
//调用下屏 //调用下屏
try { // try {
if (n.getStatus() == 1) { if (n.getStatus() == 1) {
MessageParam messageParam = new MessageParam(); MessageParam messageParam = new MessageParam();
messageParam.setFlg(2); messageParam.setFlg(2);
LambdaQueryWrapper<GreenwaveInduces> greenwaveInducesQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<GreenwaveInduces> greenwaveInducesQueryWrapper = new LambdaQueryWrapper<>();
greenwaveInducesQueryWrapper.eq(GreenwaveInduces::getGreenId, greenwaveInfoPO.getId()); greenwaveInducesQueryWrapper.eq(GreenwaveInduces::getGreenId, greenwaveInfoPO.getId());
List<GreenwaveInduces> greenwaveInducesList = greenwaveInducesService.list(greenwaveInducesQueryWrapper); List<GreenwaveInduces> greenwaveInducesList = greenwaveInducesService.list(greenwaveInducesQueryWrapper);
greenwaveInducesList.stream().forEach(v -> { for (GreenwaveInduces greenwaveInduces : greenwaveInducesList) {
messageParam.setEquipCode(v.getEquipCode()); messageParam.setEquipCode(greenwaveInduces.getEquipCode());
messageParam.setSourceId(v.getSourceId()); messageParam.setSourceId(greenwaveInduces.getSourceId());
messageParam.setGreenId(greenwaveInduces.getGreenId());
messageParam.setInduceId(greenwaveInduces.getId());
messageParam.setType("TFMH"); messageParam.setType("TFMH");
//屏蔽此处功能,因为上屏的时候可以设置生效时间 //屏蔽此处功能,因为上屏的时候可以设置生效时间
try { try {
induceSendService.send(messageParam); induceSendService.send(messageParam);
//保存绿波状态
n.setStatus(0);
n.setModifyTime(new Date());
Thread.sleep(1000);
} catch (TemplateException e) {
log.info("发送下屏信息异常" + e.getMessage());
} catch (IOException e) { } catch (IOException e) {
log.info(e.getMessage());
} catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} catch (TemplateException e) {
log.info("发送下屏信息异常"+e.getMessage());
} }
log.info("发送下屏信息成功."); log.info("发送下屏信息成功.");
});
} }
} catch (Exception e) {
log.error("发送下屏信息失败");
} }
//保存绿波状态 // } catch (Exception e) {
n.setStatus(0); // log.error("发送下屏信息失败"+e.getMessage());
n.setModifyTime(new Date()); // }
greenwaveInducesHistService.updateById(n); greenwaveInducesHistService.updateById(n);
log.info("同步绿波状态信息(下屏)->" + greenwaveInfoPO.getName()+"####"+n.getDir()); log.info("同步绿波状态信息(下屏)->" + greenwaveInfoPO.getName() + "####" + n.getDir());
synCount.getAndIncrement(); // synCount.getAndIncrement();
}); });
} }
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<mapper namespace="net.wanji.opt.dao.mapper.StrategyGreenOptHistMapper"> <mapper namespace="net.wanji.opt.dao.mapper.StrategyGreenOptHistMapper">
<select id="selectByGreenId" resultType="net.wanji.opt.po.StrategyGreenOptHistEntity" parameterType="String" > <select id="selectByGreenId" resultType="net.wanji.opt.po.StrategyGreenOptHistEntity" parameterType="String" >
select * from t_strategy_green_opt_hist where `green_id` = #{greenId} and TIMESTAMPDIFF(SECOND,`control_time`, now()) &lt; `control_duration` order by create_time desc limit 2; select * from t_strategy_green_opt_hist where `green_id` = #{greenId} and `control_method`=1 and TIMESTAMPDIFF(SECOND,`control_time`, now()) &lt; `control_duration` order by create_time desc limit 2;
</select> </select>
</mapper> </mapper>
\ No newline at end of file
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