From 5bb5ea1aa555c5e0f52beec866bfd5779efcc39e 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: Thu, 18 Sep 2025 11:31:16 +0800 Subject: [PATCH 1/6] =?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 --- src/main/java/com/hivekion/room/bean/Room.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/hivekion/room/bean/Room.java b/src/main/java/com/hivekion/room/bean/Room.java index 961fe81..f2ef23b 100644 --- a/src/main/java/com/hivekion/room/bean/Room.java +++ b/src/main/java/com/hivekion/room/bean/Room.java @@ -10,6 +10,7 @@ import com.hivekion.scenario.bean.ScenarioWsParam; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.NavigableMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentNavigableMap; @@ -125,16 +126,19 @@ public class Room implements AutoCloseable { sendRemainTime((totalTime.get() - curTime)); - Map actions = actionMap.ceilingEntry(curTime); - if (actions != null && !actions.isEmpty()) { + NavigableMap> actions = actionMap.headMap(curTime, true); + if (!actions.isEmpty() ) { + actions.forEach((key, action) -> { + action.forEach((taskAction, task) -> { + actionExecutor.submit(task::doSomeThing); + }); + }); + - for (Map.Entry entry : actions.entrySet()) { - actionExecutor.submit(entry.getValue()::doSomeThing); - } // 全部执行后再清空 - actions.clear(); - actionMap.remove(curTime); + + actions.clear(); } }, 0, 1, TimeUnit.SECONDS); } From ac0a95002581273d772b24c04082043bfbdda091 Mon Sep 17 00:00:00 2001 From: wangwenhua <12345678> Date: Thu, 18 Sep 2025 11:34:34 +0800 Subject: [PATCH 2/6] =?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 3f1fd98f423f124dfa134cc16931a9bafdeacd61 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: Thu, 18 Sep 2025 11:38:15 +0800 Subject: [PATCH 3/6] =?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 --- src/main/java/com/hivekion/room/RoomManager.java | 12 ++++++++++-- src/main/java/com/hivekion/room/bean/Room.java | 13 ++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/hivekion/room/RoomManager.java b/src/main/java/com/hivekion/room/RoomManager.java index 2f583d8..14137e8 100644 --- a/src/main/java/com/hivekion/room/RoomManager.java +++ b/src/main/java/com/hivekion/room/RoomManager.java @@ -19,8 +19,8 @@ public class RoomManager { private static final Map roomsMap = new ConcurrentHashMap<>(); - public static void startRoom(String id, Scenario scenario,long time) { - Room room = new Room(id,scenario); + public static void startRoom(String id, Scenario scenario, long time) { + Room room = new Room(id, scenario); roomsMap.put(id, room); room.start(time); } @@ -52,4 +52,12 @@ public class RoomManager { room.addAction(time, action); } } + + public static long getRoomDuringTime(String id) { + Room room = roomsMap.get(id); + if (room != null) { + return room.getDuringTime(); + } + return 0; + } } diff --git a/src/main/java/com/hivekion/room/bean/Room.java b/src/main/java/com/hivekion/room/bean/Room.java index f2ef23b..f7200de 100644 --- a/src/main/java/com/hivekion/room/bean/Room.java +++ b/src/main/java/com/hivekion/room/bean/Room.java @@ -10,10 +10,8 @@ import com.hivekion.scenario.bean.ScenarioWsParam; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; -import java.util.Map.Entry; import java.util.NavigableMap; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentNavigableMap; import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -111,7 +109,12 @@ public class Room implements AutoCloseable { startTask(); } - + public long getDuringTime() { + return duringTime.get(); + } + public long getTotalTime() { + return totalTime.get(); + } // 启动定时任务 private void startTask() { @@ -134,10 +137,6 @@ public class Room implements AutoCloseable { }); }); - - // 全部执行后再清空 - - actions.clear(); } }, 0, 1, TimeUnit.SECONDS); From b8b67c1d3eb2d6c011c78f8c01cdc4a72d8100b8 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: Thu, 18 Sep 2025 11:41:46 +0800 Subject: [PATCH 4/6] =?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 --- .../com/hivekion/room/bean/AbtParentTask.java | 28 ++++--------------- .../hivekion/room/bean/BattleRootTask.java | 10 ++----- .../com/hivekion/room/bean/MoveRootTask.java | 10 ++++--- .../com/hivekion/room/bean/SupplierTask.java | 3 -- 4 files changed, 13 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/hivekion/room/bean/AbtParentTask.java b/src/main/java/com/hivekion/room/bean/AbtParentTask.java index c9f8982..1b40ad7 100644 --- a/src/main/java/com/hivekion/room/bean/AbtParentTask.java +++ b/src/main/java/com/hivekion/room/bean/AbtParentTask.java @@ -27,16 +27,14 @@ import org.springframework.web.reactive.function.client.WebClient; public abstract class AbtParentTask implements TaskAction { - protected final AtomicLong duringTime = new AtomicLong(0); - protected final ScheduledExecutorService schedule = Executors.newScheduledThreadPool( - 1); - protected ScheduledFuture scheduledFuture; + + //任务数据 protected final ScenarioTask scenarioTask; protected final String roomId; protected WebClient webClient = WebClient.create(); - ThreadPoolExecutor executor = new ThreadPoolExecutor( + protected ThreadPoolExecutor executor = new ThreadPoolExecutor( 5, // 核心线程数 10, // 最大线程数 60L, // 空闲线程存活时间 @@ -52,20 +50,8 @@ public abstract class AbtParentTask implements TaskAction { } - protected void start() { - scheduledFuture = schedule.scheduleAtFixedRate(() -> { - ScenarioWsParam scenarioWsParam = Global.roomParamMap.get( - scenarioTask.getScenarioId() + "_" + roomId); - if (scenarioWsParam == null) { - duringTime.getAndSet(1); - } else { - duringTime.getAndSet(scenarioWsParam.getMag()); - } - }, 0, 1, TimeUnit.SECONDS); - } - protected abstract void finished(); protected abstract void setMag(int mag); @@ -85,13 +71,9 @@ public abstract class AbtParentTask implements TaskAction { return scenarioTask.getTaskType(); } - public void cancelAllTask() { - if (scheduledFuture != null) { - scheduledFuture.cancel(true); - } - } - protected abstract void business(); + + } // 自定义线程工厂 diff --git a/src/main/java/com/hivekion/room/bean/BattleRootTask.java b/src/main/java/com/hivekion/room/bean/BattleRootTask.java index e18d277..6f515c9 100644 --- a/src/main/java/com/hivekion/room/bean/BattleRootTask.java +++ b/src/main/java/com/hivekion/room/bean/BattleRootTask.java @@ -23,14 +23,8 @@ public class BattleRootTask extends AbtParentTask { public void doSomeThing() { //会知道想定ID, resourceId; } - //固定间隔执行 - @Override - protected void business() { - // Global.roomParamMap.get(scenarioTask.getScenarioId() + "," + this.roomId); 可以获取当前想定的步长 - //战斗需要消耗弹药 按时间消耗,30秒 - //人员消耗 - //可能会产生需求,保障需求 - } + + @Override diff --git a/src/main/java/com/hivekion/room/bean/MoveRootTask.java b/src/main/java/com/hivekion/room/bean/MoveRootTask.java index 317f49d..e4d60cb 100644 --- a/src/main/java/com/hivekion/room/bean/MoveRootTask.java +++ b/src/main/java/com/hivekion/room/bean/MoveRootTask.java @@ -11,6 +11,9 @@ import com.hivekion.room.func.TaskAction; import com.hivekion.scenario.entity.ScenarioTask; import java.util.Map; import java.util.TreeMap; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.core.env.Environment; @@ -26,7 +29,9 @@ import org.springframework.core.env.Environment; @Slf4j public class MoveRootTask extends AbtParentTask implements TaskAction { - + protected final ScheduledExecutorService schedule = Executors.newScheduledThreadPool( + 1); + protected ScheduledFuture scheduledFuture; private final double SPEED = 170; private double accumulatedDistance = 0; @@ -84,10 +89,7 @@ public class MoveRootTask extends AbtParentTask implements TaskAction { } - @Override - protected void business() { - } @Override diff --git a/src/main/java/com/hivekion/room/bean/SupplierTask.java b/src/main/java/com/hivekion/room/bean/SupplierTask.java index 666f1ae..2082824 100644 --- a/src/main/java/com/hivekion/room/bean/SupplierTask.java +++ b/src/main/java/com/hivekion/room/bean/SupplierTask.java @@ -28,10 +28,7 @@ public class SupplierTask extends AbtParentTask implements TaskAction { } - @Override - protected void business() { - } @Override From dc6f239a8d936e5a595172ca8569f2b21fe2eb41 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: Thu, 18 Sep 2025 11:43:14 +0800 Subject: [PATCH 5/6] =?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 --- src/main/java/com/hivekion/room/bean/AbtParentTask.java | 7 ++++--- src/main/java/com/hivekion/room/bean/BattleRootTask.java | 8 -------- src/main/java/com/hivekion/room/bean/MoveRootTask.java | 8 -------- src/main/java/com/hivekion/room/bean/SupplierTask.java | 6 ------ 4 files changed, 4 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/hivekion/room/bean/AbtParentTask.java b/src/main/java/com/hivekion/room/bean/AbtParentTask.java index 1b40ad7..853336b 100644 --- a/src/main/java/com/hivekion/room/bean/AbtParentTask.java +++ b/src/main/java/com/hivekion/room/bean/AbtParentTask.java @@ -31,9 +31,11 @@ public abstract class AbtParentTask implements TaskAction { //任务数据 protected final ScenarioTask scenarioTask; - + //房间ID protected final String roomId; + //http请求 protected WebClient webClient = WebClient.create(); + //线程池 protected ThreadPoolExecutor executor = new ThreadPoolExecutor( 5, // 核心线程数 10, // 最大线程数 @@ -52,9 +54,8 @@ public abstract class AbtParentTask implements TaskAction { - protected abstract void finished(); - protected abstract void setMag(int mag); + @Override public void doSomeThing() { diff --git a/src/main/java/com/hivekion/room/bean/BattleRootTask.java b/src/main/java/com/hivekion/room/bean/BattleRootTask.java index 6f515c9..de91523 100644 --- a/src/main/java/com/hivekion/room/bean/BattleRootTask.java +++ b/src/main/java/com/hivekion/room/bean/BattleRootTask.java @@ -27,13 +27,5 @@ public class BattleRootTask extends AbtParentTask { - @Override - protected void finished() { - } - - @Override - protected void setMag(int mag) { - - } } diff --git a/src/main/java/com/hivekion/room/bean/MoveRootTask.java b/src/main/java/com/hivekion/room/bean/MoveRootTask.java index e4d60cb..04230f0 100644 --- a/src/main/java/com/hivekion/room/bean/MoveRootTask.java +++ b/src/main/java/com/hivekion/room/bean/MoveRootTask.java @@ -92,15 +92,7 @@ public class MoveRootTask extends AbtParentTask implements TaskAction { - @Override - protected void finished() { - } - - @Override - protected void setMag(int mag) { - - } } diff --git a/src/main/java/com/hivekion/room/bean/SupplierTask.java b/src/main/java/com/hivekion/room/bean/SupplierTask.java index 2082824..b57bd9e 100644 --- a/src/main/java/com/hivekion/room/bean/SupplierTask.java +++ b/src/main/java/com/hivekion/room/bean/SupplierTask.java @@ -18,10 +18,7 @@ public class SupplierTask extends AbtParentTask implements TaskAction { super(scenarioTask,roomId); } - @Override - protected void finished() { - } @Override public void doSomeThing() { @@ -31,8 +28,5 @@ public class SupplierTask extends AbtParentTask implements TaskAction { - @Override - protected void setMag(int mag) { - } } From f3f947e57bf8f72af7e8523c6b41c277af2483e5 Mon Sep 17 00:00:00 2001 From: wangwenhua <12345678> Date: Thu, 18 Sep 2025 13:26:34 +0800 Subject: [PATCH 6/6] =?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 @@ + + + + +