From ac0a95002581273d772b24c04082043bfbdda091 Mon Sep 17 00:00:00 2001 From: wangwenhua <12345678> Date: Thu, 18 Sep 2025 11:34:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/hivekion/CodeGenerator.java | 4 +- .../service/impl/ScenarioTaskServiceImpl.java | 80 ++++++++++--------- 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/hivekion/CodeGenerator.java b/src/main/java/com/hivekion/CodeGenerator.java index daa757b..ef2ea8a 100644 --- a/src/main/java/com/hivekion/CodeGenerator.java +++ b/src/main/java/com/hivekion/CodeGenerator.java @@ -28,12 +28,12 @@ public class CodeGenerator { }) .packageConfig(builder -> { builder.parent("com.hivekion") // 设置父包名 - .moduleName("scenario") // 设置模块名(可选) + .moduleName("basedata") // 设置模块名(可选) .pathInfo(Collections.singletonMap(OutputFile.xml, basePath + "/src/main/resources/mapper/tbl")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { - builder.addInclude("TBL_BATTLE_SUPPLIER".toLowerCase()) // 设置需要生成的表名(多个用逗号分隔) + builder.addInclude("IMG_VEHICLE_IMAGE".toLowerCase()) // 设置需要生成的表名(多个用逗号分隔) .addTablePrefix("tbl_"); // 设置过滤表前缀 }) .execute(); diff --git a/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java b/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java index c2318d6..bca70e4 100644 --- a/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java +++ b/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java @@ -1,6 +1,7 @@ package com.hivekion.scenario.service.impl; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hivekion.Global; @@ -16,6 +17,7 @@ import com.hivekion.scenario.service.ScenarioTaskService; import com.hivekion.scenario.service.TaskLogicService; import com.hivekion.thread.SpringGlobalTaskManager; import java.time.Duration; +import java.time.ZoneId; import java.util.ArrayList; import java.util.List; import java.util.Random; @@ -139,48 +141,48 @@ public class ScenarioTaskServiceImpl extends */ private void weatherTrigger(Scenario currentScenario, String roomId) { try { - String weatherResources = (String) redisUtil.hget(roomId + "_" + currentScenario.getId(), - "weather"); - List weatherList = JSONArray.parseArray(weatherResources, - WeatherResource.class); - int duringTime = getCurrentDuringTime(currentScenario, roomId); - - for (WeatherResource resource : weatherList) { - - if ("init".equals(resource.getStatus())) { - - if (currentScenario.getStartTime().plusSeconds(duringTime) - .isAfter(resource.getLastBegTime())) { - log.info("{}", "start_" + resource.getWeatherType()); - resource.setStatus("running"); - ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo<>(); - responseCmdInfo.setScenarioId(currentScenario.getId()); - responseCmdInfo.setRoom(roomId); - responseCmdInfo.setCmdType("start_" + resource.getWeatherType()); - responseCmdInfo.setScenarioId(currentScenario.getId()); - responseCmdInfo.setRoom(roomId); - Global.sendCmdInfoQueue.add(responseCmdInfo); - } - + String weatherResources = (String) redisUtil.hget(roomId + "_" + currentScenario.getId(), "weather"); + JSONArray weatherArray = JSONArray.parseArray(weatherResources); + String weatherStatus = redisUtil.hget(roomId + "_" + currentScenario.getId(), "weather-status") !=null?(String) redisUtil.hget(roomId + "_" + currentScenario.getId(), "weather-status"):null; + for(int i=0;i= timeBegstamp && StringUtils.isEmpty(weatherStatus)) { + ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); + responseCmdInfo.setScenarioId(currentScenario.getId()); + responseCmdInfo.setRoom(roomId); + responseCmdInfo.setCmdType("start-" + weatherObj.getString("weatherType")); + responseCmdInfo.setScenarioId(currentScenario.getId()); + responseCmdInfo.setRoom(roomId); + System.out.println(responseCmdInfo.toString()); + redisUtil.hset(roomId + "_" + currentScenario.getId(), "weather-status","start"); + Global.sendCmdInfoQueue.add(responseCmdInfo); } - if ("running".equals(resource.getStatus())) { - if (currentScenario.getStartTime().plusSeconds(duringTime) - .isAfter(resource.getLastEndTime())) { - log.info("{}", "stopped_" + resource.getWeatherType()); - resource.setStatus("stopped"); - ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo<>(); - responseCmdInfo.setScenarioId(currentScenario.getId()); - responseCmdInfo.setRoom(roomId); - responseCmdInfo.setCmdType("stop_" + resource.getWeatherType()); - responseCmdInfo.setScenarioId(currentScenario.getId()); - responseCmdInfo.setRoom(roomId); - Global.sendCmdInfoQueue.add(responseCmdInfo); - } + else if(timeBegstamp+duringTime >= timeEndstamp && StringUtils.isNotEmpty(weatherStatus)){ + ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); + responseCmdInfo.setScenarioId(currentScenario.getId()); + responseCmdInfo.setRoom(roomId); + responseCmdInfo.setCmdType("end-" + weatherObj.getString("weatherType")); + responseCmdInfo.setScenarioId(currentScenario.getId()); + responseCmdInfo.setRoom(roomId); + System.out.println(responseCmdInfo.toString()); + redisUtil.hset(roomId + "_" + currentScenario.getId(), "weather-status","end"); + Global.sendCmdInfoQueue.add(responseCmdInfo); + }else{ + ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); + responseCmdInfo.setScenarioId(currentScenario.getId()); + responseCmdInfo.setRoom(roomId); + responseCmdInfo.setCmdType("remain-" + weatherObj.getString("weatherType")); + responseCmdInfo.setScenarioId(currentScenario.getId()); + responseCmdInfo.setRoom(roomId); + System.out.println(responseCmdInfo.toString()); + Global.sendCmdInfoQueue.add(responseCmdInfo); } - } - redisUtil.hset(roomId + "_" + currentScenario.getId(), "weather", - JSONArray.toJSONString(weatherList)); } catch (Exception ex) {