@simplysm/sd-claude 14.0.81 → 14.0.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/claude/references/sd-requirement-source-handling.md +20 -20
- package/claude/references/sd-simplysm14/README.md +13 -13
- package/claude/references/sd-simplysm14/manuals/client-component.md +92 -92
- package/claude/references/sd-simplysm14/manuals/client-crud.md +11 -11
- package/claude/references/sd-simplysm14/manuals/client-demo.md +28 -28
- package/claude/references/sd-simplysm14/manuals/client-rules.md +1 -1
- package/claude/references/sd-simplysm14/manuals/client-setup.md +21 -21
- package/claude/references/sd-simplysm14/manuals/client-tab.md +3 -3
- package/claude/references/sd-simplysm14/manuals/logging.md +15 -15
- package/claude/references/sd-simplysm14/manuals/orm-union.md +6 -6
- package/claude/references/sd-simplysm14/manuals/orm.md +19 -19
- package/claude/references/sd-simplysm14/manuals/test.md +33 -33
- package/claude/rules/sd-base-rules.md +44 -43
- package/claude/rules/sd-design-rules.md +18 -18
- package/claude/skills/sd-commit/SKILL.md +10 -10
- package/claude/skills/sd-config/SKILL.md +2 -2
- package/claude/skills/sd-demo/SKILL.md +45 -45
- package/claude/skills/sd-dev/SKILL.md +15 -15
- package/claude/skills/sd-docs/SKILL.md +7 -7
- package/claude/skills/sd-docs/references/subagent-prompt.md +33 -33
- package/claude/skills/sd-impl/SKILL.md +60 -60
- package/claude/skills/sd-review/SKILL.md +9 -9
- package/claude/skills/sd-skill/SKILL.md +74 -74
- package/claude/skills/sd-skill/evals/fixtures/existing-skill/.claude/skills/todo-format/SKILL.md +1 -1
- package/claude/skills/sd-spec/SKILL.md +355 -319
- package/claude/skills/sd-spec/references/example-spec.md +104 -104
- package/claude/skills/sd-unpack/SKILL.md +34 -34
- package/claude/skills/sd-use/SKILL.md +4 -4
- package/package.json +1 -1
- package/claude/references/sd-simplysm14/apis/angular/README.md +0 -37
- package/claude/references/sd-simplysm14/apis/angular/app-structure.md +0 -92
- package/claude/references/sd-simplysm14/apis/angular/buttons.md +0 -88
- package/claude/references/sd-simplysm14/apis/angular/crud.md +0 -100
- package/claude/references/sd-simplysm14/apis/angular/forms.md +0 -200
- package/claude/references/sd-simplysm14/apis/angular/infrastructure.md +0 -231
- package/claude/references/sd-simplysm14/apis/angular/kanban.md +0 -80
- package/claude/references/sd-simplysm14/apis/angular/layout.md +0 -92
- package/claude/references/sd-simplysm14/apis/angular/modal.md +0 -115
- package/claude/references/sd-simplysm14/apis/angular/routing.md +0 -107
- package/claude/references/sd-simplysm14/apis/angular/select-dropdown.md +0 -35
- package/claude/references/sd-simplysm14/apis/angular/selection-managers.md +0 -82
- package/claude/references/sd-simplysm14/apis/angular/shared-data.md +0 -134
- package/claude/references/sd-simplysm14/apis/angular/sheet.md +0 -127
- package/claude/references/sd-simplysm14/apis/angular/toast.md +0 -97
- package/claude/references/sd-simplysm14/apis/angular/visual.md +0 -167
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-auto-update/README.md +0 -79
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-file-system/README.md +0 -83
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-intent/README.md +0 -91
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-usb-storage/README.md +0 -49
- package/claude/references/sd-simplysm14/apis/core-browser/README.md +0 -143
- package/claude/references/sd-simplysm14/apis/core-common/README.md +0 -58
- package/claude/references/sd-simplysm14/apis/core-common/extensions.md +0 -88
- package/claude/references/sd-simplysm14/apis/core-common/features.md +0 -51
- package/claude/references/sd-simplysm14/apis/core-common/types.md +0 -88
- package/claude/references/sd-simplysm14/apis/core-common/utils.md +0 -189
- package/claude/references/sd-simplysm14/apis/core-node/README.md +0 -12
- package/claude/references/sd-simplysm14/apis/core-node/consola.md +0 -59
- package/claude/references/sd-simplysm14/apis/core-node/cpx.md +0 -44
- package/claude/references/sd-simplysm14/apis/core-node/fs-watcher.md +0 -42
- package/claude/references/sd-simplysm14/apis/core-node/fsx.md +0 -53
- package/claude/references/sd-simplysm14/apis/core-node/pathx.md +0 -24
- package/claude/references/sd-simplysm14/apis/core-node/worker.md +0 -65
- package/claude/references/sd-simplysm14/apis/excel/README.md +0 -193
- package/claude/references/sd-simplysm14/apis/lint/README.md +0 -94
- package/claude/references/sd-simplysm14/apis/orm-common/README.md +0 -58
- package/claude/references/sd-simplysm14/apis/orm-common/db-context.md +0 -77
- package/claude/references/sd-simplysm14/apis/orm-common/executable.md +0 -20
- package/claude/references/sd-simplysm14/apis/orm-common/expr.md +0 -92
- package/claude/references/sd-simplysm14/apis/orm-common/queryable.md +0 -98
- package/claude/references/sd-simplysm14/apis/orm-common/schema-builders.md +0 -128
- package/claude/references/sd-simplysm14/apis/orm-node/README.md +0 -69
- package/claude/references/sd-simplysm14/apis/sd-claude/README.md +0 -32
- package/claude/references/sd-simplysm14/apis/sd-cli/README.md +0 -80
- package/claude/references/sd-simplysm14/apis/sd-cli/sd-config.md +0 -155
- package/claude/references/sd-simplysm14/apis/service-client/README.md +0 -131
- package/claude/references/sd-simplysm14/apis/service-common/README.md +0 -29
- package/claude/references/sd-simplysm14/apis/service-common/app-structure.md +0 -63
- package/claude/references/sd-simplysm14/apis/service-common/messages.md +0 -56
- package/claude/references/sd-simplysm14/apis/service-common/protocol.md +0 -64
- package/claude/references/sd-simplysm14/apis/service-common/service-types.md +0 -43
- package/claude/references/sd-simplysm14/apis/service-server/README.md +0 -13
- package/claude/references/sd-simplysm14/apis/service-server/auth.md +0 -39
- package/claude/references/sd-simplysm14/apis/service-server/builtin-services.md +0 -71
- package/claude/references/sd-simplysm14/apis/service-server/define-service.md +0 -55
- package/claude/references/sd-simplysm14/apis/service-server/internals.md +0 -82
- package/claude/references/sd-simplysm14/apis/service-server/server.md +0 -57
- package/claude/references/sd-simplysm14/apis/storage/README.md +0 -71
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
|
|
9
9
|
### 1.1 핵심 목적 [확정: 2026-04-01]
|
|
10
10
|
|
|
11
|
-
박스 단위로 Location
|
|
11
|
+
박스 단위로 Location 을 추적하고, 입출고 발생을 ERP 와 연동하는 WMS (Warehouse Management System).
|
|
12
12
|
|
|
13
13
|
### 1.2 주요 목표 [확정: 2026-04-01]
|
|
14
14
|
|
|
15
15
|
- 박스 입고 처리
|
|
16
16
|
- 박스 출고 처리
|
|
17
|
-
- 입출고에
|
|
18
|
-
- 입출고
|
|
17
|
+
- 입출고에 따른 재고 확인
|
|
18
|
+
- 입출고 정보의 ERP 동기화
|
|
19
19
|
|
|
20
20
|
### 1.3 최종 사용자/이해관계자 [확정: 2026-04-01]
|
|
21
21
|
|
|
22
|
-
- 창고 작업자: 현장에서 PDA를 들고
|
|
23
|
-
- 창고 관리자: 사무실에서 PC로
|
|
22
|
+
- 창고 작업자: 현장에서 PDA 를 들고 물건을 옮기는 작업자
|
|
23
|
+
- 창고 관리자: 사무실에서 PC 로 마스터·재고·지시서를 관리하는 담당자
|
|
24
24
|
|
|
25
25
|
### 1.4 환경/장치 [확정: 2026-04-01]
|
|
26
26
|
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
└───────────┘ └───────────────┘
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
- PC — 창고 관리자가 마스터·출고지시서·재고
|
|
45
|
+
- PC — 창고 관리자가 마스터·출고지시서·재고 화면 운용에 사용
|
|
46
46
|
- OS: Windows 11
|
|
47
47
|
- Browser: Chrome 최신
|
|
48
48
|
- 해상도: 1920 x 1080
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
- Model: DS60S
|
|
51
51
|
- OS: Android 9
|
|
52
52
|
- 해상도: 360 x 568
|
|
53
|
-
- A4 Printer — 출고지시서
|
|
54
|
-
- 스펙:
|
|
55
|
-
- Label Printer — Location
|
|
53
|
+
- A4 Printer — 출고지시서 출력 및 Location 바코드 다중 출력 (A4 1매에 여러 라벨 배치)
|
|
54
|
+
- 스펙: 시중에서 일반적으로 판매되는 A4 프린터 (특정 모델 제약 없음)
|
|
55
|
+
- Label Printer — Location 라벨을 1매씩 출력
|
|
56
56
|
- Model: [OPEN]
|
|
57
57
|
|
|
58
58
|
## 2. 업무 프로세스
|
|
@@ -66,28 +66,28 @@ flowchart LR
|
|
|
66
66
|
T2 --> E1([입고 등록 완료])
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
- 박스 1개는 단일 품목·단일 Location (1
|
|
70
|
-
- 입고 등록 = 박스의
|
|
71
|
-
- 박스 바코드는 외부에서 이미 부착된 상태로
|
|
72
|
-
- ERP 통보는
|
|
69
|
+
- 박스 1개는 단일 품목·단일 Location 만 가짐 (박스 1개가 2개 Location 에 동시 존재 불가)
|
|
70
|
+
- 입고 등록 시점 = 박스의 최초 Location 적치 시점 (재입고·이동은 본 프로세스에서 제외)
|
|
71
|
+
- 박스 바코드는 외부에서 이미 부착된 상태로 도착함 (창고에서 발급하지 않음)
|
|
72
|
+
- ERP 통보는 박스번호를 키로 멱등 처리됨 (동일 박스 재시도 시 ERP 측이 중복 무시)
|
|
73
73
|
|
|
74
74
|
관련 섹션: [화면.입고 스캔], [화면.품목 관리], [화면.Location 관리], [화면.재고 확인]
|
|
75
75
|
|
|
76
76
|
### 2.2 출고 [OPEN: 2026-04-01]
|
|
77
77
|
|
|
78
|
-
분석 방법: 회의록.md L40-50
|
|
78
|
+
분석 방법: 입고 분석 종료 후 회의록.md L40-50 재독. 사용자 보류 발언 — "출고 부분은 입고 끝나고 다음 단계에서 보자".
|
|
79
79
|
|
|
80
80
|
## 3. 기타 요구사항
|
|
81
81
|
|
|
82
82
|
### 3.1 과거 재고 조회 [확정: 2026-04-01]
|
|
83
83
|
|
|
84
|
-
특정
|
|
84
|
+
특정 일자 기준의 재고 상태를 조회할 수 있어야 함.
|
|
85
85
|
|
|
86
86
|
관련 섹션: [화면.재고 확인], [자동 처리.재고 스냅샷]
|
|
87
87
|
|
|
88
88
|
### 3.2 마스터 데이터 변경 이력 [확정: 2026-04-01]
|
|
89
89
|
|
|
90
|
-
모든 마스터 데이터의 변경 (등록·편집·활성/비활성 전환) 이력을
|
|
90
|
+
모든 마스터 데이터의 변경 (등록·편집·활성/비활성 전환) 이력을 자동으로 기록해야 함. 목적은 변경 추적·감사.
|
|
91
91
|
|
|
92
92
|
관련 섹션: [횡단 처리.마스터 데이터 변경 이력]
|
|
93
93
|
|
|
@@ -109,7 +109,7 @@ Actor: 창고 관리자
|
|
|
109
109
|
|
|
110
110
|
기능 개요:
|
|
111
111
|
|
|
112
|
-
- 품목 마스터 CRUD
|
|
112
|
+
- 품목 마스터 CRUD: 등록 / 편집 / 삭제·복구 / 엑셀 업·다운로드
|
|
113
113
|
|
|
114
114
|
#### 와이어프레임
|
|
115
115
|
|
|
@@ -144,18 +144,18 @@ Actor: 창고 관리자
|
|
|
144
144
|
|
|
145
145
|
#### 동작
|
|
146
146
|
|
|
147
|
-
- `[조회]` 클릭: 검색 필터 조건으로
|
|
148
|
-
- `[등록]` 클릭: [화면.품목 등록·편집] 을 빈
|
|
149
|
-
- ID 버튼 클릭: [화면.품목 등록·편집] 을 해당 행 데이터로 모달 띄움
|
|
150
|
-
- `[선택 삭제]` 클릭: 선택된 행들의 활성
|
|
151
|
-
- `[선택 복구]` 클릭: 선택된 행들의 활성
|
|
152
|
-
- `[엑셀 업로드]` 클릭: 엑셀 파일 선택
|
|
153
|
-
- `[엑셀 다운로드]` 클릭: 현재
|
|
154
|
-
- `[화주 자료 업로드]` 클릭: [공통 정의.화주 품목 자료]
|
|
147
|
+
- `[조회]` 클릭: 검색 필터 조건으로 목록을 갱신
|
|
148
|
+
- `[등록]` 클릭: [화면.품목 등록·편집] 을 빈 폼 상태로 모달 띄움
|
|
149
|
+
- ID 버튼 클릭: [화면.품목 등록·편집] 을 해당 행 데이터로 채워 모달 띄움
|
|
150
|
+
- `[선택 삭제]` 클릭: 선택된 행들의 활성 여부를 false 로 전환 (이후 해당 품목 입출고 불가)
|
|
151
|
+
- `[선택 복구]` 클릭: 선택된 행들의 활성 여부를 true 로 전환
|
|
152
|
+
- `[엑셀 업로드]` 클릭: 엑셀 파일 선택 후, 코드를 키로 일괄 등록·수정
|
|
153
|
+
- `[엑셀 다운로드]` 클릭: 현재 필터가 적용된 목록을 엑셀로 내보냄
|
|
154
|
+
- `[화주 자료 업로드]` 클릭: [공통 정의.화주 품목 자료] 파일을 선택받아, 아래 업로드 양식을 적용한 뒤 코드를 키로 일괄 등록·수정
|
|
155
155
|
|
|
156
156
|
#### 시각 규칙
|
|
157
157
|
|
|
158
|
-
- 비활성 행: 전체 취소선 + 회색
|
|
158
|
+
- 비활성 행: 전체 텍스트에 취소선 + 회색 처리
|
|
159
159
|
|
|
160
160
|
#### 업로드 양식
|
|
161
161
|
|
|
@@ -198,8 +198,8 @@ Actor: 창고 관리자
|
|
|
198
198
|
|
|
199
199
|
#### 동작
|
|
200
200
|
|
|
201
|
-
- `[저장]` 클릭: 활성 품목
|
|
202
|
-
- `[취소]` 클릭: 변경
|
|
201
|
+
- `[저장]` 클릭: 활성 품목 내에서 코드·명칭 유일성을 검증한 뒤 저장하고 모달 닫음
|
|
202
|
+
- `[취소]` 클릭: 변경 사항을 폐기하고 모달 닫음
|
|
203
203
|
|
|
204
204
|
### 4.3 Location 관리 (PC) [확정: 2026-04-01]
|
|
205
205
|
|
|
@@ -208,8 +208,8 @@ Actor: 창고 관리자
|
|
|
208
208
|
|
|
209
209
|
기능 개요:
|
|
210
210
|
|
|
211
|
-
- Location 마스터 CRUD
|
|
212
|
-
- 두 가지 바코드
|
|
211
|
+
- Location 마스터 CRUD: 등록 / 편집 / 삭제·복구 / 엑셀 업·다운로드
|
|
212
|
+
- 두 가지 바코드 출력 방식: A4 다중 출력, 라벨프린터 1매씩 출력
|
|
213
213
|
|
|
214
214
|
#### 와이어프레임
|
|
215
215
|
|
|
@@ -242,27 +242,27 @@ Actor: 창고 관리자
|
|
|
242
242
|
|
|
243
243
|
#### 동작
|
|
244
244
|
|
|
245
|
-
- `[조회]` 클릭: 검색 필터 조건으로
|
|
246
|
-
- `[등록]` 클릭: [화면.Location 등록·편집] 을 빈
|
|
247
|
-
- ID 버튼 클릭: [화면.Location 등록·편집] 을 해당 행 데이터로 모달 띄움
|
|
248
|
-
- `[선택 삭제]` 클릭: 선택된 행들의 활성
|
|
249
|
-
- `[선택 복구]` 클릭: 선택된 행들의 활성
|
|
250
|
-
- `[엑셀 업로드]` 클릭: 엑셀 파일 선택
|
|
251
|
-
- `[엑셀 다운로드]` 클릭: 현재
|
|
252
|
-
- `[A4 출력]` 클릭 (A4 다중):
|
|
245
|
+
- `[조회]` 클릭: 검색 필터 조건으로 목록을 갱신
|
|
246
|
+
- `[등록]` 클릭: [화면.Location 등록·편집] 을 빈 폼 상태로 모달 띄움
|
|
247
|
+
- ID 버튼 클릭: [화면.Location 등록·편집] 을 해당 행 데이터로 채워 모달 띄움
|
|
248
|
+
- `[선택 삭제]` 클릭: 선택된 행들의 활성 여부를 false 로 전환
|
|
249
|
+
- `[선택 복구]` 클릭: 선택된 행들의 활성 여부를 true 로 전환
|
|
250
|
+
- `[엑셀 업로드]` 클릭: 엑셀 파일 선택 후, 코드를 키로 일괄 등록·수정
|
|
251
|
+
- `[엑셀 다운로드]` 클릭: 현재 필터가 적용된 목록을 엑셀로 내보냄
|
|
252
|
+
- `[A4 출력]` 클릭 (A4 다중 출력):
|
|
253
253
|
- 절차:
|
|
254
|
-
1. 선택된 Location 목록을 A4 1매에
|
|
254
|
+
1. 선택된 Location 목록을 A4 1매에 그리드 형태로 배치
|
|
255
255
|
2. 각 칸에 [공통 정의.Location 라벨] 의 표시 항목을 인쇄
|
|
256
|
-
3. PDF
|
|
257
|
-
- [OPEN] A4 1매당 그리드 행/열
|
|
258
|
-
- `[선택 라벨 출력]` 클릭 (라벨프린터):
|
|
256
|
+
3. PDF 로 다운로드하거나 직접 인쇄
|
|
257
|
+
- [OPEN] A4 1매당 그리드 행/열 개수
|
|
258
|
+
- `[선택 라벨 출력]` 클릭 (라벨프린터 출력):
|
|
259
259
|
- 절차:
|
|
260
|
-
1. 선택된 Location 을 [공통 정의.Location 라벨] 규격으로
|
|
260
|
+
1. 선택된 Location 을 [공통 정의.Location 라벨] 규격으로 라벨프린터에서 1매씩 출력
|
|
261
261
|
2. 다중 선택 시 선택 수만큼 연속 출력
|
|
262
262
|
|
|
263
263
|
#### 시각 규칙
|
|
264
264
|
|
|
265
|
-
- 비활성 행: 전체 취소선 + 회색
|
|
265
|
+
- 비활성 행: 전체 텍스트에 취소선 + 회색 처리
|
|
266
266
|
|
|
267
267
|
### 4.4 Location 등록·편집 (PC) [확정: 2026-04-01]
|
|
268
268
|
|
|
@@ -295,17 +295,17 @@ Actor: 창고 관리자
|
|
|
295
295
|
|
|
296
296
|
#### 동작
|
|
297
297
|
|
|
298
|
-
- `[저장]` 클릭: 활성 Location
|
|
299
|
-
- `[취소]` 클릭: 변경
|
|
298
|
+
- `[저장]` 클릭: 활성 Location 내에서 코드 유일성을 검증한 뒤 저장하고 모달 닫음
|
|
299
|
+
- `[취소]` 클릭: 변경 사항을 폐기하고 모달 닫음
|
|
300
300
|
|
|
301
301
|
### 4.5 입고 스캔 (PDA) [확정: 2026-04-01]
|
|
302
302
|
|
|
303
303
|
Actor: 창고 작업자
|
|
304
|
-
관련 섹션: [프로세스.입고], [
|
|
304
|
+
관련 섹션: [프로세스.입고], [외부 인터페이스.ERP 입고 통보]
|
|
305
305
|
|
|
306
306
|
기능 개요:
|
|
307
307
|
|
|
308
|
-
- 박스
|
|
308
|
+
- 박스 바코드, Location 바코드 순서로 스캔하여 재고를 등록
|
|
309
309
|
|
|
310
310
|
#### 와이어프레임
|
|
311
311
|
|
|
@@ -333,10 +333,10 @@ Actor: 창고 작업자
|
|
|
333
333
|
|
|
334
334
|
- `[등록]` 클릭:
|
|
335
335
|
- 절차:
|
|
336
|
-
1. 박스
|
|
337
|
-
2. 모델
|
|
338
|
-
3. [모델.재고] 생성
|
|
339
|
-
4. [
|
|
336
|
+
1. 박스 바코드를 품목코드·수량·박스번호로 파싱
|
|
337
|
+
2. 모델 존재·상태 검증 (품목 활성 여부, Location 활성 여부, 박스번호 미중복)
|
|
338
|
+
3. [모델.재고] 레코드 생성
|
|
339
|
+
4. [외부 인터페이스.ERP 입고 통보] 호출
|
|
340
340
|
|
|
341
341
|
### 4.6 재고 확인 (PC) [확정: 2026-04-01]
|
|
342
342
|
|
|
@@ -345,8 +345,8 @@ Actor: 창고 관리자
|
|
|
345
345
|
|
|
346
346
|
기능 개요:
|
|
347
347
|
|
|
348
|
-
- 현재
|
|
349
|
-
- 과거 시점
|
|
348
|
+
- 현재 재고 조회: Location 별로 적치된 박스, 품목, 수량 표시
|
|
349
|
+
- 과거 시점 재고 조회: 특정 날짜의 스냅샷 표시
|
|
350
350
|
|
|
351
351
|
#### 와이어프레임
|
|
352
352
|
|
|
@@ -367,7 +367,7 @@ Actor: 창고 관리자
|
|
|
367
367
|
|
|
368
368
|
| 항목 | 종류 | 필수 | 비고 |
|
|
369
369
|
| ------------- | ------ | ---- | -------------------------------------------- |
|
|
370
|
-
| 기준일 | 날짜 | X | 비우면
|
|
370
|
+
| 기준일 | 날짜 | X | 비우면 현재 시점 조회. 과거 일자 입력 시 스냅샷 조회 |
|
|
371
371
|
| 품목 필터 | 텍스트 | X | 코드 부분 일치 |
|
|
372
372
|
| Location 필터 | 텍스트 | X | 코드 부분 일치 |
|
|
373
373
|
|
|
@@ -383,56 +383,56 @@ Actor: 창고 관리자
|
|
|
383
383
|
#### 동작
|
|
384
384
|
|
|
385
385
|
- `[조회]` 클릭:
|
|
386
|
-
-
|
|
387
|
-
-
|
|
388
|
-
-
|
|
389
|
-
- `[엑셀 다운로드]` 클릭: 현재 조회 결과를 엑셀로
|
|
386
|
+
- 기준일이 비어있으면: 현재 시점 [모델.재고] 를 조회
|
|
387
|
+
- 기준일이 입력되어 있으면: [모델.재고 스냅샷] 에서 해당 날짜 분을 조회
|
|
388
|
+
- 위 결과에 품목·Location 필터 조건을 적용하여 표시
|
|
389
|
+
- `[엑셀 다운로드]` 클릭: 현재 조회 결과를 엑셀로 내보냄
|
|
390
390
|
|
|
391
391
|
## 5. 자동 처리
|
|
392
392
|
|
|
393
393
|
### 5.1 재고 스냅샷 [확정: 2026-04-01]
|
|
394
394
|
|
|
395
|
-
목적: 과거 시점 재고
|
|
395
|
+
목적: 과거 시점 재고 조회를 지원
|
|
396
396
|
|
|
397
|
-
트리거: 매일 0시 정각
|
|
397
|
+
트리거: 매일 0시 정각 (자정)
|
|
398
398
|
|
|
399
399
|
관련 섹션: [기타.과거 재고 조회], [화면.재고 확인]
|
|
400
400
|
|
|
401
401
|
#### 처리
|
|
402
402
|
|
|
403
|
-
- [모델.재고] 전체를 [모델.재고 스냅샷] 에
|
|
403
|
+
- 트리거 시점의 [모델.재고] 전체를 [모델.재고 스냅샷] 에 해당 날짜로 저장
|
|
404
404
|
|
|
405
405
|
#### 예외 처리
|
|
406
406
|
|
|
407
407
|
- 스냅샷 생성 실패 시:
|
|
408
|
-
- 위험: 당일 분 누락 시 해당 날짜의 과거 시점
|
|
409
|
-
- 대처:
|
|
410
|
-
- 재시도 한계:
|
|
408
|
+
- 위험: 당일 분 누락 시 해당 날짜의 과거 시점 조회가 불가
|
|
409
|
+
- 대처: 관리자에게 알림 발송. 동일 일자에 재실행할 경우 (날짜, 박스) 유일성 제약으로 중복 생성을 방지
|
|
410
|
+
- 재시도 한계: 자동 재시도 없음 (다음 날 0시에 정상 동작)
|
|
411
411
|
|
|
412
412
|
## 6. 횡단 처리
|
|
413
413
|
|
|
414
414
|
### 6.1 마스터 데이터 변경 이력 [확정: 2026-04-01]
|
|
415
415
|
|
|
416
|
-
목적: 마스터
|
|
416
|
+
목적: 마스터 데이터 변경의 추적·감사 (누가, 언제, 무엇을, 어떻게 바꿨는지 기록)
|
|
417
417
|
|
|
418
418
|
트리거 (부수효과 발동 조건):
|
|
419
|
-
- 마스터 엔티티의 insert
|
|
420
|
-
- 적용
|
|
421
|
-
- 적용
|
|
419
|
+
- 마스터 엔티티의 insert·update·delete 트랜잭션 commit 시점
|
|
420
|
+
- 적용 대상 모델: [모델.품목], [모델.Location]
|
|
421
|
+
- 적용 제외 모델 (트랜잭션 모델): [모델.재고], [모델.재고 스냅샷]
|
|
422
422
|
|
|
423
423
|
관련 섹션: [기타.마스터 데이터 변경 이력], [모델.품목], [모델.Location], [모델.DataLog]
|
|
424
424
|
|
|
425
425
|
#### 처리
|
|
426
426
|
|
|
427
|
-
- 변경 전 값과 변경 후
|
|
428
|
-
- [모델.DataLog] 에
|
|
427
|
+
- 변경 전 값과 변경 후 값을 캡처 (insert 시 변경 전 = null, delete 시 변경 후 = null)
|
|
428
|
+
- [모델.DataLog] 에 1행 적재 (테이블명·키·변경 전·변경 후·작업자·시각)
|
|
429
429
|
|
|
430
430
|
#### 예외 처리
|
|
431
431
|
|
|
432
432
|
- DataLog 적재 실패 시:
|
|
433
|
-
- 위험: 변경 추적 누락
|
|
434
|
-
- 대처:
|
|
435
|
-
- 재시도 한계: 큐에서 5
|
|
433
|
+
- 위험: 변경 이력 추적 누락
|
|
434
|
+
- 대처: 원본 마스터 트랜잭션은 정상 commit 유지하고, DataLog 적재 실패만 별도 큐에 적재한 뒤 관리자에게 알림
|
|
435
|
+
- 재시도 한계: 큐에서 지수 백오프로 5회까지 재시도 후 운영팀에 알림
|
|
436
436
|
|
|
437
437
|
#### 모델 매핑
|
|
438
438
|
|
|
@@ -449,14 +449,14 @@ Actor: 창고 관리자
|
|
|
449
449
|
|
|
450
450
|
### 7.1 용어 사전 [확정: 2026-04-01]
|
|
451
451
|
|
|
452
|
-
- 박스: 외부에서 이미 바코드(
|
|
453
|
-
- Location: 창고 내 적치
|
|
454
|
-
- ERP 통보: 입출고 발생 시 WMS
|
|
455
|
-
- 활성 여부: 마스터 데이터의 소프트 삭제 플래그 (true = 정상, false = 삭제 처리됨). UI 의 "
|
|
452
|
+
- 박스: 외부에서 이미 바코드(품목코드 + 수량 + 박스번호 합성)가 부착된 상태로 도착하는 입고 단위
|
|
453
|
+
- Location: 창고 내 적치 위치. 라벨 규격은 [공통 정의.Location 라벨] 참조
|
|
454
|
+
- ERP 통보: 입출고 발생 시 WMS 에서 ERP 로 보내는 단방향 알림
|
|
455
|
+
- 활성 여부: 마스터 데이터의 소프트 삭제 플래그 (true = 정상, false = 삭제 처리됨). UI 의 "삭제·복구" 액션과 매핑됨. 마스터 데이터는 DB 레코드를 물리적으로 삭제하지 않음
|
|
456
456
|
|
|
457
457
|
### 7.2 박스 바코드 형식 [OPEN: 2026-04-01]
|
|
458
458
|
|
|
459
|
-
분석 방법: 첨부B.pdf p.5 "박스 코드 체계" (외부 송장 시스템 규격) 분석. [모델.박스]
|
|
459
|
+
분석 방법: 첨부B.pdf p.5 "박스 코드 체계" (외부 송장 시스템 규격) 분석. [모델.박스] 의 비즈니스 키 구조와 직결되므로, [모델.박스] 확정과 함께 검토 필요.
|
|
460
460
|
|
|
461
461
|
### 7.3 Location 라벨 [확정: 2026-04-01]
|
|
462
462
|
|
|
@@ -477,12 +477,12 @@ Actor: 창고 관리자
|
|
|
477
477
|
|
|
478
478
|
### 7.4 화주 품목 자료 [확정: 2026-04-01]
|
|
479
479
|
|
|
480
|
-
화주(품목을 본 WMS 에 보관 위탁한 거래처)가
|
|
480
|
+
화주(품목을 본 WMS 에 보관 위탁한 거래처)가 자체 ERP 에서 수시로 다운로드한 뒤, 화주별로 별도 파일을 전달함. 신규 화주 등록 시점이나 화주 측 품목 마스터 변경 시점에 본 WMS 로 1회 일괄 업로드함. 식별 키는 `화주코드` + `SEQ` 2개 컬럼의 합성값.
|
|
481
481
|
|
|
482
482
|
| 컬럼 | 필수 | 설명 |
|
|
483
483
|
| -------- | ---- | --------------------------------------------------- |
|
|
484
484
|
| 화주코드 | O | 화주 ERP 의 품목 코드. 영문 대문자 + 숫자, 최대 8자 |
|
|
485
|
-
| SEQ | O | 같은 화주코드 내 revision 일련번호. 숫자 3자리
|
|
485
|
+
| SEQ | O | 같은 화주코드 내 개정(revision) 일련번호. 숫자 3자리 |
|
|
486
486
|
| 품목명 | O | 화주 측 명칭 |
|
|
487
487
|
| 단위 | X | `EA` / `BOX` 등 |
|
|
488
488
|
|
|
@@ -503,7 +503,7 @@ Actor: 창고 관리자
|
|
|
503
503
|
|
|
504
504
|
- 식별 키: ID (자동 부여)
|
|
505
505
|
- 비즈니스 키: 코드 (사용자 부여, 수정 가능)
|
|
506
|
-
-
|
|
506
|
+
- 유일성 제약: 활성 품목 범위 내에서 코드, 명칭 각각 유일
|
|
507
507
|
|
|
508
508
|
### 8.2 박스 [확정: 2026-04-01]
|
|
509
509
|
|
|
@@ -520,8 +520,8 @@ Actor: 창고 관리자
|
|
|
520
520
|
|
|
521
521
|
- 식별 키: ID (자동 부여)
|
|
522
522
|
- 비즈니스 키: 박스번호
|
|
523
|
-
- 박스 1
|
|
524
|
-
-
|
|
523
|
+
- 박스 1개는 단일 품목만 가짐
|
|
524
|
+
- 유일성 제약: 박스번호는 전체 박스에서 유일
|
|
525
525
|
|
|
526
526
|
### 8.3 Location [확정: 2026-04-01]
|
|
527
527
|
|
|
@@ -537,7 +537,7 @@ Actor: 창고 관리자
|
|
|
537
537
|
|
|
538
538
|
- 식별 키: ID (자동 부여)
|
|
539
539
|
- 비즈니스 키: 코드 (사용자 부여, 수정 가능)
|
|
540
|
-
-
|
|
540
|
+
- 유일성 제약: 활성 Location 범위 내에서 코드는 유일
|
|
541
541
|
|
|
542
542
|
### 8.4 재고 [확정: 2026-04-01]
|
|
543
543
|
|
|
@@ -552,8 +552,8 @@ Actor: 창고 관리자
|
|
|
552
552
|
키/제약:
|
|
553
553
|
|
|
554
554
|
- 식별 키: ID (자동 부여)
|
|
555
|
-
- 박스 1개는 동시에 1개 Location 에만 존재 (=
|
|
556
|
-
- Location 1개에 박스
|
|
555
|
+
- 박스 1개는 동시에 1개 Location 에만 존재 (박스-재고 = 1:1)
|
|
556
|
+
- Location 1개에 박스 다수 적치 가능
|
|
557
557
|
|
|
558
558
|
### 8.5 재고 스냅샷 [확정: 2026-04-01]
|
|
559
559
|
|
|
@@ -569,7 +569,7 @@ Actor: 창고 관리자
|
|
|
569
569
|
키/제약:
|
|
570
570
|
|
|
571
571
|
- 식별 키: ID (자동 부여)
|
|
572
|
-
- 비즈니스 키: (날짜, 박스)
|
|
572
|
+
- 비즈니스 키: (날짜, 박스) 조합이 유일
|
|
573
573
|
|
|
574
574
|
### 8.6 DataLog [확정: 2026-04-01]
|
|
575
575
|
|
|
@@ -588,7 +588,7 @@ Actor: 창고 관리자
|
|
|
588
588
|
키/제약:
|
|
589
589
|
|
|
590
590
|
- 식별 키: ID (자동 부여)
|
|
591
|
-
- 인덱스: (테이블명, 키, 시각) — 특정
|
|
591
|
+
- 인덱스: (테이블명, 키, 시각) — 특정 엔티티의 변경 이력 조회 용도
|
|
592
592
|
|
|
593
593
|
## 9. 외부 인터페이스
|
|
594
594
|
|
|
@@ -611,28 +611,28 @@ Actor: 창고 관리자
|
|
|
611
611
|
|
|
612
612
|
#### 예외 처리
|
|
613
613
|
|
|
614
|
-
- 호출 실패 (네트워크 오류, ERP 서버 일시 다운 등):
|
|
615
|
-
- 위험: 단순 재시도 시 ERP 에 같은 박스가 2번 입고 등록될 수 있음 (첫 호출이
|
|
616
|
-
- 방지 전제: ERP
|
|
617
|
-
- 대처: 위 전제 하에 지수 백오프로 재시도, 최대 5
|
|
618
|
-
- 재시도 한계
|
|
614
|
+
- 호출 실패 시 (네트워크 오류, ERP 서버 일시 다운 등):
|
|
615
|
+
- 위험: 단순 재시도 시 ERP 에 같은 박스가 2번 입고 등록될 수 있음 (예: 첫 호출이 ERP 에 도달했으나 응답만 못 받은 경우)
|
|
616
|
+
- 방지 전제: ERP 측이 박스번호를 키로 사용하여 이미 받은 통보를 무시하도록 구성되어 있어야 함
|
|
617
|
+
- 대처: 위 전제 하에 지수 백오프로 재시도, 최대 5회까지
|
|
618
|
+
- 재시도 한계 초과 시: 관리자에게 알림 발송 (이후 수동 확인 필요)
|
|
619
619
|
|
|
620
620
|
## 10. 본문 외 확정 사항
|
|
621
621
|
|
|
622
|
-
- 2026-04-01 [제외]: 직원 관리 사원번호 컬럼 추가
|
|
623
|
-
- 근거: 본 spec 범위 밖
|
|
624
|
-
- 후속 처리: sd-dev
|
|
622
|
+
- 2026-04-01 [제외]: 직원 관리 화면에 사원번호 컬럼 추가 건
|
|
623
|
+
- 근거: 본 spec 의 범위 밖 (인사 마스터 영역)
|
|
624
|
+
- 후속 처리: sd-dev 스킬로 이관
|
|
625
625
|
- 자료 위치: 회의록.md L42
|
|
626
626
|
|
|
627
|
-
- 2026-04-01 [제외]: 재고 확인
|
|
628
|
-
- 근거: 본 spec 범위 밖
|
|
629
|
-
- 후속 처리: 운영 잔손
|
|
627
|
+
- 2026-04-01 [제외]: 재고 확인 화면의 정렬 버그
|
|
628
|
+
- 근거: 본 spec 의 범위 밖 (운영 잔손 영역)
|
|
629
|
+
- 후속 처리: 운영 잔손 채널로 이관
|
|
630
630
|
- 자료 위치: 이슈 #128
|
|
631
631
|
|
|
632
|
-
- 2026-04-01: 출고 분석은 입고
|
|
633
|
-
- 근거: 사용자 결정 — 입고
|
|
632
|
+
- 2026-04-01: 출고 분석은 입고 분석이 끝난 뒤 다음 단계에서 진행
|
|
633
|
+
- 근거: 사용자 결정 — 입고 검증을 먼저 완료해야 출고 진행이 안전
|
|
634
634
|
- 자료 위치: 회의록.md L40-50
|
|
635
|
-
- 영향:
|
|
635
|
+
- 영향: 업무 프로세스 출고(2.2번 섹션) OPEN 상태 유지
|
|
636
636
|
|
|
637
637
|
- 2026-04-05: 품목 마스터 sd-impl 완료 (구현 마커 부착)
|
|
638
|
-
- 근거: 시연 검증 통과 (
|
|
638
|
+
- 근거: 시연 검증 통과 — 화면 품목 관리(4.1번 섹션), 품목 등록·편집(4.2번 섹션)
|