[Oracle] date Setup

HanSamDul·2022년 12월 13일
0

데이터 일괄 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'  -- 본사공장
;
*/

0개의 댓글