279 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			279 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| question_and_answer = [
 | ||
| 
 | ||
|     {"question": "所有员工男女各有多少人",
 | ||
|      "answer": '''
 | ||
|                SELECT CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' END AS "gender",
 | ||
|                       COUNT(*)                                                             AS "person_count"
 | ||
|                FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
 | ||
|                WHERE "dr" = 0
 | ||
|                GROUP BY "gender"
 | ||
|                ORDER BY "gender" ASC LIMIT 1000
 | ||
|                '''
 | ||
|      },
 | ||
|     {
 | ||
|         "question": "外部单位是联通下面有哪些员工",
 | ||
|         "answer": '''
 | ||
|                   SELECT "id"            AS "id",
 | ||
|                          "code"          AS "工号",
 | ||
|                          "name"          AS "姓名",
 | ||
|                         
 | ||
|                          "external_unit" AS "外部单位"
 | ||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
 | ||
|                   WHERE 
 | ||
|                      "external_unit" LIKE '%联通%' LIMIT 1000
 | ||
|                   '''
 | ||
|     },
 | ||
|     {
 | ||
|         "question": "9月有多少哪些员工在休假",
 | ||
|         "answer": '''
 | ||
|                   SELECT DISTINCT p."id"            AS "id",
 | ||
|                                   p."code"          AS "工号",
 | ||
|                                   p."name"          AS "姓名",
 | ||
|                                   p."internal_unit" AS "内部单位",
 | ||
|                                   p."external_unit" 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-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": '''
 | ||
|                   SELECT DISTINCT "name"                                        AS "姓名",
 | ||
|                                   "code"                                        AS "工号",
 | ||
|                                   "internal_unit"                               AS "内部单位",
 | ||
|                                   "external_unit"                               AS "外部单位",
 | ||
|                                   CASE
 | ||
|                                       WHEN "highest_degree" = '1' THEN '学士学位'
 | ||
|                                       WHEN "highest_degree" = '2' THEN '硕士学位'
 | ||
|                                       WHEN "highest_degree" = '3' THEN '博士学位'
 | ||
|                                       WHEN "highest_degree" = '4' THEN '无' END AS "最高学位"
 | ||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
 | ||
|                   WHERE "highest_degree" IN ('2', '3')
 | ||
|                     AND "dr" = '0'
 | ||
|                   ORDER BY "最高学位", "姓名" LIMIT 1000
 | ||
|                   '''
 | ||
|     }, {
 | ||
|         "question": "8月份在藏超过10天的有哪些员工",
 | ||
|         "answer": '''
 | ||
|                   SELECT DISTINCT p."code"                       AS "工号",
 | ||
|                                   p."name"                       AS "姓名",
 | ||
|                                   CASE
 | ||
|                                       WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
 | ||
|                                       ELSE p."external_unit" END 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 ps."date_value" LIKE '2025-08%'
 | ||
|                   GROUP BY p."code", p."name",
 | ||
|                            CASE
 | ||
|                                WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
 | ||
|                                ELSE p."external_unit" END
 | ||
|                   HAVING COUNT(ps."id") > 10
 | ||
|                   ORDER BY COUNT(ps."id") DESC 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" = '1001' THEN '在岗'
 | ||
|                                       WHEN ps."status" = '1002' THEN '出差'
 | ||
|                                       WHEN ps."status" = '1003' THEN '休假,请假'
 | ||
|                                       WHEN ps."status" = '1005' THEN '旷工'
 | ||
|                                       WHEN ps."status" = '1006' THEN '迟到,早退'
 | ||
|                                       WHEN ps."status" = '1007' THEN '休息日'
 | ||
|                                       WHEN ps."status" = '4001' THEN 'am在岗pm缺勤'
 | ||
|                                       WHEN ps."status" = '4002' THEN 'am缺勤pm在岗'
 | ||
|                                       WHEN ps."status" = '6001' THEN 'am在岗pm早退'
 | ||
|                                       WHEN ps."status" = '6002' THEN 'am迟到pm在岗'
 | ||
|                                       WHEN ps."status" = '6004' THEN 'am迟到pm缺勤'
 | ||
|                                       WHEN ps."status" = '4006' THEN 'am缺勤pm早退' 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."name" = '张三'
 | ||
|                     AND ps."date_value" LIKE '2025-08%'
 | ||
|                     AND ps."dr" = 0
 | ||
|                   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": '''
 | ||
|                   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": "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": '''
 | ||
|                   SELECT "id"             AS "id",
 | ||
|                          "code"           AS "工号",
 | ||
|                          "name"           AS "姓名",
 | ||
|                          "internal_unit"  AS "内部单位",
 | ||
|                          "external_unit"  AS "外部单位",
 | ||
|                          "office_address" AS "办公地点"
 | ||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
 | ||
|                   WHERE ("office_address" LIKE '%研发基地%' OR "office_city" LIKE '%研发基地%')
 | ||
|                     AND "dr" = '0' LIMIT 1000
 | ||
|                   '''
 | ||
|     },
 | ||
|     {
 | ||
|         "question": "查询张三9月在林芝的打卡记录",
 | ||
|         "answer": '''
 | ||
|                   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 "状态",
 | ||
|                          CASE
 | ||
|                              WHEN a."enter_or_exit" = 0 THEN '进'
 | ||
|                              WHEN a."enter_or_exit" = 1
 | ||
|                                  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 "门禁点"
 | ||
|                   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"
 | ||
|                   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
 | ||
|                   ORDER BY a."attendance_time" DESC LIMIT 1000
 | ||
|                   '''
 | ||
|     },{
 | ||
|         "question": "查询张三9月份有多少天在岗",
 | ||
|         "answer": '''
 | ||
|                   SELECT p."code"                                         AS "工号",
 | ||
|                          p."name"                                         AS "姓名",
 | ||
|                          CASE
 | ||
|                              WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
 | ||
|                              ELSE p."external_unit"
 | ||
|                              END                                          AS "单位",
 | ||
|                          COUNT(CASE WHEN ps."status" = '1001' THEN 1 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."date_value" LIKE '2025-09%'
 | ||
|                     AND ps."dr" = 0
 | ||
|                     AND p."dr" = 0
 | ||
|                   GROUP BY p."code", p."name",
 | ||
|                            CASE
 | ||
|                                WHEN p."internal_unit" IS NOT NULL AND p."internal_unit" != '' THEN p."internal_unit"
 | ||
|                                ELSE p."external_unit"
 | ||
|                                END LIMIT 1000
 | ||
|                   '''
 | ||
|     },{
 | ||
|         "question": "数信中心 部门下有多少员工",
 | ||
|         "answer": '''
 | ||
|                   select count(*)
 | ||
|                   from YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database
 | ||
|                   where 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 '数信中心'))
 | ||
| 
 | ||
| 
 | ||
|                   '''
 | ||
|     },
 | ||
|     {
 | ||
|         "question": "各个外部单位下的员工人数统计",
 | ||
|         "answer": '''
 | ||
|                   sELECT "external_unit" AS "外部单位", COUNT(*) AS "员工人数"
 | ||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"
 | ||
|                   WHERE "external_unit" IS NOT NULL
 | ||
|                     AND "external_unit" != ''
 | ||
|                   GROUP BY "external_unit"
 | ||
|                   ORDER BY "员工人数" DESC LIMIT 1000
 | ||
|                   '''
 | ||
|     },
 | ||
|     {
 | ||
|         "question": "数信中心下各个处室分别有多少人",
 | ||
|         "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 o.parentid IN (SELECT id FROM IUAP_APDOC_BASEDOC.org_orgs WHERE name LIKE '数信中心')
 | ||
|                     AND p.dr = 0
 | ||
|                   GROUP BY o.name
 | ||
|                   ORDER BY "人数" DESC LIMIT 1000
 | ||
|                   '''
 | ||
|     },{
 | ||
|         "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 a."attendance_time" >= '2025-09-01'
 | ||
|                     AND a."attendance_time"
 | ||
|                       < '2025-10-01'
 | ||
|                     AND a."dr" = 0 LIMIT 1000
 | ||
|                   '''
 | ||
|     }
 | ||
| 
 | ||
| ]
 | 
