add save child name

This commit is contained in:
Warunee Tamkoo 2025-06-06 15:13:41 +07:00
parent 1a6dc0214e
commit 9d45d6b0e7
3 changed files with 235 additions and 192 deletions

View file

@ -89,10 +89,16 @@ export class PersonalController extends Controller {
personalData.child4 = requestBody.child4; personalData.child4 = requestBody.child4;
personalData.rootDna = requestBody.rootDna; personalData.rootDna = requestBody.rootDna;
personalData.child1Dna = requestBody.child1Dna; personalData.child1Dna = requestBody.orgChild1Dna;
personalData.child2Dna = requestBody.child2Dna; personalData.child2Dna = requestBody.orgChild2Dna;
personalData.child3Dna = requestBody.child3Dna; personalData.child3Dna = requestBody.orgChild3Dna;
personalData.child4Dna = requestBody.child4Dna; personalData.child4Dna = requestBody.orgChild4Dna;
const getFieldValue = (field: string | null | undefined): string => field ?? "";
personalData.orgChild1Name = getFieldValue(requestBody.orgChild1Name);
personalData.orgChild2Name = getFieldValue(requestBody.orgChild2Name);
personalData.orgChild3Name = getFieldValue(requestBody.orgChild3Name);
personalData.orgChild4Name = getFieldValue(requestBody.orgChild4Name);
const before = null; const before = null;
const personal = await this.personalRepository.save(personalData, { const personal = await this.personalRepository.save(personalData, {

View file

@ -1,230 +1,247 @@
import { Entity, Column, PrimaryGeneratedColumn, OneToOne, JoinColumn, OneToMany } from "typeorm" import { Entity, Column, PrimaryGeneratedColumn, OneToOne, JoinColumn, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base" import { EntityBase } from "./base/Base";
import { Assign } from "./Assign" import { Assign } from "./Assign";
import { Appoint } from "./Appoint" import { Appoint } from "./Appoint";
import { Survey } from "./Survey" import { Survey } from "./Survey";
@Entity("personal") @Entity("personal")
export class Personal extends EntityBase { export class Personal extends EntityBase {
@PrimaryGeneratedColumn("uuid") @PrimaryGeneratedColumn("uuid")
personal_id: string personal_id: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "เลขที่คำสั่งบรรจุ", comment: "เลขที่คำสั่งบรรจุ",
}) })
order_number!: string order_number!: string;
@Column({ @Column({
nullable: false, nullable: false,
comment: comment:
"1 อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ, 2 พ้นการทดลองปฏิบัติหน้าที่ราชการ, 3 ไม่พ้นการทดลองปฏิบัติหน้าที่ราชการ, 4 ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากเปลี่ยนตำแหน่ง, 5 ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากลาออก, 6 ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากถึงแก่กรรม, 7 ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการ, 8 ดึงรายชื่อไปออกคำสั่งแล้ว", "1 อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ, 2 พ้นการทดลองปฏิบัติหน้าที่ราชการ, 3 ไม่พ้นการทดลองปฏิบัติหน้าที่ราชการ, 4 ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากเปลี่ยนตำแหน่ง, 5 ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากลาออก, 6 ยุติการทดลองปฏิบัติหน้าที่ราชการเนื่องจากถึงแก่กรรม, 7 ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการ, 8 ดึงรายชื่อไปออกคำสั่งแล้ว",
default: 1, default: 1,
}) })
probation_status: number probation_status: number;
@Column({ @Column({
nullable: false, nullable: false,
comment: "สถานะการใช้งาน 1 คือใช้งานปกติ, 0 คือไม่ใช้งาน", comment: "สถานะการใช้งาน 1 คือใช้งานปกติ, 0 คือไม่ใช้งาน",
default: 1, default: 1,
}) })
active: number active: number;
@Column({ @Column({
nullable: true, nullable: true,
comment: "คำนำหน้าชื่อ", comment: "คำนำหน้าชื่อ",
}) })
prefixName: string prefixName: string;
@Column({ @Column({
nullable: false, nullable: false,
comment: "ชื่อ", comment: "ชื่อ",
}) })
firstName: string firstName: string;
@Column({ @Column({
nullable: false, nullable: false,
comment: "นามสกุล", comment: "นามสกุล",
}) })
lastName: string lastName: string;
@Column({ @Column({
type: Boolean, type: Boolean,
comment: "สถานะการทดลองงาน 1 คืออยู่ระหว่างการทดลองงาน, 0 คือไม่อยู่ระหว่างการทดลองงาน", comment: "สถานะการทดลองงาน 1 คืออยู่ระหว่างการทดลองงาน, 0 คือไม่อยู่ระหว่างการทดลองงาน",
default: 0, default: 0,
}) })
isProbation: number isProbation: number;
@Column({ @Column({
nullable: true, nullable: true,
comment: "ตำแหน่งในสายงาน", comment: "ตำแหน่งในสายงาน",
}) })
positionName: string positionName: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "เลขที่ตำแหน่ง", comment: "เลขที่ตำแหน่ง",
}) })
posNo: string posNo: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "ระดับตำแหน่ง", comment: "ระดับตำแหน่ง",
}) })
positionLevelName: string positionLevelName: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "ด้าน/สาขา", comment: "ด้าน/สาขา",
}) })
positionLineName: string positionLineName: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "ประเภทตำแหน่ง", comment: "ประเภทตำแหน่ง",
}) })
positionTypeName: string positionTypeName: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "หน่วยงาน", comment: "หน่วยงาน",
}) })
orgRootName: string orgRootName: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "สังกัด", comment: "สังกัด",
}) })
organization: string organization: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "เลขบัตรประจำตัวประชาชน", comment: "เลขบัตรประจำตัวประชาชน",
}) })
idcard: string idcard: string;
@Column({ nullable: true, comment: "id หน่วยงาน root", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน root", default: null })
root: string root: string;
@Column({ nullable: true, comment: "id หน่วยงาน child1", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child1", default: null })
child1: string child1: string;
@Column({ nullable: true, comment: "id หน่วยงาน child2", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child2", default: null })
child2: string child2: string;
@Column({ nullable: true, comment: "id หน่วยงาน child3", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child3", default: null })
child3: string child3: string;
@Column({ nullable: true, comment: "id หน่วยงาน child4", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child4", default: null })
child4: string child4: string;
@Column({ nullable: true, comment: "id หน่วยงาน root", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน root", default: null })
rootDna: string rootDna: string;
@Column({ nullable: true, comment: "id หน่วยงาน child1", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child1", default: null })
child1Dna: string child1Dna: string;
@Column({ nullable: true, comment: "id หน่วยงาน child2", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child2", default: null })
child2Dna: string child2Dna: string;
@Column({ nullable: true, comment: "id หน่วยงาน child3", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child3", default: null })
child3Dna: string child3Dna: string;
@Column({ nullable: true, comment: "id หน่วยงาน child4", default: null }) @Column({ nullable: true, comment: "id หน่วยงาน child4", default: null })
child4Dna: string child4Dna: string;
@OneToMany(() => Assign, (assign: Assign) => assign.personal_id) @Column({ nullable: true, comment: "ชื่อ หน่วยงาน child1", default: null })
@JoinColumn({ name: "id" }) orgChild1Name: string;
assign: Assign[]
@OneToOne(() => Appoint, appoint => appoint.personal) @Column({ nullable: true, comment: "ชื่อ หน่วยงาน child2", default: null })
@JoinColumn() orgChild2Name: string;
appoint: Appoint
@OneToOne(() => Survey, { nullable: true }) @Column({ nullable: true, comment: "ชื่อ หน่วยงาน child3", default: null })
survey: Survey | null orgChild3Name: string;
@Column({ nullable: true, comment: "ชื่อ หน่วยงาน child4", default: null })
orgChild4Name: string;
@OneToMany(() => Assign, (assign: Assign) => assign.personal_id)
@JoinColumn({ name: "id" })
assign: Assign[];
@OneToOne(() => Appoint, (appoint) => appoint.personal)
@JoinColumn()
appoint: Appoint;
@OneToOne(() => Survey, { nullable: true })
survey: Survey | null;
} }
export class CreatePersonal { export class CreatePersonal {
@Column() @Column()
personal_id: string personal_id: string;
@Column() @Column()
order_number: string order_number: string;
@Column() @Column()
probation_status: number probation_status: number;
// @Column() // @Column()
// profiles: PersonalProfile; // profiles: PersonalProfile;
@Column() @Column()
createdUserId: string createdUserId: string;
@Column() @Column()
createdFullName: string createdFullName: string;
@Column() @Column()
updateUserId: string updateUserId: string;
@Column() @Column()
updateFullName: string updateFullName: string;
@Column() @Column()
prefixName: string prefixName: string;
@Column() @Column()
firstName: string firstName: string;
@Column() @Column()
lastName: string lastName: string;
@Column() @Column()
isProbation: number isProbation: number;
@Column() @Column()
positionName: string positionName: string;
@Column() @Column()
posNo: string posNo: string;
@Column() @Column()
positionLevelName: string positionLevelName: string;
@Column() @Column()
positionTypeName: string positionTypeName: string;
@Column() @Column()
positionLineName: string positionLineName: string;
@Column() @Column()
orgRootName: string orgRootName: string;
@Column() @Column()
organization: string organization: string;
@Column() @Column()
idcard: string idcard: string;
} }
export class PostPersonal { export class PostPersonal {
id: string id: string;
prefix: string prefix: string;
firstName: string firstName: string;
lastName: string lastName: string;
isProbation: boolean isProbation: boolean;
posTypeName?: string | null posTypeName?: string | null;
posLevelName: string | null posLevelName: string | null;
position: string | null position: string | null;
posLineName?: string | null posLineName?: string | null;
posNo?: string | null posNo?: string | null;
organization?: string organization?: string;
orgRootName: string | null orgRootName: string | null;
orgChild1Name?: string | null orgChild1Name?: string | null;
orgChild2Name?: string | null orgChild2Name?: string | null;
orgChild3Name?: string | null orgChild3Name?: string | null;
orgChild4Name?: string | null orgChild4Name?: string | null;
order_number?: string order_number?: string;
rank?: string | null rank?: string | null;
idcard?: string idcard?: string;
positionField?: string | null positionField?: string | null;
positionArea?: string | null positionArea?: string | null;
posExecutiveName?: string | null posExecutiveName?: string | null;
positionExecutiveField?: string | null positionExecutiveField?: string | null;
root?: string | null root?: string | null;
child1?: string | null child1?: string | null;
child2?: string | null child2?: string | null;
child3?: string | null child3?: string | null;
child4?: string | null child4?: string | null;
rootDna?: string | null rootDna?: string | null;
child1Dna?: string | null child1Dna?: string | null;
child2Dna?: string | null child2Dna?: string | null;
child3Dna?: string | null child3Dna?: string | null;
child4Dna?: string | null child4Dna?: string | null;
orgChild1Dna?: string | null;
orgChild2Dna?: string | null;
orgChild3Dna?: string | null;
orgChild4Dna?: string | null;
} }
export type UpdatePersonal = Partial<CreatePersonal> export type UpdatePersonal = Partial<CreatePersonal>;

View file

@ -0,0 +1,20 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class PersonalAddChildName1749186876022 implements MigrationInterface {
name = 'PersonalAddChildName1749186876022'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`personal\` ADD \`orgChild1Name\` varchar(255) NULL COMMENT 'ชื่อ หน่วยงาน child1'`);
await queryRunner.query(`ALTER TABLE \`personal\` ADD \`orgChild2Name\` varchar(255) NULL COMMENT 'ชื่อ หน่วยงาน child2'`);
await queryRunner.query(`ALTER TABLE \`personal\` ADD \`orgChild3Name\` varchar(255) NULL COMMENT 'ชื่อ หน่วยงาน child3'`);
await queryRunner.query(`ALTER TABLE \`personal\` ADD \`orgChild4Name\` varchar(255) NULL COMMENT 'ชื่อ หน่วยงาน child4'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`personal\` DROP COLUMN \`orgChild4Name\``);
await queryRunner.query(`ALTER TABLE \`personal\` DROP COLUMN \`orgChild3Name\``);
await queryRunner.query(`ALTER TABLE \`personal\` DROP COLUMN \`orgChild2Name\``);
await queryRunner.query(`ALTER TABLE \`personal\` DROP COLUMN \`orgChild1Name\``);
}
}