问答示例增加,人员权限控制

This commit is contained in:
yujj128
2025-10-14 15:47:11 +08:00
parent 2183c492db
commit 7c9bd63c60
4 changed files with 67 additions and 28 deletions

View File

@@ -2,8 +2,8 @@ from service.cus_vanna_srevice import CustomVanna
from util import train_ddl
from util import q_and_a_dict
table_ddls = [
train_ddl.person_ddl_sql,train_ddl.user_status_ddl,
train_ddl.user_attendance_ddl,train_ddl.person_ac_area,
train_ddl.person_database_ddl,train_ddl.person_status_ddl,
train_ddl.person_attendance_ddl,train_ddl.person_ac_area,
train_ddl.org_orgs_ddl
]

View File

@@ -261,6 +261,43 @@ question_and_answer = [
GROUP BY o.name
ORDER BY "人数" DESC LIMIT 1000
'''
}
},
{
"question": "数信中心员工年龄段分布图",
"answer": '''
SELECT
CASE
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段'
END AS "age_group",
COUNT(*) AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
WHERE "dr" = 0
AND "birthday" IS NOT NULL
AND "birthday" != ''
AND internal_dept IN (
SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
WHERE "parentid" IN (
SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
WHERE "name" LIKE '数信中心'
)
)
GROUP BY
CASE
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段'
END
ORDER BY "age_group" ASC LIMIT 1000
'''
},
]

View File

@@ -1,3 +1,13 @@
train_document='''
语法为达梦数据库语法;
查询地址籍贯公司单位时尽量使用like查询;
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段id工号姓名单位以及用户问题中需要查询的字段;
表字段信息以及字段枚举信息在values下注意相关字段枚举值的转换;
查询单位时通过orgs表查询且需要基于parentID查询单位下的子单位
查询内部单位时则可以直接查询人员信息表通过like模糊查询
'''
person_database_ddl = """
{
@@ -116,14 +126,14 @@ person_database_ddl = """
{
"name": "internal_dept",
"type": "VARCHAR(108)",
"comment": "内部部门",
"comment": "内部部门ID",
"role": "dimension",
"tags": ["组织信息", "内部架构"]
},
{
"name": "input_dept",
"type": "VARCHAR(108)",
"comment": "录入部门",
"comment": "录入部门ID",
"role": "dimension",
"tags": ["操作部门", "组织信息"]
},
@@ -137,7 +147,7 @@ person_database_ddl = """
{
"name": "internal_unit",
"type": "VARCHAR(108)",
"comment": "内部单位",
"comment": "内部单位ID",
"role": "dimension",
"tags": ["组织信息", "内部架构"]
},
@@ -163,7 +173,7 @@ person_database_ddl = """
"role": "dimension",
"tags": ["主键", "ID标识"]
},
{
"name": "dr",
"type": "INT",
@@ -189,7 +199,7 @@ person_database_ddl = """
"role": "dimension",
"tags": ["租户信息", "系统隔离"]
},
{
"name": "create_time",
"type": "DATETIME(39)",
@@ -204,8 +214,8 @@ person_database_ddl = """
"role": "dimension",
"tags": ["时间信息", "系统记录"]
},
{
"name": "to_dept",
"type": "VARCHAR(600)",
@@ -445,40 +455,31 @@ person_database_ddl = """
{
"from": "input_dept",
"to_table": "IUAP_APDOC_BASEDOC.org_orgs",
"to_field": "id",
"to_field": ["id","parentid"],
"type": "foreign_key",
"comment": "关联部门表"
},
{
"from": "internal_dept",
"to_table": "IUAP_APDOC_BASEDOC.org_orgs",
"to_field": "id",
"to_field": ["id","parentid"],
"type": "foreign_key",
"comment": "关联部门表"
},
{
"from": "internal_unit",
"to_table": "IUAP_APDOC_BASEDOC.org_orgs",
"to_field": "id",
"to_field": ["id","parentid"],
"type": "foreign_key",
"comment": "关联部门表"
},
],
"tags": ["人员管理", "人力资源", "审批流程", "基本信息", "工作信息"],
}
"""
train_document='''
语法为达梦数据库语法;
查询地址籍贯公司单位时尽量使用like查询;
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段id工号姓名单位以及用户问题中需要查询的字段;
表字段信息以及字段枚举信息在values下注意相关字段枚举值的转换;
查询单位时通过orgs表查询且需要基于parentID查询单位下的子单位
查询内部单位时则可以直接查询人员信息表通过like模糊查询
'''
person_attendance_rule_ddl='''
{
"db_name":"YJOA_APPSERVICE_DB",
@@ -549,7 +550,7 @@ person_attendance_rule_ddl='''
}
'''
user_status_ddl='''
person_status_ddl='''
{
"db_name":"YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_status",
@@ -633,7 +634,7 @@ user_status_ddl='''
}
'''
user_attendance_ddl = '''
person_attendance_ddl = '''
{
"db_name": "YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_attendance",
@@ -919,7 +920,6 @@ person_ac_area = '''
}
'''
org_orgs_ddl = '''
{
"db_name":"IUAP_APDOC_BASEDOC",