생산 작업지시와 완료 보고를 연결하는 시스템 개발하기
작업번호별 생산실적과 불량수량, 자재소모를 ERP에 연결하는 구현 방법을 설명합니다. 중복 전송 방지부터 취소·재작업 전표 분리, 첨부 자료와 데이터 검수 기준까지 정리합니다.
핵심 요약
1. 작업번호를 기준으로 작업지시·공정실적·불량수량·자재소모를 연결하는 입력 화면을 만듭니다. 2. PostgreSQL의 저장 처리, FastAPI의 파일 수신, dbt의 데이터 검사를 업무 흐름에 연결합니다. 3. ERP 중복 반영 방지와 취소·재작업 전표 처리는 현장 규칙에 맞춰 직접 개발합니다.
제조 현장 시스템 개발에서는 입력한 수량이 어느 작업과 공정에 속하는지 분명해야 합니다. ERP 개발 범위도 화면에서 입력한 값이 어떤 전표로 반영되는지까지 정해야 합니다. 아래는 작업지시서와 ERP 입력 양식을 바탕으로 발주 범위와 검수 조건을 정하는 구현 방법입니다.
작업번호로 작업지시와 공정실적 연결하기
작업자가 작업번호를 선택하면 품목, 지시수량, 대상 공정을 함께 보여주는 화면을 만듭니다. 입력 항목은 작업일, 공정, 양품수량, 불량수량, 불량 사유로 나눕니다. 작업지시 조회 기능은 입력값을 해당 작업과 연결하는 역할을 하며, 선택 가능한 공정과 입력 권한은 별도 업무 규칙으로 구현합니다.
‘실적 확인’ 버튼을 누르면 입력한 수량과 해당 작업의 누적 실적을 나란히 표시합니다. 같은 품목을 생산하더라도 작업번호가 다르면 실적을 분리해서 보여줍니다. 검수할 때는 작업번호를 바꿨을 때 지시 내용과 실적 목록이 함께 바뀌는지 확인합니다.
PostgreSQL로 생산실적과 자재소모 함께 저장하기
실적 입력 아래에는 자재코드, 소모수량, 단위를 적는 자재 사용 내역을 둡니다. PostgreSQL의 트랜잭션은 여러 데이터 변경을 한 묶음으로 확정하거나 취소하지만, 외부 API 호출까지 취소하지는 않습니다. 이를 활용해 생산실적과 자재소모 내역을 함께 저장하는 로직을 개발합니다.

‘실적 확정’ 버튼을 누르면 수량과 필수 항목을 먼저 검사하고, 조건을 통과한 묶음만 저장합니다. 양품과 불량의 합계 기준, 자재별 허용 단위, 소모량 수정 권한은 발주 단계에서 정합니다. 결과 화면에는 저장된 실적과 연결된 자재 내역을 표시하며, 두 내역이 모두 저장됐을 때만 완료로 안내하는지 검수합니다.
ERP 전표번호 확인과 중복 전송 방지하기
확정한 실적을 ERP로 전달하려면 작업번호, 품목코드, 공정코드, 수량을 ERP 입력 항목과 대응시켜야 합니다. 연결할 ERP가 제공하는 입력 방식과 처리 결과 조회 방법은 먼저 확인합니다. 현장 코드와 ERP 코드가 다르면 변환표를 직접 관리하고, 연결되지 않은 코드는 전송 전에 수정하도록 안내합니다.
검수할 실패 사례는 ERP가 실적을 접수했지만 현장 화면이 응답을 받지 못한 경우입니다. 이때 재전송 버튼을 눌러도 같은 실적이 두 번 반영되지 않도록 실적별 식별값과 ERP 조회 절차를 연결합니다. ERP에서 중복 확인을 지원하지 않으면 담당자가 기존 전표를 확인한 뒤 재처리하는 절차를 둡니다. 결과 화면에는 대응하는 ERP 전표번호를 표시해 양쪽 기록을 대조할 수 있게 합니다.

취소와 재작업을 별도 전표로 기록하기
확정 실적을 취소할 때는 원래 기록에 취소 사유, 취소수량, 요청자를 연결해 별도 전표를 만듭니다. 취소 화면에는 원실적과 이미 취소한 수량을 함께 표시합니다. 취소 가능한 잔여수량을 계산하고, 권한이 있는 담당자만 확정하도록 하는 로직은 직접 개발합니다.
재작업은 원작업번호에 연결된 별도 실적으로 입력받으며, 대상수량과 추가 자재소모를 구분합니다. 원 생산수량에 재작업 수량을 중복 가산하지 않도록 집계 기준도 따로 정합니다. 검수에서는 원실적·취소·재작업 전표를 각각 열어볼 수 있는지, 합계가 합의한 기준과 일치하는지 확인합니다.
FastAPI로 작업지시서와 불량 자료 첨부하기
작업지시서 파일과 불량 사진을 작업번호에 연결하면 담당자가 실적과 근거 자료를 함께 확인할 수 있습니다. FastAPI의 UploadFile은 업로드 파일을 받는 기능을 제공합니다. 허용할 파일 형식과 크기, 열람 권한, 보관 기간은 별도로 구현할 업무 범위입니다.

첨부 화면에는 파일이 연결될 작업번호와 공정을 표시하고, 업로드 후에는 실적 상세 화면에서 해당 파일을 열도록 만듭니다. 개발 범위 확인용 자료로는 작업번호·품목·지시수량이 들어간 작업지시서와, 생산수량·자재코드·단위가 들어간 ERP 입력 양식을 요청합니다. 검수에서는 첨부 대상 작업이 정확한지와 권한에 따라 열람이 제한되는지 확인합니다.
dbt로 실적과 전표의 수량 대조하기
저장된 데이터는 작업번호별 현장 실적과 ERP 반영 내역을 비교하는 검사 대상으로 묶습니다. dbt data tests는 SQL이라는 데이터 조회문으로 잘못된 행을 반환하는 검사를 작성할 수 있게 합니다. 이 기능에 넣을 검사 규칙은 현장의 수량 집계 방식에 맞춰 직접 작성합니다.
전량 취소한 작업의 유효 실적이 0인지, 재작업이 원 생산량에 중복 합산되지 않는지, ERP 반영 수량과 현장 수량이 맞는지를 검사합니다. 입력 순간의 오류 차단은 업무 화면에 따로 구현하고, 저장 후 발견한 차이는 작업번호와 항목별로 보고서에 표시합니다. 검수용 데이터에 의도적으로 넣은 불일치가 보고서에 빠짐없이 나타나는지 확인하면 검사 범위도 구체화할 수 있습니다.
작업지시서와 ERP 입력 양식 예시, 취소·재작업 승인 기준을 준비해 트램스에 시스템 개발·ERP 개발을 문의해 주세요. 필요한 입력 화면과 전표 연결 범위, 검수 조건을 함께 정리합니다. 트램스 AI 제작 문의 (https://trams.co.kr/ai-si/contact/#inquiry)
참고 자료
비슷한 AI 서비스를
사업에 적용하고 싶으신가요?
아이디어와 필요한 기능을 알려주시면 제작 범위와 방법을 검토합니다.