Merge branch 'dev' of http://106.13.42.156:33077/lei_y601/sqlbot_agent into dev
# Conflicts: # util/q_and_a_test1.py
This commit is contained in:
		| @@ -81,12 +81,13 @@ template: | |||||||
|           <rule-detail>使用了函数(如 COUNT(), CAST(), SUM())的字段,必须为其指定一个英文别名。</rule-detail> |           <rule-detail>使用了函数(如 COUNT(), CAST(), SUM())的字段,必须为其指定一个英文别名。</rule-detail> | ||||||
|           <rule-detail>计算占比或百分比时,结果保留两位小数,并以 '%' 符号结尾。示例:ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM table), 2) || '%' (PostgreSQL语法)</rule-detail> |           <rule-detail>计算占比或百分比时,结果保留两位小数,并以 '%' 符号结尾。示例:ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM table), 2) || '%' (PostgreSQL语法)</rule-detail> | ||||||
|           <rule-detail>若查询结果包含枚举字段(如 gender=1,2),必须使用 CASE WHEN 语句将其转换为可读的标签。示例: SELECT CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' END AS "gender"</rule-detail> |           <rule-detail>若查询结果包含枚举字段(如 gender=1,2),必须使用 CASE WHEN 语句将其转换为可读的标签。示例: SELECT CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' END AS "gender"</rule-detail> | ||||||
|          <rule-detail>重点!重点!重点!涉及查询orgs表时,部门存在多层级,必须递归查询。使用 start .. with 语法。递归语法示例: |          <rule-detail>重点!重点!重点!涉及查询orgs表时,部门存在多层级,大部分需要递归查询。使用 start .. with 语法。递归语法示例: | ||||||
|                   SELECT "id" |                   SELECT "id" | ||||||
|                   FROM "IUAP_APDOC_BASEDOC"."org_orgs" START |                   FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|                   WITH "name"||"shortname" LIKE '%xx中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' |                   WITH "name"||"shortname" LIKE '%xx中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|          </rule-detail> |          </rule-detail> | ||||||
|  |        <rule-detail>当用户问题涉及查询是否时候。结果需要返回:是/否。而不是返回查询记录</rule-detail> | ||||||
|         </rule> |         </rule> | ||||||
|         <rule> |         <rule> | ||||||
|           <rule-title>关联与限制</rule-title> |           <rule-title>关联与限制</rule-title> | ||||||
|   | |||||||
| @@ -28,9 +28,10 @@ def add_documentation(vn: CustomVanna): | |||||||
|     random.shuffle(dd) |     random.shuffle(dd) | ||||||
|     # for d in dd: |     # for d in dd: | ||||||
|     #     vn.add_question_sql(question=d['question'], sql=d['answer']) |     #     vn.add_question_sql(question=d['question'], sql=d['answer']) | ||||||
|     for d in q_and_a_test1.question_and_answer: |     ## tag  待定,容易过拟合 | ||||||
|  |     for d in dd: | ||||||
|         vn.add_question_sql( |         vn.add_question_sql( | ||||||
|             question=f"{d['question']} [分类:{d['category']}] [标签:{','.join(d['tags'])}]", |             question=f"{d['question']}", | ||||||
|             sql=d['answer'] |             sql=d['answer'] | ||||||
|         ) |         ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -5,16 +5,22 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "张三的信息", |         "question": "张三的信息", | ||||||
|         "answer": """ |         "answer": """ | ||||||
|                 SELECT "id" AS "ID", "code" AS "工号", "name" AS "姓名",  |                   SELECT "id"                                                                               AS "ID", | ||||||
|                 "internal_unit" AS "内部单位", "external_unit" AS "外部单位", |                          "code"                                                                             AS "工号", | ||||||
|                 "phone_number" AS "手机号", "email" AS "邮箱", |                          "name"                                                                             AS "姓名", | ||||||
|  |                          "internal_unit"                                                                    AS "内部单位", | ||||||
|  |                          "external_unit"                                                                    AS "外部单位", | ||||||
|  |                          "phone_number"                                                                     AS "手机号", | ||||||
|  |                          "email"                                                                            AS "邮箱", | ||||||
|                          CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' ELSE "gender" END AS "性别", |                          CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' ELSE "gender" END AS "性别", | ||||||
|                          -- 人员类型转换逻辑 |                          -- 人员类型转换逻辑 | ||||||
|                 CASE WHEN "person_type" = 'YG' THEN '正式员工'  |                          CASE | ||||||
|  |                              WHEN "person_type" = 'YG' THEN '正式员工' | ||||||
|                              WHEN "person_type" = 'PQ' THEN '劳务派遣人员' |                              WHEN "person_type" = 'PQ' THEN '劳务派遣人员' | ||||||
|                              ELSE "person_type" END                                                         AS "人员类型" |                              ELSE "person_type" END                                                         AS "人员类型" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" | ||||||
|                 WHERE "dr" = 0 AND "name" = '张三' LIMIT 1000 |                   WHERE "dr" = 0 | ||||||
|  |                     AND "name" = '张三' LIMIT 1000 | ||||||
|                   """, |                   """, | ||||||
|         "tags": ["员工", "基本信息", "单人员工"], |         "tags": ["员工", "基本信息", "单人员工"], | ||||||
|         "category": "员工基本信息查询" |         "category": "员工基本信息查询" | ||||||
| @@ -50,8 +56,9 @@ question_and_answer = [ | |||||||
|         "answer": """ |         "answer": """ | ||||||
|                   SELECT COUNT(*) |                   SELECT COUNT(*) | ||||||
|                   FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database |                   FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database | ||||||
|               WHERE internal_dept in (SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                   WHERE internal_dept in (SELECT "id" | ||||||
|               START WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'  |                                           FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid") |                   CONNECT BY PRIOR "id" = "parentid") | ||||||
|                   """, |                   """, | ||||||
|         "tags": ["员工", "部门", "人数"], |         "tags": ["员工", "部门", "人数"], | ||||||
| @@ -127,9 +134,12 @@ question_and_answer = [ | |||||||
|                   SELECT p.id AS "id", p.code AS "employee_code", p.name AS "name", o.name AS "department_name" |                   SELECT p.id AS "id", p.code AS "employee_code", p.name AS "name", o.name AS "department_name" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id |                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id | ||||||
|               WHERE p.dr = 0 AND o.enable = 1 AND o.dr = 0 AND o.id IN ( |                   WHERE p.dr = 0 | ||||||
|               SELECT id FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                     AND o.enable = 1 | ||||||
|               START WITH ("name" LIKE '%XX%' OR "shortname" LIKE '%XX%')  |                     AND o.dr = 0 | ||||||
|  |                     AND o.id IN (SELECT id | ||||||
|  |                                  FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH ("name" LIKE '%XX%' OR "shortname" LIKE '%XX%') | ||||||
|                       AND "enable" = 1 AND "dr" = 0 |                       AND "enable" = 1 AND "dr" = 0 | ||||||
|                   CONNECT BY PRIOR "id" = "parentid") |                   CONNECT BY PRIOR "id" = "parentid") | ||||||
|                       LIMIT 1000 |                       LIMIT 1000 | ||||||
| @@ -140,15 +150,22 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "XX综合部男员工有哪些人", |         "question": "XX综合部男员工有哪些人", | ||||||
|         "answer": """ |         "answer": """ | ||||||
|                  SELECT p."id" AS "ID", p."code" AS "工号", p."name" AS "姓名",  |                   SELECT p."id"                                  AS "ID", | ||||||
|                  CASE WHEN p."gender" = '1' THEN '男'  |                          p."code"                                AS "工号", | ||||||
|                  WHEN p."gender" = '2' THEN '女' END AS "性别", o."name" AS "部门名称"  |                          p."name"                                AS "姓名", | ||||||
|  |                          CASE | ||||||
|  |                              WHEN p."gender" = '1' THEN '男' | ||||||
|  |                              WHEN p."gender" = '2' THEN '女' END AS "性别", | ||||||
|  |                          o."name"                                AS "部门名称" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" |                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" | ||||||
|                  WHERE p."dr" = 0 AND p."gender" = '1' AND o."id" IN ( |                   WHERE p."dr" = 0 | ||||||
|                    SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                     AND p."gender" = '1' | ||||||
|                    START WITH ("name" LIKE '%综合处%' OR "shortname" LIKE '%综合处%')  |                     AND o."id" IN (SELECT "id" | ||||||
|                    AND "enable" = 1 AND "dr" = 0 CONNECT BY PRIOR "id" = "parentid")  |                                    FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH ("name" LIKE '%综合处%' OR "shortname" LIKE '%综合处%') | ||||||
|  |                       AND "enable" = 1 AND "dr" = 0 | ||||||
|  |                   CONNECT BY PRIOR "id" = "parentid") | ||||||
|                       LIMIT 1000 |                       LIMIT 1000 | ||||||
|                   """, |                   """, | ||||||
|         "tags": ["员工", "性别", "部门", "列表查询"], |         "tags": ["员工", "性别", "部门", "列表查询"], | ||||||
| @@ -157,16 +174,22 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "XX综合部女员工有那些人", |         "question": "XX综合部女员工有那些人", | ||||||
|         "answer": """ |         "answer": """ | ||||||
|                    SELECT p."id" AS "id", p."code" AS "工号", p."name" AS "姓名",  |                   SELECT p."id"                                  AS "id", | ||||||
|                    CASE WHEN p."gender" = '1' THEN '男'  |                          p."code"                                AS "工号", | ||||||
|                    WHEN p."gender" = '2' THEN '女' END AS "性别", o."name" AS "部门名称"  |                          p."name"                                AS "姓名", | ||||||
|                    FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id"  |                          CASE | ||||||
|                    WHERE p."internal_dept" IN ( |                              WHEN p."gender" = '1' THEN '男' | ||||||
|                        SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                              WHEN p."gender" = '2' THEN '女' END AS "性别", | ||||||
|                        START WITH ("name" LIKE '%XX综合部%' OR "shortname" LIKE '%XX综合部%')  |                          o."name"                                AS "部门名称" | ||||||
|  |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|  |                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" | ||||||
|  |                   WHERE p."internal_dept" IN (SELECT "id" | ||||||
|  |                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH ("name" LIKE '%XX综合部%' OR "shortname" LIKE '%XX综合部%') | ||||||
|                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' |                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid") |                   CONNECT BY PRIOR "id" = "parentid") | ||||||
|                    AND p."dr" = 0 AND p."gender" = '2'  |                          AND p."dr" = 0 | ||||||
|  |                          AND p."gender" = '2' | ||||||
|                   ORDER BY p."create_time" |                   ORDER BY p."create_time" | ||||||
|                       DESC LIMIT 1000 |                       DESC LIMIT 1000 | ||||||
|                   """, |                   """, | ||||||
| @@ -231,11 +254,12 @@ question_and_answer = [ | |||||||
|                   SELECT SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数", |                   SELECT SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数", | ||||||
|                          SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数" |                          SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                    WHERE p."internal_dept" IN ( |                   WHERE p."internal_dept" IN (SELECT "id" | ||||||
|                        SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|                        START WITH "name" LIKE '%XX%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%'  |                   WITH "name" LIKE '%XX%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid") |                   CONNECT BY PRIOR "id" = "parentid") | ||||||
|                    AND p."dr" = 0 AND YEAR(p."input_time") = 2025  |                          AND p."dr" = 0 | ||||||
|  |                          AND YEAR (p."input_time") = 2025 | ||||||
|                       LIMIT 1000; |                       LIMIT 1000; | ||||||
|                   """, |                   """, | ||||||
|         "tags": ["员工", "性别", "部门", "人数统计"], |         "tags": ["员工", "性别", "部门", "人数统计"], | ||||||
| @@ -248,9 +272,10 @@ question_and_answer = [ | |||||||
|                          COUNT(CASE WHEN p."highest_degree" = '2' THEN 1 END) AS "master_count" |                          COUNT(CASE WHEN p."highest_degree" = '2' THEN 1 END) AS "master_count" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" |                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" | ||||||
|           WHERE p."dr" = 0 AND p."internal_dept" IN ( |                   WHERE p."dr" = 0 | ||||||
|               SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                     AND p."internal_dept" IN (SELECT "id" | ||||||
|               START WITH ("name" || "shortname") LIKE '%XX%'  |                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH ("name" || "shortname") LIKE '%XX%' | ||||||
|                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' |                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid") |                   CONNECT BY PRIOR "id" = "parentid") | ||||||
|                       LIMIT 1000 |                       LIMIT 1000 | ||||||
| @@ -282,7 +307,11 @@ question_and_answer = [ | |||||||
|                   SELECT o."name" AS "部门名称", COUNT(*) AS "人数" |                   SELECT o."name" AS "部门名称", COUNT(*) AS "人数" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" |                            JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" | ||||||
|             WHERE p."highest_degree" = '3' AND p."dr" = 0 AND o."dr" = 0 AND o."enable" = 1 AND o."code" LIKE '%CYJ%'  |                   WHERE p."highest_degree" = '3' | ||||||
|  |                     AND p."dr" = 0 | ||||||
|  |                     AND o."dr" = 0 | ||||||
|  |                     AND o."enable" = 1 | ||||||
|  |                     AND o."code" LIKE '%CYJ%' | ||||||
|                   GROUP BY o."id", o."name" |                   GROUP BY o."id", o."name" | ||||||
|                   ORDER BY COUNT(*) DESC LIMIT 1000 |                   ORDER BY COUNT(*) DESC LIMIT 1000 | ||||||
|                   """, |                   """, | ||||||
| @@ -292,9 +321,13 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "张三的年龄是多少", |         "question": "张三的年龄是多少", | ||||||
|         "answer": """ |         "answer": """ | ||||||
|           SELECT p."name" AS "name", EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "age"  |                   SELECT p."name"                                                                        AS "name", | ||||||
|  |                          EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "age" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|           WHERE p."name" = '张三' AND p."dr" = 0 AND p."birthday" IS NOT NULL AND p."birthday" <> '' LIMIT 1; |                   WHERE p."name" = '张三' | ||||||
|  |                     AND p."dr" = 0 | ||||||
|  |                     AND p."birthday" IS NOT NULL | ||||||
|  |                     AND p."birthday" <> '' LIMIT 1; | ||||||
|                   """, |                   """, | ||||||
|         "tags": ["员工", "个人", "年龄", "单人员工"], |         "tags": ["员工", "个人", "年龄", "单人员工"], | ||||||
|         "category": "年龄分析" |         "category": "年龄分析" | ||||||
| @@ -346,16 +379,23 @@ question_and_answer = [ | |||||||
|         "answer": ''' |         "answer": ''' | ||||||
|                   SELECT CASE |                   SELECT CASE | ||||||
|                              WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后' |                              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) >= 1990 AND | ||||||
|                   WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'  |                                   CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后' | ||||||
|                   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) >= 1980 AND | ||||||
|                   WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'  |                                   CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后' | ||||||
|                   ELSE '其他年龄段' END AS "age_group", COUNT(*) AS "person_count"  |                              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 |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                   WHERE p."dr" = 0 AND p."birthday" IS NOT NULL AND p."birthday" != ''  |                   WHERE p."dr" = 0 | ||||||
|  |                     AND p."birthday" IS NOT NULL | ||||||
|  |                     AND p."birthday" != ''  | ||||||
|                   AND p."internal_dept" IN ( |                   AND p."internal_dept" IN ( | ||||||
|                   SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                   SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  | ||||||
|                   START WITH "name" || "shortname" LIKE '%数信中心%'  |                   START WITH "name" || "shortname" LIKE '%xx中心%'  | ||||||
|                   AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%'  |                   AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%'  | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|                   ) |                   ) | ||||||
| @@ -364,7 +404,8 @@ question_and_answer = [ | |||||||
|                       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) >= 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) >= 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后' |                       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 |                       ELSE '其他年龄段' | ||||||
|  |                   END ORDER BY "age_group" ASC LIMIT 1000 | ||||||
|                   ''', |                   ''', | ||||||
|         "tags": ["员工", "部门", "年龄", "分布统计"], |         "tags": ["员工", "部门", "年龄", "分布统计"], | ||||||
|         "category": "年龄分析" |         "category": "年龄分析" | ||||||
| @@ -396,10 +437,9 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "XX中心的张三九月份在岗天数", |         "question": "XX中心的张三九月份在岗天数", | ||||||
|         "answer": """ |         "answer": """ | ||||||
|               WITH dept_ids AS ( |                   WITH dept_ids AS (SELECT id | ||||||
|                   SELECT id  |                                     FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|                   FROM "IUAP_APDOC_BASEDOC"."org_orgs"   |                   WITH (name LIKE '%XX中心%' OR shortname LIKE '%XX中心%') | ||||||
|                   START WITH (name LIKE '%XX中心%' OR shortname LIKE '%XX中心%')  |  | ||||||
|                   CONNECT BY PRIOR id = parentid |                   CONNECT BY PRIOR id = parentid | ||||||
|                       ) |                       ) | ||||||
|                   SELECT p."code"                                         AS "工号", |                   SELECT p."code"                                         AS "工号", | ||||||
| @@ -413,8 +453,7 @@ question_and_answer = [ | |||||||
|                     AND ps."dr" = 0 |                     AND ps."dr" = 0 | ||||||
|                     AND p."dr" = 0 |                     AND p."dr" = 0 | ||||||
|                     AND p."internal_dept" IN (SELECT id FROM dept_ids) |                     AND p."internal_dept" IN (SELECT id FROM dept_ids) | ||||||
|               GROUP BY p."code", p."name" |                   GROUP BY p."code", p."name" LIMIT 1000; | ||||||
|               LIMIT 1000; |  | ||||||
|                   """, |                   """, | ||||||
|         "tags": ["员工", "个人", "部门", "考勤", "在岗天数"], |         "tags": ["员工", "个人", "部门", "考勤", "在岗天数"], | ||||||
|         "category": "考勤管理" |         "category": "考勤管理" | ||||||
| @@ -451,11 +490,15 @@ question_and_answer = [ | |||||||
|                     FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p  |                     FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p  | ||||||
|                             JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id  |                             JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id  | ||||||
|                             JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" s ON p.code = s.person_id  |                             JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" s ON p.code = s.person_id  | ||||||
|                 WHERE o.id IN (SELECT id FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                     WHERE o.id IN (SELECT id  | ||||||
|  |                                    FROM "IUAP_APDOC_BASEDOC"."org_orgs"  | ||||||
|                     START WITH "name" || "shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'  |                     START WITH "name" || "shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'  | ||||||
|                     CONNECT BY PRIOR "id" = "parentid")  |                     CONNECT BY PRIOR "id" = "parentid")  | ||||||
|                 AND s.status = '1001' AND s.date_value = TO_CHAR(SYSDATE - 1, 'yyyy-MM-dd')  |                             AND s.status = '1001'  | ||||||
|                 AND s.dr = 0 AND p.dr = 0 LIMIT 1000 |                             AND s.date_value = TO_CHAR(SYSDATE - 1,  | ||||||
|  |                             'yyyy-MM-dd')  | ||||||
|  |                             AND s.dr = 0  | ||||||
|  |                             AND p.dr = 0 LIMIT 1000 | ||||||
|                     ''', |                     ''', | ||||||
|             "tags": ["员工", "部门", "考勤", "在岗人数"], |             "tags": ["员工", "部门", "考勤", "在岗人数"], | ||||||
|             "category": "考勤管理" |             "category": "考勤管理" | ||||||
| @@ -476,7 +519,8 @@ question_and_answer = [ | |||||||
|                       ) |                       ) | ||||||
|                          AND ps."status" = '1003' |                          AND ps."status" = '1003' | ||||||
|                          AND ps."date_value" LIKE '2025-10%' |                          AND ps."date_value" LIKE '2025-10%' | ||||||
|               AND p."dr" = 0 AND ps."dr" = 0 LIMIT 1000 |                          AND p."dr" = 0 | ||||||
|  |                          AND ps."dr" = 0 LIMIT 1000 | ||||||
|                   """, |                   """, | ||||||
|         "tags": ["员工", "个人", "部门", "考勤", "休息天数"], |         "tags": ["员工", "个人", "部门", "考勤", "休息天数"], | ||||||
|         "category": "考勤管理" |         "category": "考勤管理" | ||||||
| @@ -506,7 +550,7 @@ question_and_answer = [ | |||||||
|         "category": "考勤管理" |         "category": "考勤管理" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|             "question": "数信部门9月有多少个人迟到", |         "question": "xx部门9月有多少个人迟到", | ||||||
|         "answer": ''' |         "answer": ''' | ||||||
|                   SELECT p."id"                                                               AS "id", |                   SELECT p."id"                                                               AS "id", | ||||||
|                          p."code"                                                             AS "工号", |                          p."code"                                                             AS "工号", | ||||||
| @@ -520,7 +564,7 @@ question_and_answer = [ | |||||||
|                     AND ps."date_value" LIKE '2025-10%' |                     AND ps."date_value" LIKE '2025-10%' | ||||||
|                     and p.internal_dept in (SELECT "id" |                     and p.internal_dept in (SELECT "id" | ||||||
|                                             FROM "IUAP_APDOC_BASEDOC"."org_orgs" START |                                             FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|                 WITH "name" || "shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' |                   WITH "name" || "shortname" LIKE '%xx部门%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|                       ) |                       ) | ||||||
|                          AND p."dr" = 0 |                          AND p."dr" = 0 | ||||||
| @@ -611,14 +655,20 @@ question_and_answer = [ | |||||||
|                            INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o |                            INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o | ||||||
|                                       ON p."internal_dept" = o."id" |                                       ON p."internal_dept" = o."id" | ||||||
|                   WHERE ps."date_value" IN ('2025-10-20', '2025-10-21', '2025-10-22') |                   WHERE ps."date_value" IN ('2025-10-20', '2025-10-21', '2025-10-22') | ||||||
|                 AND ps."status" = '1006' AND p."dr" = 0 AND ps."dr" = 0 AND o."dr" = 0  |                     AND ps."status" = '1006' | ||||||
|                 AND o."enable" = 1 AND o."code" LIKE '%CYJ%' AND o."id" IN ( |                     AND p."dr" = 0 | ||||||
|                     SELECT id FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                     AND ps."dr" = 0 | ||||||
|                     START WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%')  |                     AND o."dr" = 0 | ||||||
|  |                     AND o."enable" = 1 | ||||||
|  |                     AND o."code" LIKE '%CYJ%' | ||||||
|  |                     AND o."id" IN (SELECT id | ||||||
|  |                                    FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%') | ||||||
|                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' |                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|                       ) |                       ) | ||||||
|                 GROUP BY p."id", p."code", p."name", o."name" HAVING COUNT(*) = 3 LIMIT 1000 |                   GROUP BY p."id", p."code", p."name", o."name" | ||||||
|  |                   HAVING COUNT (*) = 3 LIMIT 1000 | ||||||
|                   ''', |                   ''', | ||||||
|         "tags": ["员工", "考勤", "部门", "天数", "迟到"], |         "tags": ["员工", "考勤", "部门", "天数", "迟到"], | ||||||
|         "category": "考勤管理" |         "category": "考勤管理" | ||||||
| @@ -626,20 +676,27 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "XX中心员工本周迟到两次及以上的人", |         "question": "XX中心员工本周迟到两次及以上的人", | ||||||
|         "answer": ''' |         "answer": ''' | ||||||
|                  SELECT p."id" AS "id", p."code" AS "工号", p."name" AS "姓名", o."name" AS "部门", COUNT(ps."id") AS "迟到次数"  |                   SELECT p."id"         AS "id", | ||||||
|  |                          p."code"       AS "工号", | ||||||
|  |                          p."name"       AS "姓名", | ||||||
|  |                          o."name"       AS "部门", | ||||||
|  |                          COUNT(ps."id") AS "迟到次数" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps |                            INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps | ||||||
|                                       ON p."code" = ps."person_id" |                                       ON p."code" = ps."person_id" | ||||||
|                            INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o |                            INNER JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o | ||||||
|                                       ON p."internal_dept" = o."id" |                                       ON p."internal_dept" = o."id" | ||||||
|                 WHERE p."internal_dept" IN ( |                   WHERE p."internal_dept" IN (SELECT "id" | ||||||
|                     SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|                     START WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%')  |                   WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%') | ||||||
|                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' |                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|                       ) |                       ) | ||||||
|                 AND ps."status" = '1006' AND ps."date_value"  |                          AND ps."status" = '1006' | ||||||
|                 BETWEEN '2025-10-16' AND '2025-10-22' AND p."dr" = 0  |                          AND ps."date_value" | ||||||
|  |                       BETWEEN '2025-10-16' | ||||||
|  |                          AND '2025-10-22' | ||||||
|  |                          AND p."dr" = 0 | ||||||
|                          AND ps."dr" = 0 |                          AND ps."dr" = 0 | ||||||
|                   GROUP BY p."id", p."code", p."name", o."name" |                   GROUP BY p."id", p."code", p."name", o."name" | ||||||
|                   HAVING COUNT (ps."id") >= 2 |                   HAVING COUNT (ps."id") >= 2 | ||||||
| @@ -677,20 +734,26 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "XX中心员工在林芝工作的天数", |         "question": "XX中心员工在林芝工作的天数", | ||||||
|         "answer": ''' |         "answer": ''' | ||||||
|               SELECT p."code" AS "工号", p."name" AS "姓名",  |                   SELECT p."code"                                                   AS "工号", | ||||||
|  |                          p."name"                                                   AS "姓名", | ||||||
|                          COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" |                          COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" |                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" | ||||||
|               LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac ON a."access_control_point" = ac."ac_point"  |                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac | ||||||
|               WHERE p."dr" = 0 AND a."dr" = 0 AND ac."region" = 5 AND a."attendance_time" >= '2025-09-01'  |                                      ON a."access_control_point" = ac."ac_point" | ||||||
|  |                   WHERE p."dr" = 0 | ||||||
|  |                     AND a."dr" = 0 | ||||||
|  |                     AND ac."region" = 5 | ||||||
|  |                     AND a."attendance_time" >= '2025-09-01' | ||||||
|                     AND a."attendance_time" < '2025-10-01' |                     AND a."attendance_time" < '2025-10-01' | ||||||
|                AND p."internal_dept" IN ( |                     AND p."internal_dept" IN (SELECT "id" | ||||||
|                SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"  |                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|                START WITH ("name" LIKE '%数信中心%' OR "shortname" LIKE '%数信中心%')  |                   WITH ("name" LIKE '%xx中心%' OR "shortname" LIKE '%xx中心%') | ||||||
|                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' |                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|                       ) |                       ) | ||||||
|                GROUP BY p."code", p."name" ORDER BY "在林芝工作天数" DESC LIMIT 1000; |                   GROUP BY p."code", p."name" | ||||||
|  |                   ORDER BY "在林芝工作天数" DESC LIMIT 1000; | ||||||
|                   ''', |                   ''', | ||||||
|         "tags": ["员工", "部门", "考勤", "工作地", "区域", "工作天数统计"], |         "tags": ["员工", "部门", "考勤", "工作地", "区域", "工作天数统计"], | ||||||
|         "category": "工作地考勤统计分析" |         "category": "工作地考勤统计分析" | ||||||
| @@ -716,7 +779,8 @@ question_and_answer = [ | |||||||
|                              WHEN b."region" = 2 THEN '成都' |                              WHEN b."region" = 2 THEN '成都' | ||||||
|                              WHEN b."region" = 3 THEN '秭归' |                              WHEN b."region" = 3 THEN '秭归' | ||||||
|                              WHEN b."region" = 4 THEN '拉萨' |                              WHEN b."region" = 4 THEN '拉萨' | ||||||
|                              WHEN b."region" = 5 THEN '林芝' END AS "地区",  b."ac_point" AS "门禁点" |                              WHEN b."region" = 5 THEN '林芝' END AS "地区", | ||||||
|  |                          b."ac_point"                            AS "门禁点" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a |                   FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a | ||||||
|                            JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b |                            JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b | ||||||
|                                 ON a."access_control_point" = b."ac_point" |                                 ON a."access_control_point" = b."ac_point" | ||||||
| @@ -755,8 +819,10 @@ question_and_answer = [ | |||||||
|                   FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a |                   FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a | ||||||
|                            LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b |                            LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b | ||||||
|                                      ON a.access_control_point = b.ac_point |                                      ON a.access_control_point = b.ac_point | ||||||
| 	              WHERE a.person_name = '张三' AND b.region IN (4,5,6,7,8)  |                   WHERE a.person_name = '张三' | ||||||
| 	              AND a.dr = 0 AND a.attendance_time >= '2025-01-01'  |                     AND b.region IN (4, 5, 6, 7, 8) | ||||||
|  |                     AND a.dr = 0 | ||||||
|  |                     AND a.attendance_time >= '2025-01-01' | ||||||
|                     AND a.attendance_time < '2025-10-24' LIMIT 1000 |                     AND a.attendance_time < '2025-10-24' LIMIT 1000 | ||||||
|                   ''', |                   ''', | ||||||
|         "tags": ["员工", "个人", "考勤", "工作地", "区域", "工作天数"], |         "tags": ["员工", "个人", "考勤", "工作地", "区域", "工作天数"], | ||||||
| @@ -769,8 +835,10 @@ question_and_answer = [ | |||||||
|                   FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a |                   FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a | ||||||
|                            JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b |                            JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area b | ||||||
|                                 ON a.access_control_point = b.ac_point |                                 ON a.access_control_point = b.ac_point | ||||||
| 	              WHERE a.person_name = '张三' AND b.region IN (4,5,6,7,8)  |                   WHERE a.person_name = '张三' | ||||||
| 	              AND a.dr = 0 ORDER BY a.attendance_time ASC LIMIT 1 |                     AND b.region IN (4, 5, 6, 7, 8) | ||||||
|  |                     AND a.dr = 0 | ||||||
|  |                   ORDER BY a.attendance_time ASC LIMIT 1 | ||||||
|                   ''', |                   ''', | ||||||
|         "tags": ["员工", "个人", "考勤", "工作地", "区域", "最早在藏时间"], |         "tags": ["员工", "个人", "考勤", "工作地", "区域", "最早在藏时间"], | ||||||
|         "category": "工作地考勤统计分析" |         "category": "工作地考勤统计分析" | ||||||
| @@ -780,12 +848,15 @@ question_and_answer = [ | |||||||
|         "answer": ''' |         "answer": ''' | ||||||
|                   SELECT TO_CHAR(a.attendance_time, 'yyyy-MM') AS month, COUNT(DISTINCT TO_CHAR(a.attendance_time, 'yyyy-MM-dd')) AS tibet_days |                   SELECT TO_CHAR(a.attendance_time, 'yyyy-MM') AS month, COUNT(DISTINCT TO_CHAR(a.attendance_time, 'yyyy-MM-dd')) AS tibet_days | ||||||
|                   FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a |                   FROM YJOA_APPSERVICE_DB.t_yj_person_attendance a | ||||||
|                 LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area ac ON a.access_control_point = ac.ac_point  |                       LEFT JOIN YJOA_APPSERVICE_DB.t_yj_person_ac_area ac | ||||||
|  |                   ON a.access_control_point = ac.ac_point | ||||||
|                   WHERE a.person_name = '张三' |                   WHERE a.person_name = '张三' | ||||||
|                     AND a.dr = 0 |                     AND a.dr = 0 | ||||||
|                   AND ac.region IN (4,5)  |                     AND ac.region IN (4 | ||||||
|  |                       , 5) | ||||||
|                     AND a.attendance_time >= '2025-05-01' |                     AND a.attendance_time >= '2025-05-01' | ||||||
|                   AND a.attendance_time < '2025-11-01'  |                     AND a.attendance_time | ||||||
|  |                       < '2025-11-01' | ||||||
|                   GROUP BY TO_CHAR(a.attendance_time, 'yyyy-MM') |                   GROUP BY TO_CHAR(a.attendance_time, 'yyyy-MM') | ||||||
|                   ORDER BY TO_CHAR(a.attendance_time, 'yyyy-MM') ASC |                   ORDER BY TO_CHAR(a.attendance_time, 'yyyy-MM') ASC | ||||||
|                       LIMIT 1000 |                       LIMIT 1000 | ||||||
| @@ -796,14 +867,19 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "XX中心在林芝最长时间的是谁,待了多少天", |         "question": "XX中心在林芝最长时间的是谁,待了多少天", | ||||||
|         "answer": ''' |         "answer": ''' | ||||||
|                 SELECT p."code" AS "工号", p."name" AS "姓名", COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" |                   SELECT p."code"                                                   AS "工号", | ||||||
|  |                          p."name"                                                   AS "姓名", | ||||||
|  |                          COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" |                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" | ||||||
|                 LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac ON a."access_control_point" = ac."ac_point" |                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac | ||||||
|                 WHERE p."dr" = 0 AND a."dr" = 0 AND ac."region" = 5 |                                      ON a."access_control_point" = ac."ac_point" | ||||||
|                   AND p."internal_dept" IN ( |                   WHERE p."dr" = 0 | ||||||
|                     SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs" |                     AND a."dr" = 0 | ||||||
|                     START WITH ("name" LIKE '%数信中心%' OR "shortname" LIKE '%数信中心%') |                     AND ac."region" = 5 | ||||||
|  |                     AND p."internal_dept" IN (SELECT "id" | ||||||
|  |                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH ("name" LIKE '%xx中心%' OR "shortname" LIKE '%xx中心%') | ||||||
|                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' |                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|                       ) |                       ) | ||||||
| @@ -817,25 +893,45 @@ question_and_answer = [ | |||||||
|     { |     { | ||||||
|         "question": "XX中心的员工九月在林芝工作的天数排名", |         "question": "XX中心的员工九月在林芝工作的天数排名", | ||||||
|         "answer": ''' |         "answer": ''' | ||||||
|                 SELECT p."code" AS "工号", p."name" AS "姓名", COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" |                   SELECT p."code"                                                   AS "工号", | ||||||
|  |                          p."name"                                                   AS "姓名", | ||||||
|  |                          COUNT(DISTINCT TO_CHAR(a."attendance_time", 'yyyy-MM-dd')) AS "在林芝工作天数" | ||||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p |                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||||
|                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" |                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a ON p."code" = a."person_id" | ||||||
|                 LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac ON a."access_control_point" = ac."ac_point" |                            LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" ac | ||||||
|                 WHERE p."dr" = 0 AND a."dr" = 0 AND ac."region" = 5 |                                      ON a."access_control_point" = ac."ac_point" | ||||||
|                   AND p."internal_dept" IN ( |                   WHERE p."dr" = 0 | ||||||
|                     SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs" |                     AND a."dr" = 0 | ||||||
|                     START WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%') |                     AND ac."region" = 5 | ||||||
|  |                     AND p."internal_dept" IN (SELECT "id" | ||||||
|  |                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||||
|  |                   WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%') | ||||||
|                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' |                       AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||||
|                   CONNECT BY PRIOR "id" = "parentid" |                   CONNECT BY PRIOR "id" = "parentid" | ||||||
|                       ) |                       ) | ||||||
|                   AND TO_CHAR(a."attendance_time", 'yyyy-MM') = '2025-09' |                          AND TO_CHAR(a."attendance_time" | ||||||
|  |                            , 'yyyy-MM') = '2025-09' | ||||||
|                   GROUP BY p."code", p."name" |                   GROUP BY p."code", p."name" | ||||||
|                   ORDER BY "在林芝工作天数" DESC |                   ORDER BY "在林芝工作天数" DESC | ||||||
|                       LIMIT 1000; |                       LIMIT 1000; | ||||||
|                   ''', |                   ''', | ||||||
|         "tags": ["员工", "个人", "考勤", "工作地", "区域", "天数", "排名"], |         "tags": ["员工", "个人", "考勤", "工作地", "区域", "天数", "排名"], | ||||||
|         "category": "工作地考勤统计分析" |         "category": "工作地考勤统计分析" | ||||||
|         }, |     }, { | ||||||
|  |         "question": "张三10月份是否有迟到", | ||||||
|  |         "answer": ''' | ||||||
|  |                   SELECT CASE WHEN COUNT(*) > 0 THEN '是' ELSE '否' END AS "是否迟到" | ||||||
|  |                   FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps | ||||||
|  |                            JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code" | ||||||
|  |                   WHERE p."name" = '张三' | ||||||
|  |                     AND ps."status" = '1006' | ||||||
|  |                     AND ps."date_value" LIKE '2025-10%' | ||||||
|  |                     AND ps."dr" = 0 | ||||||
|  |                     AND p."dr" = 0 | ||||||
|  |                   ''', | ||||||
|  |         "tags": ["员工", "个人", "考勤"], | ||||||
|  |         "category": "考勤" | ||||||
|  |     } | ||||||
|  |  | ||||||
| ] | ] | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 yujj128
					yujj128