From 6a1ca6b867e11835a8baa68434b8e480efc7c7e4 Mon Sep 17 00:00:00 2001 From: harid Date: Thu, 9 Apr 2026 17:20:24 +0700 Subject: [PATCH 1/4] =?UTF-8?q?fix=20Noti=20=E0=B9=81=E0=B8=88=E0=B9=89?= =?UTF-8?q?=E0=B8=87=E0=B9=80=E0=B8=95=E0=B8=B7=E0=B8=AD=E0=B8=99=E0=B8=9C?= =?UTF-8?q?=E0=B8=B4=E0=B8=94=20#2417?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/DevelopmentRequestController.ts | 3 ++- src/controllers/ProfileEditController.ts | 3 ++- src/controllers/ProfileEditEmployeeController.ts | 3 ++- src/controllers/WorkflowController.ts | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/controllers/DevelopmentRequestController.ts b/src/controllers/DevelopmentRequestController.ts index 14c485c4..f629e1d5 100644 --- a/src/controllers/DevelopmentRequestController.ts +++ b/src/controllers/DevelopmentRequestController.ts @@ -369,7 +369,8 @@ export class DevelopmentRequestController extends Controller { posLevelName: profile.posLevel.posLevelName, posTypeName: profile.posType.posTypeName, fullName: `${profile.prefix}${profile.firstName} ${profile.lastName}`, - isDeputy: orgRoot?.isDeputy ?? false + isDeputy: orgRoot?.isDeputy ?? false, + orgRootId: orgRoot?.id ?? null }) .catch((error) => { console.error("Error calling API:", error); diff --git a/src/controllers/ProfileEditController.ts b/src/controllers/ProfileEditController.ts index 35f26786..17b952d8 100644 --- a/src/controllers/ProfileEditController.ts +++ b/src/controllers/ProfileEditController.ts @@ -363,7 +363,8 @@ export class ProfileEditController extends Controller { posLevelName: profile.posLevel.posLevelName, posTypeName: profile.posType.posTypeName, fullName: `${profile.prefix}${profile.firstName} ${profile.lastName}`, - isDeputy: orgRoot?.isDeputy ?? false + isDeputy: orgRoot?.isDeputy ?? false, + orgRootId: orgRoot?.id ?? null }) .catch((error) => { console.error("Error calling API:", error); diff --git a/src/controllers/ProfileEditEmployeeController.ts b/src/controllers/ProfileEditEmployeeController.ts index 2cdd9fde..288dc724 100644 --- a/src/controllers/ProfileEditEmployeeController.ts +++ b/src/controllers/ProfileEditEmployeeController.ts @@ -363,7 +363,8 @@ export class ProfileEditEmployeeController extends Controller { posLevelName: "EMP", posTypeName: "EMP", fullName: `${profile.prefix}${profile.firstName} ${profile.lastName}`, - isDeputy: orgRoot?.isDeputy ?? false + isDeputy: orgRoot?.isDeputy ?? false, + orgRootId: orgRoot?.id ?? null }) .catch((error) => { console.error("Error calling API:", error); diff --git a/src/controllers/WorkflowController.ts b/src/controllers/WorkflowController.ts index 8e9d2cd4..0609c932 100644 --- a/src/controllers/WorkflowController.ts +++ b/src/controllers/WorkflowController.ts @@ -54,6 +54,7 @@ export class WorkflowController extends Controller { posTypeName: string; fullName?: string | null; isDeputy?: boolean | null; + orgRootId?: string | null; }, ) { // ขั้นที่ 1: ทำการค้นหา profile และ metaWorkflow แบบ parallel @@ -203,9 +204,10 @@ export class WorkflowController extends Controller { posMasterAssigns: { assignId: body.sysName }, orgRevision: { orgRevisionIsDraft: false, orgRevisionIsCurrent: true }, current_holderId: Not(IsNull()), // เพิ่มเงื่อนไขนี้เพื่อกรองเฉพาะที่มี current_holder + ...(body.orgRootId && { orgRootId: body.orgRootId }), // กรองเฉพาะที่อยู่ในสำนักเดียวกัน (ถ้าส่งมา) }, relations: ["orgChild1"], - select: ["current_holderId", "orgChild1"], // เลือกเฉพาะ field ที่จำเป็น + // select: ["current_holderId", "orgChild1"], // เลือกเฉพาะ field ที่จำเป็น }); // สร้าง StateOperatorUsers สำหรับ officers From 2864bea92ff42ef82e440684e9ae8395e9e10719 Mon Sep 17 00:00:00 2001 From: harid Date: Thu, 9 Apr 2026 17:32:03 +0700 Subject: [PATCH 2/4] =?UTF-8?q?fix=20Noti=20=E0=B9=81=E0=B8=88=E0=B9=89?= =?UTF-8?q?=E0=B8=87=E0=B9=80=E0=B8=95=E0=B8=B7=E0=B8=AD=E0=B8=99=E0=B8=9C?= =?UTF-8?q?=E0=B8=B4=E0=B8=94=20#2417?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/DevelopmentRequestController.ts | 1 + src/controllers/ProfileEditController.ts | 1 + src/controllers/ProfileEditEmployeeController.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/src/controllers/DevelopmentRequestController.ts b/src/controllers/DevelopmentRequestController.ts index f629e1d5..138b9a26 100644 --- a/src/controllers/DevelopmentRequestController.ts +++ b/src/controllers/DevelopmentRequestController.ts @@ -321,6 +321,7 @@ export class DevelopmentRequestController extends Controller { } const orgRoot = await this.orgRootRepo.findOne({ select: { + id: true, isDeputy: true }, where: { diff --git a/src/controllers/ProfileEditController.ts b/src/controllers/ProfileEditController.ts index 17b952d8..0b32bd68 100644 --- a/src/controllers/ProfileEditController.ts +++ b/src/controllers/ProfileEditController.ts @@ -335,6 +335,7 @@ export class ProfileEditController extends Controller { } const orgRoot = await this.orgRootRepo.findOne({ select: { + id: true, isDeputy: true }, where: { diff --git a/src/controllers/ProfileEditEmployeeController.ts b/src/controllers/ProfileEditEmployeeController.ts index 288dc724..46468d57 100644 --- a/src/controllers/ProfileEditEmployeeController.ts +++ b/src/controllers/ProfileEditEmployeeController.ts @@ -336,6 +336,7 @@ export class ProfileEditEmployeeController extends Controller { } const orgRoot = await this.orgRootRepo.findOne({ select: { + id: true, isDeputy: true }, where: { From a07d436db852c448589fe3bce9f341b26118888a Mon Sep 17 00:00:00 2001 From: harid Date: Fri, 10 Apr 2026 16:00:12 +0700 Subject: [PATCH 3/4] =?UTF-8?q?fix=20=E0=B8=82=E0=B9=89=E0=B8=AD=E0=B8=A1?= =?UTF-8?q?=E0=B8=B9=E0=B8=A5=E0=B8=9C=E0=B8=B9=E0=B9=89=E0=B8=9E=E0=B9=89?= =?UTF-8?q?=E0=B8=99=E0=B8=88=E0=B8=B2=E0=B8=81=E0=B8=A3=E0=B8=B2=E0=B8=8A?= =?UTF-8?q?=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=81=E0=B9=88=E0=B8=AD=E0=B8=99?= =?UTF-8?q?=E0=B8=9B=E0=B8=B5=202568=20=E0=B8=A3=E0=B8=B0=E0=B8=9A?= =?UTF-8?q?=E0=B8=9A=E0=B9=84=E0=B8=A1=E0=B9=88=E0=B9=80=E0=B8=81=E0=B9=87?= =?UTF-8?q?=E0=B8=9A=20logs=20#2383?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/ProfileController.ts | 8 ++++---- src/middlewares/logs.ts | 14 +++++++++++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/controllers/ProfileController.ts b/src/controllers/ProfileController.ts index 9e758e67..15461d31 100644 --- a/src/controllers/ProfileController.ts +++ b/src/controllers/ProfileController.ts @@ -8966,13 +8966,13 @@ export class ProfileController extends Controller { "current_holders.orgChild2", "current_holders.orgChild3", "current_holders.orgChild4", - "profileSalary", + // "profileSalary", "profileEducations", ], order: { - profileSalary: { - order: "DESC", - }, + // profileSalary: { + // order: "DESC", + // }, profileEducations: { level: "ASC", }, diff --git a/src/middlewares/logs.ts b/src/middlewares/logs.ts index 3f1a5963..391e8699 100644 --- a/src/middlewares/logs.ts +++ b/src/middlewares/logs.ts @@ -56,6 +56,7 @@ async function logMiddleware(req: Request, res: Response, next: NextFunction) { if (req.url.startsWith("/api/v1/org/profile/")) system = "registry"; if (req.url.startsWith("/api/v1/org/profile-employee/")) system = "registry"; if (req.url.startsWith("/api/v1/org/profile-temp/")) system = "registry"; + if (req.url.startsWith("/api/v1/org/ex/")) system = "retirement"; if (req.url.startsWith("/api/v1/org/commandType/admin")) system = "admin"; if (req.url.startsWith("/api/v1/org/commandSys/")) system = "admin"; @@ -79,6 +80,17 @@ async function logMiddleware(req: Request, res: Response, next: NextFunction) { // Get rootId from token const rootId = req.app.locals.logData?.orgRootDnaId; + let _msg = data?.message; + if (!_msg) { + if (res.statusCode >= 500) { + _msg = "ไม่สำเร็จ"; + } else if (res.statusCode >= 400) { + _msg = "พบข้อผิดพลาด"; + } else if (res.statusCode >= 200) { + _msg = "สำเร็จ"; + } + } + if (level === 1 && res.statusCode < 500) return; if (level === 2 && res.statusCode < 400) return; if (level === 3 && res.statusCode < 200) return; @@ -94,7 +106,7 @@ async function logMiddleware(req: Request, res: Response, next: NextFunction) { method: req.method, endpoint: req.url, responseCode: String(res.statusCode === 304 ? 200 : res.statusCode), - responseDescription: data?.message, + responseDescription: _msg, input: level === 4 ? JSON.stringify(req.body, null, 2) : undefined, output: level === 4 ? JSON.stringify(data, null, 2) : undefined, ...req.app.locals.logData, From 57dc171997c44a2858409aa38a4c9aafce27cc5c Mon Sep 17 00:00:00 2001 From: harid Date: Fri, 10 Apr 2026 17:55:29 +0700 Subject: [PATCH 4/4] =?UTF-8?q?=E0=B8=9B=E0=B8=B1=E0=B8=94=E0=B9=80?= =?UTF-8?q?=E0=B8=A8=E0=B8=A9=E0=B8=88=E0=B8=B3=E0=B8=99=E0=B8=A7=E0=B8=99?= =?UTF-8?q?=E0=B8=A7=E0=B8=B1=E0=B8=99=E0=B8=82=E0=B8=B6=E0=B9=89=E0=B8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/ProfileSalaryController.ts | 12 ++++++------ src/controllers/ProfileSalaryEmployeeController.ts | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/controllers/ProfileSalaryController.ts b/src/controllers/ProfileSalaryController.ts index 4736337a..c8193750 100644 --- a/src/controllers/ProfileSalaryController.ts +++ b/src/controllers/ProfileSalaryController.ts @@ -605,7 +605,7 @@ export class ProfileSalaryController extends Controller { // Recalculate year, month, and day existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -644,7 +644,7 @@ export class ProfileSalaryController extends Controller { // Recalculate year, month, and day existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -678,7 +678,7 @@ export class ProfileSalaryController extends Controller { // Recalculate year, month, and day existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -742,7 +742,7 @@ export class ProfileSalaryController extends Controller { // Recalculate year, month, and day existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -785,7 +785,7 @@ export class ProfileSalaryController extends Controller { // Recalculate year, month, and day existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -822,7 +822,7 @@ export class ProfileSalaryController extends Controller { // Recalculate year, month, and day existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, diff --git a/src/controllers/ProfileSalaryEmployeeController.ts b/src/controllers/ProfileSalaryEmployeeController.ts index f113a2ba..5b87003c 100644 --- a/src/controllers/ProfileSalaryEmployeeController.ts +++ b/src/controllers/ProfileSalaryEmployeeController.ts @@ -177,7 +177,7 @@ export class ProfileSalaryEmployeeController extends Controller { existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -213,7 +213,7 @@ export class ProfileSalaryEmployeeController extends Controller { existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -268,7 +268,7 @@ export class ProfileSalaryEmployeeController extends Controller { existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; }, @@ -304,7 +304,7 @@ export class ProfileSalaryEmployeeController extends Controller { existing.year = Math.floor(existing.days / 365.2524); existing.month = Math.floor((existing.days / 30.4375) % 12); - existing.day = Math.floor(existing.days % 30.4375); + existing.day = Math.ceil(existing.days % 30.4375); return acc; },