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");