Merge branch 'dev_graph' of http://106.13.42.156:33077/lei_y601/sqlbot_agent into dev_graph

This commit is contained in:
yujj128
2025-11-11 17:07:06 +08:00
4 changed files with 84 additions and 119 deletions

View File

@@ -650,6 +650,7 @@ template:
3. **核心处理:正常结果呈现**
- 如果 `[执行错误信息]` 为空,且 `[查询结果]` 不为空。
- 注意: 只有当用户问题包含 `在藏`,`连续在藏` ,等关键字,才输出总结增加一个备注:部分在藏数据可能从2025-10-01后开始统计的。
- (a) **总结与提炼**: 首先用1-2句话直接回答用户的 `[用户问题]`。总结核心发现,而不是逐字念出所有数据。
- (b) **关键数据呈现**: 从 `[查询结果]` 中挑选最重要的1-3个关键数据点用自然、易于阅读的方式列出例如使用项目符号但最终输出应转为自然语言的段落
- (c) **解读与洞察 (如果可能)**: 如果数据趋势很明显,可以进行简单的解读(例如:“可以看出,销售额呈上升趋势”)。

View File

@@ -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 = [

View File

@@ -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 '迟到天数'

View File

@@ -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": ["外部单位","外部信息","外部单位名称",'仅用于查询外部单位']
}
'''