diff --git a/src/main/java/com/hivekion/common/config/WsEndpointConfig.java b/src/main/java/com/hivekion/common/config/WsEndpointConfig.java index f64b097..35eb647 100644 --- a/src/main/java/com/hivekion/common/config/WsEndpointConfig.java +++ b/src/main/java/com/hivekion/common/config/WsEndpointConfig.java @@ -2,6 +2,7 @@ package com.hivekion.common.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; import org.springframework.web.socket.server.standard.ServerEndpointExporter; /** @@ -14,6 +15,7 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter; * @since 2025/7/22 */ @Configuration + public class WsEndpointConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { diff --git a/src/main/java/com/hivekion/room/bean/Room.java b/src/main/java/com/hivekion/room/bean/Room.java index 026f77c..40aa2c4 100644 --- a/src/main/java/com/hivekion/room/bean/Room.java +++ b/src/main/java/com/hivekion/room/bean/Room.java @@ -51,7 +51,7 @@ public class Room implements AutoCloseable { private Map resourceCoordinateMap = new ConcurrentHashMap<>(); //资源路线path private Map resourcePathMap = new ConcurrentHashMap<>(); - private Map scenarioResourceMap = new ConcurrentHashMap<>(); + private Map scenarioResourceMap = new ConcurrentHashMap<>(); /** * 任务管理相关 */ @@ -70,7 +70,7 @@ public class Room implements AutoCloseable { private com.hivekion.statistic.service.ScenarioService scenarioService; - private AtomicInteger numStatus = new AtomicInteger(0); + private AtomicInteger numStatus = new AtomicInteger(0); /** * 任务容器 */ @@ -139,7 +139,6 @@ public class Room implements AutoCloseable { } - /** * 暂停 */ @@ -172,8 +171,12 @@ public class Room implements AutoCloseable { } long curTime = duringTime.addAndGet(this.mag); - - sendRemainTime((totalTime.get() - curTime)); + if (totalTime.get() - curTime > 0) { + sendRemainTime((totalTime.get() - curTime)); + } else { + future.cancel(true); + scheduler.shutdownNow(); + } NavigableMap> actions = actionMap.headMap(curTime, true); if (!actions.isEmpty()) { @@ -262,8 +265,8 @@ public class Room implements AutoCloseable { scenario.getResourceList().forEach(resource -> { scenarioResourceMap.put(resource.getId(), resource); }); - long endTime = System.currentTimeMillis(); - log.info("======cost time============={}===================",endTime-begTime); + long endTime = System.currentTimeMillis(); + log.info("======cost time============={}===================", endTime - begTime); } public void addResourcePath(String resourceId, Object obj) { @@ -285,10 +288,12 @@ public class Room implements AutoCloseable { public Map getPathMap() { return resourcePathMap; } + public Map getScenarioResourceMap() { return scenarioResourceMap; } - private void pushRoomInfo(){ + + private void pushRoomInfo() { ResponseCmdInfo respObj = new ResponseCmdInfo<>(); Map dataMap = new HashMap<>(); dataMap.put("mag", this.getMag()); @@ -300,24 +305,25 @@ public class Room implements AutoCloseable { Global.sendCmdInfoQueue.add(respObj); } - private void clearScenarioCache(){ + private void clearScenarioCache() { try { scenario.setResourceList(SpringUtil.getBean(ScenarioResourceServiceImpl.class) - .getResourceListByScenarioId(scenario.getId())); + .getResourceListByScenarioId(scenario.getId())); if (redisUtil == null) { redisUtil = SpringUtil.getBean(RedisUtil.class); } for (ScenarioResource scenarioResource : this.scenario.getResourceList()) { - ScenarioInfo scenarioInfo = scenarioService.listScenarioInfo(scenarioResource.getScenarioId(), - roomId, scenarioResource.getId()); + ScenarioInfo scenarioInfo = scenarioService.listScenarioInfo( + scenarioResource.getScenarioId(), + roomId, scenarioResource.getId()); EditScenarioInfo updScenarioInfo = scenarioService.listEditScenarioInfo( - scenarioResource.getScenarioId(), roomId, scenarioResource.getId()); + scenarioResource.getScenarioId(), roomId, scenarioResource.getId()); redisUtil.delete( - scenarioResource.getScenarioId() + "-" + roomId + "-" + scenarioResource.getId()); + scenarioResource.getScenarioId() + "-" + roomId + "-" + scenarioResource.getId()); redisUtil.delete( - scenarioResource.getScenarioId() + "-" + roomId + "-" + scenarioResource.getId()); + scenarioResource.getScenarioId() + "-" + roomId + "-" + scenarioResource.getId()); } - }catch (Exception ex){ + } catch (Exception ex) { log.error("===================clear cached fail=========================="); } } diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index e29cd56..80b6080 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1,6 +1,6 @@ spring.datasource.dynamic.primary=dm spring.datasource.dynamic.strict=false -spring.datasource.dynamic.datasource.dm.url=jdbc:dm://127.0.0.1:5236/SIMULATION +spring.datasource.dynamic.datasource.dm.url=jdbc:dm://192.168.0.53:5236/SIMULATION spring.datasource.dynamic.datasource.dm.driver-class-name=dm.jdbc.driver.DmDriver spring.datasource.dynamic.datasource.dm.username=SYSDBA spring.datasource.dynamic.datasource.dm.password=Admin123 diff --git a/src/test/java/com/hivekion/ApplicationTest.java b/src/test/java/com/hivekion/ApplicationTest.java index 1760d2d..23e2714 100644 --- a/src/test/java/com/hivekion/ApplicationTest.java +++ b/src/test/java/com/hivekion/ApplicationTest.java @@ -2,6 +2,13 @@ package com.hivekion; import com.hivekion.baseData.entity.ModuleStatus; import com.hivekion.baseData.service.ModuleStatusService; +import com.hivekion.common.uuid.IdUtils; +import com.hivekion.scenario.entity.ScenarioResource; +import com.hivekion.scenario.service.ScenarioResourceService; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.List; import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.junit.Test; @@ -21,20 +28,26 @@ import org.springframework.test.context.junit4.SpringRunner; */ @SpringBootTest(classes = DemoApplication.class) @AutoConfigureMockMvc + @Slf4j @RunWith(SpringRunner.class) public class ApplicationTest { + @Resource private ModuleStatusService moduleStatusService; - @Test - public void modStatus(){ - ModuleStatus status = new ModuleStatus(); - status.setModuleName("评估子系统"); - status.setModuleUrl("/"); - status.setSortOrder(5); - status.setModuleStatus("0"); - status.setModuleCode("evaluation_system"); - moduleStatusService.save(status); - } + @Resource + private ScenarioResourceService scenarioResourceService; + + @Test + public void modStatus() { + ModuleStatus status = new ModuleStatus(); + status.setModuleName("评估子系统"); + status.setModuleUrl("/"); + status.setSortOrder(5); + status.setModuleStatus("0"); + status.setModuleCode("evaluation_system"); + moduleStatusService.save(status); + } + }