From 2f40a8556c20fb5b48b7fedad3b40e7c0d59ef73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=8E=89=E4=B8=9C?= <129883742+liyudong2018@users.noreply.github.com> Date: Sun, 14 Sep 2025 21:56:23 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hivekion/baseData/entity/OrgSupplier.java | 1 + .../baseData/mapper/OrgSupplierMapper.java | 4 +- .../baseData/service/OrgSupplierService.java | 3 +- .../service/impl/OrgSupplierServiceImpl.java | 5 ++ .../service/IScenarioOrgPostService.java | 1 + .../service/impl/ScenarioTaskServiceImpl.java | 63 ++++++++++++------- .../service/impl/TaskLogicServiceImpl.java | 6 ++ .../service/impl/StatisticServiceImpl.java | 45 +++++++++---- src/main/java/com/hivekion/ws/WsServer.java | 27 +++++++- .../mapper/tbl/OrgSupplierMapper.xml | 16 ++++- 10 files changed, 129 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/hivekion/baseData/entity/OrgSupplier.java b/src/main/java/com/hivekion/baseData/entity/OrgSupplier.java index 46c737a..39c0d75 100644 --- a/src/main/java/com/hivekion/baseData/entity/OrgSupplier.java +++ b/src/main/java/com/hivekion/baseData/entity/OrgSupplier.java @@ -33,5 +33,6 @@ public class OrgSupplier implements Serializable { @TableField(exist = false) private String name; + } diff --git a/src/main/java/com/hivekion/baseData/mapper/OrgSupplierMapper.java b/src/main/java/com/hivekion/baseData/mapper/OrgSupplierMapper.java index 7557d68..22346d9 100644 --- a/src/main/java/com/hivekion/baseData/mapper/OrgSupplierMapper.java +++ b/src/main/java/com/hivekion/baseData/mapper/OrgSupplierMapper.java @@ -2,7 +2,7 @@ package com.hivekion.baseData.mapper; import com.hivekion.baseData.entity.OrgSupplier; import com.baomidou.mybatisplus.core.mapper.BaseMapper; - +import java.util.List; /** *

* Mapper 接口 @@ -12,5 +12,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @since 2025-09-14 */ public interface OrgSupplierMapper extends BaseMapper { - + List selectByOrgIds(List ids); } diff --git a/src/main/java/com/hivekion/baseData/service/OrgSupplierService.java b/src/main/java/com/hivekion/baseData/service/OrgSupplierService.java index 17f338a..a8832d3 100644 --- a/src/main/java/com/hivekion/baseData/service/OrgSupplierService.java +++ b/src/main/java/com/hivekion/baseData/service/OrgSupplierService.java @@ -13,5 +13,6 @@ import java.util.List; * @since 2025-09-14 */ public interface OrgSupplierService extends IService { - public List getByOrgId(Integer orgId); + List getByOrgId(Integer orgId); + List selectByOrgIds(List ids); } diff --git a/src/main/java/com/hivekion/baseData/service/impl/OrgSupplierServiceImpl.java b/src/main/java/com/hivekion/baseData/service/impl/OrgSupplierServiceImpl.java index 7492a0f..86275d3 100644 --- a/src/main/java/com/hivekion/baseData/service/impl/OrgSupplierServiceImpl.java +++ b/src/main/java/com/hivekion/baseData/service/impl/OrgSupplierServiceImpl.java @@ -27,4 +27,9 @@ public class OrgSupplierServiceImpl extends ServiceImpl selectByOrgIds(List ids) { + return this.baseMapper.selectByOrgIds(ids); + } } diff --git a/src/main/java/com/hivekion/scenario/service/IScenarioOrgPostService.java b/src/main/java/com/hivekion/scenario/service/IScenarioOrgPostService.java index 2ca5367..37beb64 100644 --- a/src/main/java/com/hivekion/scenario/service/IScenarioOrgPostService.java +++ b/src/main/java/com/hivekion/scenario/service/IScenarioOrgPostService.java @@ -17,4 +17,5 @@ public interface IScenarioOrgPostService extends IService { void removeByCondition(ScenarioOrgPost scenarioOrgPost); List selectByCondition(ScenarioOrgPost scenarioOrgPost); List getSelectOrgId(ScenarioOrgPost scenarioOrgPost); + } 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 9f7e080..0276910 100644 --- a/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java +++ b/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java @@ -136,33 +136,50 @@ public class ScenarioTaskServiceImpl extends * @param roomId 房间ID */ private void weatherTrigger(Scenario currentScenario, String roomId) { - try { - QueryWrapper weatherResourceQueryWrapper = new QueryWrapper<>(); - weatherResourceQueryWrapper.eq("scenario_id", currentScenario.getId()); - List weatherResourceList = this.weatherResourceService.list(weatherResourceQueryWrapper); - ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); - responseCmdInfo.setScenarioId(currentScenario.getId()); - responseCmdInfo.setRoom(roomId); - JSONArray weatherMsgArray = new JSONArray(); - for (WeatherResource weatherResource : weatherResourceList) { - JSONObject jsonObject = new JSONObject(); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - jsonObject.putOnce("begTime", dtf.format(weatherResource.getLastBegTime())); - jsonObject.putOnce("endTime", dtf.format(weatherResource.getLastEndTime())); - weatherMsgArray.add(jsonObject); - responseCmdInfo.setCmdType("66-" + weatherResource.getWeatherType()); - } - responseCmdInfo.setData(weatherMsgArray); - System.out.println(responseCmdInfo.toString()); - Global.sendCmdInfoQueue.add(responseCmdInfo); - } catch (Exception ex) { + //获取到 reids中天气数据 + //每个天气开始遍历 + //获取天气开始的时间 ,最好加一个状态,提示天气任务的开始,运行 + //想定的开始时间+想定目前持续的时间 - log.error(ex.getMessage()); - } +// try { +// QueryWrapper weatherResourceQueryWrapper = new QueryWrapper<>(); +// weatherResourceQueryWrapper.eq("scenario_id", currentScenario.getId()); +// List weatherResourceList = this.weatherResourceService.list(weatherResourceQueryWrapper); +// ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); +// responseCmdInfo.setScenarioId(currentScenario.getId()); +// responseCmdInfo.setRoom(roomId); +// JSONArray weatherMsgArray = new JSONArray(); +// for (WeatherResource weatherResource : weatherResourceList) { +// JSONObject jsonObject = new JSONObject(); +// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// jsonObject.putOnce("begTime", dtf.format(weatherResource.getLastBegTime())); +// jsonObject.putOnce("endTime", dtf.format(weatherResource.getLastEndTime())); +// weatherMsgArray.add(jsonObject); +// responseCmdInfo.setCmdType("66-" + weatherResource.getWeatherType()); +// } +// responseCmdInfo.setData(weatherMsgArray); +// System.out.println(responseCmdInfo.toString()); +// Global.sendCmdInfoQueue.add(responseCmdInfo); +// } catch (Exception ex) { +// +// log.error(ex.getMessage()); +// } } - + /** + * 获取当前想定从开始到现在时间 + * @param scenario + * @param roomId + * @return + */ + private int getCurrentDuringTime(Scenario scenario, String roomId) { + Object duringTime = redisUtil.hget(roomId + "_" + scenario.getId(), "duringTime"); + if (duringTime != null) { + return (Integer) duringTime; + } + return 0; + } private void taskTrigger(Scenario currentScenario, String roomId) { try{ Object statusObj = redisUtil.hget(roomId + "_" + currentScenario.getId(), "status"); diff --git a/src/main/java/com/hivekion/scenario/service/impl/TaskLogicServiceImpl.java b/src/main/java/com/hivekion/scenario/service/impl/TaskLogicServiceImpl.java index ecd2278..cd067a3 100644 --- a/src/main/java/com/hivekion/scenario/service/impl/TaskLogicServiceImpl.java +++ b/src/main/java/com/hivekion/scenario/service/impl/TaskLogicServiceImpl.java @@ -191,6 +191,12 @@ public class TaskLogicServiceImpl implements TaskLogicService { Global.sendCmdInfoQueue.add(cmdInfo); } + /** + * 获取当前想定从开始到现在时间 + * @param scenario + * @param roomId + * @return + */ private int getCurrentDuringTime(Scenario scenario, String roomId) { Object duringTime = redisUtil.hget(roomId + "_" + scenario.getId(), "duringTime"); if (duringTime != null) { diff --git a/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java b/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java index e70fdcd..9570c48 100644 --- a/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java +++ b/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java @@ -2,7 +2,9 @@ package com.hivekion.statistic.service.impl; import com.hivekion.baseData.entity.OrgSupplier; import com.hivekion.baseData.service.OrgSupplierService; +import com.hivekion.scenario.entity.ScenarioOrgPost; import com.hivekion.scenario.entity.ScenarioResource; +import com.hivekion.scenario.service.IScenarioOrgPostService; import com.hivekion.scenario.service.ScenarioResourceService; import com.hivekion.statistic.bean.StatisticBean; import com.hivekion.statistic.service.StatisticService; @@ -10,7 +12,9 @@ import com.hivekion.supplier.entity.SuppliesDict; import com.hivekion.supplier.service.SuppliesDictService; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** @@ -23,6 +27,7 @@ import org.springframework.stereotype.Service; * @since 2025/7/22 */ @Service +@Slf4j public class StatisticServiceImpl implements StatisticService { @Resource @@ -31,7 +36,8 @@ public class StatisticServiceImpl implements StatisticService { private OrgSupplierService orgSupplierService; @Resource private SuppliesDictService suppliesDictService; - + @Resource + private IScenarioOrgPostService scenarioOrgPostService; @Override public StatisticBean statistic(String resourceId) { StatisticBean statisticBean = new StatisticBean(); @@ -40,37 +46,50 @@ public class StatisticServiceImpl implements StatisticService { if(resourceInstance == null){ return statisticBean; } + statisticBean.getTeam().setType(resourceInstance.getType()); statisticBean.getTeam().setLat(resourceInstance.getLat()); statisticBean.getTeam().setLng(resourceInstance.getLng()); statisticBean.getTeam().setTeamName(resourceInstance.getResourceName()); + //获取关联的组织机构信息 + ScenarioOrgPost post = new ScenarioOrgPost(); + post.setResourceId(resourceId); + List orgPostList = scenarioOrgPostService.selectByCondition(post); + List orgList = orgPostList.stream().map(ScenarioOrgPost::getOrgId) + .collect(Collectors.toList()); + //获取人员信息 + //获取物资信息 - List suppliers = orgSupplierService.getByOrgId(resourceInstance.getResourceId()); + List suppliers = orgSupplierService.selectByOrgIds(orgList); + log.info("suppliers size::{}",suppliers.size()); Map supplierMap = suppliesDictService.supplierDictMap(); + log.info("supplierMap::{}",supplierMap); suppliers.forEach(supplier -> { - SuppliesDict dict = supplierMap.get(supplier.getId()); + log.info("supplier:{},{}",supplier,supplier.getId()); + SuppliesDict dict = supplierMap.get(supplier.getSupplierId()); + log.info("dict:{}",dict); if (dict != null) { switch (dict.getCode()) { case "FOOD": - statisticBean.getFood().setTotal(supplier.getAccount()); - statisticBean.getFood().setCurrent(supplier.getAccount()); + statisticBean.getFood().setTotal(statisticBean.getFood().getTotal()+supplier.getAccount()); + statisticBean.getFood().setCurrent(statisticBean.getFood().getCurrent()+supplier.getAccount()); break; case "WATER": - statisticBean.getWater().setTotal(supplier.getAccount()); - statisticBean.getWater().setCurrent(supplier.getAccount()); + statisticBean.getWater().setTotal(statisticBean.getWater().getTotal()+supplier.getAccount()); + statisticBean.getWater().setCurrent(statisticBean.getWater().getCurrent()+supplier.getAccount()); break; case "FUEL": - statisticBean.getFuel().setTotal(supplier.getAccount()); - statisticBean.getFuel().setCurrent(supplier.getAccount()); + statisticBean.getFuel().setTotal(statisticBean.getFuel().getTotal()+supplier.getAccount()); + statisticBean.getFuel().setCurrent(statisticBean.getFuel().getCurrent()+supplier.getAccount()); break; case "MEDICAL": - statisticBean.getMedical().setTotal(supplier.getAccount()); - statisticBean.getMedical().setCurrent(supplier.getAccount()); + statisticBean.getMedical().setTotal( statisticBean.getMedical().getTotal()+supplier.getAccount()); + statisticBean.getMedical().setCurrent( statisticBean.getMedical().getCurrent()+supplier.getAccount()); break; case "AMMUNITION": - statisticBean.getAmmunition().setTotal(supplier.getAccount()); - statisticBean.getAmmunition().setCurrent(supplier.getAccount()); + statisticBean.getAmmunition().setTotal( statisticBean.getAmmunition().getTotal()+supplier.getAccount()); + statisticBean.getAmmunition().setCurrent(statisticBean.getAmmunition().getCurrent()+supplier.getAccount()); break; default: break; diff --git a/src/main/java/com/hivekion/ws/WsServer.java b/src/main/java/com/hivekion/ws/WsServer.java index 63c64f5..ae05bcb 100644 --- a/src/main/java/com/hivekion/ws/WsServer.java +++ b/src/main/java/com/hivekion/ws/WsServer.java @@ -1,7 +1,10 @@ package com.hivekion.ws; +import com.alibaba.fastjson2.JSON; import com.hivekion.Global; import com.hivekion.common.entity.RequestCmdInfo; +import com.hivekion.common.entity.ResponseCmdInfo; +import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import javax.websocket.OnClose; @@ -57,6 +60,12 @@ public class WsServer { } + try{ + session.getBasicRemote().sendText(testWeatherJson()); + }catch (Exception e){ + log.error("error::",e); + } + } } @@ -111,10 +120,24 @@ public class WsServer { if (roomMap.containsKey(room)) { Map singleRoomMap = roomMap.get(room); singleRoomMap.forEach((sessionId, session) -> { - session.getAsyncRemote().sendText(message); + try{ + session.getBasicRemote().sendText(message); + }catch (Exception e){ + log.error("error::",e); + } + }); } } } - + private String testWeatherJson(){ + ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); + responseCmdInfo.setCmdType("66-raining"); + responseCmdInfo.setRoom("123"); + responseCmdInfo.setScenarioId(2746); + Map data = new HashMap<>(); + data.put("begTime","2028-03-09 10:00:00"); + data.put("endTime","2028-03-19 00:20:00"); + return JSON.toJSONString(responseCmdInfo); + } } diff --git a/src/main/resources/mapper/tbl/OrgSupplierMapper.xml b/src/main/resources/mapper/tbl/OrgSupplierMapper.xml index 47aebc4..298cded 100644 --- a/src/main/resources/mapper/tbl/OrgSupplierMapper.xml +++ b/src/main/resources/mapper/tbl/OrgSupplierMapper.xml @@ -1,5 +1,19 @@ - + + + + + + + + + + From 01007c12792a5f50d4f5b1fd9f398a937657bec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=8E=89=E4=B8=9C?= <129883742+liyudong2018@users.noreply.github.com> Date: Sun, 14 Sep 2025 22:34:55 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/FightpowerstaffMapper.java | 3 ++- .../service/FightpowerstaffService.java | 1 + .../impl/FightpowerstaffServiceImpl.java | 6 ++++++ .../service/impl/StatisticServiceImpl.java | 19 ++++++++++++++----- src/main/java/com/hivekion/ws/WsServer.java | 8 +++++--- .../mapper/tbl/FightpowerstaffMapper.xml | 7 ++++++- 6 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/hivekion/baseData/mapper/FightpowerstaffMapper.java b/src/main/java/com/hivekion/baseData/mapper/FightpowerstaffMapper.java index 8a036de..82ed3a1 100644 --- a/src/main/java/com/hivekion/baseData/mapper/FightpowerstaffMapper.java +++ b/src/main/java/com/hivekion/baseData/mapper/FightpowerstaffMapper.java @@ -2,6 +2,7 @@ package com.hivekion.baseData.mapper; import com.hivekion.baseData.entity.Fightpowerstaff; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; /** *

@@ -12,5 +13,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; * @since 2025-08-07 */ public interface FightpowerstaffMapper extends BaseMapper { - + List queryByOrgIds(List ids); } diff --git a/src/main/java/com/hivekion/baseData/service/FightpowerstaffService.java b/src/main/java/com/hivekion/baseData/service/FightpowerstaffService.java index 9dec0ed..6836223 100644 --- a/src/main/java/com/hivekion/baseData/service/FightpowerstaffService.java +++ b/src/main/java/com/hivekion/baseData/service/FightpowerstaffService.java @@ -14,4 +14,5 @@ import java.util.List; */ public interface FightpowerstaffService extends IService { List queryListByOrgId(Integer orgId); + List queryByOrgIds(List ids); } diff --git a/src/main/java/com/hivekion/baseData/service/impl/FightpowerstaffServiceImpl.java b/src/main/java/com/hivekion/baseData/service/impl/FightpowerstaffServiceImpl.java index aab299d..681ed37 100644 --- a/src/main/java/com/hivekion/baseData/service/impl/FightpowerstaffServiceImpl.java +++ b/src/main/java/com/hivekion/baseData/service/impl/FightpowerstaffServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hivekion.baseData.entity.Fightpowerstaff; import com.hivekion.baseData.mapper.FightpowerstaffMapper; import com.hivekion.baseData.service.FightpowerstaffService; +import java.util.Collections; import java.util.List; import org.springframework.stereotype.Service; @@ -27,4 +28,9 @@ public class FightpowerstaffServiceImpl extends queryWrapper.eq("parent_id", orgId); return this.list(queryWrapper); } + + @Override + public List queryByOrgIds(List ids) { + return this.baseMapper.queryByOrgIds(ids); + } } diff --git a/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java b/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java index 9570c48..f296fbf 100644 --- a/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java +++ b/src/main/java/com/hivekion/statistic/service/impl/StatisticServiceImpl.java @@ -1,6 +1,8 @@ package com.hivekion.statistic.service.impl; +import com.hivekion.baseData.entity.Fightpowerstaff; import com.hivekion.baseData.entity.OrgSupplier; +import com.hivekion.baseData.service.FightpowerstaffService; import com.hivekion.baseData.service.OrgSupplierService; import com.hivekion.scenario.entity.ScenarioOrgPost; import com.hivekion.scenario.entity.ScenarioResource; @@ -38,6 +40,8 @@ public class StatisticServiceImpl implements StatisticService { private SuppliesDictService suppliesDictService; @Resource private IScenarioOrgPostService scenarioOrgPostService; + @Resource + private FightpowerstaffService fightpowerstaffService; @Override public StatisticBean statistic(String resourceId) { StatisticBean statisticBean = new StatisticBean(); @@ -58,16 +62,21 @@ public class StatisticServiceImpl implements StatisticService { List orgList = orgPostList.stream().map(ScenarioOrgPost::getOrgId) .collect(Collectors.toList()); //获取人员信息 - + List staffList = fightpowerstaffService.queryByOrgIds(orgList); + int sum = staffList.stream() + .mapToInt(Fightpowerstaff::getNumber) + .sum(); + statisticBean.getPerson().setCurrent(sum); + statisticBean.getPerson().setTotal(sum); //获取物资信息 List suppliers = orgSupplierService.selectByOrgIds(orgList); - log.info("suppliers size::{}",suppliers.size()); + Map supplierMap = suppliesDictService.supplierDictMap(); - log.info("supplierMap::{}",supplierMap); + suppliers.forEach(supplier -> { - log.info("supplier:{},{}",supplier,supplier.getId()); + SuppliesDict dict = supplierMap.get(supplier.getSupplierId()); - log.info("dict:{}",dict); + if (dict != null) { switch (dict.getCode()) { case "FOOD": diff --git a/src/main/java/com/hivekion/ws/WsServer.java b/src/main/java/com/hivekion/ws/WsServer.java index ae05bcb..9739497 100644 --- a/src/main/java/com/hivekion/ws/WsServer.java +++ b/src/main/java/com/hivekion/ws/WsServer.java @@ -61,7 +61,9 @@ public class WsServer { } try{ - session.getBasicRemote().sendText(testWeatherJson()); + session.getBasicRemote().sendText(testWeatherJson("start_rain")); + Thread.sleep(10000); + session.getBasicRemote().sendText(testWeatherJson("start_snow")); }catch (Exception e){ log.error("error::",e); } @@ -130,9 +132,9 @@ public class WsServer { } } } - private String testWeatherJson(){ + private String testWeatherJson(String tag){ ResponseCmdInfo responseCmdInfo = new ResponseCmdInfo(); - responseCmdInfo.setCmdType("66-raining"); + responseCmdInfo.setCmdType(tag); responseCmdInfo.setRoom("123"); responseCmdInfo.setScenarioId(2746); Map data = new HashMap<>(); diff --git a/src/main/resources/mapper/tbl/FightpowerstaffMapper.xml b/src/main/resources/mapper/tbl/FightpowerstaffMapper.xml index e6c7d77..6d6b815 100644 --- a/src/main/resources/mapper/tbl/FightpowerstaffMapper.xml +++ b/src/main/resources/mapper/tbl/FightpowerstaffMapper.xml @@ -1,5 +1,10 @@ - + From 0601bc932a18c52b47d11db4d57c3e8855984b08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=8E=89=E4=B8=9C?= <129883742+liyudong2018@users.noreply.github.com> Date: Sun, 14 Sep 2025 22:48:02 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scenario/service/impl/ScenarioTaskServiceImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 0276910..898c208 100644 --- a/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java +++ b/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java @@ -71,13 +71,15 @@ public class ScenarioTaskServiceImpl extends //查询天气数据 WeatherResource weatherList = weatherResourceService.getOne(new QueryWrapper() .eq("scenario_id",id)); -// currentScenario.getGuid()); - //放入天气数据 - redisUtil.hset(roomId + "_" + id, "weather", weatherList.getWeatherType()); + if(weatherList!=null){ + //放入天气数据 + redisUtil.hset(roomId + "_" + id, "weather", weatherList); + } + //查询任务 ScenarioTask queryTask = new ScenarioTask(); queryTask.setScenarioId(id); - redisUtil.hset(roomId + "_" + id, "taskList", queryTaskList(queryTask).get(0).getTaskType()); + redisUtil.hset(roomId + "_" + id, "taskList", queryTaskList(queryTask)); new Thread(() -> { springGlobalTaskManager.startPerSecondTask(roomId + "_" + id + "_task", () -> { From 68c3ac98b8e6323e27439061b0b68ae3835ffe0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=8E=89=E4=B8=9C?= <129883742+liyudong2018@users.noreply.github.com> Date: Sun, 14 Sep 2025 23:08:37 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ScenarioTaskServiceImpl.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) 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 898c208..8717490 100644 --- a/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java +++ b/src/main/java/com/hivekion/scenario/service/impl/ScenarioTaskServiceImpl.java @@ -2,6 +2,7 @@ package com.hivekion.scenario.service.impl; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hivekion.Global; @@ -57,32 +58,32 @@ public class ScenarioTaskServiceImpl extends @Override - public void start(Integer id, String roomId) { - log.info("id::{},roomId::{}",id,roomId); - Scenario currentScenario = scenarioService.getScenarioById(id); + public void start(Integer scenarioId, String roomId) { + log.info("scenarioId::{},roomId::{}",scenarioId,roomId); + Scenario currentScenario = scenarioService.getScenarioById(scenarioId); //想定当前持续时间 - redisUtil.hset(roomId + "_" + id, "duringTime", "0"); + redisUtil.hset(roomId + "_" + scenarioId, "duringTime", "0"); //想定当前状态 - redisUtil.hset(roomId + "_" + id, "states", "running"); + redisUtil.hset(roomId + "_" + scenarioId, "states", "running"); //查询天气数据 WeatherResource weatherList = weatherResourceService.getOne(new QueryWrapper() - .eq("scenario_id",id)); + .eq("scenario_id",scenarioId)); if(weatherList!=null){ //放入天气数据 - redisUtil.hset(roomId + "_" + id, "weather", weatherList); + redisUtil.hset(roomId + "_" + scenarioId, "weather", JSON.toJSONString(weatherList)); } //查询任务 ScenarioTask queryTask = new ScenarioTask(); - queryTask.setScenarioId(id); - redisUtil.hset(roomId + "_" + id, "taskList", queryTaskList(queryTask)); + queryTask.setScenarioId(scenarioId); + redisUtil.hset(roomId + "_" + scenarioId, "taskList", JSON.toJSONString(queryTaskList(queryTask))); new Thread(() -> { - springGlobalTaskManager.startPerSecondTask(roomId + "_" + id + "_task", () -> { + springGlobalTaskManager.startPerSecondTask(roomId + "_" + scenarioId + "_task", () -> { //时间累计 increaseTime(currentScenario, roomId); @@ -112,6 +113,7 @@ public class ScenarioTaskServiceImpl extends private void increaseTime(Scenario currentScenario, String roomId) { try{ + log.info("currentScenario:;{}",currentScenario); int mag = Global.roomParamMap.get(currentScenario.getId() + "_" + roomId) == null ? 1 : Global.roomParamMap.get(currentScenario.getId() + "_" + roomId).getMag(); //获取当前状态 @@ -184,6 +186,7 @@ public class ScenarioTaskServiceImpl extends } private void taskTrigger(Scenario currentScenario, String roomId) { try{ + log.info("{}",currentScenario); Object statusObj = redisUtil.hget(roomId + "_" + currentScenario.getId(), "status"); if (statusObj != null && statusObj.toString().equals("running")) { Object taskListObj = redisUtil.hget(roomId + "_" + currentScenario.getId(), "taskList");