fix OrgController

This commit is contained in:
AdisakKanthawilang 2024-01-26 15:54:07 +07:00
parent 22324853db
commit e05d4f8d8e
10 changed files with 58 additions and 90 deletions

View file

@ -64,20 +64,12 @@ export class OrgChild2Controller extends Controller {
}
if (orgChild1) {
orgChild2.orgChild2Name = requestBody.orgChild2Name;
orgChild2.orgChild2ShortName = requestBody.orgChild2ShortName;
orgChild2.orgChild2Code = requestBody.orgChild2Code;
// orgChild2.orgChild2Order = requestBody.orgChild2Order;
orgChild2.orgChild2PhoneEx = requestBody.orgChild2PhoneEx;
orgChild2.orgChild2PhoneIn = requestBody.orgChild2PhoneIn;
orgChild2.orgChild2Fax = requestBody.orgChild2Fax;
orgChild2.orgChild2IsNormal = requestBody.orgChild2IsNormal;
orgChild2.orgRootId = orgChild1.orgRootId;
orgChild2.orgChild1Id = orgChild1.id;
orgChild2.createdUserId = request.user.sub;
orgChild2.createdFullName = request.user.name;
orgChild2.createdAt = new Date();
orgChild2.lastUpdateUserId = request.user.sub;
orgChild2.lastUpdateFullName = request.user.name;
orgChild2.lastUpdatedAt = new Date();
await this.orgChild2Repository.save(orgChild2);
} else {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดีโครงสร้างระดับ1");
@ -126,16 +118,9 @@ export class OrgChild2Controller extends Controller {
}
if (orgChild1) {
orgChild2.orgChild2Name = requestBody.orgChild2Name;
orgChild2.orgChild2ShortName = requestBody.orgChild2ShortName;
orgChild2.orgChild2Code = requestBody.orgChild2Code;
// orgChild2.orgChild2Order = requestBody.orgChild2Order;
orgChild2.orgChild2PhoneEx = requestBody.orgChild2PhoneEx;
orgChild2.orgChild2PhoneIn = requestBody.orgChild2PhoneIn;
orgChild2.orgChild2Fax = requestBody.orgChild2Fax;
orgChild2.orgChild2IsNormal = requestBody.orgChild2IsNormal;
orgChild2.lastUpdateUserId = request.user.sub;
orgChild2.lastUpdateFullName = request.user.name;
orgChild2.lastUpdatedAt = new Date();
await this.orgChild2Repository.save(orgChild2);
} else {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดีโครงสร้างระดับ1");

View file

@ -70,7 +70,7 @@ export class OrgChild4Controller extends Controller {
orgChild4.orgChild4PhoneEx = requestBody.orgChild4PhoneEx;
orgChild4.orgChild4PhoneIn = requestBody.orgChild4PhoneIn;
orgChild4.orgChild4Fax = requestBody.orgChild4Fax;
orgChild4.orgChild4IsNormal = requestBody.orgChild4IsNormal;
// orgChild4.orgChild4IsNormal = requestBody.orgChild4IsNormal;
orgChild4.orgRootId = orgChild3.orgRootId;
orgChild4.orgChild1Id = orgChild3.orgChild1Id;
orgChild4.orgChild2Id = orgChild3.orgChild2Id;
@ -134,7 +134,7 @@ export class OrgChild4Controller extends Controller {
orgChild4.orgChild4PhoneEx = requestBody.orgChild4PhoneEx;
orgChild4.orgChild4PhoneIn = requestBody.orgChild4PhoneIn;
orgChild4.orgChild4Fax = requestBody.orgChild4Fax;
orgChild4.orgChild4IsNormal = requestBody.orgChild4IsNormal;
// orgChild4.orgChild4IsNormal = requestBody.orgChild4IsNormal;
orgChild4.lastUpdateUserId = request.user.sub;
orgChild4.lastUpdateFullName = request.user.name;
await this.orgChild4Repository.save(orgChild4);

View file

@ -19,6 +19,7 @@ import HttpSuccess from "../interfaces/http-success";
import { CreateOrgChild1, OrgChild1 } from "../entities/OrgChild1";
import HttpError from "../interfaces/http-error";
import HttpStatusCode from "../interfaces/http-status";
import { OrgRevision } from "../entities/OrgRevision";
@Route("organization")
@Tags("OrgRoot")
@ -26,6 +27,7 @@ import HttpStatusCode from "../interfaces/http-status";
export class OrgRootController extends Controller {
private orgRootRepository = AppDataSource.getRepository(OrgRoot);
private orgChild1Repository = AppDataSource.getRepository(OrgChild1);
private orgRevisionRepository = AppDataSource.getRepository(OrgRevision);
/**
* Root
@ -39,7 +41,6 @@ export class OrgRootController extends Controller {
orgRootName: "string", //ชื่อหน่วยงาน
orgRootShortName: "string", //อักษรย่อ
orgRootCode: "string", //รหัสหน่วยงาน
// orgRootOrder: "number", //ลำดับที่ของหน่วยงาน
orgRootPhoneEx: "string", //หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก
orgRootPhoneIn: "string", //หมายเลขโทรศัพท์ที่ติดต่อจากภายใน
orgRootFax: "string", //หมายเลขโทรสาร
@ -53,6 +54,10 @@ export class OrgRootController extends Controller {
@Request() request: { user: Record<string, any> },
) {
try {
const orgRevision = await this.orgRevisionRepository.findOne({
where: { id: requestBody.orgRevisionId },
});
const orgRoot = Object.assign(new OrgRoot(), requestBody);
if (!orgRoot) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
@ -64,19 +69,17 @@ export class OrgRootController extends Controller {
if (chkCode != null) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว");
}
orgRoot.orgRootName = requestBody.orgRootName;
orgRoot.orgRootShortName = requestBody.orgRootShortName;
orgRoot.orgRootCode = requestBody.orgRootCode;
// orgRoot.orgRootOrder = requestBody.orgRootOrder;
orgRoot.orgRootPhoneEx = requestBody.orgRootPhoneEx;
orgRoot.orgRootPhoneIn = requestBody.orgRootPhoneIn;
orgRoot.orgRootFax = requestBody.orgRootFax;
orgRoot.orgRootIsNormal = requestBody.orgRootIsNormal;
orgRoot.createdUserId = request.user.sub;
orgRoot.createdFullName = request.user.name;
orgRoot.lastUpdateUserId = request.user.sub;
orgRoot.lastUpdateFullName = request.user.name;
await this.orgRootRepository.save(orgRoot);
if (orgRevision) {
orgRoot.createdUserId = request.user.sub;
orgRoot.createdFullName = request.user.name;
orgRoot.createdAt = new Date();
orgRoot.lastUpdateUserId = request.user.sub;
orgRoot.lastUpdateFullName = request.user.name;
orgRoot.lastUpdatedAt = new Date();
await this.orgRootRepository.save(orgRoot);
}else{
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดี Revision");
}
return new HttpSuccess();
} catch (error) {
@ -97,7 +100,6 @@ export class OrgRootController extends Controller {
orgRootName: "string", //ชื่อหน่วยงาน
orgRootShortName: "string", //อักษรย่อ
orgRootCode: "string", //รหัสหน่วยงาน
// orgRootOrder: "number", //ลำดับที่ของหน่วยงาน
orgRootPhoneEx: "string", //หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก
orgRootPhoneIn: "string", //หมายเลขโทรศัพท์ที่ติดต่อจากภายใน
orgRootFax: "string", //หมายเลขโทรสาร
@ -119,20 +121,14 @@ export class OrgRootController extends Controller {
const chkCode = await this.orgRootRepository.findOne({
where: { orgRootCode: requestBody.orgRootCode },
});
if (chkCode?.id != id && chkCode != null ) {
if (chkCode?.id != id && chkCode != null) {
throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว");
}
orgRoot.orgRootName = requestBody.orgRootName;
orgRoot.orgRootShortName = requestBody.orgRootShortName;
orgRoot.orgRootCode = requestBody.orgRootCode;
// orgRoot.orgRootOrder = requestBody.orgRootOrder;
orgRoot.orgRootPhoneEx = requestBody.orgRootPhoneEx;
orgRoot.orgRootPhoneIn = requestBody.orgRootPhoneIn;
orgRoot.orgRootFax = requestBody.orgRootFax;
orgRoot.orgRootIsNormal = requestBody.orgRootIsNormal;
orgRoot.lastUpdateUserId = request.user.sub;
orgRoot.lastUpdateFullName = request.user.name;
orgRoot.lastUpdatedAt = new Date();
this.orgRootRepository.merge(orgRoot, requestBody);
await this.orgRootRepository.save(orgRoot);
return new HttpSuccess();

View file

@ -114,9 +114,6 @@ export class CreateOrgChild1 {
@Column()
orgChild1Rank: string;
// @Column()
// orgChild1Order?: number;
@Column()
orgChild1PhoneEx: string;
@ -126,9 +123,6 @@ export class CreateOrgChild1 {
@Column()
orgChild1Fax: string;
@Column()
orgChild1IsNormal: boolean;
@Column('uuid')
orgRootId: string;

View file

@ -129,9 +129,6 @@ export class CreateOrgChild2 {
@Column()
orgChild2Rank: string;
// @Column()
// orgChild2Order: number;
@Column()
orgChild2PhoneEx: string;
@ -141,9 +138,6 @@ export class CreateOrgChild2 {
@Column()
orgChild2Fax: string;
@Column()
orgChild2IsNormal: boolean;
@Column('uuid')
orgChild1Id: string;

View file

@ -126,9 +126,6 @@ export class CreateOrgChild3 {
@Column()
orgChild3Rank: string;
// @Column()
// orgChild3Order: number;
@Column()
orgChild3PhoneEx: string;
@ -138,9 +135,6 @@ export class CreateOrgChild3 {
@Column()
orgChild3Fax: string;
@Column()
orgChild3IsNormal: boolean;
@Column('uuid')
orgChild2Id: string;

View file

@ -136,9 +136,6 @@ export class CreateOrgChild4 {
@Column()
orgChild4Rank: string;
// @Column()
// orgChild4Order: number;
@Column()
orgChild4PhoneEx: string;
@ -147,9 +144,6 @@ export class CreateOrgChild4 {
@Column()
orgChild4Fax: string;
@Column()
orgChild4IsNormal: boolean;
@Column('uuid')
orgChild3Id: string;

View file

@ -1,5 +1,6 @@
import { Entity, Column, ManyToOne, JoinColumn, OneToOne } from "typeorm";
import { Entity, Column, ManyToOne, JoinColumn, OneToOne, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { OrgRoot } from "./OrgRoot";
@Entity("orgRevision")
export class OrgRevision extends EntityBase {
@ -38,7 +39,9 @@ export class OrgRevision extends EntityBase {
})
orgRevisionIsDraft: boolean;
@OneToMany(() => OrgRoot, (orgRoot) => orgRoot.orgRevision)
orgRoots: OrgRoot[];
}
export type UpdateOrgRevision = Partial<OrgRevision>;

View file

@ -1,6 +1,7 @@
import { Entity, Column, ManyToOne, JoinColumn, OneToOne, OneToMany } from "typeorm";
import { EntityBase } from "./base/Base";
import { OrgChild1 } from "./OrgChild1";
import { OrgRevision } from "./OrgRevision";
// ENUM orgRootRank
enum OrgRootRank {
@ -75,7 +76,7 @@ export class OrgRoot extends EntityBase {
@Column({
nullable: true,
comment: "สถานะของหน่วยงาน", //ปกติ = 1 , ยุกเลิก = 0
default: true,
default: false,
})
orgRootIsNormal: boolean;
@ -90,12 +91,16 @@ export class OrgRoot extends EntityBase {
default: "00000000-0000-0000-0000-000000000000",
})
isAncestorDNA: string;
@ManyToOne(() => OrgRevision, orgRevision => orgRevision.orgRoots)
@JoinColumn({ name: "orgRevisionId" })
orgRevision: OrgRevision;
@OneToMany(() => OrgChild1, (orgChild1) => orgChild1.orgRoot)
orgChild1s: OrgChild1[];
}
export type UpdateOrgRoot = Partial<OrgRoot>;
export class CreateOrgRoot {
@Column()
@ -110,18 +115,19 @@ export class CreateOrgRoot {
@Column()
orgRootRank: OrgRootRank;
// @Column()
// orgRootOrder: number;
@Column()
orgRootPhoneEx?: string;
@Column()
orgRootPhoneEx: string;
orgRootPhoneIn?: string;
@Column()
orgRootPhoneIn: string;
orgRootFax?: string;
@Column('uuid')
orgRevisionId: string;
@Column()
orgRootFax: string;
@Column()
orgRootIsNormal: boolean;
}
export type UpdateOrgRoot = Partial<CreateOrgRoot> & { orgRootRank?: OrgRootRank };

View file

@ -1,23 +1,25 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class UpdateTableOrgGroup1706152326649 implements MigrationInterface {
name = 'UpdateTableOrgGroup1706152326649'
export class CreateTableOrgGroupv31706254488144 implements MigrationInterface {
name = 'CreateTableOrgGroupv31706254488144'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE \`entity_base\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild4\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild4Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild4ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild4Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild4Rank\` enum ('department', 'office', 'division', 'section') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild4Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild4PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild4PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild4Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild4IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild1Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild2Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild3Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild3\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild3Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild3ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild3Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild3Rank\` enum ('department', 'office', 'division', 'section') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild3Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild3PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild3PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild3Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild3IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild1Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild2Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild2\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild2Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild2ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild2Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild2Rank\` enum ('department', 'office', 'division', 'section') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild2Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild2PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild2PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild2Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild2IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild1Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild1\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild1Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild1ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild1Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild1Rank\` enum ('department', 'office', 'division', 'section') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild1Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild1PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild1PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild1Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild1IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgRoot\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgRootName\` varchar(255) NULL COMMENT 'ชื่อหน่วยงาน' DEFAULT 'string', \`orgRootShortName\` varchar(16) NULL COMMENT 'ชื่อย่อหน่วยงาน' DEFAULT 'string', \`orgRootCode\` varchar(8) NULL COMMENT 'รหัสหน่วยงาน' DEFAULT 'string', \`orgRootRank\` enum ('department', 'office', 'division', 'section') NULL COMMENT 'ระดับของหน่วยงาน' DEFAULT 'department', \`orgRootOrder\` int NULL COMMENT 'ลำดับที่ของหน่วยงาน', \`orgRootPhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgRootPhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgRootFax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgRootIsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRevisionId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgRevision\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgRevisionId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgRevisionName\` varchar(255) NOT NULL DEFAULT 'string', \`orgRevisionIsCurrent\` tinyint NULL, \`orgRevisionCreatedAt\` datetime NULL, \`orgRevisionIsDraft\` tinyint NULL, PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild4\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild4Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild4ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild4Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild4Rank\` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild4Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild4PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild4PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild4Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild4IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild1Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild2Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild3Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`isAncestorDNA\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild3\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild3Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild3ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild3Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild3Rank\` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild3Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild3PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild3PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild3Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild3IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild1Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild2Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`isAncestorDNA\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild2\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild2Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild2ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild2Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild2Rank\` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild2Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild2PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild2PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild2Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild2IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgChild1Id\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`isAncestorDNA\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgChild1\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgChild1Name\` varchar(255) NULL COMMENT 'ชื่อส่วนราชการ' DEFAULT 'string', \`orgChild1ShortName\` varchar(16) NULL COMMENT 'ชื่อย่อส่วนราชการ' DEFAULT 'string', \`orgChild1Code\` varchar(8) NULL COMMENT 'รหัสส่วนราชการ' DEFAULT 'string', \`orgChild1Rank\` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับส่วนราชการ', \`orgChild1Order\` int NULL COMMENT 'ลำดับที่ของส่วนราชการภายใน Child เดียวกัน', \`orgChild1PhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgChild1PhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgChild1Fax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgChild1IsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 1, \`orgRootId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`isAncestorDNA\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgRoot\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgRootName\` varchar(255) NULL COMMENT 'ชื่อหน่วยงาน' DEFAULT 'string', \`orgRootShortName\` varchar(16) NULL COMMENT 'ชื่อย่อหน่วยงาน' DEFAULT 'string', \`orgRootCode\` varchar(8) NULL COMMENT 'รหัสหน่วยงาน' DEFAULT 'string', \`orgRootRank\` enum ('DEPARTMENT', 'OFFICE', 'DIVISION', 'SECTION') NULL COMMENT 'ระดับของหน่วยงาน' DEFAULT 'DEPARTMENT', \`orgRootOrder\` int NULL COMMENT 'ลำดับที่ของหน่วยงาน', \`orgRootPhoneEx\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายนอก', \`orgRootPhoneIn\` varchar(64) NULL COMMENT 'หมายเลขโทรศัพท์ที่ติดต่อจากภายใน', \`orgRootFax\` varchar(64) NULL COMMENT 'หมายเลขโทรสาร', \`orgRootIsNormal\` tinyint NULL COMMENT 'สถานะของหน่วยงาน' DEFAULT 0, \`orgRevisionId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`isAncestorDNA\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`CREATE TABLE \`orgRevision\` (\`id\` varchar(36) NOT NULL, \`createdAt\` datetime(6) NOT NULL COMMENT 'สร้างข้อมูลเมื่อ' DEFAULT CURRENT_TIMESTAMP(6), \`createdUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่สร้างข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`lastUpdatedAt\` datetime(6) NOT NULL COMMENT 'แก้ไขข้อมูลล่าสุดเมื่อ' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), \`lastUpdateUserId\` varchar(40) NOT NULL COMMENT 'User Id ที่แก้ไขข้อมูล' DEFAULT '00000000-0000-0000-0000-000000000000', \`createdFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่สร้างข้อมูล' DEFAULT 'string', \`lastUpdateFullName\` varchar(200) NOT NULL COMMENT 'ชื่อ User ที่แก้ไขข้อมูลล่าสุด' DEFAULT 'string', \`orgRevisionId\` varchar(40) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', \`orgRevisionName\` varchar(255) NOT NULL DEFAULT 'string', \`orgRevisionIsCurrent\` tinyint NULL DEFAULT 0, \`orgRevisionCreatedAt\` datetime NULL, \`orgRevisionIsDraft\` tinyint NULL DEFAULT 0, PRIMARY KEY (\`id\`)) ENGINE=InnoDB`);
await queryRunner.query(`ALTER TABLE \`orgChild4\` ADD CONSTRAINT \`FK_36291e45193793ac8730d5b9ff4\` FOREIGN KEY (\`orgChild3Id\`) REFERENCES \`orgChild3\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`orgChild3\` ADD CONSTRAINT \`FK_abe35eefd8fb2bf682542c57b5e\` FOREIGN KEY (\`orgChild2Id\`) REFERENCES \`orgChild2\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`orgChild2\` ADD CONSTRAINT \`FK_b3e512809e7e8dea0a6a1c0d95f\` FOREIGN KEY (\`orgChild1Id\`) REFERENCES \`orgChild1\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`orgChild1\` ADD CONSTRAINT \`FK_9481ca31027bf02594ed533b765\` FOREIGN KEY (\`orgRootId\`) REFERENCES \`orgRoot\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE \`orgRoot\` ADD CONSTRAINT \`FK_b9d787230c285dcd0ba4c63d33b\` FOREIGN KEY (\`orgRevisionId\`) REFERENCES \`orgRevision\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`orgRoot\` DROP FOREIGN KEY \`FK_b9d787230c285dcd0ba4c63d33b\``);
await queryRunner.query(`ALTER TABLE \`orgChild1\` DROP FOREIGN KEY \`FK_9481ca31027bf02594ed533b765\``);
await queryRunner.query(`ALTER TABLE \`orgChild2\` DROP FOREIGN KEY \`FK_b3e512809e7e8dea0a6a1c0d95f\``);
await queryRunner.query(`ALTER TABLE \`orgChild3\` DROP FOREIGN KEY \`FK_abe35eefd8fb2bf682542c57b5e\``);