问答示例增加,人员权限控制
This commit is contained in:
@@ -221,7 +221,9 @@ def run_sql_2(id: str, sql: str):
|
||||
def verify_user():
|
||||
try:
|
||||
id = request.args.get("user_id")
|
||||
users = config('ALLOWED_USERS', cast=list, default=[])
|
||||
users = config('ALLOWED_USERS', default='')
|
||||
users = users.split(',')
|
||||
logger.info(f"allowed users {users}")
|
||||
for user in users:
|
||||
if user == id:
|
||||
return jsonify({"type": "success", "verify": True})
|
||||
|
||||
@@ -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
|
||||
|
||||
]
|
||||
|
||||
@@ -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
|
||||
'''
|
||||
},
|
||||
]
|
||||
|
||||
@@ -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": ["组织信息", "内部架构"]
|
||||
},
|
||||
@@ -445,21 +455,21 @@ 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": "关联部门表"
|
||||
},
|
||||
@@ -470,15 +480,6 @@ person_database_ddl = """
|
||||
|
||||
"""
|
||||
|
||||
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",
|
||||
|
||||
Reference in New Issue
Block a user