summaryrefslogtreecommitdiff
path: root/lib/users/knox-service.ts
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-08-11 09:34:40 +0000
committerjoonhoekim <26rote@gmail.com>2025-08-11 09:34:40 +0000
commitbcd462d6e60871b86008e072f4b914138fc5c328 (patch)
treec22876fd6c6e7e48254587848b9dff50cdb8b032 /lib/users/knox-service.ts
parentcbb4c7fe0b94459162ad5e998bc05cd293e0ff96 (diff)
(김준회) 리치텍스트에디터 (결재템플릿을 위한 공통컴포넌트), command-menu 에러 수정, 결재 템플릿 관리, 결재선 관리, ECC RFQ+PR Item 수신시 비즈니스테이블(ProcurementRFQ) 데이터 적재, WSDL 오류 수정
Diffstat (limited to 'lib/users/knox-service.ts')
-rw-r--r--lib/users/knox-service.ts37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/users/knox-service.ts b/lib/users/knox-service.ts
index d5453072..d6755022 100644
--- a/lib/users/knox-service.ts
+++ b/lib/users/knox-service.ts
@@ -4,6 +4,8 @@ import { unstable_cache } from "next/cache";
import db from "@/db/db";
import { organization } from "@/db/schema/knox/organization";
import { eq, and, asc } from "drizzle-orm";
+import { users } from "@/db/schema/users";
+import { employee } from "@/db/schema/knox/employee";
// 조직 트리 노드 타입
export interface DepartmentNode {
@@ -375,3 +377,38 @@ export async function getCurrentCompanyInfo(): Promise<{ code: string; name: str
name: "삼성중공업"
};
}
+
+// 사번으로 user Id 찾기
+export async function findUserIdByEmployeeNumber(employeeNumber: string): Promise<number | null> {
+
+ try {
+ // 1. 사번 기준으로 email 찾기
+ const userEmail = await db
+ .select({ email: employee.emailAddress })
+ .from(employee)
+ .where(eq(employee.employeeNumber, employeeNumber))
+ .limit(1);
+
+ if (userEmail.length === 0) {
+ console.error('사번에 해당하는 이메일 찾기 실패', { employeeNumber });
+ return null;
+ }
+
+ // 2. 이메일 기준으로 userId 찾기
+ const userId = await db
+ .select({ id: users.id })
+ .from(users)
+ .where(eq(users.email, userEmail[0].email));
+
+ if (userId.length === 0) {
+ console.error('이메일에 해당하는 사용자 찾기 실패', { email: userEmail[0].email });
+ return null;
+ }
+
+ return userId[0].id;
+
+ } catch (error) {
+ console.error('사번에 해당하는 이메일 찾기 실패', { employeeNumber, error });
+ return null;
+ }
+} \ No newline at end of file