增加生成后端服务代码。
This commit is contained in:
parent
90af34d536
commit
e7b589c8c7
@ -153,7 +153,9 @@ public enum ResponseCode {
|
|||||||
|
|
||||||
// 表单管理相关错误码 (2800-2899)
|
// 表单管理相关错误码 (2800-2899)
|
||||||
FORM_DEFINITION_NOT_FOUND(2800, "form.definition.not.found"),
|
FORM_DEFINITION_NOT_FOUND(2800, "form.definition.not.found"),
|
||||||
FORM_DATA_NOT_FOUND(2801, "form.data.not.found");
|
FORM_DATA_NOT_FOUND(2801, "form.data.not.found"),
|
||||||
|
FORM_DEFINITION_KEY_EXISTS(2802, "form.definition.key.exists"),
|
||||||
|
FORM_DEFINITION_KEY_VERSION_EXISTS(2803, "form.definition.key.version.exists");
|
||||||
|
|
||||||
private final int code;
|
private final int code;
|
||||||
private final String messageKey; // 国际化消息key
|
private final String messageKey; // 国际化消息key
|
||||||
|
|||||||
@ -29,7 +29,14 @@ public class GlobalExceptionHandler {
|
|||||||
@ExceptionHandler(BusinessException.class)
|
@ExceptionHandler(BusinessException.class)
|
||||||
public Response<?> handleBusinessException(BusinessException e) {
|
public Response<?> handleBusinessException(BusinessException e) {
|
||||||
log.warn("Business error occurred: {}", e.getErrorCode().getMessageKey(), e);
|
log.warn("Business error occurred: {}", e.getErrorCode().getMessageKey(), e);
|
||||||
return Response.error(e.getErrorCode());
|
|
||||||
|
// 直接传递参数数组给 Response.error,由它统一处理消息格式化
|
||||||
|
// 避免重复格式化导致消息内容重复
|
||||||
|
if (e.getArgs() != null && e.getArgs().length > 0) {
|
||||||
|
return Response.error(e.getErrorCode(), e.getArgs());
|
||||||
|
} else {
|
||||||
|
return Response.error(e.getErrorCode());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExceptionHandler(SystemException.class)
|
@ExceptionHandler(SystemException.class)
|
||||||
|
|||||||
@ -35,14 +35,23 @@ public class FormDefinitionServiceImpl extends BaseServiceImpl<FormDefinition, F
|
|||||||
public FormDefinitionDTO create(FormDefinitionDTO dto) {
|
public FormDefinitionDTO create(FormDefinitionDTO dto) {
|
||||||
log.info("创建表单定义: name={}, key={}", dto.getName(), dto.getKey());
|
log.info("创建表单定义: name={}, key={}", dto.getName(), dto.getKey());
|
||||||
|
|
||||||
// 1. 转换为实体
|
// 1. 检查 key 是否已存在(业务逻辑前置校验)
|
||||||
|
if (formDefinitionRepository.existsByKeyAndDeletedFalse(dto.getKey())) {
|
||||||
|
log.warn("表单标识已存在: key={}", dto.getKey());
|
||||||
|
throw new BusinessException(
|
||||||
|
com.qqchen.deploy.backend.framework.enums.ResponseCode.FORM_DEFINITION_KEY_EXISTS,
|
||||||
|
new Object[]{dto.getKey()}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 转换为实体
|
||||||
FormDefinition formDefinition = formDefinitionConverter.toEntity(dto);
|
FormDefinition formDefinition = formDefinitionConverter.toEntity(dto);
|
||||||
|
|
||||||
// 2. 后端控制版本号和状态(前端传递的值会被覆盖)
|
// 3. 后端控制版本号和状态(前端传递的值会被覆盖)
|
||||||
formDefinition.setFormVersion(1); // 新建表单,版本号固定为 1
|
formDefinition.setFormVersion(1); // 新建表单,版本号固定为 1
|
||||||
formDefinition.setStatus(FormDefinitionStatusEnums.DRAFT); // 新建表单,状态固定为草稿
|
formDefinition.setStatus(FormDefinitionStatusEnums.DRAFT); // 新建表单,状态固定为草稿
|
||||||
|
|
||||||
// 3. 保存
|
// 4. 保存
|
||||||
FormDefinition savedForm = formDefinitionRepository.save(formDefinition);
|
FormDefinition savedForm = formDefinitionRepository.save(formDefinition);
|
||||||
log.info("表单定义创建成功: id={}, key={}, version={}", savedForm.getId(), savedForm.getKey(), savedForm.getFormVersion());
|
log.info("表单定义创建成功: id={}, key={}, version={}", savedForm.getId(), savedForm.getKey(), savedForm.getFormVersion());
|
||||||
|
|
||||||
@ -88,11 +97,22 @@ public class FormDefinitionServiceImpl extends BaseServiceImpl<FormDefinition, F
|
|||||||
if (FormDefinitionStatusEnums.PUBLISHED.equals(currentForm.getStatus())) {
|
if (FormDefinitionStatusEnums.PUBLISHED.equals(currentForm.getStatus())) {
|
||||||
log.info("表单已发布,创建新版本: key={}, currentVersion={}", currentForm.getKey(), currentForm.getFormVersion());
|
log.info("表单已发布,创建新版本: key={}, currentVersion={}", currentForm.getKey(), currentForm.getFormVersion());
|
||||||
|
|
||||||
|
// 检查新版本号是否已存在(业务逻辑前置校验)
|
||||||
|
Integer newVersionNumber = currentForm.getFormVersion() + 1;
|
||||||
|
if (formDefinitionRepository.findByKeyAndFormVersionAndDeletedFalse(
|
||||||
|
currentForm.getKey(), newVersionNumber).isPresent()) {
|
||||||
|
log.warn("表单版本已存在: key={}, version={}", currentForm.getKey(), newVersionNumber);
|
||||||
|
throw new BusinessException(
|
||||||
|
com.qqchen.deploy.backend.framework.enums.ResponseCode.FORM_DEFINITION_KEY_VERSION_EXISTS,
|
||||||
|
new Object[]{currentForm.getKey(), newVersionNumber}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// 创建新版本
|
// 创建新版本
|
||||||
FormDefinition newVersion = new FormDefinition();
|
FormDefinition newVersion = new FormDefinition();
|
||||||
newVersion.setName(currentForm.getName());
|
newVersion.setName(currentForm.getName());
|
||||||
newVersion.setKey(currentForm.getKey());
|
newVersion.setKey(currentForm.getKey());
|
||||||
newVersion.setFormVersion(currentForm.getFormVersion() + 1);
|
newVersion.setFormVersion(newVersionNumber);
|
||||||
newVersion.setCategoryId(currentForm.getCategoryId());
|
newVersion.setCategoryId(currentForm.getCategoryId());
|
||||||
newVersion.setDescription(currentForm.getDescription());
|
newVersion.setDescription(currentForm.getDescription());
|
||||||
newVersion.setSchema(currentForm.getSchema());
|
newVersion.setSchema(currentForm.getSchema());
|
||||||
|
|||||||
@ -51,8 +51,37 @@ VALUES
|
|||||||
-- 首页
|
-- 首页
|
||||||
(99, '工作台', '/dashboard', '/src/pages/dashboard/index', 'DashboardOutlined', 2, NULL, 0, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(99, '工作台', '/dashboard', '/src/pages/dashboard/index', 'DashboardOutlined', 2, NULL, 0, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
|
||||||
|
-- 工作流管理
|
||||||
|
(100, '工作流管理', '/workflow', 'Layout', 'DeploymentUnitOutlined', 1, NULL, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 工作流设计
|
||||||
|
(101, '工作流设计', '/workflow/definition', '/src/pages/workflow/definition/index', 'EditOutlined', 2, 100, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 工作流实例
|
||||||
|
(102, '工作流实例', '/workflow/instance', '/src/pages/workflow/instance/index', 'BranchesOutlined', 2, 100, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 表单管理
|
||||||
|
(104, '表单管理', '/workflow/form', '/src/pages/workflow/form/index', 'FormOutlined', 2, 100, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 节点管理
|
||||||
|
(103, '节点管理', '/workflow/node-design', '/src/pages/workflow/nodedesign/design/index', 'ControlOutlined', 2, 100, 40, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
|
||||||
|
-- 运维管理
|
||||||
|
(200, '运维管理', '/deploy', 'Layout', 'DeploymentUnitOutlined', 1, NULL, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 项目组管理
|
||||||
|
(201, '项目组管理', '/deploy/project-group', '/src/pages/Deploy/ProjectGroup/List/index', 'ProjectOutlined', 2, 200, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 应用管理
|
||||||
|
(202, '应用管理', '/deploy/applications', '/src/pages/Deploy/Application/List/index', 'AppstoreOutlined', 2, 200, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
|
||||||
|
-- 资源管理
|
||||||
|
(300, '资源管理', '/resource', 'Layout', 'DatabaseOutlined', 1, NULL, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 环境管理
|
||||||
|
(301, '环境管理', '/resource/environments', '/src/pages/Deploy/Environment/List/index', 'CloudOutlined', 2, 300, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- Jenkins管理
|
||||||
|
(302, 'Jenkins管理', '/resource/jenkins-manager', '/src/pages/Deploy/JenkinsManager/List', 'BuildOutlined', 2, 300, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- Git管理
|
||||||
|
(303, 'Git管理', '/resource/git-manager', '/src/pages/Deploy/GitManager/List', 'GithubOutlined', 2, 300, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
-- 三方系统管理
|
||||||
|
(304, '三方系统管理', '/resource/external', '/src/pages/Deploy/external/index', 'ApiOutlined', 2, 300, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
|
|
||||||
-- 系统管理
|
-- 系统管理
|
||||||
(1, '系统管理', '/system', 'Layout', 'SettingOutlined', 1, NULL, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(1, '系统管理', '/system', 'Layout', 'SettingOutlined', 1, NULL, 99, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 用户管理
|
-- 用户管理
|
||||||
(2, '用户管理', '/system/user', '/src/pages/system/user/index', 'UserOutlined', 2, 1, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(2, '用户管理', '/system/user', '/src/pages/system/user/index', 'UserOutlined', 2, 1, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 角色管理
|
-- 角色管理
|
||||||
@ -60,32 +89,7 @@ VALUES
|
|||||||
-- 菜单管理
|
-- 菜单管理
|
||||||
(4, '菜单管理', '/system/menu', '/src/pages/system/menu/index', 'MenuOutlined', 2, 1, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(4, '菜单管理', '/system/menu', '/src/pages/system/menu/index', 'MenuOutlined', 2, 1, 30, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
||||||
-- 部门管理
|
-- 部门管理
|
||||||
(5, '部门管理', '/system/department', '/src/pages/system/department/index', 'ApartmentOutlined', 2, 1, 40, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
(5, '部门管理', '/system/department', '/src/pages/system/department/index', 'ApartmentOutlined', 2, 1, 40, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);
|
||||||
|
|
||||||
-- 工作流管理
|
|
||||||
(100, '工作流管理', '/workflow', 'Layout', 'DeploymentUnitOutlined', 1, NULL, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
-- 工作流设计
|
|
||||||
(101, '工作流设计', '/workflow/definition', '/src/pages/workflow/definition/index', 'EditOutlined', 2, 100, 10, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
-- 工作流实例
|
|
||||||
(102, '工作流实例', '/workflow/instance', '/src/pages/workflow/instance/index', 'BranchesOutlined', 2, 100, 20, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
-- 节点管理
|
|
||||||
(103, '节点管理', '/workflow/node-design', '/src/pages/workflow/nodedesign/design/index', 'ControlOutlined', 2, 100, 40, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
|
|
||||||
(200, '运维管理', '/deploy', '', 'DeploymentUnitOutlined', 2, 0, 50, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
|
|
||||||
(201, '项目组管理', '/deploy/project-group', '/src/pages/Deploy/ProjectGroup/List/index', 'ProjectOutlined', 2, 200, 1, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
|
|
||||||
(202, '应用管理', '/deploy/applications', '/src/pages/Deploy/Application/List/index', 'AppstoreOutlined', 2, 200, 2, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
|
|
||||||
(203, '环境管理', '/deploy/environments', '/src/pages/Deploy/Environment/List/index', 'CloudOutlined', 2, 200, 3, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
|
|
||||||
(204, '部署配置管理', '/deploy/deployment', '/src/pages/Deploy/Deployment/List/index', 'CloudOutlined', 2, 200, 4, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
|
|
||||||
(205, 'Jenkins管理', '/deploy/jenkins-manager', '/src/pages/Deploy/JenkinsManager/List', 'CloudOutlined', 2, 200, 5, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
|
|
||||||
(206, 'Git管理', '/deploy/git-manager', '/src/pages/Deploy/GitManager/List', 'CloudOutlined', 2, 200, 6, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE),
|
|
||||||
-- 三方系统
|
|
||||||
(207, '三方系统管理', '/deploy/external', '/src/pages/Deploy/external/index', 'ApiOutlined', 2, 200, 7, FALSE, TRUE, 'system', '2024-01-01 00:00:00', 0, FALSE);
|
|
||||||
|
|
||||||
-- 初始化角色数据
|
-- 初始化角色数据
|
||||||
INSERT INTO sys_role (id, create_time, code, name, type, description, sort)
|
INSERT INTO sys_role (id, create_time, code, name, type, description, sort)
|
||||||
@ -124,7 +128,7 @@ SELECT 1, id FROM sys_menu; -- 超级管理员拥有所有菜单权限
|
|||||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||||
VALUES
|
VALUES
|
||||||
(2, 1), (2, 2), (2, 3), (2, 4), (2, 5), -- 系统管理员拥有系统管理相关权限
|
(2, 1), (2, 2), (2, 3), (2, 4), (2, 5), -- 系统管理员拥有系统管理相关权限
|
||||||
(3, 205); -- 普通用户拥有三方系统权限
|
(3, 304); -- 普通用户拥有三方系统权限
|
||||||
|
|
||||||
-- 初始化权限模板
|
-- 初始化权限模板
|
||||||
INSERT INTO sys_permission_template (id, create_time, code, name, type, description, enabled)
|
INSERT INTO sys_permission_template (id, create_time, code, name, type, description, enabled)
|
||||||
@ -137,7 +141,7 @@ INSERT INTO sys_template_menu (template_id, menu_id)
|
|||||||
SELECT 1, id FROM sys_menu; -- 完整权限模板关联所有菜单
|
SELECT 1, id FROM sys_menu; -- 完整权限模板关联所有菜单
|
||||||
|
|
||||||
INSERT INTO sys_template_menu (template_id, menu_id)
|
INSERT INTO sys_template_menu (template_id, menu_id)
|
||||||
VALUES (2, 205); -- 基础权限模板关联三方系统菜单
|
VALUES (2, 304); -- 基础权限模板关联三方系统菜单
|
||||||
|
|
||||||
-- 初始化权限数据
|
-- 初始化权限数据
|
||||||
INSERT INTO sys_permission (id, create_time, menu_id, code, name, type, sort)
|
INSERT INTO sys_permission (id, create_time, menu_id, code, name, type, sort)
|
||||||
@ -155,12 +159,12 @@ VALUES
|
|||||||
(8, NOW(), 3, 'system:role:delete', '角色删除', 'FUNCTION', 4),
|
(8, NOW(), 3, 'system:role:delete', '角色删除', 'FUNCTION', 4),
|
||||||
|
|
||||||
-- 三方系统权限
|
-- 三方系统权限
|
||||||
(9, NOW(), 205, 'system:external:list', '三方系统列表', 'FUNCTION', 1),
|
(9, NOW(), 304, 'system:external:list', '三方系统列表', 'FUNCTION', 1),
|
||||||
(10, NOW(), 205, 'system:external:create', '三方系统创建', 'FUNCTION', 2),
|
(10, NOW(), 304, 'system:external:create', '三方系统创建', 'FUNCTION', 2),
|
||||||
(11, NOW(), 205, 'system:external:update', '三方系统修改', 'FUNCTION', 3),
|
(11, NOW(), 304, 'system:external:update', '三方系统修改', 'FUNCTION', 3),
|
||||||
(12, NOW(), 205, 'system:external:delete', '三方系统删除', 'FUNCTION', 4),
|
(12, NOW(), 304, 'system:external:delete', '三方系统删除', 'FUNCTION', 4),
|
||||||
(13, NOW(), 205, 'system:external:test', '连接测试', 'FUNCTION', 5),
|
(13, NOW(), 304, 'system:external:test', '连接测试', 'FUNCTION', 5),
|
||||||
(14, NOW(), 205, 'system:external:sync', '数据同步', 'FUNCTION', 6);
|
(14, NOW(), 304, 'system:external:sync', '数据同步', 'FUNCTION', 6);
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------------------
|
-- --------------------------------------------------------------------------------------
|
||||||
-- 初始化外部系统数据
|
-- 初始化外部系统数据
|
||||||
|
|||||||
@ -1,247 +1,172 @@
|
|||||||
# \u901A\u7528\u54CD\u5E94
|
# ====================================================================
|
||||||
response.success=\u64CD\u4F5C\u6210\u529F
|
# 国际化资源文件 (UTF-8)
|
||||||
response.error=\u7CFB\u7EDF\u9519\u8BEF
|
# ====================================================================
|
||||||
response.invalid.param=\u65E0\u6548\u7684\u53C2\u6570
|
|
||||||
response.unauthorized=\u672A\u6388\u6743
|
|
||||||
response.forbidden=\u7981\u6B62\u8BBF\u95EE
|
|
||||||
response.not.found=\u8D44\u6E90\u672A\u627E\u5230
|
|
||||||
response.conflict=\u8D44\u6E90\u51B2\u7A81
|
|
||||||
response.unauthorized.full=\u8BBF\u95EE\u6B64\u8D44\u6E90\u9700\u8981\u5B8C\u5168\u8EAB\u4EFD\u9A8C\u8BC1
|
|
||||||
|
|
||||||
# \u4E1A\u52A1\u9519\u8BEF
|
# --------------------------------------------------------------------------------------
|
||||||
tenant.not.found=\u79DF\u6237\u4E0D\u5B58\u5728
|
# 通用响应 (Common Response)
|
||||||
data.not.found=\u627E\u4E0D\u5230ID\u4E3A{0}\u7684{1}
|
# --------------------------------------------------------------------------------------
|
||||||
|
response.success=操作成功
|
||||||
|
response.error=系统错误
|
||||||
|
response.invalid.param=无效的参数
|
||||||
|
response.unauthorized=未授权
|
||||||
|
response.unauthorized.full=访问此资源需要完全身份验证
|
||||||
|
response.forbidden=禁止访问
|
||||||
|
response.not.found=资源未找到
|
||||||
|
response.conflict=资源冲突
|
||||||
|
|
||||||
# \u7528\u6237\u76F8\u5173
|
# --------------------------------------------------------------------------------------
|
||||||
user.not.found=\u7528\u6237\u4E0D\u5B58\u5728
|
# 系统异常 (System Exceptions) - 1xxx
|
||||||
user.username.exists=\u7528\u6237\u540D"{0}"\u5DF2\u5B58\u5728
|
# --------------------------------------------------------------------------------------
|
||||||
user.email.exists=\u90AE\u7BB1"{0}"\u5DF2\u5B58\u5728
|
system.optimistic.lock.error=数据已被其他用户修改,请刷新后重试
|
||||||
user.login.error=\u7528\u6237\u540D\u6216\u5BC6\u7801\u9519\u8BEF
|
system.pessimistic.lock.error=数据正被其他用户操作,请稍后重试
|
||||||
|
system.concurrent.update.error=并发更新冲突,请重试
|
||||||
|
system.retry.exceeded.error=操作重试次数超限,请稍后再试
|
||||||
|
|
||||||
# \u7CFB\u7EDF\u5F02\u5E38\u6D88\u606F
|
# --------------------------------------------------------------------------------------
|
||||||
system.optimistic.lock.error=\u6570\u636E\u5DF2\u88AB\u5176\u4ED6\u7528\u6237\u4FEE\u6539\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5
|
# 依赖注入相关 (Dependency Injection) - 1100-1199
|
||||||
system.pessimistic.lock.error=\u6570\u636E\u6B63\u88AB\u5176\u4ED6\u7528\u6237\u64CD\u4F5C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
|
# --------------------------------------------------------------------------------------
|
||||||
system.concurrent.update.error=\u5E76\u53D1\u66F4\u65B0\u51B2\u7A81\uFF0C\u8BF7\u91CD\u8BD5
|
dependency.injection.service.not.found=找不到实体 {0} 对应的服务 (尝试过的bean名称: {1})
|
||||||
system.retry.exceeded.error=\u64CD\u4F5C\u91CD\u8BD5\u6B21\u6570\u8D85\u9650\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5
|
dependency.injection.repository.not.found=找不到实体 {0} 对应的Repository: {1}
|
||||||
|
dependency.injection.converter.not.found=找不到实体 {0} 对应的Converter: {1}
|
||||||
|
dependency.injection.entitypath.failed=初始化实体 {0} 的EntityPath失败: {1}
|
||||||
|
|
||||||
# Entity Not Found Messages
|
# --------------------------------------------------------------------------------------
|
||||||
entity.not.found.id=\u627E\u4E0D\u5230ID\u4E3A{0}\u7684\u5B9E\u4F53
|
# 业务异常 (Business Exceptions) - 2xxx
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# 通用业务错误 (2000-2099)
|
||||||
|
tenant.not.found=租户不存在
|
||||||
|
data.not.found=找不到ID为{0}的{1}
|
||||||
|
entity.not.found.id=找不到ID为{0}的实体
|
||||||
entity.not.found.message={0}
|
entity.not.found.message={0}
|
||||||
entity.not.found.name.id=\u627E\u4E0D\u5230ID\u4E3A{1}\u7684{0}
|
entity.not.found.name.id=找不到ID为{1}的{0}
|
||||||
|
|
||||||
# \u4F9D\u8D56\u6CE8\u5165\u76F8\u5173
|
# 用户相关 (2000-2099)
|
||||||
dependency.injection.service.not.found=\u627E\u4E0D\u5230\u5B9E\u4F53 {0} \u5BF9\u5E94\u7684\u670D\u52A1 (\u5C1D\u8BD5\u8FC7\u7684bean\u540D\u79F0: {1})
|
user.not.found=用户不存在
|
||||||
dependency.injection.repository.not.found=\u627E\u4E0D\u5230\u5B9E\u4F53 {0} \u5BF9\u5E94\u7684Repository: {1}
|
user.username.exists=用户名{0}已存在
|
||||||
dependency.injection.converter.not.found=\u627E\u4E0D\u5230\u5B9E\u4F53 {0} \u5BF9\u5E94\u7684Converter: {1}
|
user.email.exists=邮箱{0}已存在
|
||||||
dependency.injection.entitypath.failed=\u521D\u59CB\u5316\u5B9E\u4F53 {0} \u7684EntityPath\u5931\u8D25: {1}
|
user.login.error=用户名或密码错误
|
||||||
|
|
||||||
# JWT\u76F8\u5173
|
# 角色相关 (2100-2199)
|
||||||
jwt.token.expired=\u767B\u5F55\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55
|
role.not.found=角色不存在
|
||||||
jwt.token.invalid=\u65E0\u6548\u7684\u767B\u5F55\u51ED\u8BC1
|
role.code.exists=角色编码{0}已存在
|
||||||
jwt.token.missing=\u672A\u63D0\u4F9B\u767B\u5F55\u51ED\u8BC1
|
role.name.exists=角色名称{0}已存在
|
||||||
|
role.in.use=角色正在使用中,无法删除
|
||||||
|
role.admin.cannot.delete=不能删除超级管理员角色
|
||||||
|
role.admin.cannot.update=不能修改超级管理员角色
|
||||||
|
role.tag.name.exists=标签名称已存在
|
||||||
|
role.tag.not.found=标签不存在
|
||||||
|
role.tag.in.use=标签正在使用中,无法删除
|
||||||
|
|
||||||
# \u89D2\u8272\u76F8\u5173\u9519\u8BEF\u6D88\u606F
|
# JWT相关 (2200-2299)
|
||||||
role.not.found=\u89D2\u8272\u4E0D\u5B58\u5728
|
jwt.token.expired=登录已过期,请重新登录
|
||||||
role.code.exists=\u89D2\u8272\u7F16\u7801"{0}"\u5DF2\u5B58\u5728
|
jwt.token.invalid=无效的登录凭证
|
||||||
role.name.exists=\u89D2\u8272\u540D\u79F0"{0}"\u5DF2\u5B58\u5728
|
jwt.token.missing=未提供登录凭证
|
||||||
role.in.use=\u89D2\u8272\u6B63\u5728\u4F7F\u7528\u4E2D\uFF0C\u65E0\u6CD5\u5220\u9664
|
|
||||||
role.admin.cannot.delete=\u4E0D\u80FD\u5220\u9664\u8D85\u7EA7\u7BA1\u7406\u5458\u89D2\u8272
|
|
||||||
role.admin.cannot.update=\u4E0D\u80FD\u4FEE\u6539\u8D85\u7EA7\u7BA1\u7406\u5458\u89D2\u8272
|
|
||||||
role.tag.name.exists=\u6807\u7B7E\u540D\u79F0\u5DF2\u5B58\u5728
|
|
||||||
role.tag.not.found=\u6807\u7B7E\u4E0D\u5B58\u5728
|
|
||||||
role.tag.in.use=\u6807\u7B7E\u6B63\u5728\u4F7F\u7528\u4E2D\uFF0C\u65E0\u6CD5\u5220\u9664
|
|
||||||
|
|
||||||
# \u90E8\u95E8\u76F8\u5173
|
# 部门相关 (2300-2399)
|
||||||
department.not.found=\u90E8\u95E8\u4E0D\u5B58\u5728
|
department.not.found=部门不存在
|
||||||
department.code.exists=\u90E8\u95E8\u7F16\u7801\u5DF2\u5B58\u5728
|
department.code.exists=部门编码已存在
|
||||||
department.name.exists=\u90E8\u95E8\u540D\u79F0\u5DF2\u5B58\u5728
|
department.name.exists=部门名称已存在
|
||||||
department.parent.not.found=\u4E0A\u7EA7\u90E8\u95E8\u4E0D\u5B58\u5728
|
department.parent.not.found=上级部门不存在
|
||||||
department.has.children=\u8BE5\u90E8\u95E8\u4E0B\u6709\u5B50\u90E8\u95E8\uFF0C\u65E0\u6CD5\u5220\u9664
|
department.has.children=该部门下有子部门,无法删除
|
||||||
|
|
||||||
# \u6743\u9650\u76F8\u5173
|
# 权限相关 (2400-2499)
|
||||||
permission.not.found=\u6743\u9650\u4E0D\u5B58\u5728
|
permission.not.found=权限不存在
|
||||||
permission.code.exists=\u6743\u9650\u7F16\u7801{0}\u5DF2\u5B58\u5728
|
permission.code.exists=权限编码{0}已存在
|
||||||
permission.name.exists=\u6743\u9650\u540D\u79F0{0}\u5DF2\u5B58\u5728
|
permission.name.exists=权限名称{0}已存在
|
||||||
permission.already.assigned=\u8BE5\u6743\u9650\u5DF2\u5206\u914D\u7ED9\u89D2\u8272
|
permission.already.assigned=该权限已分配给角色
|
||||||
permission.assign.failed=\u6743\u9650\u5206\u914D\u5931\u8D25
|
permission.assign.failed=权限分配失败
|
||||||
|
|
||||||
# \u7B2C\u4E09\u65B9\u7CFB\u7EDF\u76F8\u5173
|
# 第三方系统相关 (2500-2599)
|
||||||
external.system.name.exists=\u7CFB\u7EDF\u540D\u79F0"{0}"\u5DF2\u5B58\u5728
|
external.system.name.exists=系统名称{0}已存在
|
||||||
external.system.type.url.exists=\u7CFB\u7EDF\u7C7B\u578B\u548CURL\u7EC4\u5408"{0}"\u5DF2\u5B58\u5728
|
external.system.type.url.exists=系统类型和URL组合{0}已存在
|
||||||
external.system.disabled=\u7CFB\u7EDF\u5DF2\u7981\u7528
|
external.system.disabled=系统已禁用
|
||||||
external.system.sync.failed=\u7CFB\u7EDF\u6570\u636E\u540C\u6B65\u5931\u8D25
|
external.system.sync.failed=系统数据同步失败
|
||||||
external.system.type.not.supported=\u4E0D\u652F\u6301\u7684\u7CFB\u7EDF\u7C7B\u578B
|
external.system.type.not.supported=不支持的系统类型
|
||||||
|
external.system.git.auth.type.error=Git系统只支持Token认证
|
||||||
|
external.system.git.token.required=Git系统必须提供Token
|
||||||
|
|
||||||
# Git\u7CFB\u7EDF\u76F8\u5173\u9519\u8BEF
|
# 仓库相关 (2600-2699)
|
||||||
external.system.git.auth.type.error=Git\u7CFB\u7EDF\u53EA\u652F\u6301Token\u8BA4\u8BC1
|
repository.group.not.found=仓库组不存在
|
||||||
external.system.git.token.required=Git\u7CFB\u7EDF\u5FC5\u987B\u63D0\u4F9BToken
|
repository.group.name.exists=仓库组名称{0}已存在
|
||||||
|
repository.group.path.exists=仓库组路径{0}已存在
|
||||||
|
repository.projectGroup.not.found=仓库项目不存在
|
||||||
|
repository.projectGroup.name.exists=仓库项目名称{0}已存在
|
||||||
|
repository.projectGroup.path.exists=仓库项目路径{0}已存在
|
||||||
|
repository.branch.not.found=分支不存在
|
||||||
|
repository.branch.name.exists=分支名称{0}已存在
|
||||||
|
repository.sync.in.progress=仓库同步正在进行中
|
||||||
|
repository.sync.failed=仓库同步失败:{0}
|
||||||
|
repository.sync.history.not.found=同步历史记录不存在
|
||||||
|
|
||||||
# \u4ED3\u5E93\u76F8\u5173\u9519\u8BEF\u6D88\u606F
|
# 工作流定义相关 (2700-2749)
|
||||||
repository.group.not.found=\u4ED3\u5E93\u7EC4\u4E0D\u5B58\u5728
|
workflow.definition.not.found=工作流定义不存在
|
||||||
repository.group.name.exists=\u4ED3\u5E93\u7EC4\u540D\u79F0"{0}"\u5DF2\u5B58\u5728
|
workflow.definition.code.exists=工作流定义编码{0}已存在
|
||||||
repository.group.path.exists=\u4ED3\u5E93\u7EC4\u8DEF\u5F84"{0}"\u5DF2\u5B58\u5728
|
workflow.definition.name.exists=工作流定义名称{0}已存在
|
||||||
repository.projectGroup.not.found=\u4ED3\u5E93\u9879\u76EE\u4E0D\u5B58\u5728
|
workflow.definition.invalid.content=工作流定义内容无效:{0}
|
||||||
repository.projectGroup.name.exists=\u4ED3\u5E93\u9879\u76EE\u540D\u79F0"{0}"\u5DF2\u5B58\u5728
|
workflow.definition.not.published=工作流定义未发布
|
||||||
repository.projectGroup.path.exists=\u4ED3\u5E93\u9879\u76EE\u8DEF\u5F84"{0}"\u5DF2\u5B58\u5728
|
workflow.definition.already.published=工作流定义已发布
|
||||||
repository.branch.not.found=\u5206\u652F\u4E0D\u5B58\u5728
|
workflow.definition.cannot.delete=工作流定义已被使用,无法删除
|
||||||
repository.branch.name.exists=\u5206\u652F\u540D\u79F0"{0}"\u5DF2\u5B58\u5728
|
workflow.not.draft=只有草稿状态的工作流定义可以发布
|
||||||
repository.sync.in.progress=\u4ED3\u5E93\u540C\u6B65\u6B63\u5728\u8FDB\u884C\u4E2D
|
workflow.not.published=只有已发布状态的工作流定义可以禁用
|
||||||
repository.sync.failed=\u4ED3\u5E93\u540C\u6B65\u5931\u8D25\uFF1A{0}
|
workflow.not.disabled=只有已禁用状态的工作流定义可以启用
|
||||||
repository.sync.history.not.found=\u540C\u6B65\u5386\u53F2\u8BB0\u5F55\u4E0D\u5B58\u5728
|
workflow.disabled=工作流已禁用
|
||||||
|
workflow.invalid.status=工作流状态无效
|
||||||
|
|
||||||
# \u5DE5\u4F5C\u6D41\u76F8\u5173\u9519\u8BEF\u6D88\u606F
|
# 工作流实例相关 (2750-2769)
|
||||||
workflow.definition.not.found=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u4E0D\u5B58\u5728
|
workflow.instance.not.found=工作流实例不存在
|
||||||
workflow.definition.code.exists=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u7F16\u7801"{0}"\u5DF2\u5B58\u5728
|
workflow.instance.cannot.start=工作流实例无法启动
|
||||||
workflow.definition.name.exists=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u540D\u79F0"{0}"\u5DF2\u5B58\u5728
|
workflow.instance.cannot.cancel=工作流实例无法取消
|
||||||
workflow.definition.invalid.content=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u5185\u5BB9\u65E0\u6548\uFF1A{0}
|
workflow.instance.cannot.pause=工作流实例无法暂停
|
||||||
workflow.definition.not.published=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u672A\u53D1\u5E03
|
workflow.instance.cannot.resume=工作流实例无法恢复
|
||||||
workflow.definition.already.published=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u5DF2\u53D1\u5E03
|
workflow.instance.cannot.retry=工作流实例无法重试
|
||||||
workflow.definition.cannot.delete=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u5DF2\u88AB\u4F7F\u7528\uFF0C\u65E0\u6CD5\u5220\u9664
|
workflow.instance.already.completed=工作流实例已完成
|
||||||
|
workflow.instance.already.canceled=工作流实例已取消
|
||||||
|
workflow.instance.not.running=工作流实例未运行
|
||||||
|
workflow.instance.not.paused=工作流实例不是暂停状态
|
||||||
|
|
||||||
workflow.instance.not.found=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u4E0D\u5B58\u5728
|
# 工作流节点相关 (2770-2789)
|
||||||
workflow.instance.cannot.start=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u65E0\u6CD5\u542F\u52A8
|
workflow.node.not.found=工作流节点不存在
|
||||||
workflow.instance.cannot.cancel=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u65E0\u6CD5\u53D6\u6D88
|
workflow.node.type.not.supported=不支持的节点类型
|
||||||
workflow.instance.cannot.pause=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u65E0\u6CD5\u6682\u505C
|
workflow.node.type.not.found=节点类型不存在或已删除
|
||||||
workflow.instance.cannot.resume=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u65E0\u6CD5\u6062\u590D
|
workflow.node.type.disabled=节点类型已禁用,无法使用
|
||||||
workflow.instance.cannot.retry=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u65E0\u6CD5\u91CD\u8BD5
|
workflow.node.type.code.exists=节点类型编码已存在
|
||||||
|
workflow.node.type.invalid.category=无效的节点类型分类
|
||||||
|
workflow.node.type.invalid.executor=无效的执行器配置
|
||||||
|
workflow.node.config.invalid=节点配置无效
|
||||||
|
workflow.node.config.empty=节点配置不能为空
|
||||||
|
workflow.node.config.error=节点配置错误
|
||||||
|
workflow.node.execution.failed=节点执行失败
|
||||||
|
workflow.node.executor.not.found=未找到工作流节点执行器: {0}
|
||||||
|
workflow.node.timeout=节点执行超时
|
||||||
|
node.instance.not.found=节点实例不存在
|
||||||
|
node.instance.cannot.retry=节点实例无法重试
|
||||||
|
node.instance.cannot.skip=节点实例无法跳过
|
||||||
|
node.executor.not.found=节点执行器不存在
|
||||||
|
|
||||||
# \u8282\u70B9\u76F8\u5173\u9519\u8BEF\u6D88\u606F
|
# 工作流配置相关 (2790-2799)
|
||||||
node.instance.not.found=\u8282\u70B9\u5B9E\u4F8B\u4E0D\u5B58\u5728
|
workflow.config.invalid=工作流配置无效
|
||||||
node.instance.cannot.retry=\u8282\u70B9\u5B9E\u4F8B\u65E0\u6CD5\u91CD\u8BD5
|
workflow.config.error=工作流配置错误: {0}
|
||||||
node.instance.cannot.skip=\u8282\u70B9\u5B9E\u4F8B\u65E0\u6CD5\u8DF3\u8FC7
|
workflow.transition.invalid=工作流流转配置无效
|
||||||
node.executor.not.found=\u8282\u70B9\u6267\u884C\u5668\u4E0D\u5B58\u5728
|
workflow.transition.config.empty=流转配置不能为空
|
||||||
|
workflow.condition.invalid=工作流条件配置无效
|
||||||
|
workflow.form.config.empty=表单配置不能为空
|
||||||
|
workflow.graph.config.empty=图形配置不能为空
|
||||||
|
workflow.variable.not.found=工作流变量不存在
|
||||||
|
workflow.variable.type.invalid=工作流变量类型无效
|
||||||
|
workflow.variable.serialize.error=工作流变量序列化失败: {0}
|
||||||
|
workflow.variable.deserialize.error=工作流变量反序列化失败: {0}
|
||||||
|
workflow.permission.denied=无权限操作工作流
|
||||||
|
workflow.approval.required=需要审批
|
||||||
|
workflow.approval.rejected=审批被拒绝
|
||||||
|
workflow.dependency.not.satisfied=工作流依赖条件未满足
|
||||||
|
workflow.circular.dependency=工作流存在循环依赖
|
||||||
|
workflow.schedule.invalid=工作流调度配置无效
|
||||||
|
workflow.concurrent.limit.exceeded=工作流并发限制超出
|
||||||
|
workflow.execution.error=工作流执行错误
|
||||||
|
|
||||||
# \u5DE5\u4F5C\u6D41\u76F8\u5173\u6D88\u606F
|
# 表单管理相关 (2800-2899)
|
||||||
workflow.not.found=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u4E0D\u5B58\u5728
|
form.definition.not.found=表单定义不存在或已删除
|
||||||
workflow.code.exists=\u5DE5\u4F5C\u6D41\u7F16\u7801\u5DF2\u5B58\u5728
|
form.data.not.found=表单数据不存在或已删除
|
||||||
workflow.name.exists=\u5DE5\u4F5C\u6D41\u540D\u79F0\u5DF2\u5B58\u5728
|
form.definition.key.exists=表单标识{0}已存在,请使用不同的标识
|
||||||
workflow.disabled=\u5DE5\u4F5C\u6D41\u5DF2\u7981\u7528
|
form.definition.key.version.exists=表单标识{0}的版本{1}已存在
|
||||||
workflow.not.published=\u5DE5\u4F5C\u6D41\u672A\u53D1\u5E03
|
|
||||||
workflow.already.published=\u5DE5\u4F5C\u6D41\u5DF2\u53D1\u5E03
|
|
||||||
workflow.already.disabled=\u5DE5\u4F5C\u6D41\u5DF2\u7981\u7528
|
|
||||||
workflow.instance.not.found=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u4E0D\u5B58\u5728
|
|
||||||
workflow.instance.already.completed=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u5DF2\u5B8C\u6210
|
|
||||||
workflow.instance.already.canceled=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u5DF2\u53D6\u6D88
|
|
||||||
workflow.instance.not.running=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u672A\u8FD0\u884C
|
|
||||||
workflow.node.not.found=\u5DE5\u4F5C\u6D41\u8282\u70B9\u4E0D\u5B58\u5728
|
|
||||||
workflow.node.type.not.supported=\u4E0D\u652F\u6301\u7684\u8282\u70B9\u7C7B\u578B
|
|
||||||
workflow.node.config.invalid=\u8282\u70B9\u914D\u7F6E\u65E0\u6548
|
|
||||||
workflow.node.execution.failed=\u8282\u70B9\u6267\u884C\u5931\u8D25
|
|
||||||
workflow.variable.not.found=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u4E0D\u5B58\u5728
|
|
||||||
workflow.variable.type.invalid=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u7C7B\u578B\u65E0\u6548
|
|
||||||
workflow.permission.denied=\u5DE5\u4F5C\u6D41\u6743\u9650\u4E0D\u8DB3
|
|
||||||
workflow.approval.required=\u9700\u8981\u5BA1\u6279
|
|
||||||
workflow.approval.rejected=\u5BA1\u6279\u88AB\u62D2\u7EDD
|
|
||||||
workflow.dependency.not.satisfied=\u4F9D\u8D56\u6761\u4EF6\u4E0D\u6EE1\u8DB3
|
|
||||||
workflow.circular.dependency=\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56
|
|
||||||
workflow.schedule.invalid=\u8C03\u5EA6\u914D\u7F6E\u65E0\u6548
|
|
||||||
workflow.concurrent.limit.exceeded=\u8FC7\u51FA\u5E76\u53D1\u9650\u5236
|
|
||||||
|
|
||||||
# Workflow error messages
|
|
||||||
workflow.not.found=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u4E0D\u5B58\u5728
|
|
||||||
workflow.code.exists=\u5DE5\u4F5C\u6D41\u7F16\u7801\u5DF2\u5B58\u5728
|
|
||||||
workflow.name.exists=\u5DE5\u4F5C\u6D41\u540D\u79F0\u5DF2\u5B58\u5728
|
|
||||||
workflow.invalid.status=\u5DE5\u4F5C\u6D41\u72B6\u6001\u65E0\u6548
|
|
||||||
workflow.node.not.found=\u5DE5\u4F5C\u6D41\u8282\u70B9\u4E0D\u5B58\u5728
|
|
||||||
workflow.node.config.error=\u5DE5\u4F5C\u6D41\u8282\u70B9\u914D\u7F6E\u9519\u8BEF
|
|
||||||
workflow.execution.error=\u5DE5\u4F5C\u6D41\u6267\u884C\u9519\u8BEF
|
|
||||||
workflow.not.draft=\u53EA\u6709\u8349\u7A3F\u72B6\u6001\u7684\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u53EF\u4EE5\u53D1\u5E03
|
|
||||||
workflow.not.published=\u53EA\u6709\u5DF2\u53D1\u5E03\u72B6\u6001\u7684\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u53EF\u4EE5\u7981\u7528
|
|
||||||
workflow.not.disabled=\u53EA\u6709\u5DF2\u7981\u7528\u72B6\u6001\u7684\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u53EF\u4EE5\u542F\u7528
|
|
||||||
|
|
||||||
# System level messages (1xxx)
|
|
||||||
success=\u64CD\u4F5C\u6210\u529F
|
|
||||||
system.error=\u7CFB\u7EDF\u9519\u8BEF
|
|
||||||
param.error=\u53C2\u6570\u9519\u8BEF
|
|
||||||
unauthorized=\u672A\u6388\u6743
|
|
||||||
forbidden=\u7981\u6B62\u8BBF\u95EE
|
|
||||||
not.found=\u8D44\u6E90\u4E0D\u5B58\u5728
|
|
||||||
method.not.allowed=\u65B9\u6CD5\u4E0D\u5141\u8BB8
|
|
||||||
conflict=\u8D44\u6E90\u51B2\u7A81
|
|
||||||
too.many.requests=\u8BF7\u6C42\u8FC7\u4E8E\u9891\u7E41
|
|
||||||
internal.server.error=\u5185\u90E8\u670D\u52A1\u5668\u9519\u8BEF
|
|
||||||
|
|
||||||
# Business level messages (2xxx)
|
|
||||||
# Common business messages (2000-2099)
|
|
||||||
business.error=\u4E1A\u52A1\u9519\u8BEF
|
|
||||||
data.not.found=\u6570\u636E\u4E0D\u5B58\u5728
|
|
||||||
data.already.exists=\u6570\u636E\u5DF2\u5B58\u5728
|
|
||||||
data.validation.failed=\u6570\u636E\u9A8C\u8BC1\u5931\u8D25
|
|
||||||
operation.not.allowed=\u64CD\u4F5C\u4E0D\u5141\u8BB8
|
|
||||||
|
|
||||||
# Workflow related messages (2100-2199)
|
|
||||||
workflow.not.found=\u5DE5\u4F5C\u6D41\u4E0D\u5B58\u5728
|
|
||||||
workflow.already.exists=\u5DE5\u4F5C\u6D41\u5DF2\u5B58\u5728
|
|
||||||
workflow.not.published=\u5DE5\u4F5C\u6D41\u672A\u53D1\u5E03
|
|
||||||
workflow.config.invalid=\u5DE5\u4F5C\u6D41\u914D\u7F6E\u65E0\u6548
|
|
||||||
workflow.node.not.found=\u5DE5\u4F5C\u6D41\u8282\u70B9\u4E0D\u5B58\u5728
|
|
||||||
workflow.node.execution.failed=\u5DE5\u4F5C\u6D41\u8282\u70B9\u6267\u884C\u5931\u8D25
|
|
||||||
workflow.instance.not.found=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u4E0D\u5B58\u5728
|
|
||||||
workflow.instance.not.running=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u672A\u8FD0\u884C
|
|
||||||
workflow.variable.not.found=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u4E0D\u5B58\u5728
|
|
||||||
workflow.log.not.found=\u5DE5\u4F5C\u6D41\u65E5\u5FD7\u4E0D\u5B58\u5728
|
|
||||||
workflow.transition.invalid=\u5DE5\u4F5C\u6D41\u6D41\u8F6C\u914D\u7F6E\u65E0\u6548
|
|
||||||
workflow.node.type.not.supported=\u4E0D\u652F\u6301\u7684\u8282\u70B9\u7C7B\u578B
|
|
||||||
workflow.condition.invalid=\u5DE5\u4F5C\u6D41\u6761\u4EF6\u914D\u7F6E\u65E0\u6548
|
|
||||||
|
|
||||||
# \u5DE5\u4F5C\u6D41\u76F8\u5173\u9519\u8BEF\u6D88\u606F
|
|
||||||
workflow.not.found=\u5DE5\u4F5C\u6D41\u5B9A\u4E49\u4E0D\u5B58\u5728
|
|
||||||
workflow.code.exists=\u5DE5\u4F5C\u6D41\u7F16\u7801\u5DF2\u5B58\u5728
|
|
||||||
workflow.name.exists=\u5DE5\u4F5C\u6D41\u540D\u79F0\u5DF2\u5B58\u5728
|
|
||||||
workflow.disabled=\u5DE5\u4F5C\u6D41\u5DF2\u7981\u7528
|
|
||||||
workflow.not.published=\u5DE5\u4F5C\u6D41\u672A\u53D1\u5E03
|
|
||||||
workflow.already.published=\u5DE5\u4F5C\u6D41\u5DF2\u53D1\u5E03
|
|
||||||
workflow.already.disabled=\u5DE5\u4F5C\u6D41\u5DF2\u7981\u7528
|
|
||||||
workflow.not.draft=\u5DE5\u4F5C\u6D41\u4E0D\u662F\u8349\u7A3F\u72B6\u6001
|
|
||||||
workflow.not.disabled=\u5DE5\u4F5C\u6D41\u4E0D\u662F\u7981\u7528\u72B6\u6001
|
|
||||||
workflow.invalid.status=\u5DE5\u4F5C\u6D41\u72B6\u6001\u65E0\u6548
|
|
||||||
workflow.config.invalid=\u5DE5\u4F5C\u6D41\u914D\u7F6E\u65E0\u6548
|
|
||||||
workflow.transition.invalid=\u5DE5\u4F5C\u6D41\u6D41\u8F6C\u89C4\u5219\u65E0\u6548
|
|
||||||
workflow.condition.invalid=\u5DE5\u4F5C\u6D41\u6761\u4EF6\u914D\u7F6E\u65E0\u6548
|
|
||||||
|
|
||||||
workflow.instance.not.found=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u4E0D\u5B58\u5728
|
|
||||||
workflow.instance.already.completed=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u5DF2\u5B8C\u6210
|
|
||||||
workflow.instance.already.canceled=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u5DF2\u53D6\u6D88
|
|
||||||
workflow.instance.not.running=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u672A\u8FD0\u884C
|
|
||||||
workflow.instance.not.paused=\u5DE5\u4F5C\u6D41\u5B9E\u4F8B\u4E0D\u662F\u6682\u505C\u72B6\u6001
|
|
||||||
|
|
||||||
workflow.node.not.found=\u5DE5\u4F5C\u6D41\u8282\u70B9\u4E0D\u5B58\u5728
|
|
||||||
workflow.node.type.not.supported=\u4E0D\u652F\u6301\u7684\u8282\u70B9\u7C7B\u578B
|
|
||||||
workflow.node.config.invalid=\u8282\u70B9\u914D\u7F6E\u65E0\u6548
|
|
||||||
workflow.node.execution.failed=\u8282\u70B9\u6267\u884C\u5931\u8D25
|
|
||||||
workflow.node.timeout=\u8282\u70B9\u6267\u884C\u8D85\u65F6
|
|
||||||
workflow.node.config.error=\u8282\u70B9\u914D\u7F6E\u9519\u8BEF
|
|
||||||
|
|
||||||
workflow.execution.error=\u5DE5\u4F5C\u6D41\u6267\u884C\u9519\u8BEF
|
|
||||||
workflow.variable.not.found=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u4E0D\u5B58\u5728
|
|
||||||
workflow.variable.type.invalid=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u7C7B\u578B\u65E0\u6548
|
|
||||||
workflow.permission.denied=\u65E0\u6743\u9650\u64CD\u4F5C\u5DE5\u4F5C\u6D41
|
|
||||||
workflow.approval.required=\u9700\u8981\u5BA1\u6279
|
|
||||||
workflow.approval.rejected=\u5BA1\u6279\u88AB\u62D2\u7EDD
|
|
||||||
workflow.dependency.not.satisfied=\u5DE5\u4F5C\u6D41\u4F9D\u8D56\u6761\u4EF6\u672A\u6EE1\u8DB3
|
|
||||||
workflow.circular.dependency=\u5DE5\u4F5C\u6D41\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56
|
|
||||||
workflow.schedule.invalid=\u5DE5\u4F5C\u6D41\u8C03\u5EA6\u914D\u7F6E\u65E0\u6548
|
|
||||||
workflow.concurrent.limit.exceeded=\u5DE5\u4F5C\u6D41\u5E76\u53D1\u9650\u5236\u8D85\u51FA
|
|
||||||
|
|
||||||
# \u5DE5\u4F5C\u6D41\u914D\u7F6E\u76F8\u5173\u9519\u8BEF\u6D88\u606F
|
|
||||||
workflow.node.config.empty=\u8282\u70B9\u914D\u7F6E\u4E0D\u80FD\u4E3A\u7A7A
|
|
||||||
workflow.transition.config.empty=\u6D41\u8F6C\u914D\u7F6E\u4E0D\u80FD\u4E3A\u7A7A
|
|
||||||
workflow.form.config.empty=\u8868\u5355\u914D\u7F6E\u4E0D\u80FD\u4E3A\u7A7A
|
|
||||||
workflow.graph.config.empty=\u56FE\u5F62\u914D\u7F6E\u4E0D\u80FD\u4E3A\u7A7A
|
|
||||||
|
|
||||||
# \u5DE5\u4F5C\u6D41\u8282\u70B9\u7C7B\u578B\u9519\u8BEF (2200-2299)
|
|
||||||
workflow.node.type.not.found=\u8282\u70B9\u7C7B\u578B\u4E0D\u5B58\u5728\u6216\u5DF2\u5220\u9664
|
|
||||||
workflow.node.type.disabled=\u8282\u70B9\u7C7B\u578B\u5DF2\u7981\u7528\uFF0C\u65E0\u6CD5\u4F7F\u7528
|
|
||||||
workflow.node.type.code.exists=\u8282\u70B9\u7C7B\u578B\u7F16\u7801\u5DF2\u5B58\u5728
|
|
||||||
workflow.node.type.invalid.category=\u65E0\u6548\u7684\u8282\u70B9\u7C7B\u578B\u5206\u7C7B
|
|
||||||
workflow.node.type.invalid.executor=\u65E0\u6548\u7684\u6267\u884C\u5668\u914D\u7F6E
|
|
||||||
workflow.node.executor.not.found=\u672A\u627E\u5230\u5DE5\u4F5C\u6D41\u8282\u70B9\u6267\u884C\u5668: {0}
|
|
||||||
|
|
||||||
workflow.variable.serialize.error=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u5E8F\u5217\u5316\u5931\u8D25: {0}
|
|
||||||
workflow.variable.deserialize.error=\u5DE5\u4F5C\u6D41\u53D8\u91CF\u53CD\u5E8F\u5217\u5316\u5931\u8D25: {0}
|
|
||||||
|
|
||||||
workflow.config.error=\u5DE5\u4F5C\u6D41\u914D\u7F6E\u9519\u8BEF: {0}
|
|
||||||
|
|
||||||
# \u8868\u5355\u7BA1\u7406\u76F8\u5173\u9519\u8BEF\u7801 (2800-2899)
|
|
||||||
form.definition.not.found=\u8868\u5355\u5B9A\u4E49\u4E0D\u5B58\u5728\u6216\u5DF2\u5220\u9664
|
|
||||||
form.data.not.found=\u8868\u5355\u6570\u636E\u4E0D\u5B58\u5728\u6216\u5DF2\u5220\u9664
|
|
||||||
|
|||||||
@ -1,41 +1,161 @@
|
|||||||
# Department
|
# ====================================================================
|
||||||
|
# Internationalization Resource File - English (UTF-8)
|
||||||
|
# ====================================================================
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
# Common Response
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
response.success=Operation successful
|
||||||
|
response.error=System error
|
||||||
|
response.invalid.param=Invalid parameter
|
||||||
|
response.unauthorized=Unauthorized
|
||||||
|
response.unauthorized.full=Full authentication is required to access this resource
|
||||||
|
response.forbidden=Access forbidden
|
||||||
|
response.not.found=Resource not found
|
||||||
|
response.conflict=Resource conflict
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
# System Exceptions - 1xxx
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
system.optimistic.lock.error=Data has been modified by another user, please refresh and try again
|
||||||
|
system.pessimistic.lock.error=Data is being operated by another user, please try again later
|
||||||
|
system.concurrent.update.error=Concurrent update conflict, please try again
|
||||||
|
system.retry.exceeded.error=Operation retry limit exceeded, please try again later
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
# Dependency Injection - 1100-1199
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
dependency.injection.service.not.found=Cannot find service for entity {0} (tried bean names: {1})
|
||||||
|
dependency.injection.repository.not.found=Cannot find repository for entity {0}: {1}
|
||||||
|
dependency.injection.converter.not.found=Cannot find converter for entity {0}: {1}
|
||||||
|
dependency.injection.entitypath.failed=Failed to initialize EntityPath for entity {0}: {1}
|
||||||
|
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
# Business Exceptions - 2xxx
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Common Business Errors (2000-2099)
|
||||||
|
tenant.not.found=Tenant not found
|
||||||
|
data.not.found=Cannot find {1} with ID {0}
|
||||||
|
entity.not.found.id=Cannot find entity with ID {0}
|
||||||
|
entity.not.found.message={0}
|
||||||
|
entity.not.found.name.id=Cannot find {0} with ID {1}
|
||||||
|
|
||||||
|
# User Related (2000-2099)
|
||||||
|
user.not.found=User not found
|
||||||
|
user.username.exists=Username {0} already exists
|
||||||
|
user.email.exists=Email {0} already exists
|
||||||
|
user.login.error=Invalid username or password
|
||||||
|
|
||||||
|
# Role Related (2100-2199)
|
||||||
|
role.not.found=Role not found
|
||||||
|
role.code.exists=Role code {0} already exists
|
||||||
|
role.name.exists=Role name {0} already exists
|
||||||
|
role.in.use=Role is in use and cannot be deleted
|
||||||
|
role.admin.cannot.delete=Cannot delete super admin role
|
||||||
|
role.admin.cannot.update=Cannot update super admin role
|
||||||
|
role.tag.name.exists=Tag name already exists
|
||||||
|
role.tag.not.found=Tag not found
|
||||||
|
role.tag.in.use=Tag is in use and cannot be deleted
|
||||||
|
|
||||||
|
# JWT Related (2200-2299)
|
||||||
|
jwt.token.expired=Login expired, please login again
|
||||||
|
jwt.token.invalid=Invalid login credentials
|
||||||
|
jwt.token.missing=Login credentials not provided
|
||||||
|
|
||||||
|
# Department Related (2300-2399)
|
||||||
department.not.found=Department not found
|
department.not.found=Department not found
|
||||||
department.code.exists=Department code already exists
|
department.code.exists=Department code already exists
|
||||||
department.name.exists=Department name already exists
|
department.name.exists=Department name already exists
|
||||||
department.parent.not.found=Parent department not found
|
department.parent.not.found=Parent department not found
|
||||||
department.has.children=Cannot delete department with children
|
department.has.children=Cannot delete department with children
|
||||||
|
|
||||||
# Workflow related error messages
|
# Permission Related (2400-2499)
|
||||||
workflow.not.found=Workflow definition not found
|
permission.not.found=Permission not found
|
||||||
workflow.code.exists=Workflow code already exists
|
permission.code.exists=Permission code {0} already exists
|
||||||
workflow.name.exists=Workflow name already exists
|
permission.name.exists=Permission name {0} already exists
|
||||||
|
permission.already.assigned=Permission already assigned to role
|
||||||
|
permission.assign.failed=Permission assignment failed
|
||||||
|
|
||||||
|
# External System Related (2500-2599)
|
||||||
|
external.system.name.exists=System name {0} already exists
|
||||||
|
external.system.type.url.exists=System type and URL combination {0} already exists
|
||||||
|
external.system.disabled=System is disabled
|
||||||
|
external.system.sync.failed=System data synchronization failed
|
||||||
|
external.system.type.not.supported=Unsupported system type
|
||||||
|
external.system.git.auth.type.error=Git system only supports Token authentication
|
||||||
|
external.system.git.token.required=Git system requires Token
|
||||||
|
|
||||||
|
# Repository Related (2600-2699)
|
||||||
|
repository.group.not.found=Repository group not found
|
||||||
|
repository.group.name.exists=Repository group name {0} already exists
|
||||||
|
repository.group.path.exists=Repository group path {0} already exists
|
||||||
|
repository.projectGroup.not.found=Repository project not found
|
||||||
|
repository.projectGroup.name.exists=Repository project name {0} already exists
|
||||||
|
repository.projectGroup.path.exists=Repository project path {0} already exists
|
||||||
|
repository.branch.not.found=Branch not found
|
||||||
|
repository.branch.name.exists=Branch name {0} already exists
|
||||||
|
repository.sync.in.progress=Repository synchronization in progress
|
||||||
|
repository.sync.failed=Repository synchronization failed: {0}
|
||||||
|
repository.sync.history.not.found=Synchronization history not found
|
||||||
|
|
||||||
|
# Workflow Definition Related (2700-2749)
|
||||||
|
workflow.definition.not.found=Workflow definition not found
|
||||||
|
workflow.definition.code.exists=Workflow definition code {0} already exists
|
||||||
|
workflow.definition.name.exists=Workflow definition name {0} already exists
|
||||||
|
workflow.definition.invalid.content=Invalid workflow definition content: {0}
|
||||||
|
workflow.definition.not.published=Workflow definition not published
|
||||||
|
workflow.definition.already.published=Workflow definition already published
|
||||||
|
workflow.definition.cannot.delete=Workflow definition is in use and cannot be deleted
|
||||||
|
workflow.not.draft=Only draft workflow definitions can be published
|
||||||
|
workflow.not.published=Only published workflow definitions can be disabled
|
||||||
|
workflow.not.disabled=Only disabled workflow definitions can be enabled
|
||||||
workflow.disabled=Workflow is disabled
|
workflow.disabled=Workflow is disabled
|
||||||
workflow.not.published=Workflow is not published
|
|
||||||
workflow.already.published=Workflow is already published
|
|
||||||
workflow.already.disabled=Workflow is already disabled
|
|
||||||
workflow.not.draft=Workflow is not in draft status
|
|
||||||
workflow.not.disabled=Workflow is not in disabled status
|
|
||||||
workflow.invalid.status=Invalid workflow status
|
workflow.invalid.status=Invalid workflow status
|
||||||
workflow.config.invalid=Invalid workflow configuration
|
|
||||||
workflow.transition.invalid=Invalid workflow transition rules
|
|
||||||
workflow.condition.invalid=Invalid workflow condition configuration
|
|
||||||
|
|
||||||
|
# Workflow Instance Related (2750-2769)
|
||||||
workflow.instance.not.found=Workflow instance not found
|
workflow.instance.not.found=Workflow instance not found
|
||||||
|
workflow.instance.cannot.start=Cannot start workflow instance
|
||||||
|
workflow.instance.cannot.cancel=Cannot cancel workflow instance
|
||||||
|
workflow.instance.cannot.pause=Cannot pause workflow instance
|
||||||
|
workflow.instance.cannot.resume=Cannot resume workflow instance
|
||||||
|
workflow.instance.cannot.retry=Cannot retry workflow instance
|
||||||
workflow.instance.already.completed=Workflow instance already completed
|
workflow.instance.already.completed=Workflow instance already completed
|
||||||
workflow.instance.already.canceled=Workflow instance already canceled
|
workflow.instance.already.canceled=Workflow instance already canceled
|
||||||
workflow.instance.not.running=Workflow instance is not running
|
workflow.instance.not.running=Workflow instance is not running
|
||||||
workflow.instance.not.paused=Workflow instance is not paused
|
workflow.instance.not.paused=Workflow instance is not paused
|
||||||
|
|
||||||
|
# Workflow Node Related (2770-2789)
|
||||||
workflow.node.not.found=Workflow node not found
|
workflow.node.not.found=Workflow node not found
|
||||||
workflow.node.type.not.supported=Unsupported node type
|
workflow.node.type.not.supported=Unsupported node type
|
||||||
|
workflow.node.type.not.found=Node type not found or has been deleted
|
||||||
|
workflow.node.type.disabled=Node type is disabled and cannot be used
|
||||||
|
workflow.node.type.code.exists=Node type code already exists
|
||||||
|
workflow.node.type.invalid.category=Invalid node type category
|
||||||
|
workflow.node.type.invalid.executor=Invalid executor configuration
|
||||||
workflow.node.config.invalid=Invalid node configuration
|
workflow.node.config.invalid=Invalid node configuration
|
||||||
workflow.node.execution.failed=Node execution failed
|
workflow.node.config.empty=Node configuration cannot be empty
|
||||||
workflow.node.timeout=Node execution timeout
|
|
||||||
workflow.node.config.error=Node configuration error
|
workflow.node.config.error=Node configuration error
|
||||||
|
workflow.node.execution.failed=Node execution failed
|
||||||
|
workflow.node.executor.not.found=Workflow node executor not found: {0}
|
||||||
|
workflow.node.timeout=Node execution timeout
|
||||||
|
node.instance.not.found=Node instance not found
|
||||||
|
node.instance.cannot.retry=Cannot retry node instance
|
||||||
|
node.instance.cannot.skip=Cannot skip node instance
|
||||||
|
node.executor.not.found=Node executor not found
|
||||||
|
|
||||||
workflow.execution.error=Workflow execution error
|
# Workflow Configuration Related (2790-2799)
|
||||||
|
workflow.config.invalid=Invalid workflow configuration
|
||||||
|
workflow.config.error=Workflow configuration error: {0}
|
||||||
|
workflow.transition.invalid=Invalid workflow transition configuration
|
||||||
|
workflow.transition.config.empty=Transition configuration cannot be empty
|
||||||
|
workflow.condition.invalid=Invalid workflow condition configuration
|
||||||
|
workflow.form.config.empty=Form configuration cannot be empty
|
||||||
|
workflow.graph.config.empty=Graph configuration cannot be empty
|
||||||
workflow.variable.not.found=Workflow variable not found
|
workflow.variable.not.found=Workflow variable not found
|
||||||
workflow.variable.type.invalid=Invalid workflow variable type
|
workflow.variable.type.invalid=Invalid workflow variable type
|
||||||
|
workflow.variable.serialize.error=Workflow variable serialization failed: {0}
|
||||||
|
workflow.variable.deserialize.error=Workflow variable deserialization failed: {0}
|
||||||
workflow.permission.denied=Permission denied to operate workflow
|
workflow.permission.denied=Permission denied to operate workflow
|
||||||
workflow.approval.required=Approval required
|
workflow.approval.required=Approval required
|
||||||
workflow.approval.rejected=Approval rejected
|
workflow.approval.rejected=Approval rejected
|
||||||
@ -43,12 +163,10 @@ workflow.dependency.not.satisfied=Workflow dependency not satisfied
|
|||||||
workflow.circular.dependency=Circular dependency detected in workflow
|
workflow.circular.dependency=Circular dependency detected in workflow
|
||||||
workflow.schedule.invalid=Invalid workflow schedule configuration
|
workflow.schedule.invalid=Invalid workflow schedule configuration
|
||||||
workflow.concurrent.limit.exceeded=Workflow concurrent limit exceeded
|
workflow.concurrent.limit.exceeded=Workflow concurrent limit exceeded
|
||||||
|
workflow.execution.error=Workflow execution error
|
||||||
|
|
||||||
workflow.config.error=Workflow configuration error: {0}
|
# Form Management Related (2800-2899)
|
||||||
|
form.definition.not.found=Form definition not found or has been deleted
|
||||||
# Workflow Node Type Errors (2200-2299)
|
form.data.not.found=Form data not found or has been deleted
|
||||||
workflow.node.type.not.found=Node type does not exist or has been deleted
|
form.definition.key.exists=Form key {0} already exists, please use a different key
|
||||||
workflow.node.type.disabled=Node type is disabled and cannot be used
|
form.definition.key.version.exists=Form key {0} version {1} already exists
|
||||||
workflow.node.type.code.exists=Node type code already exists
|
|
||||||
workflow.node.type.invalid.category=Invalid node type category
|
|
||||||
workflow.node.type.invalid.executor=Invalid executor configuration
|
|
||||||
|
|||||||
@ -1,130 +1,161 @@
|
|||||||
# \u901A\u7528\u54CD\u5E94
|
# ====================================================================
|
||||||
response.success=\u64CD\u4F5C\u6210\u529F
|
# 国际化资源文件 - 简体中文 (UTF-8)
|
||||||
response.error=\u7CFB\u7EDF\u9519\u8BEF
|
# ====================================================================
|
||||||
response.invalid.param=\u65E0\u6548\u7684\u53C2\u6570
|
|
||||||
response.unauthorized=\u672A\u6388\u6743
|
|
||||||
response.forbidden=\u7981\u6B62\u8BBF\u95EE
|
|
||||||
response.not.found=\u8D44\u6E90\u672A\u627E\u5230
|
|
||||||
response.conflict=\u8D44\u6E90\u51B2\u7A81
|
|
||||||
response.unauthorized.full=\u8BBF\u95EE\u6B64\u8D44\u6E90\u9700\u8981\u5B8C\u5168\u8EAB\u4EFD\u9A8C\u8BC1
|
|
||||||
|
|
||||||
# \u4E1A\u52A1\u9519\u8BEF
|
# --------------------------------------------------------------------------------------
|
||||||
tenant.not.found=\u79DF\u6237\u4E0D\u5B58\u5728
|
# 通用响应 (Common Response)
|
||||||
data.not.found=\u6570\u636E\u4E0D\u5B58\u5728
|
# --------------------------------------------------------------------------------------
|
||||||
|
response.success=操作成功
|
||||||
|
response.error=系统错误
|
||||||
|
response.invalid.param=无效的参数
|
||||||
|
response.unauthorized=未授权
|
||||||
|
response.unauthorized.full=访问此资源需要完全身份验证
|
||||||
|
response.forbidden=禁止访问
|
||||||
|
response.not.found=资源未找到
|
||||||
|
response.conflict=资源冲突
|
||||||
|
|
||||||
# \u7528\u6237\u76F8\u5173
|
# --------------------------------------------------------------------------------------
|
||||||
user.not.found=\u7528\u6237\u4E0D\u5B58\u5728
|
# 系统异常 (System Exceptions) - 1xxx
|
||||||
user.username.exists=\u7528\u6237\u540D\u5DF2\u5B58\u5728
|
# --------------------------------------------------------------------------------------
|
||||||
user.email.exists=\u90AE\u7BB1\u5DF2\u5B58\u5728
|
system.optimistic.lock.error=数据已被其他用户修改,请刷新后重试
|
||||||
user.login.error=\u7528\u6237\u540D\u6216\u5BC6\u7801\u9519\u8BEF
|
system.pessimistic.lock.error=数据正被其他用户操作,请稍后重试
|
||||||
|
system.concurrent.update.error=并发更新冲突,请重试
|
||||||
|
system.retry.exceeded.error=操作重试次数超限,请稍后再试
|
||||||
|
|
||||||
# \u7CFB\u7EDF\u5F02\u5E38\u6D88\u606F
|
# --------------------------------------------------------------------------------------
|
||||||
system.optimistic.lock.error=\u6570\u636E\u5DF2\u88AB\u5176\u4ED6\u7528\u6237\u4FEE\u6539\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5
|
# 依赖注入相关 (Dependency Injection) - 1100-1199
|
||||||
system.pessimistic.lock.error=\u6570\u636E\u6B63\u88AB\u5176\u4ED6\u7528\u6237\u64CD\u4F5C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5
|
# --------------------------------------------------------------------------------------
|
||||||
system.concurrent.update.error=\u5E76\u53D1\u66F4\u65B0\u51B2\u7A81\uFF0C\u8BF7\u91CD\u8BD5
|
dependency.injection.service.not.found=找不到实体 {0} 对应的服务 (尝试过的bean名称: {1})
|
||||||
system.retry.exceeded.error=\u64CD\u4F5C\u91CD\u8BD5\u6B21\u6570\u8D85\u9650\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5
|
dependency.injection.repository.not.found=找不到实体 {0} 对应的Repository: {1}
|
||||||
|
dependency.injection.converter.not.found=找不到实体 {0} 对应的Converter: {1}
|
||||||
|
dependency.injection.entitypath.failed=初始化实体 {0} 的EntityPath失败: {1}
|
||||||
|
|
||||||
# Entity Not Found Messages
|
# --------------------------------------------------------------------------------------
|
||||||
entity.not.found.id=\u627E\u4E0D\u5230ID\u4E3A{0}\u7684\u5B9E\u4F53
|
# 业务异常 (Business Exceptions) - 2xxx
|
||||||
|
# --------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# 通用业务错误 (2000-2099)
|
||||||
|
tenant.not.found=租户不存在
|
||||||
|
data.not.found=找不到ID为{0}的{1}
|
||||||
|
entity.not.found.id=找不到ID为{0}的实体
|
||||||
entity.not.found.message={0}
|
entity.not.found.message={0}
|
||||||
entity.not.found.name.id=\u627E\u4E0D\u5230ID\u4E3A{1}\u7684{0}
|
entity.not.found.name.id=找不到ID为{1}的{0}
|
||||||
|
|
||||||
# \u4F9D\u8D56\u6CE8\u5165\u76F8\u5173
|
# 用户相关 (2000-2099)
|
||||||
dependency.injection.service.not.found=\u627E\u4E0D\u5230\u5B9E\u4F53 {0} \u5BF9\u5E94\u7684\u670D\u52A1 (\u5C1D\u8BD5\u8FC7\u7684bean\u540D\u79F0: {1})
|
user.not.found=用户不存在
|
||||||
dependency.injection.repository.not.found=\u627E\u4E0D\u5230\u5B9E\u4F53 {0} \u5BF9\u5E94\u7684Repository: {1}
|
user.username.exists=用户名{0}已存在
|
||||||
dependency.injection.converter.not.found=\u627E\u4E0D\u5230\u5B9E\u4F53 {0} \u5BF9\u5E94\u7684Converter: {1}
|
user.email.exists=邮箱{0}已存在
|
||||||
dependency.injection.entitypath.failed=\u521D\u59CB\u5316\u5B9E\u4F53 {0} \u7684EntityPath\u5931\u8D25: {1}
|
user.login.error=用户名或密码错误
|
||||||
|
|
||||||
# \u89D2\u8272\u76F8\u5173\u9519\u8BEF\u6D88\u606F
|
# 角色相关 (2100-2199)
|
||||||
role.not.found=\u89D2\u8272\u4E0D\u5B58\u5728
|
role.not.found=角色不存在
|
||||||
role.code.exists=\u89D2\u8272\u7F16\u7801\u5DF2\u5B58\u5728
|
role.code.exists=角色编码{0}已存在
|
||||||
role.name.exists=\u89D2\u8272\u540D\u79F0\u5DF2\u5B58\u5728
|
role.name.exists=角色名称{0}已存在
|
||||||
role.in.use=\u89D2\u8272\u6B63\u5728\u4F7F\u7528\u4E2D\uFF0C\u65E0\u6CD5\u5220\u9664
|
role.in.use=角色正在使用中,无法删除
|
||||||
role.admin.cannot.delete=\u4E0D\u80FD\u5220\u9664\u8D85\u7EA7\u7BA1\u7406\u5458\u89D2\u8272
|
role.admin.cannot.delete=不能删除超级管理员角色
|
||||||
role.admin.cannot.update=\u4E0D\u80FD\u4FEE\u6539\u8D85\u7EA7\u7BA1\u7406\u5458\u89D2\u8272
|
role.admin.cannot.update=不能修改超级管理员角色
|
||||||
role.tag.name.exists=\u6807\u7B7E\u540D\u79F0\u5DF2\u5B58\u5728
|
role.tag.name.exists=标签名称已存在
|
||||||
role.tag.not.found=\u6807\u7B7E\u4E0D\u5B58\u5728
|
role.tag.not.found=标签不存在
|
||||||
role.tag.in.use=\u6807\u7B7E\u6B63\u5728\u4F7F\u7528\u4E2D\uFF0C\u65E0\u6CD5\u5220\u9664
|
role.tag.in.use=标签正在使用中,无法删除
|
||||||
|
|
||||||
# 部门相关
|
# JWT相关 (2200-2299)
|
||||||
|
jwt.token.expired=登录已过期,请重新登录
|
||||||
|
jwt.token.invalid=无效的登录凭证
|
||||||
|
jwt.token.missing=未提供登录凭证
|
||||||
|
|
||||||
|
# 部门相关 (2300-2399)
|
||||||
department.not.found=部门不存在
|
department.not.found=部门不存在
|
||||||
department.code.exists=部门编码已存在
|
department.code.exists=部门编码已存在
|
||||||
department.name.exists=部门名称已存在
|
department.name.exists=部门名称已存在
|
||||||
department.parent.not.found=上级部门不存在
|
department.parent.not.found=上级部门不存在
|
||||||
department.has.children=该部门下有子部门,无法删除
|
department.has.children=该部门下有子部门,无法删除
|
||||||
|
|
||||||
# Permission messages
|
# 权限相关 (2400-2499)
|
||||||
permission.not.found=权限不存在
|
permission.not.found=权限不存在
|
||||||
permission.code.exists=权限编码 {0} 已存在
|
permission.code.exists=权限编码{0}已存在
|
||||||
permission.name.exists=权限名称 {0} 已存在
|
permission.name.exists=权限名称{0}已存在
|
||||||
permission.already.assigned=该权限已分配给角色
|
permission.already.assigned=该权限已分配给角色
|
||||||
permission.assign.failed=权限分配失败
|
permission.assign.failed=权限分配失败
|
||||||
|
|
||||||
# 工作流相关错误消息
|
# 第三方系统相关 (2500-2599)
|
||||||
|
external.system.name.exists=系统名称{0}已存在
|
||||||
|
external.system.type.url.exists=系统类型和URL组合{0}已存在
|
||||||
|
external.system.disabled=系统已禁用
|
||||||
|
external.system.sync.failed=系统数据同步失败
|
||||||
|
external.system.type.not.supported=不支持的系统类型
|
||||||
|
external.system.git.auth.type.error=Git系统只支持Token认证
|
||||||
|
external.system.git.token.required=Git系统必须提供Token
|
||||||
|
|
||||||
|
# 仓库相关 (2600-2699)
|
||||||
|
repository.group.not.found=仓库组不存在
|
||||||
|
repository.group.name.exists=仓库组名称{0}已存在
|
||||||
|
repository.group.path.exists=仓库组路径{0}已存在
|
||||||
|
repository.projectGroup.not.found=仓库项目不存在
|
||||||
|
repository.projectGroup.name.exists=仓库项目名称{0}已存在
|
||||||
|
repository.projectGroup.path.exists=仓库项目路径{0}已存在
|
||||||
|
repository.branch.not.found=分支不存在
|
||||||
|
repository.branch.name.exists=分支名称{0}已存在
|
||||||
|
repository.sync.in.progress=仓库同步正在进行中
|
||||||
|
repository.sync.failed=仓库同步失败:{0}
|
||||||
|
repository.sync.history.not.found=同步历史记录不存在
|
||||||
|
|
||||||
|
# 工作流定义相关 (2700-2749)
|
||||||
workflow.definition.not.found=工作流定义不存在
|
workflow.definition.not.found=工作流定义不存在
|
||||||
workflow.definition.code.exists=工作流定义编码"{0}"已存在
|
workflow.definition.code.exists=工作流定义编码{0}已存在
|
||||||
workflow.definition.name.exists=工作流定义名称"{0}"已存
|
workflow.definition.name.exists=工作流定义名称{0}已存在
|
||||||
workflow.definition.invalid.content=工作流定义内容无效:{0}
|
workflow.definition.invalid.content=工作流定义内容无效:{0}
|
||||||
workflow.definition.not.published=工作流定义未发布
|
workflow.definition.not.published=工作流定义未发布
|
||||||
workflow.definition.already.published=工作流定义已发布
|
workflow.definition.already.published=工作流定义已发布
|
||||||
workflow.definition.cannot.delete=工作流定义已被使用,无法删除
|
workflow.definition.cannot.delete=工作流定义已被使用,无法删除
|
||||||
|
workflow.not.draft=只有草稿状态的工作流定义可以发布
|
||||||
workflow.instance.not.found=工作流实例不存在
|
workflow.not.published=只有已发布状态的工作流定义可以禁用
|
||||||
workflow.instance.already.started=工作流实例已启动
|
workflow.not.disabled=只有已禁用状态的工作流定义可以启用
|
||||||
workflow.instance.already.ended=工作流实例已结束
|
|
||||||
workflow.instance.already.suspended=工作流实例已挂起
|
|
||||||
workflow.instance.not.suspended=工作流实例未挂起
|
|
||||||
workflow.instance.cannot.cancel=工作流实例无法取消
|
|
||||||
workflow.instance.cannot.suspend=工作流实例无法挂起
|
|
||||||
workflow.instance.cannot.resume=工作流实例无法恢复
|
|
||||||
|
|
||||||
workflow.node.not.found=工作流节点不存在
|
|
||||||
workflow.node.type.not.supported=不支持的节点类型:{0}
|
|
||||||
workflow.node.config.invalid=节点配置无效:{0}
|
|
||||||
workflow.node.execution.failed=节点执行失败:{0}
|
|
||||||
workflow.node.timeout=节点执行超时
|
|
||||||
workflow.node.approval.rejected=节点审批被拒绝
|
|
||||||
workflow.node.approval.canceled=节点审批已取消
|
|
||||||
|
|
||||||
workflow.variable.not.found=工作流变量不存在
|
|
||||||
workflow.variable.required=工作流变量"{0}"为必填项
|
|
||||||
workflow.variable.invalid=工作流变量"{0}"的值无效
|
|
||||||
|
|
||||||
workflow.permission.denied=无权操作此工作流
|
|
||||||
workflow.operation.not.allowed=当前状态不允许此操作
|
|
||||||
workflow.concurrent.operation=工作流正在执行其他操作,请稍后重试
|
|
||||||
|
|
||||||
# 工作流相关错误消息
|
|
||||||
workflow.not.found=工作流定义不存在
|
|
||||||
workflow.code.exists=工作流编码已存在
|
|
||||||
workflow.name.exists=工作流名称已存在
|
|
||||||
workflow.disabled=工作流已禁用
|
workflow.disabled=工作流已禁用
|
||||||
workflow.not.published=工作流未发布
|
|
||||||
workflow.already.published=工作流已发布
|
|
||||||
workflow.already.disabled=工作流已禁用
|
|
||||||
workflow.not.draft=工作流不是草稿状态
|
|
||||||
workflow.not.disabled=工作流不是禁用状态
|
|
||||||
workflow.invalid.status=工作流状态无效
|
workflow.invalid.status=工作流状态无效
|
||||||
workflow.config.invalid=工作流配置无效
|
|
||||||
workflow.transition.invalid=工作流流转规则无效
|
|
||||||
workflow.condition.invalid=工作流条件配置无效
|
|
||||||
|
|
||||||
|
# 工作流实例相关 (2750-2769)
|
||||||
workflow.instance.not.found=工作流实例不存在
|
workflow.instance.not.found=工作流实例不存在
|
||||||
|
workflow.instance.cannot.start=工作流实例无法启动
|
||||||
|
workflow.instance.cannot.cancel=工作流实例无法取消
|
||||||
|
workflow.instance.cannot.pause=工作流实例无法暂停
|
||||||
|
workflow.instance.cannot.resume=工作流实例无法恢复
|
||||||
|
workflow.instance.cannot.retry=工作流实例无法重试
|
||||||
workflow.instance.already.completed=工作流实例已完成
|
workflow.instance.already.completed=工作流实例已完成
|
||||||
workflow.instance.already.canceled=工作流实例已取消
|
workflow.instance.already.canceled=工作流实例已取消
|
||||||
workflow.instance.not.running=工作流实例未运行
|
workflow.instance.not.running=工作流实例未运行
|
||||||
workflow.instance.not.paused=工作流实例未暂停
|
workflow.instance.not.paused=工作流实例不是暂停状态
|
||||||
|
|
||||||
|
# 工作流节点相关 (2770-2789)
|
||||||
workflow.node.not.found=工作流节点不存在
|
workflow.node.not.found=工作流节点不存在
|
||||||
workflow.node.type.not.supported=不支持的节点类型
|
workflow.node.type.not.supported=不支持的节点类型
|
||||||
|
workflow.node.type.not.found=节点类型不存在或已删除
|
||||||
|
workflow.node.type.disabled=节点类型已禁用,无法使用
|
||||||
|
workflow.node.type.code.exists=节点类型编码已存在
|
||||||
|
workflow.node.type.invalid.category=无效的节点类型分类
|
||||||
|
workflow.node.type.invalid.executor=无效的执行器配置
|
||||||
workflow.node.config.invalid=节点配置无效
|
workflow.node.config.invalid=节点配置无效
|
||||||
workflow.node.execution.failed=节点执行失败
|
workflow.node.config.empty=节点配置不能为空
|
||||||
workflow.node.timeout=节点执行超时
|
|
||||||
workflow.node.config.error=节点配置错误
|
workflow.node.config.error=节点配置错误
|
||||||
|
workflow.node.execution.failed=节点执行失败
|
||||||
|
workflow.node.executor.not.found=未找到工作流节点执行器: {0}
|
||||||
|
workflow.node.timeout=节点执行超时
|
||||||
|
node.instance.not.found=节点实例不存在
|
||||||
|
node.instance.cannot.retry=节点实例无法重试
|
||||||
|
node.instance.cannot.skip=节点实例无法跳过
|
||||||
|
node.executor.not.found=节点执行器不存在
|
||||||
|
|
||||||
workflow.execution.error=工作流执行错误
|
# 工作流配置相关 (2790-2799)
|
||||||
|
workflow.config.invalid=工作流配置无效
|
||||||
|
workflow.config.error=工作流配置错误: {0}
|
||||||
|
workflow.transition.invalid=工作流流转配置无效
|
||||||
|
workflow.transition.config.empty=流转配置不能为空
|
||||||
|
workflow.condition.invalid=工作流条件配置无效
|
||||||
|
workflow.form.config.empty=表单配置不能为空
|
||||||
|
workflow.graph.config.empty=图形配置不能为空
|
||||||
workflow.variable.not.found=工作流变量不存在
|
workflow.variable.not.found=工作流变量不存在
|
||||||
workflow.variable.type.invalid=工作流变量类型无效
|
workflow.variable.type.invalid=工作流变量类型无效
|
||||||
|
workflow.variable.serialize.error=工作流变量序列化失败: {0}
|
||||||
|
workflow.variable.deserialize.error=工作流变量反序列化失败: {0}
|
||||||
workflow.permission.denied=无权限操作工作流
|
workflow.permission.denied=无权限操作工作流
|
||||||
workflow.approval.required=需要审批
|
workflow.approval.required=需要审批
|
||||||
workflow.approval.rejected=审批被拒绝
|
workflow.approval.rejected=审批被拒绝
|
||||||
@ -132,11 +163,10 @@ workflow.dependency.not.satisfied=工作流依赖条件未满足
|
|||||||
workflow.circular.dependency=工作流存在循环依赖
|
workflow.circular.dependency=工作流存在循环依赖
|
||||||
workflow.schedule.invalid=工作流调度配置无效
|
workflow.schedule.invalid=工作流调度配置无效
|
||||||
workflow.concurrent.limit.exceeded=工作流并发限制超出
|
workflow.concurrent.limit.exceeded=工作流并发限制超出
|
||||||
workflow.config.error=工作流配置错误:{0}
|
workflow.execution.error=工作流执行错误
|
||||||
|
|
||||||
# 通知渠道相关错误码 (5000-5099)
|
# 表单管理相关 (2800-2899)
|
||||||
notification.channel.not.found=通知渠道不存在
|
form.definition.not.found=表单定义不存在或已删除
|
||||||
notification.channel.name.exists=通知渠道名称已存在
|
form.data.not.found=表单数据不存在或已删除
|
||||||
notification.channel.disabled=通知渠道已禁用
|
form.definition.key.exists=表单标识{0}已存在,请使用不同的标识
|
||||||
notification.channel.connection.failed=通知渠道连接测试失败
|
form.definition.key.version.exists=表单标识{0}的版本{1}已存在
|
||||||
notification.send.failed=消息发送失败:{0}
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user