opt:1.后端国际化完成。

This commit is contained in:
2026-02-04 10:36:38 +08:00
parent 6c9c1c95e4
commit ab393a8fee
9 changed files with 372 additions and 48 deletions

View File

@@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.api.schedule.setting.api.ScheduleSettingAPI;
import org.nl.api.schedule.setting.core.ScheduleAPISettingChargeParam;
import org.nl.api.schedule.setting.core.ScheduleAPISettingSpeedParam;
import org.nl.config.language.LangProcess;
import org.nl.exception.BadRequestException;
import org.nl.util.URLConstant;
import org.springframework.stereotype.Service;
@@ -23,7 +24,7 @@ public class ScheduleSettingAPIProvider implements ScheduleSettingAPI {
@Override
public HttpResponse settingSpeed(ScheduleAPISettingSpeedParam scheduleAPISettingSpeedParam) {
if (ObjectUtil.isEmpty(scheduleAPISettingSpeedParam)){
throw new BadRequestException("调度设置配送速度参数不能为空");
throw new BadRequestException(LangProcess.msg("schedule_speed_param_empty"));
}
log.info("设置调度配送速度参数:{}", scheduleAPISettingSpeedParam);
HttpResponse result = null;
@@ -41,7 +42,7 @@ public class ScheduleSettingAPIProvider implements ScheduleSettingAPI {
@Override
public HttpResponse settingCharge(ScheduleAPISettingChargeParam scheduleAPISettingChargeParam) {
if (ObjectUtil.isEmpty(scheduleAPISettingChargeParam)){
throw new BadRequestException("调度设置充电参数不能为空");
throw new BadRequestException(LangProcess.msg("schedule_charge_param_empty"));
}
log.info("设置调度充电参数:{}", scheduleAPISettingChargeParam);
HttpResponse result = null;

View File

@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.api.schedule.task.api.ScheduleTaskAPI;
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.exception.BadRequestException;
import org.nl.schedule.core.util.ScheduleUtil;
import org.nl.util.URLConstant;
@@ -28,13 +29,13 @@ public class ScheduleTaskAPIProvider implements ScheduleTaskAPI {
String destinations = scheduleAPICreateTaskParam.getDestinations();
String type = scheduleAPICreateTaskParam.getType();
if (StrUtil.isBlank(task_code)){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_task_code_empty"));
}
if (StrUtil.isBlank(destinations)){
throw new BadRequestException("目标点不能为空");
throw new BadRequestException(LangProcess.msg("schedule_destinations_empty"));
}
if (StrUtil.isBlank(type)){
throw new BadRequestException("任务操作类型不能为空");
throw new BadRequestException(LangProcess.msg("schedule_operation_type_empty"));
}
JSONObject request_body = new JSONObject();
@@ -70,7 +71,7 @@ public class ScheduleTaskAPIProvider implements ScheduleTaskAPI {
@Override
public HttpResponse cancelTask(String taskId) {
if (StrUtil.isBlank(taskId)){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_task_code_empty"));
}
log.info("取消调度任务参数:{}", taskId);
HttpResponse result = null;
@@ -90,7 +91,7 @@ public class ScheduleTaskAPIProvider implements ScheduleTaskAPI {
@Override
public HttpResponse queryTaskStatusByTaskId(String taskId) {
if (StrUtil.isBlank(taskId)){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_task_code_empty"));
}
log.info("查询调度任务状态参数:{}", taskId);
HttpResponse result = null;
@@ -109,7 +110,7 @@ public class ScheduleTaskAPIProvider implements ScheduleTaskAPI {
@Override
public HttpResponse pauseTask(String taskId) {
if (StrUtil.isBlank(taskId)){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_task_code_empty"));
}
log.info("暂停调度任务参数:{}", taskId);
HttpResponse result = null;
@@ -129,7 +130,7 @@ public class ScheduleTaskAPIProvider implements ScheduleTaskAPI {
@Override
public HttpResponse resumeTask(String taskId) {
if (StrUtil.isBlank(taskId)){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_task_code_empty"));
}
log.info("恢复调度任务参数:{}", taskId);
HttpResponse result = null;
@@ -152,13 +153,13 @@ public class ScheduleTaskAPIProvider implements ScheduleTaskAPI {
String type = scheduleAPICreateOneClickTaskParam.getType();
String vehicleNumber = scheduleAPICreateOneClickTaskParam.getVehicle_number();
if (StrUtil.isBlank(task_code)){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_task_code_empty"));
}
if (StrUtil.isBlank(type)){
throw new BadRequestException("任务操作类型不能为空");
throw new BadRequestException(LangProcess.msg("schedule_operation_type_empty"));
}
if (StrUtil.isBlank(vehicleNumber)){
throw new BadRequestException("车号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_vehicle_number_empty"));
}
JSONObject request_body = new JSONObject();

View File

@@ -6,6 +6,7 @@ import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.nl.api.setting.api.SettingAPI;
import org.nl.api.task.api.TaskAPI;
import org.nl.config.language.LangProcess;
import org.nl.enums.YesOrNoEnum;
import org.nl.exception.BadRequestException;
import org.nl.response.WebResponse;
@@ -35,22 +36,22 @@ public class ScheduleTaskServiceImpl implements ScheduleTaskService {
String vehicle_number = scheduleTaskArrivedReportParam.getVehicle_number();
String task_code = scheduleTaskArrivedReportParam.getTask_code();
if (StrUtil.isBlank(location)) {
throw new BadRequestException("上报点位不能为空");
throw new BadRequestException(LangProcess.msg("schedule_report_location_empty"));
}
if (StrUtil.isBlank(vehicle_number)) {
throw new BadRequestException("上报车号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_report_vehicle_empty"));
}
if (StrUtil.isBlank(task_code)) {
throw new BadRequestException("上报任务号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_report_task_code_empty"));
}
log.info("调度上报到达,参数:{}",scheduleTaskArrivedReportParam);
String status = taskAPI.taskOperationConfirm(task_code,vehicle_number);
if (StrUtil.isBlank(status)){
throw new BadRequestException("未找到该上报阶段");
throw new BadRequestException(LangProcess.msg("schedule_report_stage_not_found"));
}
ScheduleTaskReportStatusEnum scheduleTaskReportStatusEnum = ScheduleTaskReportStatusEnum.getByCode(status);
if (scheduleTaskReportStatusEnum == null) {
throw new BadRequestException("未找到该上报类型");
throw new BadRequestException(LangProcess.msg("schedule_report_type_not_found"));
}
boolean flag = false;
@@ -83,6 +84,6 @@ public class ScheduleTaskServiceImpl implements ScheduleTaskService {
return WebResponse.requestOk();
}
throw new BadRequestException("未确认操作");
throw new BadRequestException(LangProcess.msg("schedule_operation_not_confirmed"));
}
}

View File

@@ -13,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.api.schedule.setting.api.ScheduleSettingAPI;
import org.nl.api.schedule.setting.core.ScheduleAPISettingChargeParam;
import org.nl.api.schedule.setting.core.ScheduleAPISettingSpeedParam;
import org.nl.config.language.LangProcess;
import org.nl.enums.YesOrNoEnum;
import org.nl.exception.BadRequestException;
import org.nl.response.WebResponse;
@@ -57,11 +58,11 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
String setting_value = updateSettingParam.getValue();
if (StrUtil.isBlank(setting_code)){
throw new BadRequestException("设置编号不能为空");
throw new BadRequestException(LangProcess.msg("setting_code_empty"));
}
SettingCodeEnum settingCodeEnum = SettingCodeEnum.getByCode(setting_code);
if (settingCodeEnum == null){
throw new BadRequestException("未找到该设置编码");
throw new BadRequestException(LangProcess.msg("setting_code_not_found"));
}
try {
@@ -74,7 +75,7 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
case DELIVERY_SPEED:
log.info("修改配送速度");
if (StrUtil.isBlank(setting_value)){
throw new BadRequestException("修改配送速度,设置值不能为空");
throw new BadRequestException(LangProcess.msg("setting_speed_value_empty"));
}
ScheduleAPISettingSpeedParam scheduleAPISettingSpeedParam = new ScheduleAPISettingSpeedParam();
// 前端值是0.1-1.0
@@ -82,7 +83,7 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
scheduleAPISettingSpeedParam.setCustomSpeed(customSpeed);
HttpResponse speedResult = scheduleSettingAPI.settingSpeed(scheduleAPISettingSpeedParam);
if (speedResult == null || !speedResult.isOk()){
throw new BadRequestException("设置调度配送速度失败");
throw new BadRequestException(LangProcess.msg("setting_speed_failed"));
}
break;
case FAR_CALL:
@@ -97,7 +98,7 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
case AUTOMATIC_RECHARGE:
log.info("修改自动回充");
if (StrUtil.isBlank(setting_value) || StrUtil.isBlank(is_active) ){
throw new BadRequestException("修改自动回充,设置值和是否启用值不能为空");
throw new BadRequestException(LangProcess.msg("setting_auto_charge_value_empty"));
}
ScheduleAPISettingChargeParam scheduleAPISettingFreeChargeThreshold = new ScheduleAPISettingChargeParam();
// 调度有默认强制充电阈值(不接任务),目前我们设置的是空闲无任务时车辆自动去充电的阈值。如果没启用将阈值设置成0。
@@ -106,13 +107,13 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
);
HttpResponse freeChargeResult = scheduleSettingAPI.settingCharge(scheduleAPISettingFreeChargeThreshold);
if (freeChargeResult == null || !freeChargeResult.isOk()){
throw new BadRequestException("设置调度自由充电阈值失败");
throw new BadRequestException(LangProcess.msg("setting_free_charge_failed"));
}
break;
case CAN_IT_BE_CALLED_WHILE_CHARGING:
log.info("修改充电时是否可呼叫");
if (StrUtil.isBlank(setting_value) || StrUtil.isBlank(is_active) ){
throw new BadRequestException("修改充电时是否可呼叫,设置值和是否启用值不能为空");
throw new BadRequestException(LangProcess.msg("setting_charge_call_value_empty"));
}
ScheduleAPISettingChargeParam scheduleAPISettingUsableForTaskThreshold = new ScheduleAPISettingChargeParam();
// 如果充电时不可呼叫,将阈值改成100。
@@ -121,7 +122,7 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
);
HttpResponse chargeResult = scheduleSettingAPI.settingCharge(scheduleAPISettingUsableForTaskThreshold);
if (chargeResult == null || !chargeResult.isOk()){
throw new BadRequestException("设置调度可接任务阈值失败");
throw new BadRequestException(LangProcess.msg("setting_usable_task_failed"));
}
break;
case SCREEN_PASSWORD:
@@ -140,7 +141,7 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> impl
);
}catch (Exception e){
log.info("更新设置失败:{}",e.getMessage());
throw new BadRequestException("更新设置失败:"+e.getMessage());
throw new BadRequestException(LangProcess.msg("setting_update_failed",e.getMessage()));
}
return WebResponse.requestOk();

View File

@@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.api.schedule.task.api.ScheduleTaskAPI;
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.YesOrNoEnum;
import org.nl.exception.BadRequestException;
@@ -134,7 +135,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
public WebResponse createTask(CreateTaskRequestParam createTaskRequestParam, String taskSource) {
try {
if (!TaskTypeEnum.validationTaskType(createTaskRequestParam.getType())) {
throw new BadRequestException("任务类型不存在");
throw new BadRequestException(LangProcess.msg("task_type_not_exist"));
}
Task task = BeanUtil.copyProperties(createTaskRequestParam, Task.class);
task.setId(IdUtil.getStringId());
@@ -152,12 +153,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
ScheduleAPICreateTaskParam scheduleAPICreateTaskParam = BeanUtil.copyProperties(task, ScheduleAPICreateTaskParam.class);
HttpResponse result = scheduleTaskAPI.createTask(scheduleAPICreateTaskParam);
if (result == null || !result.isOk()){
throw new BadRequestException("调度生成任务失败");
throw new BadRequestException(LangProcess.msg("task_schedule_create_failed"));
}
return WebResponse.requestOk();
}catch (Exception e){
log.error("创建任务失败:{}",e.getMessage());
throw new BadRequestException("创建任务失败:"+e.getMessage());
throw new BadRequestException(LangProcess.msg("task_create_failed",e.getMessage()));
}
}
@@ -178,7 +179,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
public WebResponse cancelTask(CancelTaskRequestParam cancelTaskRequestParam) {
try {
if (StrUtil.isBlank(cancelTaskRequestParam.getTask_code())){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("task_code_empty"));
}
// HttpResponse result = scheduleTaskAPI.cancelTask(cancelTaskRequestParam.getTask_code());
@@ -193,7 +194,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
);
}catch (Exception e){
log.error("取消任务失败:{}",e.getMessage());
throw new BadRequestException("取消任务失败:"+e.getMessage());
throw new BadRequestException(LangProcess.msg("task_cancel_failed",e.getMessage()));
}
return WebResponse.requestOk();
@@ -204,12 +205,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
public WebResponse pauseTask(PauseAndResumeTaskParam pauseAndResumeTaskParam) {
try {
if (StrUtil.isBlank(pauseAndResumeTaskParam.getTask_code())){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("task_code_empty"));
}
HttpResponse result = scheduleTaskAPI.pauseTask(pauseAndResumeTaskParam.getTask_code());
if (result == null || !result.isOk()){
throw new BadRequestException("暂停调度任务失败");
throw new BadRequestException(LangProcess.msg("task_pause_schedule_failed"));
}
taskMapper.update(new LambdaUpdateWrapper<>(Task.class)
@@ -222,7 +223,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
return WebResponse.requestOk();
}catch (Exception e){
log.error("暂停任务失败:{}",e.getMessage());
throw new BadRequestException("暂停任务失败:"+e.getMessage());
throw new BadRequestException(LangProcess.msg("task_pause_failed",e.getMessage()));
}
}
@@ -231,12 +232,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
public WebResponse resumeTask(PauseAndResumeTaskParam pauseAndResumeTaskParam) {
try {
if (StrUtil.isBlank(pauseAndResumeTaskParam.getTask_code())){
throw new BadRequestException("任务号不能为空");
throw new BadRequestException(LangProcess.msg("task_code_empty"));
}
HttpResponse result = scheduleTaskAPI.resumeTask(pauseAndResumeTaskParam.getTask_code());
if (result == null || !result.isOk()){
throw new BadRequestException("恢复调度任务失败");
throw new BadRequestException(LangProcess.msg("task_resume_schedule_failed"));
}
taskMapper.update(new LambdaUpdateWrapper<>(Task.class)
@@ -249,14 +250,14 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
return WebResponse.requestOk();
}catch (Exception e){
log.error("恢复任务失败:{}",e.getMessage());
throw new BadRequestException("恢复任务失败:"+e.getMessage());
throw new BadRequestException(LangProcess.msg("task_resume_failed",e.getMessage()));
}
}
@Override
public WebResponse queryNotFinishTaskInfoByVehicleNumber(String vehicle_number) {
if (StrUtil.isBlank(vehicle_number)){
throw new BadRequestException("车号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_vehicle_number_empty"));
}
return WebResponse.requestParamOk(taskInfoList.get(vehicle_number));
}
@@ -264,7 +265,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
@Override
public List<Task> queryCurrentTaskInfoByVehicleNumber(String vehicle_number) {
if (StrUtil.isBlank(vehicle_number)){
throw new BadRequestException("车号不能为空");
throw new BadRequestException(LangProcess.msg("schedule_vehicle_number_empty"));
}
return taskInfoList.get(vehicle_number);
}
@@ -275,7 +276,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
// 校验一下当前是否到达上报点位,如果未到达上报点位,不能触发确认到达。
Task task = taskMapper.selectOne(new LambdaQueryWrapper<>(Task.class).eq(Task::getTask_code, task_code));
if (!ScheduleTaskReportStatusEnum.REPORTED.getCode().equals(task.getVehicleReportStatus())) {
throw new BadRequestException("未到达上报点位,无法确认到达");
throw new BadRequestException(LangProcess.msg("task_report_not_arrived"));
}
boolean reuslt = taskMapper.update(new LambdaUpdateWrapper<>(Task.class)
@@ -284,7 +285,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
.eq(Task::getTask_code,task_code)
) > 0;
if (!reuslt){
throw new BadRequestException("任务操作确认失败");
throw new BadRequestException(LangProcess.msg("task_confirm_arrival_failed"));
}
return WebResponse.requestOk();
}
@@ -311,12 +312,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper,Task> implements Tas
scheduleAPICreateOneClickTaskParam.setType(OneClickTaskTypeEnum.mappingScheduleTypeByCode(oneClickOperationRequestParam.getType()));
HttpResponse result = scheduleTaskAPI.oneClickOperationTask(scheduleAPICreateOneClickTaskParam);
if (result == null || !result.isOk()){
throw new BadRequestException("调度生成一键任务失败");
throw new BadRequestException(LangProcess.msg("task_schedule_create_failed"));
}
return WebResponse.requestOk();
}catch (Exception e){
log.error("创建一键任务失败:{}",e.getMessage());
throw new BadRequestException("创建一键任务失败:"+e.getMessage());
throw new BadRequestException(LangProcess.msg("task_next_station_failed",e.getMessage()));
}
}

View File

@@ -1,6 +1,7 @@
package org.nl.util;
import lombok.extern.slf4j.Slf4j;
import org.nl.config.language.LangProcess;
import org.nl.exception.BadRequestException;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@@ -38,7 +39,7 @@ public class ParseZip {
if (extension.toLowerCase().equals(".zip")) {
extractZipFile(inputStream, skippedFiles);
} else {
throw new BadRequestException("不支持的压缩格式: " + extension);
throw new BadRequestException(LangProcess.msg("unsupported_format", extension));
}
}
}

View File

@@ -5,3 +5,109 @@ failed = 操作失败!
latest = 已经是最新的!
param_is_null = 参数为空!
password_error = 账号或密码错误
# 调度相关
schedule_speed_param_empty = 调度设置配送速度参数不能为空
schedule_charge_param_empty = 调度设置充电参数不能为空
schedule_task_code_empty = 任务号不能为空
schedule_destinations_empty = 目标点不能为空
schedule_operation_type_empty = 任务操作类型不能为空
schedule_vehicle_number_empty = 车号不能为空
schedule_report_location_empty = 上报点位不能为空
schedule_report_vehicle_empty = 上报车号不能为空
schedule_report_task_code_empty = 上报任务号不能为空
schedule_report_stage_not_found = 未找到该上报阶段
schedule_report_type_not_found = 未找到该上报类型
schedule_operation_not_confirmed = 未确认操作
# 设置相关
setting_code_empty = 设置编号不能为空
setting_code_not_found = 未找到该设置编码
setting_speed_value_empty = 修改配送速度,设置值不能为空
setting_speed_failed = 设置调度配送速度失败
setting_auto_charge_value_empty = 修改自动回充,设置值和是否启用值不能为空
setting_free_charge_failed = 设置调度自由充电阈值失败
setting_charge_call_value_empty = 修改充电时是否可呼叫,设置值和是否启用值不能为空
setting_usable_task_failed = 设置调度可接任务阈值失败
setting_update_failed = 更新设置失败:{0}
# 任务相关
task_type_not_exist = 任务类型不存在
task_schedule_create_failed = 调度生成任务失败
task_create_failed = 创建任务失败:{0}
task_code_empty = 任务号不能为空
task_cancel_failed = 取消任务失败:{0}
task_pause_schedule_failed = 暂停调度任务失败
task_pause_failed = 暂停任务失败:{0}
task_resume_schedule_failed = 恢复调度任务失败
task_resume_failed = 恢复任务失败:{0}
task_station_code_empty = 站号不能为空
task_report_not_arrived = 未上报到达点位,无法确认到达
task_confirm_arrival_failed = 任务到达确认失败
task_next_station_failed = 任务下一站失败:{0}
# 异常信息相关
anomaly_file_not_selected = 请选择文件上传
anomaly_file_name_empty = 文件名称为空
anomaly_file_format_error = 目前只支持ZIP格式
anomaly_file_parse_failed = 解析文件失败:{0}
anomaly_update_failed = 修改异常信息失败
# 文件相关
file_size_exceed = 文件超出规定大小
# 部门相关
dept_parent_cannot_self = 上级不能为自己
dept_has_users = 部门存在绑定的员工,请先解除员工绑定
# 字典相关
dict_code_exists = 字典[{0}]已存在
dict_not_exist = 字典不存在
dict_label_exists = 标签[{0}]已存在
dict_no_permission = 无删除数据权限,操作失败!
# 菜单相关
menu_url_must_http = 外链必须以http://或者https://开头
menu_parent_cannot_self = 上级不能为自己或自己的下级
# 通知相关
notice_not_exist = 该消息不存在!
notice_send_failed = 消息发送失败
# 参数相关
param_code_not_match = 编码不能一致
param_code_exists = 参数[{0}]已存在
# 角色相关
role_name_empty = 角色名称不能为空!
role_name_exists = 角色名{0}已存在!
# 用户相关
user_code_not_exist = 验证码不存在或已过期
user_code_error = 验证码错误
user_account_password_error = 账号或密码错误
user_account_not_active = 账号未激活
user_old_password_error = 修改失败,旧密码错误
user_password_not_match = 两次输入密码不一致
user_password_error = 密码错误
# 二维码相关
qrcode_data_empty = 二维码数据不能为空
qrcode_room_number_empty = 二维码房间号不能为空
qrcode_generate_failed = 生成二维码失败
qrcode_room_exists = 该房间已存在二维码,无法重复生成
qrcode_room_exists_cannot_update = 该房间已存在二维码,无法修改
qrcode_update_failed = 修改二维码信息失败
qrcode_id_empty = 二维码标识不能为空
qrcode_delete_file_failed = 删除二维码文件失败
qrcode_delete_failed = 删除二维码失败
qrcode_station_code_empty = 站号不能为空
# 安全相关
security_password_error = 密码错误
# 系统相关
system_get_menu_failed = 获取对应的系统菜单出错
# 通用
unsupported_format = 不支持的压缩格式: {0}

View File

@@ -5,3 +5,109 @@ failed = Failed!
latest = Already up to date!
param_is_null = The parameter is empty!
password_error = Wrong account or password
# Schedule related
schedule_speed_param_empty = Dispatch setting delivery speed parameter cannot be empty
schedule_charge_param_empty = Dispatch setting charging parameter cannot be empty
schedule_task_code_empty = Task number cannot be empty
schedule_destinations_empty = Destination cannot be empty
schedule_operation_type_empty = Task operation type cannot be empty
schedule_vehicle_number_empty = Vehicle number cannot be empty
schedule_report_location_empty = Report location cannot be empty
schedule_report_vehicle_empty = Report vehicle number cannot be empty
schedule_report_task_code_empty = Report task number cannot be empty
schedule_report_stage_not_found = Report stage not found
schedule_report_type_not_found = Report type not found
schedule_operation_not_confirmed = Operation not confirmed
# Setting related
setting_code_empty = Setting code cannot be empty
setting_code_not_found = Setting code not found
setting_speed_value_empty = Modify delivery speed, setting value cannot be empty
setting_speed_failed = Failed to set dispatch delivery speed
setting_auto_charge_value_empty = Modify auto recharge, setting value and enable value cannot be empty
setting_free_charge_failed = Failed to set dispatch free charge threshold
setting_charge_call_value_empty = Modify whether it can be called while charging, setting value and enable value cannot be empty
setting_usable_task_failed = Failed to set dispatch usable task threshold
setting_update_failed = Failed to update settings:{0}
# Task related
task_type_not_exist = Task type does not exist
task_schedule_create_failed = Failed to create dispatch task
task_create_failed = Failed to create task:{0}
task_code_empty = Task number cannot be empty
task_cancel_failed = Failed to cancel task:{0}
task_pause_schedule_failed = Failed to pause dispatch task
task_pause_failed = Failed to pause task:{0}
task_resume_schedule_failed = Failed to resume dispatch task
task_resume_failed = Failed to resume task:{0}
task_station_code_empty = Station code cannot be empty
task_report_not_arrived = Not reported arrival location, unable to confirm arrival
task_confirm_arrival_failed = Failed to confirm task arrival
task_next_station_failed = Failed to go to next station:{0}
# Anomaly related
anomaly_file_not_selected = Please select a file to upload
anomaly_file_name_empty = File name is empty
anomaly_file_format_error = Currently only ZIP format is supported
anomaly_file_parse_failed = Failed to parse file:{0}
anomaly_update_failed = Failed to update anomaly information
# File related
file_size_exceed = File exceeds the specified size
# Department related
dept_parent_cannot_self = Parent cannot be itself
dept_has_users = Department has bound employees, please unbind employees first
# Dictionary related
dict_code_exists = Dictionary[{0}] already exists
dict_not_exist = Dictionary does not exist
dict_label_exists = Label[{0}] already exists
dict_no_permission = No permission to delete data, operation failed!
# Menu related
menu_url_must_http = External link must start with http:// or https://
menu_parent_cannot_self = Parent cannot be itself or its subordinates
# Notice related
notice_not_exist = This message does not exist!
notice_send_failed = Failed to send message
# Parameter related
param_code_not_match = Code cannot be the same
param_code_exists = Parameter[{0}] already exists
# Role related
role_name_empty = Role name cannot be empty!
role_name_exists = Role name {0} already exists!
# User related
user_code_not_exist = Verification code does not exist or has expired
user_code_error = Verification code error
user_account_password_error = Wrong account or password
user_account_not_active = Account not activated
user_old_password_error = Modification failed, old password is wrong
user_password_not_match = The two passwords entered are inconsistent
user_password_error = Password error
# QRCode related
qrcode_data_empty = QR code data cannot be empty
qrcode_room_number_empty = QR code room number cannot be empty
qrcode_generate_failed = Failed to generate QR code
qrcode_room_exists = QR code already exists for this room, cannot generate again
qrcode_room_exists_cannot_update = QR code already exists for this room, cannot update
qrcode_update_failed = Failed to update QR code information
qrcode_id_empty = QR code ID cannot be empty
qrcode_delete_file_failed = Failed to delete QR code file
qrcode_delete_failed = Failed to delete QR code
qrcode_station_code_empty = Station code cannot be empty
# Security related
security_password_error = Password error
# System related
system_get_menu_failed = Error getting corresponding system menu
# Common
unsupported_format = Unsupported compression format: {0}

View File

@@ -5,3 +5,109 @@ failed = 操作失败!
latest = 已经是最新的!
param_is_null = 参数为空!
password_error = 账号或密码错误
# 调度相关
schedule_speed_param_empty = 调度设置配送速度参数不能为空
schedule_charge_param_empty = 调度设置充电参数不能为空
schedule_task_code_empty = 任务号不能为空
schedule_destinations_empty = 目标点不能为空
schedule_operation_type_empty = 任务操作类型不能为空
schedule_vehicle_number_empty = 车号不能为空
schedule_report_location_empty = 上报点位不能为空
schedule_report_vehicle_empty = 上报车号不能为空
schedule_report_task_code_empty = 上报任务号不能为空
schedule_report_stage_not_found = 未找到该上报阶段
schedule_report_type_not_found = 未找到该上报类型
schedule_operation_not_confirmed = 未确认操作
# 设置相关
setting_code_empty = 设置编号不能为空
setting_code_not_found = 未找到该设置编码
setting_speed_value_empty = 修改配送速度,设置值不能为空
setting_speed_failed = 设置调度配送速度失败
setting_auto_charge_value_empty = 修改自动回充,设置值和是否启用值不能为空
setting_free_charge_failed = 设置调度自由充电阈值失败
setting_charge_call_value_empty = 修改充电时是否可呼叫,设置值和是否启用值不能为空
setting_usable_task_failed = 设置调度可接任务阈值失败
setting_update_failed = 更新设置失败:{0}
# 任务相关
task_type_not_exist = 任务类型不存在
task_schedule_create_failed = 调度生成任务失败
task_create_failed = 创建任务失败:{0}
task_code_empty = 任务号不能为空
task_cancel_failed = 取消任务失败:{0}
task_pause_schedule_failed = 暂停调度任务失败
task_pause_failed = 暂停任务失败:{0}
task_resume_schedule_failed = 恢复调度任务失败
task_resume_failed = 恢复任务失败:{0}
task_station_code_empty = 站号不能为空
task_report_not_arrived = 未上报到达点位,无法确认到达
task_confirm_arrival_failed = 任务到达确认失败
task_next_station_failed = 任务下一站失败:{0}
# 异常信息相关
anomaly_file_not_selected = 请选择文件上传
anomaly_file_name_empty = 文件名称为空
anomaly_file_format_error = 目前只支持ZIP格式
anomaly_file_parse_failed = 解析文件失败:{0}
anomaly_update_failed = 修改异常信息失败
# 文件相关
file_size_exceed = 文件超出规定大小
# 部门相关
dept_parent_cannot_self = 上级不能为自己
dept_has_users = 部门存在绑定的员工,请先解除员工绑定
# 字典相关
dict_code_exists = 字典[{0}]已存在
dict_not_exist = 字典不存在
dict_label_exists = 标签[{0}]已存在
dict_no_permission = 无删除数据权限,操作失败!
# 菜单相关
menu_url_must_http = 外链必须以http://或者https://开头
menu_parent_cannot_self = 上级不能为自己或自己的下级
# 通知相关
notice_not_exist = 该消息不存在!
notice_send_failed = 消息发送失败
# 参数相关
param_code_not_match = 编码不能一致
param_code_exists = 参数[{0}]已存在
# 角色相关
role_name_empty = 角色名称不能为空!
role_name_exists = 角色名{0}已存在!
# 用户相关
user_code_not_exist = 验证码不存在或已过期
user_code_error = 验证码错误
user_account_password_error = 账号或密码错误
user_account_not_active = 账号未激活
user_old_password_error = 修改失败,旧密码错误
user_password_not_match = 两次输入密码不一致
user_password_error = 密码错误
# 二维码相关
qrcode_data_empty = 二维码数据不能为空
qrcode_room_number_empty = 二维码房间号不能为空
qrcode_generate_failed = 生成二维码失败
qrcode_room_exists = 该房间已存在二维码,无法重复生成
qrcode_room_exists_cannot_update = 该房间已存在二维码,无法修改
qrcode_update_failed = 修改二维码信息失败
qrcode_id_empty = 二维码标识不能为空
qrcode_delete_file_failed = 删除二维码文件失败
qrcode_delete_failed = 删除二维码失败
qrcode_station_code_empty = 站号不能为空
# 安全相关
security_password_error = 密码错误
# 系统相关
system_get_menu_failed = 获取对应的系统菜单出错
# 通用
unsupported_format = 不支持的压缩格式: {0}