diff --git a/main_service.py b/main_service.py index 37854a2..bc9fe82 100644 --- a/main_service.py +++ b/main_service.py @@ -57,10 +57,10 @@ def create_vana(): def init_vn(vn): logger.info("--------------init vana-----connect to datasouce db----") - # connect_database(vn) - load_ddl_doc.add_ddl(vn) - load_ddl_doc.add_documentation(vn) + connect_database(vn) if config('IS_FIRST_LOAD', default=False, cast=bool): + load_ddl_doc.add_ddl(vn) + load_ddl_doc.add_documentation(vn) load_train_data_ddl(vn) return vn diff --git a/util/q_a_next.py b/util/q_a_next.py index a2bf68c..b22ec83 100644 --- a/util/q_a_next.py +++ b/util/q_a_next.py @@ -24,7 +24,7 @@ org_and_attend_q_a = [ "tags": ["员工", "部门","考勤", "工作地", "区域", "天数"], "category": "工作地考勤统计分析" }, { - "question": "xx中心10月有哪些人迟到/早退", + "question": "xx中心10月有哪些人迟到", "answer": ''' SELECT p."id" AS "id", p."code" AS "code", @@ -33,7 +33,7 @@ org_and_attend_q_a = [ FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps INNER JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p ON p."code" = ps."person_id" - WHERE ps."status" = '1006' + WHERE ps."status" in ('1006','1009','6002','6004') AND ps."date_value" LIKE '2025-10%' AND ps."dr" = 0 AND p."dr" = 0 @@ -123,7 +123,7 @@ org_and_attend_q_a = [ JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps ON p.id = ps.person_id WHERE p.dr = 0 AND ps.dr = 0 - AND ps.status = '1006' + AND ps.status in ('1006','1009','6002','6004') AND ps.date_value LIKE '2025-09%' 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 @@ -181,6 +181,8 @@ org_and_attend_q_a = [ WHEN ps."status" = '1005' THEN '旷工' WHEN ps."status" = '1006' THEN '迟到,早退' WHEN ps."status" = '1007' THEN '休息日' + WHEN ps."status" = '1008' THEN '加班' + WHEN ps."status" = '1009' THEN '迟到' WHEN ps."status" = '4001' THEN 'am在岗pm缺勤' WHEN ps."status" = '4002' THEN 'am缺勤pm在岗' WHEN ps."status" = '6001' THEN 'am在岗pm早退' @@ -206,7 +208,7 @@ org_and_attend_q_a = [ JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code" JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" - WHERE ps."status" = '1006' + WHERE ps."status" in ('1006','1009','6002','6004') AND ps."date_value" LIKE '2025-10%' AND ps."dr" = 0 AND o."dr" = 0 @@ -217,6 +219,48 @@ org_and_attend_q_a = [ ''', "tags": ["员工", "部门", "考勤", "迟到","人数","最值"], "category": "考勤管理" - } + }, +{ + "question": "10月加班人数最多的部门", + "answer": ''' + SELECT o."name" AS "部门名称", COUNT(DISTINCT ps."person_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" + JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p."internal_dept" = o."id" + WHERE ps."status" in ('1008') + AND ps."date_value" LIKE '2025-10%' + AND ps."dr" = 0 + AND o."dr" = 0 + AND o."enable" = 1 + AND o."code" LIKE '%CYJ%' + GROUP BY o."name" + ORDER BY COUNT(DISTINCT ps."person_id") DESC LIMIT 1 + ''', + "tags": ["员工", "部门", "考勤", "加班","人数","最值"], + "category": "考勤管理" + }, + { + "question": "xx中心10月有哪些人加班", + "answer": ''' + SELECT p."id" AS "id", + p."code" AS "code", + p."name" AS "name", + CASE WHEN ps."status" = '1008' THEN '加班' ELSE ps."status" END AS "status" + FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps + INNER JOIN "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p + ON p."code" = ps."person_id" + WHERE ps."status" = '1008' + AND ps."date_value" LIKE '2025-10%' + 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") + ORDER BY ps."date_value" DESC LIMIT 1000 + ''', + "tags": ["员工", "部门", "考勤", "加班"], + "category": "考勤管理" + }, ] diff --git a/util/q_and_a_test1.py b/util/q_and_a_test1.py index ce6503b..c1604f5 100644 --- a/util/q_and_a_test1.py +++ b/util/q_and_a_test1.py @@ -170,55 +170,7 @@ question_and_answer = [ "tags": ["员工", "部门", "列表查询"], "category": "部门人员查询" }, - { - "question": "XX综合部男员工有哪些人", - "answer": """ - SELECT p."id" AS "ID", - p."code" 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 - 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 (SELECT "id" - 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 - """, - "tags": ["员工", "性别", "部门", "列表查询"], - "category": "性别分布统计" - }, - { - "question": "XX综合部女员工有那些人", - "answer": """ - SELECT p."id" AS "id", - p."code" 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 - 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%' - CONNECT BY PRIOR "id" = "parentid") - AND p."dr" = 0 - AND p."gender" = '2' - ORDER BY p."create_time" - DESC LIMIT 1000 - """, - "tags": ["员工", "性别", "部门"], - "category": "性别分布统计" - }, + { "question": "XX部有多少员工,男女员工分别有多少", "answer": """ @@ -237,40 +189,7 @@ question_and_answer = [ "tags": ["员工", "性别", "部门", "人数统计"], "category": "性别分布统计" }, - { - "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; - """, - "tags": ["员工", "性别", "部门", "人数统计"], - "category": "性别分布统计" - }, - { - "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 "女员工数" - """, - "tags": ["员工", "性别", "部门", "人数统计"], - "category": "性别分布统计" - }, + { "question": "今年新入职XX部门的员工中,男女各有多少", "answer": """