feat:代码整理-提交
This commit is contained in:
		| @@ -78,6 +78,7 @@ template: | ||||
|           <rule-detail>若用户未指定数据条数,**查询SQL必须包含1000条的限制**。若用户指定的限制大于1000,也按1000处理。 | ||||
|             - PostgreSQL: ... LIMIT 1000 | ||||
|           </rule-detail> | ||||
|           <rule-detail>涉及查询最大,最多,最小,最少等查询是,添加,limit 1</rule-detail> | ||||
|         </rule> | ||||
|         --- | ||||
|         --- C. 图表与业务理解规则 | ||||
| @@ -193,7 +194,7 @@ template: | ||||
|        | ||||
|       <user-question> | ||||
|       {question} | ||||
|       注意查询结果枚举值转换 | ||||
|       注意查询结果枚举值转换.返回json结果中,sql不要转义 | ||||
|       </user-question> | ||||
|    | ||||
|   chart: | ||||
|   | ||||
| @@ -112,19 +112,7 @@ question_and_answer = [ | ||||
|                   ''' | ||||
|     }, | ||||
|  | ||||
|     { | ||||
|         "question": "负责智能体相关工作的是哪些员工", | ||||
|         "answer": ''' | ||||
|                   SELECT "id"            AS "id", | ||||
|                          "code"          AS "工号", | ||||
|                          "name"          AS "姓名", | ||||
|                          "internal_unit" AS "内部单位", | ||||
|                          "external_unit" AS "外部单位", | ||||
|                          "work_content"  AS "工作内容" | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" | ||||
|                   WHERE "work_content" LIKE '%智能体%' LIMIT 1000 | ||||
|                   ''' | ||||
|     }, { | ||||
|      { | ||||
|         "question": "在研发基地工作的有哪些员工", | ||||
|         "answer": ''' | ||||
|                   SELECT "id"             AS "id", | ||||
| @@ -219,18 +207,18 @@ question_and_answer = [ | ||||
|     { | ||||
|         "question": "XX中心下各个处室分别有多少人", | ||||
|         "answer": ''' | ||||
|                     SELECT o.name AS "处室名称", COUNT(p.id) 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"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                         CONNECT BY PRIOR "id" = "parentid" | ||||
|                     ) | ||||
|                     AND p.dr = 0 | ||||
|                     GROUP BY o.name | ||||
|                     ORDER BY "人数" DESC  | ||||
|                     LIMIT 1000 | ||||
|                   SELECT o.name AS "处室名称", COUNT(p.id) 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"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p.dr = 0 | ||||
|                   GROUP BY o.name | ||||
|                   ORDER BY "人数" DESC | ||||
|                       LIMIT 1000 | ||||
|                   ''' | ||||
|     }, { | ||||
|         "question": "张三9月在林芝工作有多少天", | ||||
| @@ -250,23 +238,23 @@ question_and_answer = [ | ||||
|     { | ||||
|         "question": "10月XX中心有哪些有员工请假", | ||||
|         "answer": ''' | ||||
|                   SELECT  p."id"                                                               AS "id", | ||||
|                                   p."code"                                                             AS "工号", | ||||
|                                   p."name"                                                             AS "姓名", | ||||
|                                   p."internal_unit"                                                    AS "内部单位", | ||||
|                                   p."external_unit"                                                    AS "外部单位", | ||||
|                                   CASE WHEN ps."status" = '1003' THEN '休假,请假' ELSE ps."status" END AS "状态" | ||||
|                   SELECT p."id"                                                               AS "id", | ||||
|                          p."code"                                                             AS "工号", | ||||
|                          p."name"                                                             AS "姓名", | ||||
|                          p."internal_unit"                                                    AS "内部单位", | ||||
|                          p."external_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" | ||||
|                   WHERE ps."status" = '1003' | ||||
|                     AND ps."date_value" LIKE '2025-10%' | ||||
|                     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%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                     AND p."dr" = 0 | ||||
|                     AND ps."dr" = 0 LIMIT 1000 | ||||
|                          AND p."dr" = 0 | ||||
|                          AND ps."dr" = 0 LIMIT 1000 | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
| @@ -281,20 +269,23 @@ question_and_answer = [ | ||||
|     { | ||||
|         "question": "XX中心员工年龄段分布图", | ||||
|         "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" != '' | ||||
|                   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"  | ||||
| @@ -306,18 +297,18 @@ question_and_answer = [ | ||||
|                                 FROM "IUAP_APDOC_BASEDOC"."org_orgs"  | ||||
|                                 WHERE name || shortname LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%') | ||||
|                         ) | ||||
|                     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 | ||||
|                   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 | ||||
|                   ''' | ||||
|     },{ | ||||
|     }, { | ||||
|         "question": "查询XX部下面的员工以及他们的年龄", | ||||
|         "answer": ''' | ||||
|                   SELECT p."id"                                                                   AS "员工ID", | ||||
| @@ -358,195 +349,240 @@ question_and_answer = [ | ||||
|     { | ||||
|         "question": "XX部有几个人,男员工,女员工分别有多少", | ||||
|         "answer": ''' | ||||
|                     SELECT COUNT(*) AS "总人数",  | ||||
|                     SUM(CASE WHEN p."gender" = '1' 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 | ||||
|                     WHERE p."internal_dept" IN ( | ||||
|                         SELECT "id" | ||||
|                         FROM "IUAP_APDOC_BASEDOC"."org_orgs" | ||||
|                         START WITH "name" LIKE '%XX部%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                         CONNECT BY PRIOR "id" = "parentid" | ||||
|                     ) | ||||
|                     AND p."dr" = 0 | ||||
|                     LIMIT 1000; | ||||
|                   SELECT COUNT(*)                                          AS "总人数", | ||||
|                          SUM(CASE WHEN p."gender" = '1' 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 | ||||
|                   WHERE p."internal_dept" IN (SELECT "id" | ||||
|                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||
|                   WITH "name" LIKE '%XX部%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p."dr" = 0 | ||||
|                       LIMIT 1000; | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX综合部女员工有多少", | ||||
|         "answer": ''' | ||||
|                     SELECT (SELECT COUNT(*)  | ||||
|                     FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p  | ||||
|                     WHERE p."internal_dept" 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%' | ||||
|                                CONNECT BY PRIOR "id" = "parentid" | ||||
|                               ) | ||||
|                     AND p."gender" = '2' | ||||
|                     AND p."dr" = 0 | ||||
|                     ) AS "女员工数" | ||||
|                       ''' | ||||
|                   SELECT (SELECT COUNT(*) | ||||
|                           FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||
|                           WHERE p."internal_dept" 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%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p."gender" = '2' | ||||
|                          AND p."dr" = 0 | ||||
|                       ) AS "女员工数" | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心今天各个处室在岗人员数量", | ||||
|         "answer": ''' | ||||
|                     SELECT o.name AS "处室名称", COUNT(p.id) 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"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                         CONNECT BY PRIOR "id" = "parentid" | ||||
|                     )  | ||||
|                     AND p.id IN (SELECT person_id FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" WHERE status = '1001' AND date_value = TO_CHAR(SYSDATE, 'yyyy-MM-dd') AND dr = 0) | ||||
|                   SELECT o.name AS "处室名称", COUNT(p.id) 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"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p.id IN ( | ||||
|                   SELECT person_id | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" | ||||
|                   WHERE status = '1001' | ||||
|                     AND date_value = TO_CHAR(SYSDATE | ||||
|                       , 'yyyy-MM-dd') | ||||
|                     AND dr = 0) | ||||
|                     AND p.dr = 0 | ||||
|                     GROUP BY o.name | ||||
|                     ORDER BY "人数" DESC  | ||||
|                     LIMIT 1000 | ||||
|                   GROUP BY o.name | ||||
|                   ORDER BY "人数" DESC | ||||
|                       LIMIT 1000 | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心下的XX管理处有多少人", | ||||
|         "answer": ''' | ||||
|                     SELECT o.name AS "处室名称", COUNT(p.id) 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"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                         CONNECT BY PRIOR "id" = "parentid" | ||||
|                     ) | ||||
|                     AND p.dr = 0 AND o.name LIKE '%XX管理处%' | ||||
|                     GROUP BY o.name | ||||
|                     ORDER BY "人数" DESC  | ||||
|                     LIMIT 1000 | ||||
|                   SELECT o.name AS "处室名称", COUNT(p.id) 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"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p.dr = 0 | ||||
|                          AND o.name LIKE '%XX管理处%' | ||||
|                   GROUP BY o.name | ||||
|                   ORDER BY "人数" DESC | ||||
|                       LIMIT 1000 | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心男女各多少人", | ||||
|         "answer": ''' | ||||
|                     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 "女员工数" | ||||
|                     FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||
|                     WHERE p."internal_dept" IN ( | ||||
|                       SELECT "id" | ||||
|                       FROM "IUAP_APDOC_BASEDOC"."org_orgs" | ||||
|                       START WITH "name" LIKE '%XX中心%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||
|                       CONNECT BY PRIOR "id" = "parentid" | ||||
|                     ) | ||||
|                       AND p."dr" = 0 | ||||
|                     LIMIT 1000; | ||||
|                   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 "女员工数" | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||
|                   WHERE p."internal_dept" IN (SELECT "id" | ||||
|                                               FROM "IUAP_APDOC_BASEDOC"."org_orgs" START | ||||
|                   WITH "name" LIKE '%XX中心%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p."dr" = 0 | ||||
|                       LIMIT 1000; | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心在藏最长时间的人是谁,待了多少天了", | ||||
|         "answer": ''' | ||||
|                     SELECT p."name" AS "姓名", COUNT(ps."id") 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 ps."is_in_tibet" = 1 | ||||
|                       AND p."internal_dept" 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%' CONNECT BY PRIOR "id" = "parentid") | ||||
|                       AND ps."dr" = 0 | ||||
|                       AND p."dr" = 0 | ||||
|                     GROUP BY p."name" | ||||
|                     ORDER BY "在藏天数" DESC | ||||
|                     LIMIT 1 | ||||
|                   SELECT p."name" AS "姓名", COUNT(ps."id") 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 ps."is_in_tibet" = 1 | ||||
|                     AND p."internal_dept" 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%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid") | ||||
|                          AND ps."dr" = 0 | ||||
|                          AND p."dr" = 0 | ||||
|                   GROUP BY p."name" | ||||
|                   ORDER BY "在藏天数" DESC | ||||
|                       LIMIT 1 | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "张三今天早上9点半之前,今天早上0点之后,有打卡记录吗", | ||||
|         "answer": ''' | ||||
|                     SELECT a."person_name" AS "姓名", a."attendance_time" AS "考勤时间", a."attendance_address" AS "考勤地址", | ||||
|                            CASE | ||||
|                                WHEN a."status" = 1 THEN '在岗' | ||||
|                                WHEN a."status" = 2 THEN '出差' | ||||
|                                WHEN a."status" = 3 THEN '休假' | ||||
|                            END AS "状态", | ||||
|                            CASE | ||||
|                                WHEN a."enter_or_exit" = 1 THEN '进' | ||||
|                                WHEN a."enter_or_exit" = 2 THEN '出' | ||||
|                            END AS "进出类型" | ||||
|                       FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a | ||||
|                       WHERE a."person_name" = '张三' | ||||
|                         AND a."attendance_time" >= '2025-10-16 00:00:00' | ||||
|                         AND a."attendance_time" < '2025-10-16 09:30:00' | ||||
|                         AND a."dr" = 0 | ||||
|                       ORDER BY a."attendance_time" DESC LIMIT 1000 | ||||
|                  ''' | ||||
|                   SELECT a."person_name"        AS "姓名", | ||||
|                          a."attendance_time"    AS "考勤时间", | ||||
|                          a."attendance_address" AS "考勤地址", | ||||
|                          CASE | ||||
|                              WHEN a."status" = 1 THEN '在岗' | ||||
|                              WHEN a."status" = 2 THEN '出差' | ||||
|                              WHEN a."status" = 3 THEN '休假' | ||||
|                              END                AS "状态", | ||||
|                          CASE | ||||
|                              WHEN a."enter_or_exit" = 1 THEN '进' | ||||
|                              WHEN a."enter_or_exit" = 2 THEN '出' | ||||
|                              END                AS "进出类型" | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a | ||||
|                   WHERE a."person_name" = '张三' | ||||
|                     AND a."attendance_time" >= '2025-10-16 00:00:00' | ||||
|                     AND a."attendance_time" < '2025-10-16 09:30:00' | ||||
|                     AND a."dr" = 0 | ||||
|                   ORDER BY a."attendance_time" DESC LIMIT 1000 | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心正式人员有多少,各个处室有多少?", | ||||
|         "answer": ''' | ||||
|                     SELECT o.name AS "处室名称", COUNT(p.id) 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.person_type = 'YG'  | ||||
|                       AND p.dr = 0  | ||||
|                       AND o.enable = 1  | ||||
|                       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  | ||||
|                           CONNECT BY PRIOR "id" = "parentid"  | ||||
|                         )  | ||||
|                       )  | ||||
|                     GROUP BY o.name  | ||||
|                     ORDER BY "正式员工数量" DESC  | ||||
|                     LIMIT 1000; | ||||
|                  ''' | ||||
|                   SELECT o.name AS "处室名称", COUNT(p.id) 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.person_type = 'YG' | ||||
|                     AND p.dr = 0 | ||||
|                     AND o.enable = 1 | ||||
|                     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 | ||||
|                           CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                       ) | ||||
|                   GROUP BY o.name | ||||
|                   ORDER BY "正式员工数量" DESC | ||||
|                       LIMIT 1000; | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX部门年龄最小的员工是谁,多少岁?", | ||||
|         "answer": ''' | ||||
|                     SELECT p."name" AS "姓名",  | ||||
|                            CAST(p."birthday" AS DATE) AS "出生日期", | ||||
|                            EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "年龄" | ||||
|                       FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||
|                       WHERE p."internal_dept" 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%' | ||||
|                             CONNECT BY PRIOR "id" = "parentid" | ||||
|                           ) | ||||
|                         AND p."dr" = 0 | ||||
|                         AND p."birthday" IS NOT NULL | ||||
|                         AND p."birthday" != '' | ||||
|                       ORDER BY "年龄" ASC | ||||
|                   SELECT p."name"                                                                        AS "姓名", | ||||
|                          CAST(p."birthday" AS DATE)                                                      AS "出生日期", | ||||
|                          EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "年龄" | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||
|                   WHERE p."internal_dept" 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%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p."dr" = 0 | ||||
|                          AND p."birthday" IS NOT NULL | ||||
|                          AND p."birthday" != '' | ||||
|                   ORDER BY "年龄" ASC | ||||
|                       LIMIT 1 | ||||
|              ''' | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "有多少人外部单位是XX公司的", | ||||
|         "answer": ''' | ||||
|                   SELECT "external_unit" AS "外部单位", COUNT(*) AS "人数"  | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"  | ||||
|                   WHERE "external_unit" LIKE '%XX%' AND "dr" = 0  | ||||
|                   SELECT "external_unit" AS "外部单位", COUNT(*) AS "人数" | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" | ||||
|                   WHERE "external_unit" LIKE '%XX%' | ||||
|                     AND "dr" = 0 | ||||
|                   GROUP BY "external_unit" LIMIT 1000 | ||||
|          ''' | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX部门博士多少人", | ||||
|         "answer": ''' | ||||
|                     SELECT COUNT(*) 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"||"shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                         CONNECT BY PRIOR "id" = "parentid" | ||||
|                     ) | ||||
|                       AND p."dr" = 0 | ||||
|                       AND p."highest_degree" = '3' | ||||
|                     LIMIT 1000 | ||||
|      ''' | ||||
|     }, | ||||
|                   SELECT COUNT(*) 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"||"shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                          AND p."dr" = 0 | ||||
|                          AND p."highest_degree" = '3' | ||||
|                       LIMIT 1000 | ||||
|                   ''' | ||||
|     }, { | ||||
|         "question": "XX中心在藏最长时间的人是谁", | ||||
|         "answer": ''' | ||||
|                   SELECT p."name" AS "姓名", p."code" AS "工号", COUNT(ps."id") 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 ps."is_in_tibet" = 1 | ||||
|                     AND ps."dr" = 0 | ||||
|                     AND p."dr" = 0 | ||||
|                     and p.internal_dept 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%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid" | ||||
|                       ) | ||||
|                   GROUP BY p."name", p."code" | ||||
|                   ORDER BY COUNT (ps."id") DESC LIMIT 1 | ||||
|                   ''' | ||||
|     }, { | ||||
|         "question": "XX中心员工在林芝工作的天数", | ||||
|         "answer": ''' | ||||
|                   SELECT DISTINCT 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 | ||||
|                            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" | ||||
|                   WHERE p."dr" = 0 | ||||
|                     AND a."dr" = 0 | ||||
|                     AND ac."region" = 5 | ||||
|                     AND p."internal_dept" 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%' | ||||
|                   CONNECT BY PRIOR "id" = "parentid") | ||||
|                   GROUP BY p."code", p."name" | ||||
|                   ORDER BY "在林芝工作天数" DESC LIMIT 1000 | ||||
|                   ''' | ||||
|     } | ||||
|  | ||||
| ] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 雷雨
					雷雨