db 접속 경로
DB_CONFIG = {"host": "localhost", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}
해당 스키마 : c1_fct_detail, 해당 테이블 : fct_detail
컬럼 end_day 조건 : 2025-11-16 ~ 2025-11-18
컬럼 group을 추가하여 컬럼 barcode_information, end_day, end_time이 같으면 같은 컬럼 group의 속성값 대입 1,2,3…..
컬럼 contents의 속성값에 ‘MES’ 단어가 들어가는 행과 그 group 전체는 제외
컬럼 end_day, end_time의 속성값을 오름차순 정렬
컬럼 group, barcode_information, remark, end_day, end_time, contents, test_ct, test_time, file_path 순서로 dataframe 출력
컬럼 group의 동일한 속성값 안에 들어가 있는 행들은 컬럼 test_time의 속성값을 오름차순으로 정렬
컬럼 remark의 속성값 ‘PD’ 인 경우, 컬럼 contents : 테스트 결과 : OK 또는 테스트 결과 : NG → 총 78개
9-1) 컬럼 test_time 속성값 오름차순으로 정렬 후, 각 group 별로 반드시 아래와 같이 진행될 것
1번째 contents : ‘테스트 결과 : OK or 테스트 결과 : NG행’ 에 해당하는 행의 컬럼 test_ct의 속성값과 이전 모든 행의 컬럼 test_ct의 속성값을 모두 더한 값을 컬럼 set_up_or_test_ct의 속성값으로 넣을 것
2번째부터 78번째의 contents : ‘테스트 결과 : OK or 테스트 결과 : NG행’ 에 해당하는 행의 컬럼 test_ct의 속성값과 바로 이전 contents : ‘테스트 결과 : OK or 테스트 결과 : NG’ 에 해당하는 행 이전까지의 행의 test_ct 속성값을 모두 더해서 컬럼 set_up_or_test_ct의 속성값으로 넣을 것
예시) contents : 00674~192.168.108.154~FCT~PPIDBA1WJ25350502026USJ8T-14F014-AF~00~OK~END, test_ct : [NULL]
contents : START :: DMM SET CURRENT RANGE, test_ct : 2.24
contents : MODE SET :: CURR_RANG, test_ct : 4.33
1번째 contents : 테스트 결과 : OK, test_ct : 0.01 → set_up_or_test_ct : 6.58
contents : START :: DO SET, test_ct : 0.02
contents : DO_SET Value :: 0900800080005000, test_ct : 0.01
2번째 contents : 테스트 결과 : OK, test_ct : 0.01 → 0.04
컬럼 remark의 속성값 ‘PD’ 인 경우, 컬럼 contents의 속성값 : 테스트 결과 : OK 또는 테스트 결과 : NG → 총 78개
10-1) 아래의 컬럼 contents의 속성값 : 테스트 결과 : OK 또는 테스트 결과 : NG 의 순서 별로 컬럼 step_decription을 만들어서 속성값으로 넣을 것
1번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_dmm_c_rng_set
2번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_d_sig_val_090_set
3번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_load_c_set_cc
4번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_load_c_cc_rng_set
5번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_d_sig_val_000_set
6번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_dmm_dc_v_set
7번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_dmm_ac_0.6_set
8번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_ps_14.7_set
9번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_dmm_dc_c_set
10번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.01_ps_14.7_on
11번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.00_dmm_ac_0.6_set
12번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.01 Test Input Voltage(V)
13번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.02_Test_USB2_error(Type-C_A_side)
14번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.03_Test USB2 benchmark.maxrd(Mbit/s)
15번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.04 Test USB2 benchmark.maxwr(Mbit/s)
16번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.05 Test USB2 benchmark.avgrw(Mbit/s)
17번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.06_Test_USB1_error(Type-A)
18번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.07 Test USB1 benchmark.maxrd(Mbit/s)
19번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.08 Test USB1 benchmark.maxwr(Mbit/s)
20번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.09 Test USB1 benchmark.avgrw(Mbit/s)
21번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.10 Test Boston Firmware Version
22번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.11 Test Boston ASIC Version
23번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.12_Test_Carplay_Type-C(B_side)
24번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.13_Test_Carplay_Type-A
25번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.14 Profile Count Check
26번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_dmm_c_rng_set
27번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_load_a_cc_set
28번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_load_a_rng_set
29번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_load_c_cc_set
30번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_load_c_rng_set
31번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_dmm_regi_set
32번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_dmm_regi_ac_0.6_set
33번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15_d_sig_val_000_set
34번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.15 Test Power-NC_Line(ohm)Resistor
35번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.16 Test DIM-NC_Line(ohm)
36번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.17 Test DIM-GND(ohm)
37번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_dmm_dc_v_set
38번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_dmm_ac_0.6_set
39번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_dmm_dc_c_set
40번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_load_a_sensing_on
41번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_load_c_sensing_on
42번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_ps_18v_set
43번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_ps_18v_on
44번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18_dmm_ac_0.6_set
45번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.18 Test Input Voltage(V)
46번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.19 Test Idle Current(mA)
47번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.20 Test VUSB_type-C(No-Load-A_side)
48번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.21 Test VUSB_Type-A(No-Load)
49번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.22_dmm_3c_rng_set
50번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.22_load_a_5c_set
51번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.22_load_a_on
52번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.22 Test VUSB_Type-A(ELoad1=5A)Current
53번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.23 Test VUSB_Type-A(ELoad1=5A)Volt
54번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.24 Test VUSB_Type-C(ELoad2=5A)
55번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.25_load_a_off
56번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.25_load_c_5c_set
57번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.24_load_c_on
58번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.25 Test VUSB_Type-C(ELoad2=5A)Current
59번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.26 Test VUSB_Type-C(ELoad2=5A)Volt
60번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.27 Test VUSB_Type-A(ELoad1=5A)
61번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.28_load_c_off
62번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.28_load_a_2.4c_set
63번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.28_load_c_3c_set
64번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.28_load_a_2.4c_on
65번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.28_load_c_3c_on
66번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.28_Test_IELoad2_Type-C(B_side)
67번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.29_Test_VUSB_type-C_B_side(ELoad2=3A)
68번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.30 Test IELoad1_Type-A
69번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.31_Test_Type-A(ELoad1=2.4A)
70번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.32_load_c_1.3c_set
71번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.32_PD Negotiation SET PDO4
72번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.33_Test_VUSB_Type-C_A(ELoad2=1.35A)cur
73번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.34_Test_VUSB_Type-C_A(ELoad2=1.35A)vol
74번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.35 Test Check CC1 level(A side)
75번째 테스트 결과 : OK or 테스트 결과 : NG > pd_1.36_load_c_off
컬럼 step_description의 속성값 pd_1.10 Test Boston Firmware Version, pd_1.11 Test Boston ASIC Version, pd_1.02_Test_USB2_error(Type-C_A_side)
, pd_1.03_Test USB2 benchmark.maxrd(Mbit/s), pd_1.04 Test USB2 benchmark.maxwr(Mbit/s), pd_1.05 Test USB2 benchmark.avgrw(Mbit/s), pd_1.06_Test_USB1_error(Type-A), pd_1.07 Test USB1 benchmark.maxrd(Mbit/s), pd_1.08 Test USB1 benchmark.maxwr(Mbit/s), pd_1.09 Test USB1 benchmark.avgrw(Mbit/s)에 해당하는 행은 삭제
컬럼 remark의 속성값 ‘Non-PD’ 인 경우, 컬럼 contents : 테스트 결과 : OK 또는 테스트 결과 : NG → 총 67개
컬럼 remark의 속성값 ‘Non-PD’ 인 경우, 컬럼 contents : 테스트 결과 : OK 또는 테스트 결과 : NG → 총 67개
컬럼 step_description의 속성값 nonpd_1.08 Test Boston Firmware Version, nonpd_1.09 Test Boston ASIC Version, nonpd_1.24 Test USB2 error, nonpd_1.25 Test USB2 benchmark.maxrd(Mbit/s), nonpd_1.26 Test USB2 benchmark.maxwr(Mbit/s), nonpd_1.27 Test USB2 benchmark.avgrw(Mbit/s), nonpd_1.28 Test USB1 error, nonpd_1.29 Test USB1 benchmark.maxrd(Mbit/s), nonpd_1.30 Test USB1 benchmark.maxwr(Mbit/s), nonpd_1.31 Test USB1 benchmark.avgrw(Mbit/s) 에 해당하는 행은 삭제
컬럼 group, barcode_information, remark, end_day, end_time, contents, step_description, set_up_or_test_ct, test_ct, test_time, file_path 순서로 dataframe 출력
출력된 dataframe에 컬럼 barcode_information, end_day, end_time의 속성값이 같은 행을 스키마 : a2_fct_table, 테이블 : fct_table에서 찾아 컬럼 station, run_time과 그 속성값을 dataframe에 추가할 것
컬럼 step_description에 속성값 제일 앞에 ‘pd_’와 ‘nonpd_’를 제외하고 스키마 : a2_fct_table, 테이블 : fct_table의 컬럼 step_description을 찾아 해당 행의 컬럼 value, min, max, result의 속성값을 컬럼 value, min, max, result로 만들어서 추가할 것
컬럼 group, barcode_information, station, remark, end_day, end_time, run_time, contents, step_description, set_up_or_test_ct, value, min, max, result, test_ct, test_time, file_path 순서로 dataframe 출력
해당 dataframe 스키마 : f_database, 테이블 : fct_database(없으면 만들 것, 있으면 data만 update)