opt:1.管理后台系统优化国际化。2.添加巡航模式任务接口。

This commit is contained in:
2026-03-03 19:46:06 +08:00
parent 4247b41831
commit 65c6d41e4b
31 changed files with 545 additions and 17 deletions

View File

@@ -77,4 +77,10 @@ public class TaskController {
return new ResponseEntity<>(taskService.queryCurrentTaskInfo(),HttpStatus.OK);
}
@PostMapping("/createCruiseTask")
@Log("创建巡航任务")
public ResponseEntity<Object> createCruiseTask(@RequestBody @Validated CreateCruiseTaskRequestParam createCruiseTaskRequestParam){
return new ResponseEntity<>(taskService.createCruiseTask(createCruiseTaskRequestParam), HttpStatus.OK);
}
}

View File

@@ -24,7 +24,11 @@ public enum TaskTypeEnum {
/**
* 移动
*/
MOVE("3", "Move", "移动");
MOVE("3", "Move", "移动"),
/**
* 巡航
*/
CRUISE("4", "cruise", "巡航");
private String code;
private String name;
@@ -46,7 +50,8 @@ public enum TaskTypeEnum {
return TaskTypeEnum.DELIVER.getName().equals(taskType)
|| TaskTypeEnum.CHARGE.getName().equals(taskType)
|| TaskTypeEnum.REFILL.getName().equals(taskType)
|| TaskTypeEnum.MOVE.getName().equals(taskType);
|| TaskTypeEnum.MOVE.getName().equals(taskType)
|| TaskTypeEnum.CRUISE.getName().equals(taskType);
}

View File

@@ -0,0 +1,30 @@
package org.nl.task.param;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import java.util.List;
/**
* @author dsh
* 2026/3/3
*/
@Data
public class CreateCruiseTaskRequestParam {
/**
* 巡航站点集合
*/
private List<String> destinations;
/**
* 任务类型
*/
@NotBlank(message = "任务类型不能为空")
private String type;
/**
* 指定车号
*/
private String vehicle_number;
}

View File

@@ -73,4 +73,11 @@ public interface TaskService extends IService<Task>{
* @return List<Task>
*/
List<Task> queryCurrentTaskInfo();
/**
* 创建巡航任务
* @return WebResponse
*/
WebResponse createCruiseTask(CreateCruiseTaskRequestParam param);
}

View File

@@ -16,10 +16,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.nl.api.schedule.task.api.ScheduleTaskAPI;
import org.nl.api.schedule.task.core.ScheduleAPICreateCruiseTaskParam;
import org.nl.api.schedule.task.core.ScheduleAPICreateOneClickTaskParam;
import org.nl.api.schedule.task.core.ScheduleAPICreateTaskParam;
import org.nl.config.language.LangProcess;
import org.nl.enums.ScheduleTaskReportStatusEnum;
import org.nl.enums.TaskSourceEnum;
import org.nl.enums.YesOrNoEnum;
import org.nl.exception.BadRequestException;
import org.nl.response.WebResponse;
@@ -326,4 +328,38 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
return currentTaskList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public WebResponse createCruiseTask(CreateCruiseTaskRequestParam param) {
try {
if (!TaskTypeEnum.CRUISE.getName().equals(param.getType())) {
throw new BadRequestException(LangProcess.msg("create_cruise_task_error"));
}
Task task = BeanUtil.copyProperties(param, Task.class);
task.setDestinations(TaskTypeEnum.CRUISE.getName());
task.setId(IdUtil.getStringId());
if (StrUtil.isBlank(task.getTask_code())){
task.setTask_code(TaskCodeGeneratorUtil.generateTaskId());
}
task.setType(param.getType());
task.setSource(TaskSourceEnum.SCREEN.getName());
task.setStatus(TaskStatusEnum.CREATE.getCode());
task.setIsPause(YesOrNoEnum.NO.getCode());
task.setVehicleReportStatus("0");
task.setCreate_time(DateUtil.now());
taskMapper.insert(task);
ScheduleAPICreateCruiseTaskParam scheduleAPICreateCruiseTaskParam = BeanUtil.copyProperties(task, ScheduleAPICreateCruiseTaskParam.class);
scheduleAPICreateCruiseTaskParam.setDestinations(param.getDestinations());
HttpResponse result = scheduleTaskAPI.createCruiseTask(scheduleAPICreateCruiseTaskParam);
if (result == null || !result.isOk()){
throw new BadRequestException(LangProcess.msg("task_schedule_create_failed"));
}
return WebResponse.requestOk();
}catch (Exception e){
log.error("创建巡航任务失败:{}",e.getMessage());
throw new BadRequestException(LangProcess.msg("task_create_failed",e.getMessage()));
}
}
}