opt:1.增加强制取消任务功能。2.优化未获取到数据时推送websocket空字段问题。

This commit is contained in:
2026-04-21 11:08:39 +08:00
parent 9498380c6f
commit f0459c0a02
5 changed files with 41 additions and 5 deletions

View File

@@ -32,17 +32,17 @@ public class VehicleInfoDto{
/**
* 电量
*/
private int batteryLevel;
private Integer batteryLevel;
/**
* 冰容量
*/
private int iceCapacity;
private Integer iceCapacity;
/**
* 水容量
*/
private int waterCapacity;
private Integer waterCapacity;
/**
* 信号类型
@@ -52,7 +52,7 @@ public class VehicleInfoDto{
/**
* 信号强度
*/
private int signalStrength;
private Integer signalStrength;
/**
* 异常信息编码

View File

@@ -114,7 +114,7 @@ public class VehicleServiceImpl implements VehicleService {
@Override
public VehicleInfoDto getVehicleInfoByNumber(String vehicleNumber) {
// 直接从缓存中获取
return vehicleCache.get(vehicleNumber);
return ObjectUtil.isEmpty(vehicleCache.get(vehicleNumber)) ? new VehicleInfoDto() : vehicleCache.get(vehicleNumber);
}
@Override

View File

@@ -42,6 +42,12 @@ public class TaskController {
return new ResponseEntity<>(taskService.cancelTask(cancelTaskRequestParam), HttpStatus.OK);
}
@PostMapping("/forceCancelTask")
@Log("强制取消任务")
public ResponseEntity<Object> forceCancelTask(@RequestBody @Validated CancelTaskRequestParam cancelTaskRequestParam){
return new ResponseEntity<>(taskService.forceCancelTask(cancelTaskRequestParam), HttpStatus.OK);
}
@PostMapping("/pauseTask")
@Log("暂停任务")
public ResponseEntity<Object> pauseTask(@RequestBody @Validated PauseAndResumeTaskParam pauseAndResumeTaskParam){

View File

@@ -32,6 +32,12 @@ public interface TaskService extends IService<Task>{
*/
WebResponse cancelTask(CancelTaskRequestParam cancelTaskRequestParam);
/**
* 强制取消任务
* @return WebResponse
*/
WebResponse forceCancelTask(CancelTaskRequestParam cancelTaskRequestParam);
/**
* 暂停任务
* @return WebResponse

View File

@@ -199,6 +199,30 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
return WebResponse.requestOk();
}
@Override
public WebResponse forceCancelTask(CancelTaskRequestParam cancelTaskRequestParam) {
try {
if (StrUtil.isBlank(cancelTaskRequestParam.getTask_code())){
throw new BadRequestException(LangProcess.msg("task_code_empty"));
}
HttpResponse result = scheduleTaskAPI.cancelTask(cancelTaskRequestParam.getTask_code());
if (result == null || !result.isOk()){
log.info("取消调度任务失败");
}
taskMapper.update(new LambdaUpdateWrapper<>(Task.class)
.set(Task::getStatus,TaskStatusEnum.CANCELED.getCode())
.eq(Task::getTask_code,cancelTaskRequestParam.getTask_code())
);
}catch (Exception e){
log.error("强制取消任务失败:{}",e.getMessage());
throw new BadRequestException(LangProcess.msg("task_cancel_failed",e.getMessage()));
}
return WebResponse.requestOk();
}
@Override
@Transactional(rollbackFor = Exception.class)
public WebResponse pauseTask(PauseAndResumeTaskParam pauseAndResumeTaskParam) {