--------------------------------------------------- -- 기초코드관리 --------------------------------------------------- ---- work_because_first_WobeFirst ---- 작업 관리/원인 분류/대분류 -- WobeFirst, WobeSecond를 통합 CREATE TABLE FmsWorkCodeCauseClass ( SiteId int NOT NULL , -- 현장 고유번호 CauseClassId int identity(1,1) NOT NULL , -- 원인분류 고유번호 ParentId int NOT NULL , -- 부모 원인분류 고유번호 Name nvarchar(50) NOT NULL , -- 작업유형 이름 IsUse bit NULL , -- 사용 유무 PRIMARY KEY (SiteId ASC , CauseClassId ASC) ); -- work_code_emergency_WocoEmergency -- 긴급 정도 코드 -- 작업 관리/기초 코드 관리/긴급 정도 코드 --CREATE TABLE WocoEmergency CREATE TABLE FmsWorkCodeEmergency ( SiteId int NOT NULL , -- 현장 고유번호 EmergencyId int identity(1,1) NOT NULL , -- 긴급 작업 고유번호 Name nvarchar(50) NULL , -- 긴급 작업 이름 IsUse bit NULL , -- 사용 유무 PRIMARY KEY (SiteId ASC , EmergencyId ASC) ); -- work_code_kind_WocoKind -- 작업 구분 코드 -- 작업 관리/기초 코드 관리/작업 구분 코드 --CREATE TABLE WocoKind CREATE TABLE FmsWorkCodeType ( WorkTypeId int NOT NULL , -- 작업구분코드 고유번호 (점검, 법정검사, 민원 등) Name nvarchar(50) NOT NULL , -- 작업구분코드 이름 [Description] nvarchar(512) NULL , -- 설명 PRIMARY KEY (WorkTypeId ASC) ); INSERT INTO FmsWorkCodeType VALUES (1, '점검계획', ''); INSERT INTO FmsWorkCodeType VALUES (2, '법정검사', ''); INSERT INTO FmsWorkCodeType VALUES (3, '민원', ''); -- work_code_progress_WocoProgress -- 진행 상태 코드 -- 작업 관리/기초 코드 관리/진행 상태 코드 --CREATE TABLE WocoProgress CREATE TABLE FmsWorkCodeProgress ( WorkProgressId int NOT NULL , -- 진행상태 고유번호 (대기, 작업중, 승인 등) Name nvarchar(24) NOT NULL , -- 진행상태 이름 [Description] nvarchar(512) NULL , -- 설명 PRIMARY KEY (WorkProgressId ASC) ); INSERT INTO FmsWorkCodeProgress VALUES (1, '작업계획', ''); INSERT INTO FmsWorkCodeProgress VALUES (2, '작업보류', ''); INSERT INTO FmsWorkCodeProgress VALUES (3, '작업대기', ''); INSERT INTO FmsWorkCodeProgress VALUES (4, '작업진행중', ''); INSERT INTO FmsWorkCodeProgress VALUES (5, '작업완료', ''); INSERT INTO FmsWorkCodeProgress VALUES (6, '완료승인', ''); --------------------------------------------------- -- 실행 계획 및 작업지시 --------------------------------------------------- -- 실행 계획(=작업요청 =민원) -- CREATE TABLE WowoRequest CREATE TABLE FmsWorkRequest ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int identity(1,1) NOT NULL , -- 작업요청 고유번호 WorkTypeId int NOT NULL , -- 작업요청유형 고유번호 (점검계획, 법정감사, 민원) BusinessFieldId int NOT NULL , -- 작업장소 고유번호 WorkScheduleId int NULL , -- 기초계획 고유번호 (민원이면 NULL) WorkProgressId int NOT NULL , -- 진행상태 고유번호 Title nvarchar(200) NOT NULL , -- 작업요청 제목 Content nvarchar(1024) NULL , -- 작업요청자 상세내용 RequestUserId nvarchar(24) NULL , -- 작업요청자 아이디 (데이터게이트웨이에서 올라오면 요청자가 없을 수 있다.) RequestDate datetime NOT NULL , -- 작업요청 날짜 StartWorkDate datetime NOT NULL , -- 작업시작일 InspectionAgencyId int NULL , -- 법정검사기관 고유번호(법정검사인 경우만 사용) RejectUserId nvarchar(24) NULL, -- 반려한 사용자 ID RejectDate datetime NULL, -- 반려한 일시 RejectReason nvarchar(512) NULL , -- 반려한 이유 PRIMARY KEY (SiteId ASC , WorkRequestId ASC) ); DBCC CHECKIDENT( FmsWorkRequest, RESEED, 1 ) --CREATE TABLE WowoWorkTargetFacility CREATE TABLE FmsWorkRequestToFacility ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 작업요청 고유번호 FacilityCode int NOT NULL , -- 설비코드 PRIMARY KEY (SiteId ASC , WorkRequestId ASC , FacilityCode ASC) ); -- 작업지시 --CREATE TABLE WowoOrder CREATE TABLE FmsWorkOrder ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 작업요청 고유번호 BusinessFieldId int NOT NULL , -- 작업영역 고유번호 EmergencyId int NULL, -- 긴급정보코드(자동지시인 경우 없을 수도 있다. 있다면 하드코딩으로 변경해야 함) OrderUserId nvarchar(24) NOT NULL , -- 작업지시한 사용자 고유번호 OrderDate datetime NOT NULL , -- 작업지시한 날짜 Title nvarchar(200) NOT NULL , -- 작업지시한 제목 Content nvarchar(2000) NULL , -- 작업지시한 내용 StartWorkDate datetime NOT NULL , -- 작업시작일 PRIMARY KEY (SiteId ASC , WorkRequestId ASC) ); DBCC CHECKIDENT( FmsWorkOrder, RESEED, 1 ) --CREATE TABLE WowoWorkTargetFacility CREATE TABLE FmsWorkOrderToFacility ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 작업지시 고유번호 FacilityCode int NOT NULL , -- 설비코드 PRIMARY KEY (SiteId ASC , WorkRequestId ASC , FacilityCode ASC) ); --------------------------------------------------- -- 작업결과등록 --------------------------------------------------- --CREATE TABLE WowoResult CREATE TABLE FmsWorkResult ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 실행계획 고유번호 WorkerUserId nvarchar(24) NOT NULL , -- 작업자 고유번호 StartDate datetime NOT NULL , -- 작업 시작일 EndDate datetime NOT NULL , -- 작업 완료일 CauseClassId int NULL , -- 작업유형 고유번호 Content nvarchar(1024) NULL , -- 작업 상세내용 ConfirmedDate datetime NULL , -- 작업결과 승인날짜 ConfirmedUserId nvarchar(24) NULL , -- 작업결과 승인 사용자 고유번호 IsConfirmed bit NOT NULL , -- 작업승인확인 PRIMARY KEY (SiteId ASC , WorkRequestId ASC) ); -- 작업 결과 용 대상시설 관계 테이블 --CREATE TABLE WowoWorkTargetFacility CREATE TABLE FmsWorkResultToFacility ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 작업결과의 작업지시 고유번호 FacilityCode int NOT NULL , -- 설비코드 PRIMARY KEY (SiteId ASC , WorkRequestId ASC , FacilityCode ASC) ); -- 작업 결과 점검 항목 --CREATE TABLE WowoResultCheckItem CREATE TABLE FmsWorkResultCheckItem ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 작업지시 고유번호 FacilityCode int NOT NULL , -- 설비코드 CheckItemId int NOT NULL , -- 작업항목 고유번호 -- IsYesNoResult bit NOT NULL , -- 예,아니오 결과 BoolResult bit NULL , -- 작업 결과 (조치여부) TextResult nvarchar(1024) NULL , -- 작업 결과 수기 항목 -- CheckItemName nvarchar(100) NOT NULL , -- 작업 항목 이름 -- SortOrderNo int NULL , -- 정렬 번호 PRIMARY KEY (SiteId ASC , WorkRequestId ASC , FacilityCode ASC , CheckItemId ASC) ); -- 작업결과 첨부파일 --CREATE TABLE WowoResultFile CREATE TABLE FmsWorkResultFile ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 작업지시 고유번호 FileId int NOT NULL , -- 파일 고유번호 PRIMARY KEY (SiteId ASC , WorkRequestId ASC) ); -- 작업결과 법정검사 정보 --CREATE TABLE WowoResultLaw CREATE TABLE FmsWorkResultLaw ( SiteId int NOT NULL , -- 현장 고유번호 WorkRequestId int NOT NULL , -- 작업지시 고유번호 CertificationNo nvarchar(50) NULL , -- 검사증 번호 CheckCommission numeric(10,0) NULL , -- 검사 수수료 CheckResult bit NULL , -- 검사 결과 PRIMARY KEY (SiteId ASC , WorkRequestId ASC) ); --------------------------------------------------- -- 작업지시 --------------------------------------------------- ALTER TABLE FmsWorkCodeCauseClass ADD CONSTRAINT FK__FmsWorkCodeCauseClass__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsWorkCodeEmergency ADD CONSTRAINT FK__FmsWorkCodeEmergency__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; -- 실행계획(작업요청) FK ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__FmsWorkCodeWorkType FOREIGN KEY (WorkTypeId) REFERENCES FmsWorkCodeType(WorkTypeId) ; ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__FmsWorkSchedule FOREIGN KEY (SiteId, WorkScheduleId) REFERENCES FmsWorkSchedule(SiteId, WorkScheduleId) ; ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__FmsWorkCodeProgress FOREIGN KEY (WorkProgressId) REFERENCES FmsWorkCodeProgress(WorkProgressId) ; ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__CmBusinessField FOREIGN KEY (SiteId , BusinessFieldId) REFERENCES CmBusinessField(SiteId , BusinessFieldId) ; ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__CmUser_AsRequestUserId FOREIGN KEY (SiteId , RequestUserId) REFERENCES CmUser(SiteId , UserId) ; ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__CmUser1_AsRejectUserId FOREIGN KEY (SiteId , RejectUserId) REFERENCES CmUser(SiteId , UserId) ; ALTER TABLE FmsWorkRequest ADD CONSTRAINT FK__FmsWorkRequest__FmsWorkCodeLegalInspectionAgency FOREIGN KEY (SiteId , InspectionAgencyId) REFERENCES FmsWorkCodeLegalInspectionAgency(SiteId , InspectionAgencyId) ; ALTER TABLE FmsWorkRequestToFacility ADD CONSTRAINT FK__FmsWorkRequestToFacility__FmsWorkRequest FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkRequest(SiteId , WorkRequestId) ON DELETE CASCADE ; ALTER TABLE FmsWorkRequestToFacility ADD CONSTRAINT FK__FmsWorkRequestToFacility__CmFacility FOREIGN KEY (SiteId , FacilityCode) REFERENCES CmFacility(SiteId , FacilityCode) ; -- 작업 지시 FK ALTER TABLE FmsWorkOrder ADD CONSTRAINT FK__FmsWorkOrder__CmSite FOREIGN KEY (SiteId) REFERENCES CmSite(SiteId) ; ALTER TABLE FmsWorkOrder ADD CONSTRAINT FK__FmsWorkOrder__FmsWorkRequest FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkRequest(SiteId , WorkRequestId) ; ALTER TABLE FmsWorkOrder ADD CONSTRAINT FK__FmsWorkOrder__FmsWorkCodeEmergency FOREIGN KEY (SiteId , EmergencyId) REFERENCES FmsWorkCodeEmergency(SiteId , EmergencyId) ; ALTER TABLE FmsWorkOrder ADD CONSTRAINT FK__FmsWorkOrder__CmUser FOREIGN KEY (SiteId , OrderUserId) REFERENCES CmUser(SiteId , UserId) ; ALTER TABLE FmsWorkOrder ADD CONSTRAINT FK__FmsWorkOrder__CmBusinessField FOREIGN KEY (SiteId , BusinessFieldId) REFERENCES CmBusinessField(SiteId , BusinessFieldId) ; ALTER TABLE FmsWorkOrderToFacility ADD CONSTRAINT FK__FmsWorkOrderToFacility__FmsWorkOrder FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkOrder(SiteId , WorkRequestId) ON DELETE CASCADE ; ALTER TABLE FmsWorkOrderToFacility ADD CONSTRAINT FK__FmsWorkOrderToFacility__CmFacility FOREIGN KEY (SiteId , FacilityCode) REFERENCES CmFacility(SiteId , FacilityCode) ; --------------------------------------------------- -- 작업결과등록 --------------------------------------------------- ALTER TABLE FmsWorkResult ADD CONSTRAINT FK__FmsWorkResult__FmsWorkOrder FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkOrder(SiteId , WorkRequestId) ; ALTER TABLE FmsWorkResult ADD CONSTRAINT FK__FmsWorkResult__FmsWorkCodeCauseClass FOREIGN KEY (SiteId , CauseClassId) REFERENCES FmsWorkCodeCauseClass(SiteId , CauseClassId) ; ALTER TABLE FmsWorkResult ADD CONSTRAINT FK__FmsWorkResult__CmUser_AsWorkerUserId FOREIGN KEY (SiteId , WorkerUserId) REFERENCES CmUser(SiteId , UserId) ; ALTER TABLE FmsWorkResult ADD CONSTRAINT FK__FmsWorkResult__CmUser_AsConfirmedUserId FOREIGN KEY (SiteId , ConfirmedUserId) REFERENCES CmUser(SiteId , UserId) ; ALTER TABLE FmsWorkResultCheckItem ADD CONSTRAINT FK__FmsWorkResultCheckItem__FmsWorkResult FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkResult(SiteId , WorkRequestId) ; ALTER TABLE FmsWorkResultCheckItem ADD CONSTRAINT FK__FmsWorkResultCheckItem__FmsFacilityCheckItem FOREIGN KEY (SiteId , FacilityCode, CheckItemId) REFERENCES FmsFacilityCheckItem(SiteId, FacilityCode, CheckItemId) ; ALTER TABLE FmsWorkResultCheckItem ADD CONSTRAINT FK__FmsWorkResultCheckItem__CmFacility FOREIGN KEY (SiteId , FacilityCode) REFERENCES CmFacility(SiteId, FacilityCode) ; ALTER TABLE FmsWorkResultToFacility ADD CONSTRAINT FK__FmsWorkResultToFacility__FmsWorkOrder FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkResult(SiteId , WorkRequestId) ON DELETE CASCADE ; ALTER TABLE FmsWorkResultToFacility ADD CONSTRAINT FK__FmsWorkResultToFacility__CmFacility FOREIGN KEY (SiteId , FacilityCode) REFERENCES CmFacility(SiteId , FacilityCode) ; ALTER TABLE FmsWorkResultFile ADD CONSTRAINT FK__FmsWorkResultFile__FmsWorkResult FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkResult(SiteId , WorkRequestId) ; ALTER TABLE FmsWorkResultFile ADD CONSTRAINT FK__FmsWorkResultFile__CmFile FOREIGN KEY (SiteId , FileId) REFERENCES CmFile(SiteId , FileId) ; ALTER TABLE FmsWorkResultLaw ADD CONSTRAINT FK__FmsWorkResultLaw__FmsWorkResult FOREIGN KEY (SiteId , WorkRequestId) REFERENCES FmsWorkResult(SiteId , WorkRequestId) ; ALTER TABLE FmsWorkSchedule ADD CONSTRAINT FK__FmsWorkSchedule__FmsWorkCodeType FOREIGN KEY (WorkTypeId) REFERENCES FmsWorkCodeType(WorkTypeId) ; ALTER TABLE FmsFacilityCheckItem ADD CONSTRAINT FK__FmsFacilityCheckItem__FmsWorkCodeType FOREIGN KEY (WorkTypeId) REFERENCES FmsWorkCodeType(WorkTypeId) ; ---- work_because_first_WobeFirst ---- 작업 관리/원인 분류/대분류 ----CREATE TABLE WobeFirst --CREATE TABLE FmsWorkCodeCauseClassFirst --( -- FirstId int NOT NULL , -- FirstName nvarchar(50) NOT NULL , -- SortOrderNo int NULL , -- IsUse bit NULL , -- InsertedDate datetime NULL , -- InsertedUserId nvarchar(24) NULL , -- UpdatedDate datetime NULL , -- UpdatedUserId nvarchar(24) NULL , -- PRIMARY KEY (FirstId ASC) --); ----CREATE TABLE WobeSecond --CREATE TABLE FmsWorkCodeCauseClassSecond --( -- FirstId int NOT NULL , -- SecondId int NOT NULL , -- SecondName nvarchar(50) NOT NULL , -- SortOrderNo int NULL , -- IsUse bit NULL , -- InsertedDate datetime NULL , -- InsertedUserId nvarchar(24) NULL , -- UpdatedDate datetime NULL , -- UpdatedUserId nvarchar(24) NULL , -- PRIMARY KEY (SecondId ASC) --); -- work_work_orderMaterial_WowoOrderMaterial -- 지시 자재 리스트 -- work/work/orderMaterial --CREATE TABLE WowoOrderMaterial --CREATE TABLE FmsWowoOrderMaterial --( -- WorkOrderId numeric(8,0) NOT NULL , -- MaterialId nvarchar(30) NOT NULL , -- OrderCount int NOT NULL , -- DeliveryCount int NULL , -- ReturnCount int NULL , -- UseCount int NULL , -- IsDelivery bit NOT NULL , -- InoutDate datetime NULL , -- PRIMARY KEY (WorkOrderId ASC,MaterialId ASC) --); --------------------------------------------------- -- 작업결과등록 --------------------------------------------------- --CREATE TABLE WowoMaterial --( -- WorkOrderId numeric(8,0) NOT NULL , -- ResultId int NOT NULL , -- MaterialId nvarchar(30) NOT NULL , -- DeliveryNo nvarchar(30) NOT NULL , -- OrderCount int NOT NULL , -- OrderNote nvarchar(2000) NULL , -- DeliveryId int NOT NULL , -- PRIMARY KEY (WorkOrderId ASC,ResultId ASC,MaterialId ASC,DeliveryNo ASC) --) --; --------------------------------------------------- -- 기초코드관리 --------------------------------------------------- --ALTER TABLE WobeSecond -- ADD FOREIGN KEY (firstSeq) REFERENCES WobeFirst(firstSeq) --; --------------------------------------------------- -- 작업지시 --------------------------------------------------- --ALTER TABLE FmsWorkOrderMaterial -- ADD FOREIGN KEY (WorkOrderId) REFERENCES FmsWorkOrder(WorkOrderId) --; --ALTER TABLE FmsWorkOrderMaterial -- ADD FOREIGN KEY (materialSeq) REFERENCES MamaMaterial(materialSeq) --; -- SuteTeam : 근무편성관리 --ALTER TABLE FmsWorkOrder -- ADD FOREIGN KEY (CompanyId,TeamId) REFERENCES SuteTeam(CompanyId,TeamId) --; --ALTER TABLE FmsWorkOrderMaterial -- ADD FOREIGN KEY (warehouseSeq) REFERENCES MaplWarehouse(warehouseSeq) --; --ALTER TABLE FmsWorkRequest -- ADD FOREIGN KEY (alarmDatetime,systemSeq,pointId) REFERENCES BaalAlarm(alarmDatetime,systemSeq,pointId) --; --ALTER TABLE FmsWorkRequestSmsTeam -- ADD FOREIGN KEY (CompanyId,TeamId) REFERENCES SuteTeam(CompanyId,TeamId) --; --------------------------------------------------- -- 작업결과등록 --------------------------------------------------- --ALTER TABLE WowoMaterial -- ADD FOREIGN KEY (WorkOrderId,ResultId) REFERENCES FmsWorkResult(WorkOrderId,ResultId) --; --ALTER TABLE WowoMaterial -- ADD FOREIGN KEY (materialSeq) REFERENCES MamaMaterial(materialSeq) --; --ALTER TABLE WowoMaterial -- ADD FOREIGN KEY (warehouseSeq) REFERENCES MaplWarehouse(warehouseSeq) --; --ALTER TABLE WowoMaterial -- ADD FOREIGN KEY (enterNo,deliveryNo) REFERENCES MamsLink(enterNo,deliveryNo) --; --ALTER TABLE WowoMaterial -- ADD FOREIGN KEY (deliverySeq) REFERENCES MacoDelivery(deliverySeq) --; --ALTER TABLE FmsWorkRequest -- ADD CONSTRAINT FK__FmsWorkRequest__BemsMonitoringPoint -- FOREIGN KEY (SiteId , AlarmFacilityCode , AlarmPropertyId) -- REFERENCES BemsMonitoringPoint(SiteId , FacilityCode , PropertyId) --; -- WocoAccept는 연동된 테이블을 찾지 못했고, 일지 작성주기 코드는 인수인계관리에서 사용하기 때문에 일단 사용하지 않는다. ---- work_code_acpt_WocoAcpt ---- 작업 관리/기초 코드 관리/작업 구분 코드 ----CREATE TABLE WocoAccept --CREATE TABLE FmsWorkCodeAccept --( -- AcceptId int NOT NULL , -- Name nvarchar(50) NOT NULL , -- IsUse bit NULL , -- SortOrderNo int NULL , -- InsertedDate datetime NULL , -- InsertedUserId nvarchar(24) NULL , -- UpdatedDate datetime NULL , -- UpdatedUserId nvarchar(24) NULL , -- PRIMARY KEY (AcceptId ASC) --); ---- 일지작성주기코드 ---- 작업 관리/기초 코드 관리/일지작성주기코드 ----CREATE TABLE WocoCycle --CREATE TABLE FmsWorkCodeCycle --( -- CycleId int NOT NULL , -- Name nvarchar(50) NOT NULL , -- IsUse bit NULL , -- SortOrderNo int NULL , -- InsertedDate datetime NULL , -- InsertedUserId nvarchar(24) NULL , -- UpdatedDate datetime NULL , -- UpdatedUserId nvarchar(24) NULL , -- PRIMARY KEY (CycleId ASC) --);