1. db 접속 경로

DB_CONFIG = { "host": "100.105.75.47", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}

  1. 해당 스키마 : a2_fct_table, 해당 테이블 : fct_table

  2. 컬럼 end_day : 20251219 (TEXT 형식)→ 추후 변경 예정

  3. 컬럼 remark : ‘PD’만 해당

  4. 스키마 : e4_predictive_maintenance, 테이블 : pd_cal_test_ct_summary, 컬럼 test_contetns : 1.36_dark_curr_check & upper_outlier의 속성값(예시 : 33.19)을 컬럼 boundary_run_time을 만들어서 속성값으로 넣을 것

  5. 위 boundary_run_time의 속성값을 초과하는 run_time들을 출력

    참고로 테이블 fct_table의 컬럼 bacode_information의 속성값이 같으면 run_time의 속성값도 동일

  6. 해당 데이터를 컬럼 barcode_information, remark, station, end_day, end_time, boundary_run_time, run_time순으로 dataframe 출력(barcode_information의 속성값 중복되지 않고 1개만 가지고 올것), run_time의 top5%만 datafame으로 출력

  7. 출력된 dataframe의 barcode_information의 속성값을 아래의 스키마와 테이블에 JOIN할 것

  8. 해당 스키마 : c1_fct_detail, 해당 테이블 : fct_detail

  9. 컬럼 end_day : 2025-12-19 ,날짜 형식, cell1번의 컬럼 end_day의 속성값(TEXT 형식)을 반드시 따를 것

  10. 새로운 컬럼 group을 추가해서 컬럼 barcode_information, end_day, end_time속성값별로 번호를 속성값으로 넣어서 차례대로 정렬

  11. 컬럼 test_time 의 속성값은 오름차순으로 정렬

  12. 각 group 안에 contents : START :: MES 이전공정 체크 SKIP이 있는 행의 group은 제외

  13. contents : 제일 처음 ‘3~’가 들어가는 행 + test_ct : [NULL] 이 없는 group은 제외

  14. contents : 제일 처음 ‘3~’가 들어가는 행 + test_ct : [NULL]이 첫행

    예시) 3~192.168.108.153~FCT~PPIDBA1WJ25314501197SJ8T-14F014-AF~END

  15. 이후 test_time의 속성값으로 오름차순으로 정렬

  16. 컬럼 file_path과 그 속성값들도 제외

  17. content : 테스트 결과 : OK’ or ‘테스트 결과 : NG’ 에 해당하는 test_time의 속성값을 제일 첫 행의 컬럼 test_time의 속성값(기준)을 뺀 값을 컬럼 from_to_test_ct를 만들어 속성값으로 넣을 것

    예시) barcode_information : BA1WJ25302500862SJ8T-14F014-AF, remark : PD, end_day : 2025-11-17, contents : 3~192.168.108.154~FCT~PPIDBA1WJ25319503369SJ8T…, test_ct : [NULL], test_time : 00:00:13.21

    barcode_information : BA1WJ25302500862SJ8T-14F014-AF, remark : PD, end_day : 2025-11-17, (1st) contents : 테스트 결과 : OK or 테스트 결과 : NG, test_ct : 0.01, test_time : 00:00:15.21

    → from_to_test_ct : 2.00(초단위)

    barcode_information : BA1WJ25302500862SJ8T-14F014-AF, remark : PD, end_day : 2025-11-17, (2st) contents : 테스트 결과 : OK or 테스트 결과 : NG, test_ct : 0.01, test_time : 00:00:16.21

    → from_to_test_ct : 3.00(초단위)

  18. 컬럼 from_to_test_ct 추가하여 dataframe 출력