初次提交
This commit is contained in:
parent
ad420b3e8c
commit
720748ea1e
|
|
@ -19,7 +19,9 @@ import java.util.concurrent.LinkedBlockingQueue;
|
||||||
* @since 2025/7/22
|
* @since 2025/7/22
|
||||||
*/
|
*/
|
||||||
public class Global {
|
public class Global {
|
||||||
public static BlockingQueue<RequestCmdInfo> receiveCmdInfoQueue = new LinkedBlockingQueue<>(10000);
|
|
||||||
|
public static BlockingQueue<RequestCmdInfo> receiveCmdInfoQueue = new LinkedBlockingQueue<>(
|
||||||
|
10000);
|
||||||
public static BlockingQueue<ResponseCmdInfo<?>> sendCmdInfoQueue = new LinkedBlockingQueue<>();
|
public static BlockingQueue<ResponseCmdInfo<?>> sendCmdInfoQueue = new LinkedBlockingQueue<>();
|
||||||
public static Map<String, ScenarioWsParam> roomParamMap = new ConcurrentHashMap<>();
|
public static Map<String, ScenarioWsParam> roomParamMap = new ConcurrentHashMap<>();
|
||||||
public static BlockingQueue<RoomLog> roomLogQueue = new LinkedBlockingQueue<>(1000);
|
public static BlockingQueue<RoomLog> roomLogQueue = new LinkedBlockingQueue<>(1000);
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,7 @@ public class RoomLogController {
|
||||||
|
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public ResponseData<List<RoomLog>> list(String roomId) {
|
public ResponseData<List<RoomLog>> list(String roomId) {
|
||||||
QueryWrapper<RoomLog> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.eq("room_id", roomId==null?"0":roomId);
|
return ResponseData.success(roomLogService.roomLogListLimit10(roomId));
|
||||||
queryWrapper.orderByAsc("log_time");
|
|
||||||
queryWrapper.last("limit 10");
|
|
||||||
List<RoomLog> roomLogs = roomLogService.list(queryWrapper);
|
|
||||||
return ResponseData.success(roomLogs);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import com.hivekion.enums.ScenarioRoomStatusEnum;
|
||||||
import com.hivekion.scenario.bean.ScenarioWsParam;
|
import com.hivekion.scenario.bean.ScenarioWsParam;
|
||||||
import com.hivekion.scenario.entity.RoomLog;
|
import com.hivekion.scenario.entity.RoomLog;
|
||||||
import com.hivekion.scenario.entity.ScenarioRoom;
|
import com.hivekion.scenario.entity.ScenarioRoom;
|
||||||
|
import com.hivekion.scenario.service.IRoomLogService;
|
||||||
import com.hivekion.scenario.service.ScenarioRoomService;
|
import com.hivekion.scenario.service.ScenarioRoomService;
|
||||||
import com.hivekion.scenario.service.ScenarioTaskService;
|
import com.hivekion.scenario.service.ScenarioTaskService;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
|
@ -48,6 +49,8 @@ public class ScenarioRoomController extends BaseController {
|
||||||
private ScenarioService scenarioService;
|
private ScenarioService scenarioService;
|
||||||
@Resource
|
@Resource
|
||||||
private ScenarioTaskService scenarioTaskService;
|
private ScenarioTaskService scenarioTaskService;
|
||||||
|
@Resource
|
||||||
|
private IRoomLogService roomLogService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询想定列表
|
* 查询想定列表
|
||||||
|
|
@ -103,7 +106,8 @@ public class ScenarioRoomController extends BaseController {
|
||||||
if (scenarioRoomService.getById(room.getId()) == null) {
|
if (scenarioRoomService.getById(room.getId()) == null) {
|
||||||
return ResponseData.generator(ResultCodeEnum.PARAMETER_ERROR.getCode(), "房间不存在", null);
|
return ResponseData.generator(ResultCodeEnum.PARAMETER_ERROR.getCode(), "房间不存在", null);
|
||||||
}
|
}
|
||||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"启动想定",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "启动想定",
|
||||||
|
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||||
|
|
||||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.STARTED.getCode());
|
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.STARTED.getCode());
|
||||||
scenarioTaskService.start(room.getScenarioId(), room.getId());
|
scenarioTaskService.start(room.getScenarioId(), room.getId());
|
||||||
|
|
@ -112,7 +116,8 @@ public class ScenarioRoomController extends BaseController {
|
||||||
|
|
||||||
@PostMapping("/break")
|
@PostMapping("/break")
|
||||||
public ResponseData<Void> breakAWhile(@RequestBody ScenarioRoom room) {
|
public ResponseData<Void> breakAWhile(@RequestBody ScenarioRoom room) {
|
||||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"暂停想定",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "暂停想定",
|
||||||
|
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.BROKEN.getCode());
|
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.BROKEN.getCode());
|
||||||
scenarioTaskService.sleepWhile(room.getScenarioId(), room.getId());
|
scenarioTaskService.sleepWhile(room.getScenarioId(), room.getId());
|
||||||
return ResponseData.success(null);
|
return ResponseData.success(null);
|
||||||
|
|
@ -120,7 +125,8 @@ public class ScenarioRoomController extends BaseController {
|
||||||
|
|
||||||
@PostMapping("/wakeUp")
|
@PostMapping("/wakeUp")
|
||||||
public ResponseData<Void> wakeUp(@RequestBody ScenarioRoom room) {
|
public ResponseData<Void> wakeUp(@RequestBody ScenarioRoom room) {
|
||||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"想定继续",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "想定继续",
|
||||||
|
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.STARTED.getCode());
|
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.STARTED.getCode());
|
||||||
scenarioTaskService.wakeup(room.getScenarioId(), room.getId());
|
scenarioTaskService.wakeup(room.getScenarioId(), room.getId());
|
||||||
return ResponseData.success(null);
|
return ResponseData.success(null);
|
||||||
|
|
@ -129,7 +135,8 @@ public class ScenarioRoomController extends BaseController {
|
||||||
@PostMapping("/mag")
|
@PostMapping("/mag")
|
||||||
public ResponseData<Void> mag(@RequestBody ScenarioRoom room) {
|
public ResponseData<Void> mag(@RequestBody ScenarioRoom room) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"想定加速/减速",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "想定加速/减速",
|
||||||
|
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||||
if (Global.roomParamMap.get(room.getScenarioId() + "_" + room.getId()) == null) {
|
if (Global.roomParamMap.get(room.getScenarioId() + "_" + room.getId()) == null) {
|
||||||
Global.roomParamMap.put(room.getScenarioId() + "_" + room.getId(), new ScenarioWsParam());
|
Global.roomParamMap.put(room.getScenarioId() + "_" + room.getId(), new ScenarioWsParam());
|
||||||
}
|
}
|
||||||
|
|
@ -141,13 +148,34 @@ public class ScenarioRoomController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/stop")
|
@PostMapping("/stop")
|
||||||
public ResponseData<Void> stop(@RequestBody ScenarioRoom room) {
|
public ResponseData<Void> stop(@RequestBody ScenarioRoom room) {
|
||||||
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(),"想定结束",SecurityUtils.getCurrentLoginUser().getUsername())) ;
|
Global.roomLogQueue.add(RoomLog.createRoomLog(room.getId(), "想定结束",
|
||||||
|
SecurityUtils.getCurrentLoginUser().getUsername()));
|
||||||
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.FINISHED.getCode());
|
scenarioRoomService.updateStatus(room.getId(), ScenarioRoomStatusEnum.FINISHED.getCode());
|
||||||
scenarioTaskService.stop(room.getScenarioId(), room.getId());
|
scenarioTaskService.stop(room.getScenarioId(), room.getId());
|
||||||
return ResponseData.success(null);
|
return ResponseData.success(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/view")
|
||||||
|
public ResponseData<ScenarioRoom> view(String id) {
|
||||||
|
ScenarioRoom room = scenarioRoomService.getById(id);
|
||||||
|
if (room != null) {
|
||||||
|
Scenario scenario = scenarioService.getScenarioById(room.getScenarioId());
|
||||||
|
room.setScenarioId(scenario.getId());
|
||||||
|
room.setScenario(scenario);
|
||||||
|
room.setScenarioName(scenario.getName());
|
||||||
|
room.setRoomLogs(roomLogService.roomLogListLimit10(id));
|
||||||
|
if (Global.roomParamMap.get(id) == null) {
|
||||||
|
ScenarioWsParam scenarioWsParam = new ScenarioWsParam();
|
||||||
|
scenarioWsParam.setMag(1);
|
||||||
|
Global.roomParamMap.put(id, scenarioWsParam);
|
||||||
|
room.setMag(1);
|
||||||
|
} else {
|
||||||
|
room.setMag(Global.roomParamMap.get(id).getMag());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ResponseData.success(room);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
package com.hivekion.scenario.entity;
|
package com.hivekion.scenario.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.hivekion.baseData.entity.Scenario;
|
||||||
import com.hivekion.common.entity.SearchInputVo;
|
import com.hivekion.common.entity.SearchInputVo;
|
||||||
import java.io.Serializable;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -24,22 +26,27 @@ import lombok.Data;
|
||||||
public class ScenarioRoom extends SearchInputVo {
|
public class ScenarioRoom extends SearchInputVo {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
@TableId(type = IdType.INPUT)
|
||||||
private String id;
|
private String id;
|
||||||
@NotNull(message = "房间号不能为空")
|
@NotNull(message = "房间号不能为空")
|
||||||
@TableField(value="room_name")
|
@TableField(value = "room_name")
|
||||||
private String roomName;
|
private String roomName;
|
||||||
@NotNull(message = "想定ID不能为空")
|
@NotNull(message = "想定ID不能为空")
|
||||||
@TableField(value="scenario_id")
|
@TableField(value = "scenario_id")
|
||||||
private Integer scenarioId;
|
private Integer scenarioId;
|
||||||
@TableField(value="user_id")
|
@TableField(value = "user_id")
|
||||||
private String userId;
|
private String userId;
|
||||||
@TableField(value="create_time")
|
@TableField(value = "create_time")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer mag;
|
private Integer mag = 1;
|
||||||
private Integer status = 0;
|
private Integer status = 0;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String scenarioName;
|
private String scenarioName;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Scenario scenario;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private List<RoomLog> roomLogs;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.hivekion.scenario.service;
|
||||||
|
|
||||||
import com.hivekion.scenario.entity.RoomLog;
|
import com.hivekion.scenario.entity.RoomLog;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -12,5 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
* @since 2025-09-17
|
* @since 2025-09-17
|
||||||
*/
|
*/
|
||||||
public interface IRoomLogService extends IService<RoomLog> {
|
public interface IRoomLogService extends IService<RoomLog> {
|
||||||
|
List<RoomLog> roomLogListLimit10(String roomId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
package com.hivekion.scenario.service.impl;
|
package com.hivekion.scenario.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hivekion.scenario.entity.RoomLog;
|
import com.hivekion.scenario.entity.RoomLog;
|
||||||
import com.hivekion.scenario.mapper.RoomLogMapper;
|
import com.hivekion.scenario.mapper.RoomLogMapper;
|
||||||
import com.hivekion.scenario.service.IRoomLogService;
|
import com.hivekion.scenario.service.IRoomLogService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import java.util.List;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -15,6 +17,16 @@ import org.springframework.stereotype.Service;
|
||||||
* @since 2025-09-17
|
* @since 2025-09-17
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RoomLogServiceImpl extends ServiceImpl<RoomLogMapper, RoomLog> implements IRoomLogService {
|
public class RoomLogServiceImpl extends ServiceImpl<RoomLogMapper, RoomLog> implements
|
||||||
|
IRoomLogService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RoomLog> roomLogListLimit10(String roomId) {
|
||||||
|
QueryWrapper<RoomLog> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("room_id", roomId == null ? "0" : roomId);
|
||||||
|
queryWrapper.orderByAsc("log_time");
|
||||||
|
queryWrapper.last("limit 10");
|
||||||
|
return list(queryWrapper);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
CreateUserId,
|
CreateUserId,
|
||||||
CreateTime,
|
CreateTime,
|
||||||
start_time As startTime,
|
start_time As startTime,
|
||||||
end_time,
|
end_time as endTime,
|
||||||
id,
|
id,
|
||||||
left_up_lng AS leftUpLng,
|
left_up_lng AS leftUpLng,
|
||||||
right_up_lng AS rightUpLng,
|
right_up_lng AS rightUpLng,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user