Merge branch 'dev_graph' of http://106.13.42.156:33077/lei_y601/sqlbot_agent into dev_graph
This commit is contained in:
@@ -650,6 +650,7 @@ template:
|
||||
|
||||
3. **核心处理:正常结果呈现**
|
||||
- 如果 `[执行错误信息]` 为空,且 `[查询结果]` 不为空。
|
||||
- 注意: 只有当用户问题包含 :`在藏`,`连续在藏` ,等关键字,才输出总结增加一个备注:部分在藏数据可能从2025-10-01后开始统计的。
|
||||
- (a) **总结与提炼**: 首先用1-2句话直接回答用户的 `[用户问题]`。总结核心发现,而不是逐字念出所有数据。
|
||||
- (b) **关键数据呈现**: 从 `[查询结果]` 中挑选最重要的1-3个关键数据点,用自然、易于阅读的方式列出(例如使用项目符号,但最终输出应转为自然语言的段落)。
|
||||
- (c) **解读与洞察 (如果可能)**: 如果数据趋势很明显,可以进行简单的解读(例如:“可以看出,销售额呈上升趋势”)。
|
||||
|
||||
@@ -8,7 +8,8 @@ table_ddls = [
|
||||
train_ddl.person_attendance_ddl,train_ddl.person_ac_area,
|
||||
train_ddl.person_ac_position,
|
||||
train_ddl.org_orgs_ddl,
|
||||
train_ddl.person_in_tibat
|
||||
#train_ddl.person_in_tibat
|
||||
train_ddl.out_org_orgs_ddl,
|
||||
|
||||
]
|
||||
list_documentions = [
|
||||
|
||||
@@ -9,7 +9,7 @@ question_and_answer = [
|
||||
"code" AS "工号",
|
||||
"name" AS "姓名",
|
||||
"internal_unit" AS "内部单位",
|
||||
"external_unit" AS "外部单位",
|
||||
"work_unit" AS "工作单位",
|
||||
"phone_number" AS "手机号",
|
||||
"email" AS "邮箱",
|
||||
CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' ELSE "gender" END AS "性别",
|
||||
@@ -474,7 +474,7 @@ question_and_answer = [
|
||||
p."code" AS "工号",
|
||||
p."name" AS "姓名",
|
||||
p."internal_unit" AS "内部单位",
|
||||
p."external_unit" AS "外部单位",
|
||||
p."work_unit" AS "工作单位",
|
||||
CASE WHEN ps."status" = '1003' THEN '休假,请假' ELSE ps."status" END AS "状态"
|
||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
||||
INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps ON p."code" = ps."person_id"
|
||||
@@ -498,7 +498,7 @@ question_and_answer = [
|
||||
p."code" AS "工号",
|
||||
p."name" AS "姓名",
|
||||
p."internal_unit" AS "内部单位",
|
||||
p."external_unit" AS "外部单位",
|
||||
p."work_unit" AS "工作单位",
|
||||
CASE
|
||||
WHEN ps."status" = '1006' THEN '迟到早退'
|
||||
WHEN ps."status" = '1009' THEN '迟到'
|
||||
@@ -532,7 +532,7 @@ question_and_answer = [
|
||||
p."code" AS "工号",
|
||||
p."name" AS "姓名",
|
||||
p."internal_unit" AS "内部单位",
|
||||
p."external_unit" AS "外部单位",
|
||||
p."work_unit" AS "工作单位",
|
||||
CASE WHEN ps."status" = '1008' THEN '加班'
|
||||
ELSE '其他'
|
||||
END AS "状态"
|
||||
@@ -561,7 +561,7 @@ question_and_answer = [
|
||||
SELECT DISTINCT p."code" AS "工号",
|
||||
p."name" AS "姓名",
|
||||
p."internal_unit" AS "内部单位",
|
||||
p."external_unit" AS "外部单位",
|
||||
p."work_unit" AS "工作单位",
|
||||
CASE
|
||||
WHEN ps."status" = '1001' THEN '在岗'
|
||||
WHEN ps."status" = '1002' THEN '出差'
|
||||
@@ -677,12 +677,20 @@ question_and_answer = [
|
||||
{
|
||||
"question": "来自联通的有多少员工",
|
||||
"answer": """
|
||||
SELECT "id" AS "id",
|
||||
"code" AS "工号",
|
||||
"name" AS "姓名",
|
||||
"external_unit" AS "外部单位"
|
||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
|
||||
WHERE "external_unit" LIKE '%联通%' LIMIT 1000
|
||||
SELECT p.id AS person_id, -- 人员ID
|
||||
p.name AS person_name, -- 人员姓名
|
||||
p.code AS work_id, -- 工号
|
||||
p.phone_number, -- 手机号
|
||||
p.person_type, -- 人员类型
|
||||
o.name AS external_unit_name -- 外部单位名称
|
||||
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database AS p
|
||||
INNER JOIN
|
||||
YJOA_APPSERVICE_DB.t_pr3rl2oj_outsourcing_org_new AS o ON p.external_unit = o.id
|
||||
WHERE p.dr = 0 -- 1. 筛选正常数据,排除已删除
|
||||
AND p.person_status != '1' -- 2. 筛选已在流程中或已入库的人员,排除草稿
|
||||
AND o.name like '%联通%' -- 4. 核心条件:外
|
||||
|
||||
|
||||
""",
|
||||
"tags": ["员工", "外部单位", "统计查询"],
|
||||
"category": "外部单位统计"
|
||||
@@ -690,12 +698,18 @@ question_and_answer = [
|
||||
{
|
||||
"question": "各个外部单位下的员工人数统计",
|
||||
"answer": """
|
||||
SELECT "external_unit" AS "外部单位", COUNT(*) AS "员工人数"
|
||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
|
||||
WHERE "external_unit" IS NOT NULL
|
||||
AND "external_unit" != ''
|
||||
GROUP BY "external_unit"
|
||||
ORDER BY "员工人数" DESC LIMIT 1000
|
||||
SELECT o.name AS external_unit_name, -- 外部单位名称
|
||||
COUNT(p.id) AS employee_count -- 该单位下的员工人数
|
||||
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database AS p
|
||||
INNER JOIN
|
||||
YJOA_APPSERVICE_DB.t_pr3rl2oj_outsourcing_org_new AS o ON p.external_unit = o.id
|
||||
WHERE p.dr = 0 -- 1. 只统计正常(非已删除)的人员
|
||||
-- AND p.person_status IN ('3', '4', '5') -- 可选:只统计特定状态的人员,如“已入库”、“停用”等
|
||||
GROUP BY o.name -- 2. 按外部单位名称进行分组
|
||||
|
||||
HAVING COUNT(p.id) > 0 -- 3. (可选) 只显示有员工的单位
|
||||
ORDER BY employee_count DESC; -- 4. 按员工人数从多到少排序
|
||||
|
||||
""",
|
||||
"tags": ["员工", "外部单位", "人数统计"],
|
||||
"category": "外部单位统计"
|
||||
@@ -1102,7 +1116,7 @@ question_and_answer = [
|
||||
}
|
||||
,
|
||||
{
|
||||
"question": "9月在林芝工作中有多少天迟到?",
|
||||
"question": "张三9月在林芝工作中有多少天迟到?",
|
||||
"answer": '''
|
||||
|
||||
SELECT COUNT(*) as '迟到天数'
|
||||
|
||||
@@ -54,13 +54,7 @@ person_database_ddl = """
|
||||
"role": "dimension",
|
||||
"tags": ["证件信息", "身份标识"]
|
||||
},
|
||||
{
|
||||
"name": "input_time",
|
||||
"type": "DATETIME(39)",
|
||||
"comment": "录入时间",
|
||||
"role": "dimension",
|
||||
"tags": ["时间信息", "操作记录"]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "external_unit",
|
||||
"type": "VARCHAR(600)",
|
||||
@@ -68,20 +62,8 @@ person_database_ddl = """
|
||||
"role": "dimension",
|
||||
"tags": ["组织信息", "外部单位","外部单位名称"]
|
||||
},
|
||||
{
|
||||
"name": "photo",
|
||||
"type": "TEXT(max)",
|
||||
"comment": "照片(二进制文本)",
|
||||
"role": "dimension",
|
||||
"tags": ["多媒体信息"]
|
||||
},
|
||||
{
|
||||
"name": "input_user",
|
||||
"type": "VARCHAR(108)",
|
||||
"comment": "录入人",
|
||||
"role": "dimension",
|
||||
"tags": ["操作人信息"]
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name": "is_internal",
|
||||
"type": "VARCHAR(108)",
|
||||
@@ -137,13 +119,7 @@ person_database_ddl = """
|
||||
"role": "dimension",
|
||||
"tags": ["组织信息", "内部架构","部门ID"]
|
||||
},
|
||||
{
|
||||
"name": "input_dept",
|
||||
"type": "VARCHAR(108)",
|
||||
"comment": "录入部门ID",
|
||||
"role": "dimension",
|
||||
"tags": ["操作部门", "组织信息","录入部门ID"]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "name",
|
||||
"type": "VARCHAR(600)",
|
||||
@@ -195,7 +171,7 @@ person_database_ddl = """
|
||||
{
|
||||
"name": "code",
|
||||
"type": "VARCHAR(600)",
|
||||
"comment": "用户ID彪马",
|
||||
"comment": "用户ID编号",
|
||||
"role": "dimension",
|
||||
"tags": ["用户ID", "工号"]
|
||||
},
|
||||
@@ -207,21 +183,6 @@ person_database_ddl = """
|
||||
"tags": ["租户信息", "系统隔离"]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "create_time",
|
||||
"type": "DATETIME(39)",
|
||||
"comment": "创建时间",
|
||||
"role": "dimension",
|
||||
"tags": ["时间信息", "系统记录"]
|
||||
},
|
||||
{
|
||||
"name": "modify_time",
|
||||
"type": "DATETIME(39)",
|
||||
"comment": "修改时间",
|
||||
"role": "dimension",
|
||||
"tags": ["时间信息", "系统记录"]
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"name": "to_dept",
|
||||
@@ -357,52 +318,9 @@ person_database_ddl = """
|
||||
"role": "dimension",
|
||||
"tags": ["工作信息", "职责描述"]
|
||||
},
|
||||
{
|
||||
"name": "engage_contract_no",
|
||||
"type": "VARCHAR(600)",
|
||||
"comment": "从事项目合同编号",
|
||||
"role": "dimension",
|
||||
"tags": ["合同信息", "项目信息"]
|
||||
},
|
||||
{
|
||||
"name": "engage_contract_name",
|
||||
"type": "VARCHAR(600)",
|
||||
"comment": "从事项目合同名称",
|
||||
"role": "dimension",
|
||||
"tags": ["合同信息", "项目信息"]
|
||||
},
|
||||
{
|
||||
"name": "is_subcontractor",
|
||||
"type": "VARCHAR(108)",
|
||||
"comment": "是否分包商",
|
||||
"value":{
|
||||
"1":"是",
|
||||
"0":"否",
|
||||
},
|
||||
"role": "dimension",
|
||||
"tags": ["供应商类型", "合作模式","枚举信息"]
|
||||
},
|
||||
{
|
||||
"name": "general_contractor_unit",
|
||||
"type": "VARCHAR(600)",
|
||||
"comment": "总包单位全称",
|
||||
"role": "dimension",
|
||||
"tags": ["合作单位", "总包信息"]
|
||||
},
|
||||
{
|
||||
"name": "entry_date",
|
||||
"type": "VARCHAR(30)",
|
||||
"comment": "入场日期",
|
||||
"role": "dimension",
|
||||
"tags": ["时间信息", "项目参与"]
|
||||
},
|
||||
{
|
||||
"name": "expected_departure_date",
|
||||
"type": "VARCHAR(30)",
|
||||
"comment": "预计离场日期",
|
||||
"role": "dimension",
|
||||
"tags": ["时间信息", "项目参与"]
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
"name": "office_city",
|
||||
"type": "VARCHAR(600)",
|
||||
@@ -435,14 +353,7 @@ person_database_ddl = """
|
||||
"role": "dimension",
|
||||
"tags": ["联系方式", "通讯信息"]
|
||||
},
|
||||
{
|
||||
"name": "person_count",
|
||||
"type": "INT",
|
||||
"comment": "人员数量",
|
||||
"role": "metric",
|
||||
"aggregation": "count",
|
||||
"tags": ["统计指标", "数量统计"]
|
||||
}
|
||||
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
@@ -1037,7 +948,7 @@ person_in_tibat = '''
|
||||
"relationships": [
|
||||
{
|
||||
"from": "person_id",
|
||||
"to_table": "t_yj_person_database",
|
||||
"to_table": "t_pr3rl2oj_yj_person_database",
|
||||
"to_field": "code",
|
||||
"type": "foreign_key",
|
||||
"comment": "关联人员基本信息表"
|
||||
@@ -1124,3 +1035,41 @@ org_orgs_ddl = '''
|
||||
"tags": ["部门id","部门信息","部门名称"]
|
||||
}
|
||||
'''
|
||||
|
||||
out_org_orgs_ddl = '''
|
||||
{
|
||||
"db_name":"YJOA_APPSERVICE_DB",
|
||||
"table_name": "t_pr3rl2oj_outsourcing_org_new",
|
||||
"table_comment": "外部单位信息表。仅用于查询外部单位信息,关联人员基本信息表中的external_unit字段",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"type": "VARCHAR(36)",
|
||||
"comment": "外部单位ID",
|
||||
"role": "dimension",
|
||||
"tags": ["主键", "id标识","外部单位ID"]
|
||||
}
|
||||
,
|
||||
{
|
||||
"name": "name",
|
||||
"type": "VARCHAR(50)",
|
||||
"comment": "部门名称",
|
||||
"role": "dimension",
|
||||
"tags": ["外部单位名称"]
|
||||
}
|
||||
|
||||
|
||||
],
|
||||
"relationships": [
|
||||
{
|
||||
"from": "id",
|
||||
"to_table": "t_pr3rl2oj_yj_person_database",
|
||||
"to_field": "external_unit",
|
||||
"type": "foreign_key",
|
||||
"comment": "关联人员基本信息表,用于外部单位查询"
|
||||
}
|
||||
],
|
||||
|
||||
"tags": ["外部单位","外部信息","外部单位名称",'仅用于查询外部单位']
|
||||
}
|
||||
'''
|
||||
Reference in New Issue
Block a user