DB 경로(내부용)
DB_CONFIG = { "host": "localhost", "port": 5432, "dbname": "postgres", "user": "postgres", "password": "",}
FCT1~4 별 op_ct 구하기
스키마 : a1_fct_vision_testlog_txt_processing_history
테이블 : fct_vision_testlog_txt_processing_history
컬럼 result의 속성값 FAIL 은 제외
컬럼 goodorbad의 속성값 BadFile 은 제외
컬럼 end_day, end_time 속성값 오름차순으로 정렬
컬럼 station의 속성값 FCT1~4만 해당하며 FCT1~4별로 구분
컬럼 remark의 속성값 ‘PD’ or ‘Non-PD’ 별로 구분
새로운 컬럼 op_ct를 추가하여 현재행(컬럼 end_time의 속성값) - 이전행(컬럼 end_time의 속성값)의 결과를 속성값으로 추가할 것, 제일 첫행은 이전행이 없기 때문에 값은 null임
FCT는 plotly boxplot 분석할 것, 시각화는 하지 말고 새로운 컬럼 plotly_json을 만들어서 json형태로 저장할 것, 단 op_ct가 600초 넘어가면 제외할 것
8-1) FCT1~4 op_ct에 대해 boxplot대표값을 구할 것
8-2) 컬럼 del_out_op_ct_av를 만들어서 lower outlier와 upper oulier를 제외한 나머지 데이터로 평균값에 대한 데이터를 계산해서 속성값으로 넣을 것
8-3)컬럼 end_day, end_time을 기준으로 새로운 컬럼 month에 속성값으로 yyyymm을 넣어서 년도+달로 구분할 것
8-4) boxplot에 사용된 sample 갯수는 sample_amount 라는 컬럼에 속성값으로 들어갈 것
8-5) dataframe은 첨부파일과 같이 출력할 것
8-6) 스키마 : e1_FCT_ct 를 만들어서 (있으면 pass) 테이블 fct_op_ct로 만들어서 (있으면 pass) 저장
| id | station | remark | month | op_ct_lower_outlier | q1 | median | q3 | op_ct_upper_outlier | del_out_op_ct_av | sample_amount | plotly_json |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | FCT1 | PD | 202510 | 2.5~3.8 | … | … | … | 25.2~60.5 | … | … | |
| 2 | FCT2 | PD | 202510 | … | … | … | … | … | … | … | |
| 3 | FCT3 | PD | 202510 | … | … | … | … | … | … | … | |
| 4 | FCT4 | PD | 202510 | … | … | … | … | … | … | … | |
| 5 | FCT1 | Non-PD | 202510 | … | … | … | … | … | … | … | |
| 6 | FCT2 | Non-PD | 202510 | … | … | … | … | … | … | … | |
| 7 | FCT3 | Non-PD | 202510 | … | … | … | … | … | … | … | |
| 8 | FCT4 | Non-PD | 202510 | … | … | … | … | … | … | … | |
| 9 | FCT1 | PD | 202511 | 2.5~3.8 | … | … | … | 25.2~60.5 | … | … | |
| 10 | FCT2 | PD | 202511 | … | … | … | … | … | … | … | |
| 11 | FCT3 | PD | 202511 | … | … | … | … | … | … | … | |
| 12 | FCT4 | PD | 202511 | … | … | … | … | … | … | … | |
| 13 | FCT1 | Non-PD | 202511 | … | … | … | … | … | … | … | |
| 14 | FCT2 | Non-PD | 202511 | … | … | … | … | … | … | … | |
| 15 | FCT3 | Non-PD | 202511 | … | … | … | … | … | … | … | |
| 16 | FCT4 | Non-PD | 202511 | … | … | … | … | … | … | … |
8-6) 추가적인 cell 작성
8-6-1) 컬럼 month 속성값 기준
8-6-2) 컬럼 station의 속성값 FCT1~4를 통합으로 FCT로 만들어줘 8-6-3) 컬럼 remark의 속성값 ‘PD’ or ‘Non-PD’ 별로 구별 8-6-4) 병렬 설비 처리율 합산 방식을 사용, 컬럼 sample_amount의 속성값을 총 생산량으로 간주
컬럼 del_out_op_ct_av의 속성값을 각 FCT의 CT로 간주
컬럼 station의 속성값 FCT1과 FCT2가 한 그룹으로 컬럼 side를 만들어서 left라는 속성값이 들어갈 것
UPH를 구하여 컬럼 uph의 속성값으로 들어갈 것
등가 CT를 구하여 컬럼 ct_eq의 속성값으로 들어갈 것
컬럼 station의 속성값 FCT3과 FCT4가 한 그룹으로 컬럼 side를 만들어서 right라는 속성값이 들어갈 것
UPH를 구하여 컬럼 uph의 속성값으로 들어갈 것
등가 CT를 구하여 컬럼 ct_eq의 속성값으로 들어갈 것
컬럼 station의 속성값으로 whole을 넣고 총 UPH를 컬럼 uph에 넣고 컬럼 final_ct를 넣어서 최종 ct의 속성값으로 넣어줘
각 값들은 소수점 3자리에서 반올림하여 2자리로 표현할 것
8-6-5) 첨부파일과 같이 dataframe 만들어줘
8-6-6) 스키마 : e1_FCT_ct 를 만들어서 (있으면 pass) 테이블 fct_whole_op_ct로 만들어서 (있으면 pass) 저장
| id | station | remark | month | ct_eq | uph | final_ct |
|---|---|---|---|---|---|---|
| 1 | left | Non-PD | 202510 | 15.39 | 233.89 | null |
| 2 | right | Non-PD | 202510 | 15.63 | 230.36 | null |
| 3 | whole | Non-PD | 202510 | null | 464.25 | 7.75 |
| 4 | left | PD | 202510 | … | … | null |
| 5 | right | PD | 202510 | … | … | null |
| 6 | whole | PD | 202510 | null | … | … |
FCT1~4 별 test_ct 구하기
스키마 : a2_fct_table
테이블 : fct_table
컬럼 barcode_information의 속성값이 ‘B’로 시작할 것
컬럼 remark의 속성값이 ‘PD’라면 컬럼 step_description의 속성값은 1.36 Test iqz(uA) 인 행
컬럼 remark의 속성값이 ‘Non-PD’라면 컬럼 step_description의 속성값은 1.32 Test iqz(uA) 인 행
컬럼 result의 속성값 FAIL 은 제외