데이터 일괄 SetUp 작업
/******************************************************
1. table 항상 생성 후 작업 진행
2. 공정코드, 검사구분코드 기준정보 코드와 비교 확인후 Upload할 것
qcm_equip -- 설비
qcm_carkind -- 차종
qcm_part -- 품목
qcm_equip_part -- 설비별 품목
qcm_qcitem -- 설비별 품목별 검사항목
*******************************************************/
### 차종정보(QCM_CARKIND)
-- '<>' 표현식은 '!=' 와 동일하다.
-- 차종정보 ALL이 아닌 data 삭제 처리
/*
delete from qcm_carkind
where companycd = '00'
and QCKINDCD <> 'ALL'
;
*/
/* 추가 Setup 임시저장 table : qcm_upload_carkind
- 현재 운영중인 data에서 추가 Setup 작업.
- 현재 차종 data 중에서 추가될 임시저장 data가 존재 하지 않는 data만 insert
- qcm_carkind의 키값은 companycd, qckindcd
*/
insert into qcm_carkind(
COMPANYCD,
QCKINDCD,
QCKINDNM,
USEYN,
LOGIN_COMPANYCD,
LOGIN_ID,
LOGIN_YMD
)
select a,
b,
c,
'Y',
a,
'system',
sysdate
from qcm_upload_carkind
where (a,b) not in (select companycd,qckindcd from qcm_carkind)
;
### 품번정보(QCM_PART)
/*
delete from qcm_part
where companycd = '00'
and QCPARTNO <> 'ALL'
;
*/
declare
begin
for a1 in ( select a,
b,
c,
d
from qcm_upload_part
where (a,b) not in (select companycd, qcpartno
from qcm_part)
)
loop
update qcm_part
set qcpartnm = a1.c
where companycd = a1.a
and qcpartno = a1.b;
if sql%notfound then
insert into qcm_part(
COMPANYCD,
QCPARTNO,
QCPARTNM,
QCKINDCD,
USEYN,
LOGIN_COMPANYCD,
LOGIN_ID,
LOGIN_YMD
)
values(
a1.a,
a1.b,
a1.c,
a1.d,
'Y',
a1.a,
'system',
sysdate);
end if;
end loop;
commit;
end;
### 설비정보(QCM_EQUIP)
/*
delete from qcm_equip
where companycd = '00'
and factcd = '02' -- 본사공장
;
*/
insert into qcm_equip(
COMPANYCD,
FACTCD,
PROCCD,
EQUIPCD,
EQUIPNM,
RMK,
SORTORD,
USEYN,
LOGIN_COMPANYCD,
LOGIN_ID,
LOGIN_YMD
)
select
a, -- 사업장코드
b, -- 공장코드
d, -- 공정코드
f, -- 설비코드
nvl(g,f), -- 설비명
null, -- 비고
h, -- 정렬순서
'Y',
a, --
'system',
sysdate
from qcm_upload_equip
;
### 설비별 품목(QCM_EQUIP_PART)
/*
delete from qcm_equip_part
where companycd = '00'
and factcd = '02' -- 본사공장
;
*/
insert into qcm_equip_part(
COMPANYCD,
FACTCD,
PROCCD,
EQUIPCD,
QCPARTNO,
CFMYN,
USEYN,
LOGIN_COMPANYCD,
LOGIN_ID,
LOGIN_YMD
)
select distinct
a, -- 사업장
b, -- 공장
d, -- 공정
f, -- 설비
h, -- 품번
I, -- 조장확인
'Y',
a,
'system',
sysdate
from qcm_upload_equip_part
;
### 설비별 품목별 검사항목 (QCM_ITEM)
/*
delete from qcm_qcitem
where companycd = '00'
and factcd = '02' -- 본사공장
;
*/
insert into qcm_qcitem(
QCMSEQ, -- 검사항목SEQ
COMPANYCD, -- 사업장코드
FACTCD, -- 공장코드
PROCCD, -- 공정코드
EQUIPCD, -- 설비코드
QCPARTNO, -- 표기품번
QCTYPECD, -- 검사구분코드(C)
QCITEMORD, -- 검사항목순번
QCITEMNM, -- 검사항목명
QCCONTENT, -- 검사내용
QCMTH, -- 검사방법
INTYPECD, -- 입력타입코드(C)
MINVAL, -- 최소범위
MAXVAL, -- 최대범위
REQYN, -- 필수여부
QC1YN, -- 검사여부(초)
QC2YN, -- 검사여부(중)
QC3YN, -- 검사여부(종)
QC4YN, -- 검사여부(변경전)
QC5YN, -- 검사여부(변경후)
USEYN, -- 사용여부
LOGIN_COMPANYCD, -- 로그인사업장
LOGIN_ID, -- 로그인아이디
LOGIN_YMD -- 로그인일자
)
select qcm_qcitem_seq.nextval,
a, -- 사업장
b, -- 공장
d, -- 공정
f, -- 설비
h, -- 품번
i, -- 검사구분코드
k, -- 검사항목순번
l, -- 검사항목명
m, -- 검사내용
n, -- 검사방법
o, -- 입력타입코드(C)
q, -- 최소범위
r, -- 최대범위
null, -- s, -- 필수여부
decode(t,'Y','1',t), -- 검사여부(초)
decode(u,'Y','1',u), -- 검사여부(중)
decode(v,'Y','1',v), -- 검사여부(종)
decode(w,'Y','1',w), -- 검사여부(변경전)
decode(x,'Y','1',x), -- 검사여부(변경후)
'A10', -- 사용여부
a,
'system',
sysdate
from qcm_upload_qcitem2
;
/*
-- 입력TYPE 갱신
update qcm_qcitem
set intypecd = decode(intypecd,'10','A30','20','A20','30','A10','50','A50','04','A40',intypecd)
where companycd = '00'
and factcd = '02' -- 본사공장
;
*/