Merge branch 'dev/methapon' into develop

This commit is contained in:
Methapon2001 2024-03-18 18:03:26 +07:00
commit 1943d15677
8 changed files with 144 additions and 245 deletions

View file

@ -66,7 +66,14 @@ export class ProfileInsigniaController extends Controller {
],
})
public async getInsignia(@Path() profileId: string) {
const record = await this.insigniaRepo.findBy({ profileId });
const record = await this.insigniaRepo.find({
relations: {
insignia: {
insigniaType: true,
},
},
where: { profileId },
});
return new HttpSuccess(record);
}
@ -128,8 +135,15 @@ export class ProfileInsigniaController extends Controller {
],
})
public async getInsigniaHistory(@Path() InsigniaId: string) {
const record = await this.insigniaHistoryRepo.findBy({
profileInsigniaId: InsigniaId,
const record = await this.insigniaHistoryRepo.find({
relations: {
insignia: {
insigniaType: true,
},
},
where: {
profileInsigniaId: InsigniaId,
},
});
return new HttpSuccess(record);
}

View file

@ -1,6 +1,8 @@
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { InsigniaType } from "./InsigniaType";
import { ProfileInsignia } from "./ProfileInsignia";
import { ProfileInsigniaHistory } from "./ProfileInsigniaHistory";
@Entity("insignia")
export class Insignia extends EntityBase {
@ -50,6 +52,14 @@ export class Insignia extends EntityBase {
@ManyToOne(() => InsigniaType, (insigniaType) => insigniaType.insignias)
@JoinColumn({ name: "insigniaTypeId" })
insigniaType: InsigniaType;
@OneToMany(() => ProfileInsignia, (v) => v.insignia)
@JoinColumn({ name: "insigniaId" })
profileInsignias: ProfileInsignia;
@OneToMany(() => ProfileInsigniaHistory, (v) => v.insignia)
@JoinColumn({ name: "insigniaHistoryId" })
profileInsigniaHistories: ProfileInsigniaHistory;
}
export class CreateInsignias {

View file

@ -177,68 +177,49 @@ export class ProfileEducation extends EntityBase {
}
export class CreateProfileEducation {
@Column("uuid")
profileId: string | null;
@Column()
isActive: boolean;
@Column()
country: string | null;
@Column()
degree: string | null;
@Column()
duration: string | null;
@Column()
durationYear: number;
@Column()
field: string | null;
@Column()
finishDate: Date | null;
@Column()
fundName: string | null;
@Column()
gpa: string | null;
@Column()
institute: string | null;
@Column()
other: string | null;
@Column()
startDate: Date | null;
@Column()
endDate: Date | null;
@Column()
educationLevel: string | null;
@Column("uuid")
educationLevelId: string | null;
@Column()
positionPath: string | null;
@Column("uuid")
positionPathId: string | null;
@Column()
isDate: boolean | null;
@Column()
isEducation: boolean | null;
@Column()
note: string | null;
}
export type UpdateProfileEducation = Partial<CreateProfileEducation>;
export type UpdateProfileEducation = {
profileId?: string | null;
isActive?: boolean;
country?: string | null;
degree?: string | null;
duration?: string | null;
durationYear?: number;
field?: string | null;
finishDate?: Date | null;
fundName?: string | null;
gpa?: string | null;
institute?: string | null;
other?: string | null;
startDate?: Date | null;
endDate?: Date | null;
educationLevel?: string | null;
educationLevelId?: string | null;
positionPath?: string | null;
positionPathId?: string | null;
isDate?: boolean | null;
isEducation?: boolean | null;
note?: string | null;
};

View file

@ -75,29 +75,23 @@ export class ProfileHonor extends EntityBase {
}
export class CreateProfileHonor {
@Column("uuid")
profileId: string | null;
@Column()
isActive: boolean;
@Column()
detail: string | null;
@Column()
issueDate: Date | null;
@Column()
issuer: string | null;
@Column()
refCommandDate: Date | null;
@Column()
refCommandDate: Date | null;
refCommandNo: string | null;
@Column()
isDate: boolean | null;
}
export type UpdateProfileHonor = Partial<CreateProfileHonor>;
export type UpdateProfileHonor = {
profileId?: string | null;
isActive?: boolean;
detail?: string | null;
issueDate?: Date | null;
issuer?: string | null;
refCommandDate?: Date | null;
refCommandNo?: string | null;
isDate?: boolean | null;
};

View file

@ -2,6 +2,7 @@ import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileInsigniaHistory } from "./ProfileInsigniaHistory";
import { Insignia } from "./Insignia";
@Entity("profileInsignia")
export class ProfileInsignia extends EntityBase {
@ -64,22 +65,6 @@ export class ProfileInsignia extends EntityBase {
})
receiveDate: Date;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Insignia",
default: null,
})
insigniaId: string;
@Column({
nullable: true,
comment: "ประเภท",
type: "text",
default: null,
})
insigniaType: string;
@Column({
nullable: true,
type: "datetime",
@ -127,6 +112,17 @@ export class ProfileInsignia extends EntityBase {
})
note: string;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Insignia",
default: null,
})
insigniaId: string;
@ManyToOne(() => Insignia, (v) => v.profileInsignias)
insignia: Insignia;
@OneToMany(
() => ProfileInsigniaHistory,
(profileInsigniaHistory) => profileInsigniaHistory.histories,
@ -139,53 +135,39 @@ export class ProfileInsignia extends EntityBase {
}
export class CreateProfileInsignia {
@Column("uuid")
profileId: string | null;
@Column()
isActive: boolean;
@Column()
year: number;
@Column()
no: string | null;
@Column()
volume: string | null;
@Column()
section: string | null;
@Column()
page: string | null;
@Column()
receiveDate: Date | null;
@Column("uuid")
insigniaId: string | null;
@Column()
insigniaType: string | null;
@Column()
dateAnnounce: Date | null;
@Column()
issue: string | null;
@Column()
volumeNo: string | null;
@Column()
refCommandDate: Date | null;
@Column()
refCommandNo: string | null;
@Column()
note: string | null;
}
export type UpdateProfileInsignia = Partial<CreateProfileInsignia>;
export type UpdateProfileInsignia = {
profileId?: string | null;
isActive?: boolean;
year?: number;
no?: string | null;
volume?: string | null;
section?: string | null;
page?: string | null;
receiveDate?: Date | null;
insigniaId?: string | null;
insigniaType?: string | null;
dateAnnounce?: Date | null;
issue?: string | null;
volumeNo?: string | null;
refCommandDate?: Date | null;
refCommandNo?: string | null;
note?: string | null;
};

View file

@ -1,7 +1,7 @@
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { Profile } from "./Profile";
import { ProfileInsignia } from "./ProfileInsignia";
import { Insignia } from "./Insignia";
@Entity("profileInsigniaHistory")
export class ProfileInsigniaHistory extends EntityBase {
@ -11,112 +11,46 @@ export class ProfileInsigniaHistory extends EntityBase {
})
isActive: boolean;
@Column({
comment: "ปีที่ยื่นขอ",
})
@Column({ comment: "ปีที่ยื่นขอ" })
year: number;
@Column({
nullable: true,
length: 20,
comment: "ลำดับที่",
default: null,
})
@Column({ nullable: true, length: 20, comment: "ลำดับที่", default: null })
no: string;
@Column({
nullable: true,
length: 30,
comment: "เล่ม",
default: null,
})
@Column({ nullable: true, length: 30, comment: "เล่ม", default: null })
volume: string;
@Column({
nullable: true,
length: 30,
comment: "ตอน",
default: null,
})
@Column({ nullable: true, length: 30, comment: "ตอน", default: null })
section: string;
@Column({
nullable: true,
length: 30,
comment: "หน้า",
default: null,
})
@Column({ nullable: true, length: 30, comment: "หน้า", default: null })
page: string;
@Column({
nullable: true,
type: "datetime",
comment: "ลงวันที่",
default: null,
})
@Column({ nullable: true, type: "datetime", comment: "ลงวันที่", default: null })
receiveDate: Date;
@Column({
nullable: true,
length: 40,
comment: "คีย์นอก(FK)ของตาราง Insignia",
default: null,
})
@Column({ nullable: true, length: 40, comment: "คีย์นอก(FK)ของตาราง Insignia", default: null })
insigniaId: string;
@Column({
nullable: true,
comment: "ประเภท",
type: "text",
default: null,
})
insigniaType: string;
@ManyToOne(() => Insignia, (v) => v.profileInsigniaHistories)
insignia: Insignia;
@Column({
nullable: true,
type: "datetime",
comment: "วันที่ประกาศในราชกิจจาฯ",
default: null,
})
@Column({ nullable: true, type: "datetime", comment: "วันที่ประกาศในราชกิจจาฯ", default: null })
dateAnnounce: Date;
@Column({
nullable: true,
length: 300,
comment: "ราชกิจจาฯ ฉบับที่",
default: null,
})
@Column({ nullable: true, length: 300, comment: "ราชกิจจาฯ ฉบับที่", default: null })
issue: string;
@Column({
nullable: true,
length: 30,
comment: "เล่มที่",
default: null,
})
@Column({ nullable: true, length: 30, comment: "เล่มที่", default: null })
volumeNo: string;
@Column({
nullable: true,
type: "datetime",
comment: "เอกสารอ้างอิง (ลงวันที่)",
default: null,
})
@Column({ nullable: true, type: "datetime", comment: "เอกสารอ้างอิง (ลงวันที่)", default: null })
refCommandDate: Date;
@Column({
nullable: true,
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
type: "text",
default: null,
})
@Column({ nullable: true, comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)", type: "text", default: null })
refCommandNo: string;
@Column({
nullable: true,
comment: "หมายเหตุ",
default: null,
})
@Column({ nullable: true, comment: "หมายเหตุ", default: null })
note: string;
@Column({
@ -131,55 +65,3 @@ export class ProfileInsigniaHistory extends EntityBase {
@JoinColumn({ name: "profileInsigniaId" })
histories: ProfileInsignia;
}
export class CreateProfileInsigniaHistory {
@Column()
isActive: boolean;
@Column()
year: number;
@Column()
no: string | null;
@Column()
volume: string | null;
@Column()
section: string | null;
@Column()
page: string | null;
@Column()
receiveDate: Date | null;
@Column("uuid")
insigniaId: string | null;
@Column()
insigniaType: string | null;
@Column()
dateAnnounce: Date | null;
@Column()
issue: string | null;
@Column()
volumeNo: string | null;
@Column()
refCommandDate: Date | null;
@Column()
refCommandNo: string | null;
@Column()
note: string | null;
@Column("uuid")
profileInsigniaId: string | null;
}
export type UpdateProfileInsigniaHistory = Partial<CreateProfileInsigniaHistory>;

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableProfileInsigniaRelation1710758420804 implements MigrationInterface {
name = 'UpdateTableProfileInsigniaRelation1710758420804'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`profileInsignia\` DROP COLUMN \`insigniaType\``);
await queryRunner.query(`ALTER TABLE \`profileInsignia\` ADD CONSTRAINT \`FK_7048ee3f58edbb05c9ab4e36a8d\` FOREIGN KEY (\`insigniaId\`) REFERENCES \`insignia\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`profileInsignia\` DROP FOREIGN KEY \`FK_7048ee3f58edbb05c9ab4e36a8d\``);
await queryRunner.query(`ALTER TABLE \`profileInsignia\` ADD \`insigniaType\` text NULL COMMENT 'ประเภท'`);
}
}

View file

@ -0,0 +1,20 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableProfileInsigniaHistoryRelation1710759276845 implements MigrationInterface {
name = 'UpdateTableProfileInsigniaHistoryRelation1710759276845'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`insignia\` DROP FOREIGN KEY \`FK_440663b355747c7041d0f57b18f\``);
await queryRunner.query(`ALTER TABLE \`insignia\` DROP COLUMN \`insigniaId\``);
await queryRunner.query(`ALTER TABLE \`profileInsigniaHistory\` DROP COLUMN \`insigniaType\``);
await queryRunner.query(`ALTER TABLE \`profileInsigniaHistory\` ADD CONSTRAINT \`FK_262ceb7a87af7800f4da2c8f17d\` FOREIGN KEY (\`insigniaId\`) REFERENCES \`insignia\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`profileInsigniaHistory\` DROP FOREIGN KEY \`FK_262ceb7a87af7800f4da2c8f17d\``);
await queryRunner.query(`ALTER TABLE \`profileInsigniaHistory\` ADD \`insigniaType\` text NULL COMMENT 'ประเภท'`);
await queryRunner.query(`ALTER TABLE \`insignia\` ADD \`insigniaId\` varchar(36) NULL`);
await queryRunner.query(`ALTER TABLE \`insignia\` ADD CONSTRAINT \`FK_440663b355747c7041d0f57b18f\` FOREIGN KEY (\`insigniaId\`) REFERENCES \`profileInsignia\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
}