From ac0a95002581273d772b24c04082043bfbdda091 Mon Sep 17 00:00:00 2001 From: wangwenhua <12345678> Date: Thu, 18 Sep 2025 11:34:34 +0800 Subject: [PATCH 1/2] =?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) { From f3f947e57bf8f72af7e8523c6b41c277af2483e5 Mon Sep 17 00:00:00 2001 From: wangwenhua <12345678> Date: Thu, 18 Sep 2025 13:26:34 +0800 Subject: [PATCH 2/2] =?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 --- .../controller/ImgVehicleImageController.java | 18 ++++ .../controller/TblVehicleController.java | 20 +++++ .../domain/tblvehicleVo/VehicleViewVo.java | 6 +- .../baseData/entity/ImgVehicleImage.java | 82 +++++++++++++++++++ src/main/java/com/hivekion/common/utils.java | 10 ++- .../com/hivekion/scenario/entity/Vehicle.java | 24 +++--- .../mapper/tbl/ImgVehicleImageMapper.xml | 5 ++ 7 files changed, 147 insertions(+), 18 deletions(-) create mode 100644 src/main/java/com/hivekion/baseData/controller/ImgVehicleImageController.java create mode 100644 src/main/java/com/hivekion/baseData/entity/ImgVehicleImage.java create mode 100644 src/main/resources/mapper/tbl/ImgVehicleImageMapper.xml diff --git a/src/main/java/com/hivekion/baseData/controller/ImgVehicleImageController.java b/src/main/java/com/hivekion/baseData/controller/ImgVehicleImageController.java new file mode 100644 index 0000000..3d1c029 --- /dev/null +++ b/src/main/java/com/hivekion/baseData/controller/ImgVehicleImageController.java @@ -0,0 +1,18 @@ +package com.hivekion.basedata.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.stereotype.Controller; + +/** + *

+ * 前端控制器 + *

+ * + * @author liDongYu + * @since 2025-09-18 + */ +@Controller +@RequestMapping("/basedata/imgVehicleImage") +public class ImgVehicleImageController { + +} diff --git a/src/main/java/com/hivekion/baseData/controller/TblVehicleController.java b/src/main/java/com/hivekion/baseData/controller/TblVehicleController.java index 9dae541..bd551d2 100644 --- a/src/main/java/com/hivekion/baseData/controller/TblVehicleController.java +++ b/src/main/java/com/hivekion/baseData/controller/TblVehicleController.java @@ -19,6 +19,7 @@ import com.hivekion.baseData.domain.tblvehicleVo.ImgVehicleImageInfoVo; import com.hivekion.baseData.domain.tblvehicleVo.VehicleAddInputVo; import com.hivekion.baseData.domain.tblvehicleVo.VehicleSearchVo; import com.hivekion.baseData.domain.tblvehicleVo.VehicleViewVo; +import com.hivekion.baseData.service.IImgAircraftImageService; import com.hivekion.baseData.service.IImgVehicleImageService; import com.hivekion.common.annotation.AutoLog; import com.hivekion.common.entity.PagedResultVo; @@ -27,10 +28,13 @@ import com.hivekion.scenario.entity.Resource; import com.hivekion.scenario.entity.Vehicle; import com.hivekion.scenario.service.IVehicleService; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; @@ -47,6 +51,9 @@ public class TblVehicleController { @Autowired private IImgVehicleImageService iImgVehicleImageService; + @Autowired + private IImgVehicleImageService imageService; + @PostMapping("/getList") @ApiOperation(value = "获取车辆列表", notes = "") @AutoLog(value = "获取车辆列表", operationType = OperationTypeEnum.SELECT, module = "基础数据/车辆") @@ -96,6 +103,19 @@ public class TblVehicleController { return iImgVehicleImageService.getInfo(Id); } + @PostMapping("/addimg") + @ApiOperation(value = "新增车辆图片", notes = "") + @AutoLog(value = "新增车辆图片", operationType = OperationTypeEnum.INSERT, module = "基础数据/新增车辆图片") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", + value = "id", + required = true + ) + }) + public boolean addImgList(@RequestPart("file") MultipartFile file, Integer id) throws IOException { + return imageService.add(file,id); + } + /** * 生成新Id * diff --git a/src/main/java/com/hivekion/baseData/domain/tblvehicleVo/VehicleViewVo.java b/src/main/java/com/hivekion/baseData/domain/tblvehicleVo/VehicleViewVo.java index b096632..ff3740c 100644 --- a/src/main/java/com/hivekion/baseData/domain/tblvehicleVo/VehicleViewVo.java +++ b/src/main/java/com/hivekion/baseData/domain/tblvehicleVo/VehicleViewVo.java @@ -12,10 +12,10 @@ public class VehicleViewVo implements Serializable { private static final long serialVersionUID = 1L; @JsonProperty("ID") - private Integer id; + private Integer Id; - @ApiModelProperty("名称") - private String vehicleName; + @JsonProperty("Name") + private String Name; @ApiModelProperty("速度") private String vehicleSpreed; diff --git a/src/main/java/com/hivekion/baseData/entity/ImgVehicleImage.java b/src/main/java/com/hivekion/baseData/entity/ImgVehicleImage.java new file mode 100644 index 0000000..48a3556 --- /dev/null +++ b/src/main/java/com/hivekion/baseData/entity/ImgVehicleImage.java @@ -0,0 +1,82 @@ +package com.hivekion.basedata.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + *

+ * + *

+ * + * @author liDongYu + * @since 2025-09-18 + */ +@TableName("IMG_VEHICLE_IMAGE") +@ApiModel(value = "ImgVehicleImage对象", description = "") +public class ImgVehicleImage implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer id; + + private String guid; + + private byte[] icon; + + private byte[] image; + + private String model3d; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getGuid() { + return guid; + } + + public void setGuid(String guid) { + this.guid = guid; + } + + public byte[] getIcon() { + return icon; + } + + public void setIcon(byte[] icon) { + this.icon = icon; + } + + public byte[] getImage() { + return image; + } + + public void setImage(byte[] image) { + this.image = image; + } + + public String getModel3d() { + return model3d; + } + + public void setModel3d(String model3d) { + this.model3d = model3d; + } + + @Override + public String toString() { + return "ImgVehicleImage{" + + "id = " + id + + ", guid = " + guid + + ", icon = " + icon + + ", image = " + image + + ", model3d = " + model3d + + "}"; + } +} diff --git a/src/main/java/com/hivekion/common/utils.java b/src/main/java/com/hivekion/common/utils.java index cc916a9..3f18fb1 100644 --- a/src/main/java/com/hivekion/common/utils.java +++ b/src/main/java/com/hivekion/common/utils.java @@ -1,8 +1,8 @@ package com.hivekion.common; import com.hivekion.common.exception.BusinessException; -import com.sun.javafx.binding.StringFormatter; -import java.time.Duration; + + import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; @@ -10,6 +10,9 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; + +import java.text.MessageFormat; +import java.time.Duration; import java.util.List; import java.util.stream.Collectors; @@ -17,6 +20,7 @@ import java.util.stream.Collectors; * 一些公用的方法集 */ public class utils { + /** * 取差集 */ @@ -95,7 +99,7 @@ public class utils { long hours = duration.toHours(); long minutes = duration.minusHours(hours).toMinutes(); long seconds = duration.minusHours(hours).minusMinutes(minutes).getSeconds(); - return StringFormatter.format("%d小时%d分钟%d秒\n", hours, minutes, seconds).get(); + return MessageFormat.format("{0}小时{1}分钟{2}秒", hours, minutes, seconds); } public static void main(String[] args) { diff --git a/src/main/java/com/hivekion/scenario/entity/Vehicle.java b/src/main/java/com/hivekion/scenario/entity/Vehicle.java index 573a731..dd239f5 100644 --- a/src/main/java/com/hivekion/scenario/entity/Vehicle.java +++ b/src/main/java/com/hivekion/scenario/entity/Vehicle.java @@ -21,12 +21,12 @@ public class Vehicle implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty("物理主键id") - @TableField(value = "id") - private Integer id; + @TableField(value = "ID") + private Integer Id; @ApiModelProperty("名称") - @TableField(value="vehicle_name") - private String vehicleName; + @TableField(value="NAME") + private String Name; @ApiModelProperty("速度") @TableField(value = "vehicle_spreed") @@ -93,19 +93,19 @@ public class Vehicle implements Serializable { } public Integer getId() { - return id; + return Id; } public void setId(Integer id) { - this.id = id; + Id = id; } - public String getVehicleName() { - return vehicleName; + public String getName() { + return Name; } - public void setVehicleName(String vehicleName) { - this.vehicleName = vehicleName; + public void setName(String name) { + Name = name; } public String getVehicleSpreed() { @@ -207,8 +207,8 @@ public class Vehicle implements Serializable { @Override public String toString() { return "Vehicle{" + - "id=" + id + - ", vehicleName='" + vehicleName + '\'' + + "id=" + Id + + ", vehicleName='" + Name + '\'' + ", vehicleSpreed='" + vehicleSpreed + '\'' + ", vehicleType='" + vehicleType + '\'' + ", fuelAbility=" + fuelAbility + diff --git a/src/main/resources/mapper/tbl/ImgVehicleImageMapper.xml b/src/main/resources/mapper/tbl/ImgVehicleImageMapper.xml new file mode 100644 index 0000000..10911a3 --- /dev/null +++ b/src/main/resources/mapper/tbl/ImgVehicleImageMapper.xml @@ -0,0 +1,5 @@ + + + + +