diff --git a/util/q_and_a_dict.py b/util/q_and_a_dict.py index b62efbd..d147eeb 100644 --- a/util/q_and_a_dict.py +++ b/util/q_and_a_dict.py @@ -16,11 +16,10 @@ question_and_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 + WHERE "external_unit" LIKE '%联通%' LIMIT 1000 ''' }, { @@ -37,26 +36,7 @@ question_and_answer = [ AND ps."date_value" LIKE '2025-09%' LIMIT 1000 ''' }, - { - "question": "联通的员工,8月份有哪些迟到,旷工的", - "answer": ''' - SELECT DISTINCT p."code" AS "工号", - p."name" AS "姓名", - p."internal_unit" AS "内部单位", - p."external_unit" AS "外部单位", - CASE - WHEN ps."status" = '1006' THEN '迟到,早退' - WHEN ps."status" = '1005' THEN '旷工' END AS "人员状态", - ps."date_value" 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."internal_unit" LIKE '%联通%' OR p."external_unit" LIKE '%联通%') - AND ps."status" IN ('1005', '1006') - AND ps."date_value" LIKE '2025-08%' - AND ps."dr" = 0 - ORDER BY ps."date_value" DESC LIMIT 1000 - ''' - }, + { "question": "博士和硕士分别有哪些员工", "answer": ''' @@ -75,7 +55,7 @@ question_and_answer = [ ORDER BY "最高学位", "姓名" LIMIT 1000 ''' }, { - "question": "8月份在藏超过10天的有哪些员工", + "question": "8月份在藏,超过10天的有哪些员工", "answer": ''' SELECT DISTINCT p."code" AS "工号", p."name" AS "姓名", @@ -126,16 +106,7 @@ question_and_answer = [ ORDER BY ps."date_value" DESC LIMIT 1000 ''' }, - { - "question": "8月份有多人迟到", - "answer": ''' - SELECT count(distinct person_id) - FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps - WHERE ps."status" = '1006' - AND ps."date_value" LIKE '2025-08%' - AND ps."dr" = 0 LIMIT 1000 - ''' - }, + { "question": "负责智能体相关工作的是哪些员工", "answer": ''' @@ -148,18 +119,6 @@ question_and_answer = [ FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" WHERE "work_content" LIKE '%智能体%' LIMIT 1000 ''' - }, { - "question": "9月,旷工,迟到分别有多少人", - "answer": ''' - SELECT CASE WHEN "status" = '1006' THEN '迟到' WHEN "status" = '1005' THEN '旷工' END AS "status_name", - COUNT(DISTINCT "person_id") AS "person_count" - FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" - WHERE "status" IN ('1006', '1005') - AND "date_value" LIKE '2025-09%' - AND "dr" = 0 - GROUP BY "status" - ORDER BY "status" LIMIT 1000 - ''' }, { "question": "在研发基地工作的有哪些员工", "answer": ''' @@ -177,34 +136,35 @@ question_and_answer = [ { "question": "查询张三9月在林芝的打卡记录", "answer": ''' - SELECT a."person_name" AS "姓名", - a."person_id" AS "人员ID", - a."attendance_time" AS "考勤时间", - a."attendance_address" AS "考勤地址", + SELECT a."person_name" AS "姓名", + a."person_id" AS "人员ID", + a."attendance_time" AS "考勤时间", + a."attendance_address" AS "考勤地址", CASE WHEN a."status" = 0 THEN '在岗' WHEN a."status" = 1 THEN '出差' - WHEN a."status" = 2 THEN '休假' END AS "状态", + WHEN a."status" = 2 THEN '休假' END AS "状态", CASE WHEN a."enter_or_exit" = 0 THEN '进' WHEN a."enter_or_exit" = 1 - THEN '出' END AS "进出类型", + THEN '出' END AS "进出类型", CASE WHEN b."region" = 1 THEN '北京' WHEN b."region" = 2 THEN '成都' WHEN b."region" = 3 THEN '秭归' - WHEN b."region" = 5 THEN '林芝' END AS "地区", - AS "门禁点" + WHEN b."region" = 5 THEN '林芝' END AS "地区", AS "门禁点" FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a - JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b ON a."access_control_point" = b."ac_point" + JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b + ON a."access_control_point" = b."ac_point" WHERE a."person_name" = '张三' AND b."region" = 5 AND a."attendance_time" >= '2025-09-01' - AND a."attendance_time" < '2025-10-01' + AND a."attendance_time" + < '2025-10-01' AND a."dr" = 0 ORDER BY a."attendance_time" DESC LIMIT 1000 ''' - },{ + }, { "question": "查询张三9月份有多少天在岗", "answer": ''' SELECT p."code" AS "工号", @@ -226,7 +186,7 @@ question_and_answer = [ ELSE p."external_unit" END LIMIT 1000 ''' - },{ + }, { "question": "数信中心 部门下有多少员工", "answer": ''' select count(*) @@ -261,18 +221,51 @@ question_and_answer = [ GROUP BY o.name ORDER BY "人数" DESC LIMIT 1000 ''' - },{ - "question": "张三9月在林芝多少天", + }, { + "question": "张三9月在林芝工作有多少天", "answer": ''' SELECT count(distinct (TO_CHAR(a."attendance_time", 'yyyy-MM-dd'))) as count FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a LEFT JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b ON a."access_control_point" = b."ac_point" + WHERE a."person_name" = '张三' + and b.region=5 AND a."attendance_time" >= '2025-09-01' AND a."attendance_time" < '2025-10-01' AND a."dr" = 0 LIMIT 1000 ''' + }, + { + "question": "10月数信中心有哪些有员工请假", + "answer": ''' + SELECT DISTINCT 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 + where parentid in + (select id from IUAP_APDOC_BASEDOC.org_orgs where name like '数信中心') + ) + AND p."dr" = 0 + AND ps."dr" = 0 LIMIT 1000 + ''' + }, + { + "question": "有多少个人迟到,9月", + "answer": ''' + SELECT COUNT(DISTINCT ps."person_id") AS "迟到人数" + FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" ps + WHERE ps."status" = '1006' + AND ps."date_value" LIKE '2025-09%' LIMIT 1000 + ''' } ]