From e02e19c2d1a1de70ec8f97e511d866899054b0a1 Mon Sep 17 00:00:00 2001
From: wangwenhua <12345678>
Date: Sun, 21 Sep 2025 11:57:12 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E5=A4=A9=E6=B0=94?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/WeatherResourceController.java | 66 ++++++++++++++++++-
.../baseData/entity/WeatherResource.java | 8 ++-
.../mapper/WeatherResourceMapper.java | 7 ++
.../service/IWeatherResourceService.java | 8 +++
.../impl/WeatherResourceServiceImpl.java | 16 ++++-
.../hivekion/statistic/bean/ScenarioInfo.java | 3 +
.../service/impl/ScenarioServiceImpl.java | 60 +++++++++++++++++
.../hivekion/thread/HandleSendRunable.java | 1 -
.../mapper/tbl/WeatherResourceMapper.xml | 33 ++++++++++
9 files changed, 196 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/hivekion/baseData/controller/WeatherResourceController.java b/src/main/java/com/hivekion/baseData/controller/WeatherResourceController.java
index 390bfce..bc1ae55 100644
--- a/src/main/java/com/hivekion/baseData/controller/WeatherResourceController.java
+++ b/src/main/java/com/hivekion/baseData/controller/WeatherResourceController.java
@@ -1,8 +1,23 @@
package com.hivekion.baseData.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.hivekion.baseData.domain.tblvehicleVo.VehicleAddInputVo;
+import com.hivekion.baseData.entity.WeatherResource;
+import com.hivekion.baseData.service.IWeatherResourceService;
+import com.hivekion.common.annotation.AutoLog;
+import com.hivekion.common.entity.PagedResultVo;
+import com.hivekion.common.entity.ResponseData;
+import com.hivekion.common.enums.OperationTypeEnum;
+import com.hivekion.common.enums.ResultCodeEnum;
+import com.hivekion.environment.entity.SimtoolEbe;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
/**
*
* 气像资源信息 前端控制器
@@ -11,8 +26,53 @@ import org.springframework.stereotype.Controller;
* @author liDongYu
* @since 2025-09-14
*/
-@Controller
+@RestController
@RequestMapping("/baseData/weatherResource")
-public class WeatherResourceController {
+public class WeatherResourceController extends BaseController{
+ @Resource
+ private IWeatherResourceService weatherResourceService;
+
+ @PostMapping("/add")
+ @ApiOperation(value = "新增天气信息", notes = "")
+ @AutoLog(value = "新增天气信息", operationType = OperationTypeEnum.INSERT, module = "基础数据/新增车辆信息")
+ public boolean add(@RequestBody WeatherResource inputVo) throws Exception {
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ LocalDateTime begDate = LocalDateTime.parse(inputVo.getLastBegTimeStr(),dtf);
+ LocalDateTime endDate = LocalDateTime.parse(inputVo.getLastEndTimeStr(),dtf);
+ inputVo.setLastBegTime(begDate);
+ inputVo.setLastEndTime(endDate);
+ return weatherResourceService.save(inputVo);
+ }
+
+ @ApiOperation(value = "查询天气列表", notes = "")
+ @GetMapping("/list")
+
+ public PagedResultVo list(WeatherResource search) {
+
+
+ //设置开始索引
+ search.setStart(search.getPageSize() * (search.getPageNum() - 1));
+ //查询结果列表
+ List list = weatherResourceService.list(search);
+ //查询总数
+ Long total = weatherResourceService.count(search);
+ return list(search, list, total);
+
+ }
+ /**
+ * 删除天气数据
+ *
+ * @param id 记录ID
+ * @return 操作结果
+ */
+ @GetMapping("/remove/{id}")
+ public ResponseData remove(@PathVariable("id") Integer id) {
+ WeatherResource weather = weatherResourceService.getById(id);
+ if (weather == null) {
+ return ResponseData.error(ResultCodeEnum.RECORD_NOT_EXIT, null);
+ }
+ weatherResourceService.removeById(id);
+ return ResponseData.success(null);
+ }
}
diff --git a/src/main/java/com/hivekion/baseData/entity/WeatherResource.java b/src/main/java/com/hivekion/baseData/entity/WeatherResource.java
index 162b32c..8e5eed6 100644
--- a/src/main/java/com/hivekion/baseData/entity/WeatherResource.java
+++ b/src/main/java/com/hivekion/baseData/entity/WeatherResource.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.hivekion.common.entity.SearchInputVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
@@ -21,7 +22,7 @@ import lombok.Data;
@TableName("TBL_WEATHER_RESOURCE")
@ApiModel(value = "WeatherResource对象", description = "气像资源信息")
@Data
-public class WeatherResource implements Serializable {
+public class WeatherResource extends SearchInputVo implements Serializable {
private static final long serialVersionUID = 1L;
@@ -51,5 +52,10 @@ public class WeatherResource implements Serializable {
@TableField(exist = false)
private String status = "init";
+ @TableField(exist = false)
+ private String lastBegTimeStr;
+ @TableField(exist = false)
+ private String lastEndTimeStr;
+
}
diff --git a/src/main/java/com/hivekion/baseData/mapper/WeatherResourceMapper.java b/src/main/java/com/hivekion/baseData/mapper/WeatherResourceMapper.java
index b14b0c6..7505cf7 100644
--- a/src/main/java/com/hivekion/baseData/mapper/WeatherResourceMapper.java
+++ b/src/main/java/com/hivekion/baseData/mapper/WeatherResourceMapper.java
@@ -2,6 +2,9 @@ package com.hivekion.baseData.mapper;
import com.hivekion.baseData.entity.WeatherResource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hivekion.environment.entity.SimtoolEbe;
+
+import java.util.List;
/**
*
@@ -13,4 +16,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface WeatherResourceMapper extends BaseMapper {
+ List list(WeatherResource ebe);
+
+ Long count(WeatherResource ebe);
+
}
diff --git a/src/main/java/com/hivekion/baseData/service/IWeatherResourceService.java b/src/main/java/com/hivekion/baseData/service/IWeatherResourceService.java
index 8cfc15a..127c6bc 100644
--- a/src/main/java/com/hivekion/baseData/service/IWeatherResourceService.java
+++ b/src/main/java/com/hivekion/baseData/service/IWeatherResourceService.java
@@ -2,6 +2,9 @@ package com.hivekion.baseData.service;
import com.hivekion.baseData.entity.WeatherResource;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.hivekion.environment.entity.SimtoolEbe;
+
+import java.util.List;
/**
*
@@ -13,4 +16,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IWeatherResourceService extends IService {
+ List list(WeatherResource ebe);
+
+ Long count(WeatherResource ebe);
+
+
}
diff --git a/src/main/java/com/hivekion/baseData/service/impl/WeatherResourceServiceImpl.java b/src/main/java/com/hivekion/baseData/service/impl/WeatherResourceServiceImpl.java
index c44b5e3..05bc715 100644
--- a/src/main/java/com/hivekion/baseData/service/impl/WeatherResourceServiceImpl.java
+++ b/src/main/java/com/hivekion/baseData/service/impl/WeatherResourceServiceImpl.java
@@ -1,11 +1,14 @@
package com.hivekion.baseData.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hivekion.baseData.entity.WeatherResource;
import com.hivekion.baseData.mapper.WeatherResourceMapper;
import com.hivekion.baseData.service.IWeatherResourceService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 气像资源信息 服务实现类
@@ -17,4 +20,15 @@ import org.springframework.stereotype.Service;
@Service
public class WeatherResourceServiceImpl extends ServiceImpl implements IWeatherResourceService {
+ @Override
+ public List list(WeatherResource ebe) {
+
+ return this.list(new QueryWrapper().eq("scenario_id",ebe.getScenarioId()));
+ }
+
+ @Override
+ public Long count(WeatherResource ebe) {
+ return this.baseMapper.count(ebe);
+ }
+
}
diff --git a/src/main/java/com/hivekion/statistic/bean/ScenarioInfo.java b/src/main/java/com/hivekion/statistic/bean/ScenarioInfo.java
index 714b968..ffc4f51 100644
--- a/src/main/java/com/hivekion/statistic/bean/ScenarioInfo.java
+++ b/src/main/java/com/hivekion/statistic/bean/ScenarioInfo.java
@@ -3,6 +3,7 @@ package com.hivekion.statistic.bean;
import com.hivekion.baseData.entity.Fightpowerstaff;
import com.hivekion.baseData.entity.OrgSupplier;
import com.hivekion.scenario.entity.ScenarioOrgPost;
+import com.hivekion.scenario.entity.ScenarioResource;
import com.hivekion.scenario.entity.ScenarioTask;
import com.hivekion.supplier.entity.SupplierRequest;
import lombok.Data;
@@ -38,4 +39,6 @@ public class ScenarioInfo implements Serializable {
//药材
private MedicalInfo medical = new MedicalInfo();
+ private ScenarioResource sdzy;
+
}
diff --git a/src/main/java/com/hivekion/statistic/service/impl/ScenarioServiceImpl.java b/src/main/java/com/hivekion/statistic/service/impl/ScenarioServiceImpl.java
index ac39ceb..ef740f9 100644
--- a/src/main/java/com/hivekion/statistic/service/impl/ScenarioServiceImpl.java
+++ b/src/main/java/com/hivekion/statistic/service/impl/ScenarioServiceImpl.java
@@ -71,6 +71,12 @@ public class ScenarioServiceImpl implements ScenarioService {
@Override
public ScenarioInfo listScenarioInfo(Integer scenarioId, String roomId, String resourceId) {
ScenarioInfo scenarioInfo = new ScenarioInfo();
+ //图标Map
+ Map iconMap = iconService.iconMap();
+ //装备Map
+ Map entityMap = iTblEntityService.entityMap();
+ Map hResourceMap = resourcesService.listBuildResourceByType(7);
+ Map wResourceMap = resourcesService.listBuildResourceByType(8);
//获取分队信息
Map map = teamInfoService.teamInfoMap();
Map resourceMap = resourceService.resourceMap();
@@ -90,6 +96,59 @@ public class ScenarioServiceImpl implements ScenarioService {
log.error("============={}==========================",resourceId);
ex.printStackTrace();
}
+ switch (resourceInstance.getResourceType()) {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ if (entityMap.get(resourceInstance.getResourceId()) != null) {
+ TblEntity entity = entityMap.get(resourceInstance.getResourceId());
+ resourceInstance.setTitle(entity.getEntityName());
+ resourceInstance.setImgBase64(
+ iconMap.get(entity.getIconId()) == null ? "" : iconMap.get(entity.getIconId()));
+ }
+ break;
+ case 5:
+ case 6:
+ if (map.get(resourceInstance.getResourceId()) != null) {
+ Teaminfo teaminfo = map.get(resourceInstance.getResourceId());
+ resourceInstance.setTitle(teaminfo.getName());
+ resourceInstance.setImgBase64(
+ iconMap.get(teaminfo.getIconId()) == null ? "" : iconMap.get(teaminfo.getIconId()));
+ }
+ break;
+ case 7:
+ if(hResourceMap.get(resourceInstance.getResourceId()) != null){
+ com.hivekion.scenario.entity.Resource resource1 = hResourceMap.get(resourceInstance.getResourceId());
+ resourceInstance.setTitle(resource1.getResourceName());
+ resourceInstance.setImgBase64(
+ iconMap.get(resource1.getIcon()) == null ? "" : iconMap.get(resource1.getIcon()));
+ }
+ break;
+ case 8:
+ if(wResourceMap.get(resourceInstance.getResourceId()) != null){
+ com.hivekion.scenario.entity.Resource resource1 = wResourceMap.get(resourceInstance.getResourceId());
+ resourceInstance.setTitle(resource1.getResourceName());
+ resourceInstance.setImgBase64(
+ iconMap.get(resource1.getIcon()) == null ? "" : iconMap.get(resource1.getIcon()));
+ }
+ break;
+ }
+ if (resourceMap.get(resourceId) != null) {
+ ScenarioResource resource = resourceMap.get(resourceId);
+ if (map.get(resource.getResourceId()) != null) {
+ scenarioInfo.getTeam().setTeamName(map.get(resource.getResourceId()).getName());
+ resourceInstance.setResourceName(map.get(resource.getResourceId()).getName());
+ }
+ }
+ try {
+ scenarioInfo.getTeam().setType(resourceInstance.getType());
+ scenarioInfo.getTeam().setLat(resourceInstance.getLat());
+ scenarioInfo.getTeam().setLng(resourceInstance.getLng());
+ }catch (Exception ex){
+ log.error("============={}==========================",resourceId);
+ ex.printStackTrace();
+ }
//获取关联的组织机构信息
ScenarioOrgPost post = new ScenarioOrgPost();
post.setResourceId(resourceId);
@@ -173,6 +232,7 @@ public class ScenarioServiceImpl implements ScenarioService {
scenarioInfo.setOrgPostList(orgPostList);
scenarioInfo.setSuppliers(suppliers);
scenarioInfo.setSupplierRequests(supplierRequests);
+ scenarioInfo.setSdzy(resourceInstance);
return scenarioInfo;
}
diff --git a/src/main/java/com/hivekion/thread/HandleSendRunable.java b/src/main/java/com/hivekion/thread/HandleSendRunable.java
index ae7bb4f..ab45586 100644
--- a/src/main/java/com/hivekion/thread/HandleSendRunable.java
+++ b/src/main/java/com/hivekion/thread/HandleSendRunable.java
@@ -25,7 +25,6 @@ public class HandleSendRunable implements Runnable {
try {
ResponseCmdInfo> response = Global.sendCmdInfoQueue.take();
-
WsServer.sendMessage(response.getScenarioId(), response.getRoom(), JSON.toJSONString(response));
} catch (Exception e) {
log.error("error::", e);
diff --git a/src/main/resources/mapper/tbl/WeatherResourceMapper.xml b/src/main/resources/mapper/tbl/WeatherResourceMapper.xml
index 069c31d..3ed8c4a 100644
--- a/src/main/resources/mapper/tbl/WeatherResourceMapper.xml
+++ b/src/main/resources/mapper/tbl/WeatherResourceMapper.xml
@@ -1,5 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
From 10cf9622bbe63b1b84d433944720b188f6120aed 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, 21 Sep 2025 12:32:21 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=9B=B8=E5=85=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../thread/HandleReceiveRunnable.java | 45 +++++++++++++++++--
1 file changed, 41 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/hivekion/thread/HandleReceiveRunnable.java b/src/main/java/com/hivekion/thread/HandleReceiveRunnable.java
index 61ff83e..3de07e1 100644
--- a/src/main/java/com/hivekion/thread/HandleReceiveRunnable.java
+++ b/src/main/java/com/hivekion/thread/HandleReceiveRunnable.java
@@ -3,12 +3,18 @@ package com.hivekion.thread;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON;
import com.hivekion.Global;
+import com.hivekion.baseData.entity.Scenario;
+import com.hivekion.baseData.entity.WeatherResource;
+import com.hivekion.baseData.service.impl.ScenarioServiceImpl;
+import com.hivekion.baseData.service.impl.WeatherResourceServiceImpl;
import com.hivekion.common.entity.RequestCmdInfo;
import com.hivekion.common.entity.ResponseCmdInfo;
import com.hivekion.room.RoomManager;
import com.hivekion.room.bean.Room;
import com.hivekion.scenario.entity.ScenarioResource;
+import java.time.LocalDateTime;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
@@ -39,8 +45,10 @@ public class HandleReceiveRunnable implements Runnable {
//消息分发业务bean处理
if (SpringUtil.getBean(WebsocketMsgWrapper.class) != null) {
try {
- WebsocketMsgWrapper websocketMsgWrapper = SpringUtil.getBean(WebsocketMsgWrapper.class);
- websocketMsgWrapper.msgHandle(requestCmdInfo.getScenarioId(), requestCmdInfo.getRoom(),
+ WebsocketMsgWrapper websocketMsgWrapper = SpringUtil.getBean(
+ WebsocketMsgWrapper.class);
+ websocketMsgWrapper.msgHandle(requestCmdInfo.getScenarioId(),
+ requestCmdInfo.getRoom(),
requestCmdInfo.getResourceId(), requestCmdInfo.getMessage());
} catch (Exception e) {
log.error("error::", e);
@@ -52,8 +60,6 @@ public class HandleReceiveRunnable implements Runnable {
}
-
-
} catch (Exception e) {
log.error("error::", e);
}
@@ -70,6 +76,9 @@ public class HandleReceiveRunnable implements Runnable {
case "get_room_info":
handleGetRootInfo(requestCmdInfo);
break;
+ case "get_weather":
+ handleGetWeather(requestCmdInfo);
+ break;
default:
break;
@@ -130,4 +139,32 @@ public class HandleReceiveRunnable implements Runnable {
});
}
}
+
+ private void handleGetWeather(RequestCmdInfo requestCmdInfo) {
+ //获取想定
+ Scenario scenario = SpringUtil.getBean(ScenarioServiceImpl.class)
+ .getScenarioById(requestCmdInfo.getScenarioId());
+ LocalDateTime startTime = scenario.getStartTime();
+ Room room = RoomManager.getRoom(requestCmdInfo.getRoom());
+ if (room != null) {
+ long duringTime = room.getDuringTime();
+ List weatherList = SpringUtil.getBean(WeatherResourceServiceImpl.class)
+ .list();
+ weatherList.forEach(weatherResource -> {
+ ResponseCmdInfo