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] =?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 @@
-
+
+
+
+
+
+
+
+
+
+