fix error #224
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m4s

This commit is contained in:
harid 2026-06-18 16:26:27 +07:00
parent 9dddaf40db
commit 2f17c10050

View file

@ -180,6 +180,46 @@ export class OfficerProfileService {
console.log("[OfficerProfileService] Starting executeCreateOfficerProfile");
console.log("[OfficerProfileService] Request body count:", data?.length);
// ─────────────────────────────────────────────────────────────
// Normalize date fields
// ผ่าน HTTP endpoint → tsoa แปลง ISO string → Date ให้อัตโนมัติ
// แต่ผ่าน RabbitMQ handler (axios) → จะได้ string → ต้องแปลงเอง
// ไม่งั้น calculateRetireDate/getFullYear ฯลฯ จะพัง
// ─────────────────────────────────────────────────────────────
const toDate = (v: any): Date | null => {
if (v == null || v === "") return null;
if (v instanceof Date) return isNaN(v.getTime()) ? null : v;
const d = new Date(v);
return isNaN(d.getTime()) ? null : d;
};
for (const item of data ?? []) {
const bp = item.bodyProfile as any;
if (bp) {
bp.birthDate = toDate(bp.birthDate);
bp.dateStart = toDate(bp.dateStart);
bp.dateAppoint = toDate(bp.dateAppoint);
bp.dateRetire = toDate(bp.dateRetire);
}
const bs = item.bodySalarys as any;
if (bs) {
bs.commandDateAffect = toDate(bs.commandDateAffect);
bs.commandDateSign = toDate(bs.commandDateSign);
}
if (item.bodyEducations) {
for (const edu of item.bodyEducations as any[]) {
edu.startDate = toDate(edu.startDate);
edu.endDate = toDate(edu.endDate);
edu.finishDate = toDate(edu.finishDate);
}
}
if (item.bodyCertificates) {
for (const cer of item.bodyCertificates as any[]) {
cer.expireDate = toDate(cer.expireDate);
cer.issueDate = toDate(cer.issueDate);
}
}
}
const req = ctx.req;
const roleKeycloak = await this.roleKeycloakRepo.findOne({
where: { name: Like("USER") },