新增系统管理员岗位
This commit is contained in:
@@ -27,7 +27,11 @@ mybatis-plus:
|
||||
map-underscore-to-camel-case: true
|
||||
|
||||
springdoc:
|
||||
api-docs:
|
||||
enabled: true
|
||||
path: /v3/api-docs
|
||||
swagger-ui:
|
||||
enabled: true
|
||||
path: /swagger-ui.html
|
||||
|
||||
labelsys:
|
||||
@@ -37,10 +41,10 @@ labelsys:
|
||||
annotation:
|
||||
auto-archive-timeout: PT2H
|
||||
object-storage:
|
||||
endpoint: ${OBJECT_STORAGE_ENDPOINT:http://127.0.0.1:9000}
|
||||
region: ${OBJECT_STORAGE_REGION:us-east-1}
|
||||
access-key: ${OBJECT_STORAGE_ACCESS_KEY:demo-access-key}
|
||||
secret-key: ${OBJECT_STORAGE_SECRET_KEY:demo-secret-key}
|
||||
endpoint: ${OBJECT_STORAGE_ENDPOINT:http://39.107.112.174:9000}
|
||||
region: ${OBJECT_STORAGE_REGION:cn-east-1}
|
||||
access-key: ${OBJECT_STORAGE_ACCESS_KEY:admin}
|
||||
secret-key: ${OBJECT_STORAGE_SECRET_KEY:your_strong_password}
|
||||
path-style-access: ${OBJECT_STORAGE_PATH_STYLE:true}
|
||||
source-bucket: ${OBJECT_STORAGE_SOURCE_BUCKET:source-data}
|
||||
artifact-bucket: ${OBJECT_STORAGE_ARTIFACT_BUCKET:annotation-artifacts}
|
||||
|
||||
@@ -47,4 +47,4 @@
|
||||
and company_id = #{companyId}
|
||||
and is_deleted = false
|
||||
</update>
|
||||
</mapper>
|
||||
</mapper>
|
||||
@@ -46,4 +46,4 @@
|
||||
and is_deleted = false
|
||||
limit 1
|
||||
</select>
|
||||
</mapper>
|
||||
</mapper>
|
||||
@@ -2,34 +2,29 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.labelsys.backend.mapper.SourceResourceMapper">
|
||||
<resultMap id="SourceResourceResultMap" type="com.labelsys.backend.entity.SourceResource">
|
||||
<id column="id" property="id"/>
|
||||
<result column="company_id" property="companyId"/>
|
||||
<result column="creator_id" property="creatorId"/>
|
||||
<result column="creator_role" property="creatorRole"/>
|
||||
<result column="resource_name" property="resourceName"/>
|
||||
<result column="resource_type" property="resourceType"/>
|
||||
<result column="bucket_name" property="bucketName"/>
|
||||
<result column="file_path" property="filePath"/>
|
||||
<result column="file_size" property="fileSize"/>
|
||||
<result column="source_status" property="sourceStatus"/>
|
||||
<result column="storage_provider" property="storageProvider"/>
|
||||
<result column="remark" property="remark"/>
|
||||
<result column="created_at" property="createdAt"/>
|
||||
<result column="updated_at" property="updatedAt"/>
|
||||
<id column="id" property="id" />
|
||||
<result column="company_id" property="companyId" />
|
||||
<result column="creator_id" property="creatorId" />
|
||||
<result column="creator_role" property="creatorRole" />
|
||||
<result column="resource_name" property="resourceName" />
|
||||
<result column="resource_type" property="resourceType" />
|
||||
<result column="bucket_name" property="bucketName" />
|
||||
<result column="file_path" property="filePath" />
|
||||
<result column="file_size" property="fileSize" />
|
||||
<result column="source_status" property="sourceStatus" />
|
||||
<result column="storage_provider" property="storageProvider" />
|
||||
<result column="remark" property="remark" />
|
||||
<result column="created_at" property="createdAt" />
|
||||
<result column="updated_at" property="updatedAt" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="SourceResourceColumns">
|
||||
id, company_id, creator_id, creator_role, resource_name, resource_type, bucket_name, file_path,
|
||||
file_size, source_status, storage_provider, remark, created_at, updated_at
|
||||
</sql>
|
||||
<sql id="SourceResourceColumns"> id, company_id, creator_id, creator_role, resource_name,
|
||||
resource_type, bucket_name, file_path, file_size, source_status, storage_provider, remark,
|
||||
created_at, updated_at </sql>
|
||||
|
||||
<select id="selectByCompanyIdAndIds" resultMap="SourceResourceResultMap">
|
||||
select <include refid="SourceResourceColumns"/>
|
||||
from source_resource
|
||||
where company_id = #{companyId}
|
||||
and id in
|
||||
<foreach collection="resourceIds" item="resourceId" open="(" separator="," close=")">
|
||||
#{resourceId}
|
||||
</foreach>
|
||||
<select id="selectByCompanyIdAndIds" resultMap="SourceResourceResultMap"> select <include
|
||||
refid="SourceResourceColumns" /> from source_resource where company_id = #{companyId}
|
||||
and id in <foreach collection="resourceIds" item="resourceId" open="(" separator=","
|
||||
close=")"> #{resourceId} </foreach>
|
||||
</select>
|
||||
</mapper>
|
||||
</mapper>
|
||||
@@ -1,37 +1,37 @@
|
||||
BEGIN;
|
||||
|
||||
INSERT INTO sys_company (id, company_code, company_name, status) VALUES
|
||||
(1, 'PLATFORM', '平台公司', 'ENABLED'),
|
||||
(2, 'ALPHA', '甲公司', 'ENABLED')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO sys_user (
|
||||
id, company_id, phone, username, role, position, real_name,
|
||||
password_hash, must_change_password, status, session_version
|
||||
) VALUES
|
||||
(1, 1, '13900000000', 'platform-admin', 'ENGINEER', 'ADMIN', '平台管理员',
|
||||
'$2a$10$TGPk5rNNhKNJQvTWImw5J.LVzw9HDFWR6hyNJCkLDcp0GU8/vp0aS', FALSE, 'ENABLED', 1),
|
||||
(2, 2, '13800138000', 'alpha-admin', 'ENGINEER', 'ADMIN', '甲公司管理员',
|
||||
'$2a$10$/hSD8ch7A9lFWi/DOb8yJOHdlrhV57p95CBv9Uv93Yky7t6c4Rs/S', TRUE, 'ENABLED', 1),
|
||||
(3, 2, '13700000000', 'alpha-annotator', 'EMPLOYEE', 'ANNOTATOR', '甲公司标注员',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1),
|
||||
(4, 2, '13600000000', 'alpha-trainer', 'EMPLOYEE', 'DATA_TRAINER', '甲公司数据训练师',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1),
|
||||
(5, 2, '13500000000', 'alpha-reviewer', 'MANAGER', 'REVIEWER', '甲公司审核员',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1),
|
||||
(6, 2, '13400000000', 'alpha-chief-engineer', 'ENGINEER', 'REVIEWER', '甲公司总工程师',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO sys_menu (id, company_id, menu_code, menu_name, path, visible_positions, sort_order) VALUES
|
||||
(201, 2, 'USER_MANAGE', '用户管理', '/users', 'ADMIN', 1),
|
||||
(202, 2, 'RESOURCE_MANAGE', '资源管理', '/resources', 'ANNOTATOR,DATA_TRAINER,REVIEWER,ADMIN', 2),
|
||||
(203, 2, 'TASK_MANAGE', '任务管理', '/tasks', 'ANNOTATOR,DATA_TRAINER,REVIEWER,ADMIN', 3),
|
||||
(204, 2, 'RESULT_REVIEW', '结果审核', '/results', 'REVIEWER,ADMIN', 4),
|
||||
(205, 2, 'DATASET_EXPORT', '训练集导出', '/datasets', 'DATA_TRAINER,ADMIN', 5),
|
||||
(206, 2, 'SYSTEM_CONFIG', '系统配置', '/configs', 'ADMIN', 6)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
BEGIN;
|
||||
|
||||
INSERT INTO sys_company (id, company_code, company_name, status) VALUES
|
||||
(1, 'PLATFORM', '平台公司', 'ENABLED'),
|
||||
(2, 'ALPHA', '甲公司', 'ENABLED')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO sys_user (
|
||||
id, company_id, phone, username, role, position, real_name,
|
||||
password_hash, must_change_password, status, session_version
|
||||
) VALUES
|
||||
(1, 1, '13900000000', 'platform-admin', 'ENGINEER', 'SUPER_ADMIN', '平台管理员',
|
||||
'$2a$10$TGPk5rNNhKNJQvTWImw5J.LVzw9HDFWR6hyNJCkLDcp0GU8/vp0aS', FALSE, 'ENABLED', 1),
|
||||
(2, 2, '13800138000', 'alpha-admin', 'ENGINEER', 'ADMIN', '甲公司管理员',
|
||||
'$2a$10$/hSD8ch7A9lFWi/DOb8yJOHdlrhV57p95CBv9Uv93Yky7t6c4Rs/S', TRUE, 'ENABLED', 1),
|
||||
(3, 2, '13700000000', 'alpha-annotator', 'EMPLOYEE', 'ANNOTATOR', '甲公司标注员',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1),
|
||||
(4, 2, '13600000000', 'alpha-trainer', 'EMPLOYEE', 'DATA_TRAINER', '甲公司数据训练师',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1),
|
||||
(5, 2, '13500000000', 'alpha-reviewer', 'MANAGER', 'REVIEWER', '甲公司审核员',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1),
|
||||
(6, 2, '13400000000', 'alpha-chief-engineer', 'ENGINEER', 'REVIEWER', '甲公司总工程师',
|
||||
'$2a$10$bRMZPcIaiB1BUx6HPw6FSODPSuph8kUi8/JZOM6lACwjjhkbBL5mq', TRUE, 'ENABLED', 1)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO sys_menu (id, company_id, menu_code, menu_name, path, visible_positions, sort_order) VALUES
|
||||
(201, 2, 'USER_MANAGE', '用户管理', '/users', 'ADMIN', 1),
|
||||
(202, 2, 'RESOURCE_MANAGE', '资源管理', '/resources', 'ANNOTATOR,DATA_TRAINER,REVIEWER,ADMIN', 2),
|
||||
(203, 2, 'TASK_MANAGE', '任务管理', '/tasks', 'ANNOTATOR,DATA_TRAINER,REVIEWER,ADMIN', 3),
|
||||
(204, 2, 'RESULT_REVIEW', '结果审核', '/results', 'REVIEWER,ADMIN', 4),
|
||||
(205, 2, 'DATASET_EXPORT', '训练集导出', '/datasets', 'DATA_TRAINER,ADMIN', 5),
|
||||
(206, 2, 'SYSTEM_CONFIG', '系统配置', '/configs', 'ADMIN', 6)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO sys_config (
|
||||
id, company_id, config_type, config_name, config_value, status, creator_id
|
||||
) VALUES
|
||||
@@ -54,7 +54,7 @@ INSERT INTO sys_config (
|
||||
(405, 2, 'SYSTEM', 'storageProvider',
|
||||
'{"provider":"rustfs","defaultBucket":"source-data"}', 'ENABLED', 2)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
|
||||
INSERT INTO source_resource (
|
||||
id, company_id, creator_id, creator_role, resource_name, resource_type,
|
||||
bucket_name, file_path, file_size, source_status, storage_provider, remark
|
||||
@@ -103,21 +103,21 @@ ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO annotation_result (
|
||||
id, company_id, creator_id, creator_role, task_id, resource_id,
|
||||
qa_content_json, qa_content_storage_mode, qa_content_file_path, diff_summary,
|
||||
requires_manual_review, is_deleted, reviewer_id, review_comment, reviewed_at
|
||||
) VALUES
|
||||
(801, 2, 3, 'EMPLOYEE', 701, 601,
|
||||
'{"question":"巡检开始前需要做什么?","answer":"详见外置结果文件,包含完整步骤与注意事项。"}',
|
||||
'EXTERNAL', 'annotation-results/202604/801-qa.json',
|
||||
'{"extract_question":"巡检开始前需要做什么?","extract_answer":"开始前检查设备状态和作业环境。","verify_answer":"开始前应确认设备状态、防护用品和现场环境安全。","mismatch_fields":["answer"],"reason":"抽取答案遗漏了安全检查要点。"}',
|
||||
TRUE, FALSE, NULL, NULL, NULL),
|
||||
(802, 2, 3, 'EMPLOYEE', 702, 602,
|
||||
'{"question":"图片中的控制柜当前状态如何?","answer":"控制柜处于运行状态,绿色指示灯亮起。"}',
|
||||
'INLINE', NULL,
|
||||
'{"extract_question":"图片中的控制柜当前状态如何?","extract_answer":"控制柜处于运行状态,绿色指示灯亮起。","verify_answer":"控制柜正在运行,指示灯显示正常。","mismatch_fields":[],"reason":"校验结果与抽取结果基本一致。"}',
|
||||
FALSE, FALSE, 5, '结果可通过。', CURRENT_TIMESTAMP)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
qa_content_json, qa_content_storage_mode, qa_content_file_path, diff_summary,
|
||||
requires_manual_review, is_deleted, reviewer_id, review_comment, reviewed_at
|
||||
) VALUES
|
||||
(801, 2, 3, 'EMPLOYEE', 701, 601,
|
||||
'{"question":"巡检开始前需要做什么?","answer":"详见外置结果文件,包含完整步骤与注意事项。"}',
|
||||
'EXTERNAL', 'annotation-results/202604/801-qa.json',
|
||||
'{"extract_question":"巡检开始前需要做什么?","extract_answer":"开始前检查设备状态和作业环境。","verify_answer":"开始前应确认设备状态、防护用品和现场环境安全。","mismatch_fields":["answer"],"reason":"抽取答案遗漏了安全检查要点。"}',
|
||||
TRUE, FALSE, NULL, NULL, NULL),
|
||||
(802, 2, 3, 'EMPLOYEE', 702, 602,
|
||||
'{"question":"图片中的控制柜当前状态如何?","answer":"控制柜处于运行状态,绿色指示灯亮起。"}',
|
||||
'INLINE', NULL,
|
||||
'{"extract_question":"图片中的控制柜当前状态如何?","extract_answer":"控制柜处于运行状态,绿色指示灯亮起。","verify_answer":"控制柜正在运行,指示灯显示正常。","mismatch_fields":[],"reason":"校验结果与抽取结果基本一致。"}',
|
||||
FALSE, FALSE, 5, '结果可通过。', CURRENT_TIMESTAMP)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO annotation_result_history (
|
||||
id, company_id, creator_id, creator_role, source_result_id, task_id, resource_id,
|
||||
qa_content_json, qa_content_storage_mode, qa_content_file_path, archive_reason, archived_by, archived_at
|
||||
@@ -128,23 +128,23 @@ INSERT INTO annotation_result_history (
|
||||
NULL,
|
||||
'审核通过后归档', 5, CURRENT_TIMESTAMP)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO training_dataset (
|
||||
id, company_id, creator_id, creator_role, result_history_id, sample_type, glm_format_json, dataset_status
|
||||
) VALUES
|
||||
(1001, 2, 4, 'EMPLOYEE', 901, 'TEXT',
|
||||
'{"messages":[{"role":"system","content":"你是专业知识问答助手"},{"role":"user","content":"图片中的控制柜当前状态如何?"},{"role":"assistant","content":"控制柜处于运行状态,绿色指示灯亮起。"}]}',
|
||||
'DRAFT')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO export_batch (
|
||||
id, company_id, creator_id, creator_role, batch_no, dataset_file_path, sample_count, finetune_job_id, finetune_status
|
||||
) VALUES
|
||||
(1101, 2, 4, 'EMPLOYEE', 'BATCH-20260424-001', 'export/BATCH-20260424-001.jsonl', 1, NULL, 'NOT_STARTED')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO export_batch_item (id, batch_id, dataset_id) VALUES
|
||||
(1201, 1101, 1001)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
COMMIT;
|
||||
|
||||
INSERT INTO training_dataset (
|
||||
id, company_id, creator_id, creator_role, result_history_id, sample_type, glm_format_json, dataset_status
|
||||
) VALUES
|
||||
(1001, 2, 4, 'EMPLOYEE', 901, 'TEXT',
|
||||
'{"messages":[{"role":"system","content":"你是专业知识问答助手"},{"role":"user","content":"图片中的控制柜当前状态如何?"},{"role":"assistant","content":"控制柜处于运行状态,绿色指示灯亮起。"}]}',
|
||||
'DRAFT')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO export_batch (
|
||||
id, company_id, creator_id, creator_role, batch_no, dataset_file_path, sample_count, finetune_job_id, finetune_status
|
||||
) VALUES
|
||||
(1101, 2, 4, 'EMPLOYEE', 'BATCH-20260424-001', 'export/BATCH-20260424-001.jsonl', 1, NULL, 'NOT_STARTED')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO export_batch_item (id, batch_id, dataset_id) VALUES
|
||||
(1201, 1101, 1001)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
COMMIT;
|
||||
|
||||
@@ -57,7 +57,7 @@ COMMENT ON COLUMN sys_user.company_id IS '所属公司ID,关联 sys_company.id
|
||||
COMMENT ON COLUMN sys_user.phone IS '登录手机号,同公司内唯一。';
|
||||
COMMENT ON COLUMN sys_user.username IS '用户名或账号别名,用于展示。';
|
||||
COMMENT ON COLUMN sys_user.role IS '数据权限角色,默认 EMPLOYEE,可选 EMPLOYEE、MANAGER、ENGINEER。';
|
||||
COMMENT ON COLUMN sys_user.position IS '岗位,默认 ANNOTATOR,可选 ANNOTATOR、DATA_TRAINER、REVIEWER、ADMIN。';
|
||||
COMMENT ON COLUMN sys_user.position IS '岗位,默认 ANNOTATOR,可选 ANNOTATOR、DATA_TRAINER、REVIEWER、ADMIN、SUPER_ADMIN。';
|
||||
COMMENT ON COLUMN sys_user.real_name IS '用户真实姓名。';
|
||||
COMMENT ON COLUMN sys_user.password_hash IS '密码哈希值。';
|
||||
COMMENT ON COLUMN sys_user.must_change_password IS '是否首次登录强制改密。';
|
||||
|
||||
Reference in New Issue
Block a user