From c4fbfc72e1c2c5058b0515f7098826f55b3cadda Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 26 Dec 2024 16:38:33 +0700 Subject: [PATCH] add fields appointDirector --- src/controllers/AppointController.ts | 2 +- src/entities/Appoint.ts | 5 +++ src/entities/AppointDirector.ts | 40 +++++++++++++++++++ ...35205130127-add_columns_appointDirector.ts | 30 ++++++++++++++ 4 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 src/migration/1735205130127-add_columns_appointDirector.ts diff --git a/src/controllers/AppointController.ts b/src/controllers/AppointController.ts index 932c528..7e9601d 100644 --- a/src/controllers/AppointController.ts +++ b/src/controllers/AppointController.ts @@ -52,7 +52,7 @@ export class AppointController extends Controller { } const appoint = await this.appointRepository.find({ - relations: ["personal"], + relations: ["personal", "directors"], where: { personal: conditions }, }) diff --git a/src/entities/Appoint.ts b/src/entities/Appoint.ts index cbe21b5..069da61 100644 --- a/src/entities/Appoint.ts +++ b/src/entities/Appoint.ts @@ -59,6 +59,11 @@ export type Person = { role: string | null posNo?: string | null actFullName?: string | null + prefix?: string | null + fullName?: string | null + lastName?: string | null + citizenId?: string | null + rootId?: string | null } export class UpdateAppoint { diff --git a/src/entities/AppointDirector.ts b/src/entities/AppointDirector.ts index 5d7b8c0..f731cbb 100644 --- a/src/entities/AppointDirector.ts +++ b/src/entities/AppointDirector.ts @@ -64,6 +64,46 @@ export class AppointDirector extends EntityBase { }) actFullName: string + @Column({ + nullable: true, + comment: "คำนำหน้าชื่อ", + length: 40, + default: null, + }) + prefix: string; + + @Column({ + nullable: true, + comment: "ชื่อ", + length: 255, + default: null, + }) + firstName: string; + + @Column({ + nullable: true, + comment: "นามสกุล", + length: 255, + default: null, + }) + lastName: string; + + @Column({ + nullable: true, + comment: "เลขประจำตัวประชาชน", + default: null, + length: 13, + }) + citizenId: string; + + @Column({ + nullable: true, + length: 40, + comment: "คีย์นอก(FK)ของตาราง orgRoot", + default: null, + }) + rootId: string; + @ManyToOne(() => Appoint, (appoint: Appoint) => appoint.directors) @JoinColumn({ name: "appointId" }) appoint: Appoint diff --git a/src/migration/1735205130127-add_columns_appointDirector.ts b/src/migration/1735205130127-add_columns_appointDirector.ts new file mode 100644 index 0000000..0e034bc --- /dev/null +++ b/src/migration/1735205130127-add_columns_appointDirector.ts @@ -0,0 +1,30 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddColumnsAppointDirector1735205130127 implements MigrationInterface { + name = 'AddColumnsAppointDirector1735205130127' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`appointDirector\` ADD \`prefix\` varchar(40) NULL COMMENT 'คำนำหน้าชื่อ'`); + await queryRunner.query(`ALTER TABLE \`appointDirector\` ADD \`firstName\` varchar(255) NULL COMMENT 'ชื่อ'`); + await queryRunner.query(`ALTER TABLE \`appointDirector\` ADD \`lastName\` varchar(255) NULL COMMENT 'นามสกุล'`); + await queryRunner.query(`ALTER TABLE \`appointDirector\` ADD \`citizenId\` varchar(13) NULL COMMENT 'เลขประจำตัวประชาชน'`); + await queryRunner.query(`ALTER TABLE \`appointDirector\` ADD \`rootId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง orgRoot'`); + await queryRunner.query(`ALTER TABLE \`appoint\` ADD UNIQUE INDEX \`IDX_46c617b30fd9def96938f43b6e\` (\`profileId\`)`); + await queryRunner.query(`CREATE UNIQUE INDEX \`REL_46c617b30fd9def96938f43b6e\` ON \`appoint\` (\`profileId\`)`); + await queryRunner.query(`ALTER TABLE \`appoint\` ADD CONSTRAINT \`FK_46c617b30fd9def96938f43b6ee\` FOREIGN KEY (\`profileId\`) REFERENCES \`personal\`(\`personal_id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); + await queryRunner.query(`ALTER TABLE \`personal\` ADD CONSTRAINT \`FK_5abc77b4bd19c4295cabe6a3bf5\` FOREIGN KEY (\`personal_id\`) REFERENCES \`appoint\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`personal\` DROP FOREIGN KEY \`FK_5abc77b4bd19c4295cabe6a3bf5\``); + await queryRunner.query(`ALTER TABLE \`appoint\` DROP FOREIGN KEY \`FK_46c617b30fd9def96938f43b6ee\``); + await queryRunner.query(`DROP INDEX \`REL_46c617b30fd9def96938f43b6e\` ON \`appoint\``); + await queryRunner.query(`ALTER TABLE \`appoint\` DROP INDEX \`IDX_46c617b30fd9def96938f43b6e\``); + await queryRunner.query(`ALTER TABLE \`appointDirector\` DROP COLUMN \`rootId\``); + await queryRunner.query(`ALTER TABLE \`appointDirector\` DROP COLUMN \`citizenId\``); + await queryRunner.query(`ALTER TABLE \`appointDirector\` DROP COLUMN \`lastName\``); + await queryRunner.query(`ALTER TABLE \`appointDirector\` DROP COLUMN \`firstName\``); + await queryRunner.query(`ALTER TABLE \`appointDirector\` DROP COLUMN \`prefix\``); + } + +}