blob: 2a1c6076721a2bd0a6ea0bc772e9b8866ce247eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
// POS 관련 타입 정의
export interface PosFileInfo {
projNo: string;
posNo: string;
posRevNo: string;
fileSer: string;
fileName: string;
dcmtmId: string;
}
export interface GetDcmtmIdParams {
/**
* 자재코드 (MATNR)
* 예: 'SN2693A6410100001'
*/
materialCode: string;
}
export interface GetDcmtmIdResult {
success: boolean;
files?: PosFileInfo[];
error?: string;
}
export interface GetEncryptDocumentumFileParams {
objectID: string;
/**
* 사번. 기본값: 'EVM0236' (context2.txt 기준)
*/
sabun?: string;
/**
* 앱 코드. 기본값: 환경변수 POS_APP_CODE 또는 'SO13'(품질)
*/
appCode?: string;
/**
* 파일 생성 모드. 기본값: 1 (context2.txt 기준)
* 0: PDF Rendition 우선, 실패시 원본
* 1: 원본 파일
* 2: PDF 파일
* 3: TIFF 파일
*/
fileCreateMode?: number;
/**
* 보안 레벨. 기본값: 'SedamsClassID'
*/
securityLevel?: string;
/**
* 설계파일 여부. 기본값: true (context2.txt 기준)
*/
isDesign?: boolean;
}
export interface DownloadPosFileParams {
/**
* POS API에서 반환된 상대 경로
* 예: "asd_as_2509131735233768_OP02\asd_as_2509131735233768_OP02.tif"
*/
relativePath: string;
}
/**
* NFS 마운트를 통한 파일 접근 파라미터
*/
export interface AccessNfsFileParams {
/**
* POS API에서 반환된 상대 경로
*/
relativePath: string;
}
export interface AccessNfsFileResult {
success: boolean;
fileName?: string;
fileBuffer?: Buffer;
mimeType?: string;
fullPath?: string;
error?: string;
}
export interface DownloadPosFileResult {
success: boolean;
fileName?: string;
fileBuffer?: Buffer;
mimeType?: string;
error?: string;
}
export interface PosFileSyncResult {
success: boolean;
processedCount: number;
successCount: number;
failedCount: number;
errors: string[];
details: {
materialCode: string;
fileName?: string;
status: 'success' | 'failed' | 'no_files';
error?: string;
}[];
}
// POS SOAP 엔드포인트 정보
export const POS_SOAP_SEGMENT = '/Documentum/PlmFileBroker.asmx';
export const POS_SOAP_BASE_URL = process.env.POS_SOAP_ENDPOINT || 'http://60.100.99.122:7700';
export const POS_SOAP_ENDPOINT = `${POS_SOAP_BASE_URL}${POS_SOAP_SEGMENT}`;
// NFS 마운트 관련 설정
export const DOCUMENTUM_NFS_PATH = process.env.DOCUMENTUM_NFS || '/mnt/nfs-documentum/';
|