From 2d126a76d257c741680bbbce4a10421709e42d22 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Wed, 8 May 2024 13:31:43 +0700 Subject: [PATCH 1/3] migrate --- src/entities/kpiSpecial.ts | 14 ++ src/entities/kpiUserDevelopment.ts | 124 ++++++++++++++++++ src/entities/kpiUserEvaluation.ts | 6 +- src/entities/kpiUserSpecial.ts | 14 ++ .../1715147757259-add_table_kpiDevelopment.ts | 26 ++++ 5 files changed, 183 insertions(+), 1 deletion(-) create mode 100644 src/entities/kpiUserDevelopment.ts create mode 100644 src/migration/1715147757259-add_table_kpiDevelopment.ts diff --git a/src/entities/kpiSpecial.ts b/src/entities/kpiSpecial.ts index e6ae4db..c15a63e 100644 --- a/src/entities/kpiSpecial.ts +++ b/src/entities/kpiSpecial.ts @@ -4,6 +4,20 @@ import { KpiUserEvaluation } from "./kpiUserEvaluation"; @Entity("kpiSpecial") export class KpiSpecial extends EntityBase { + @Column({ + nullable: true, + comment: "รอบ", + default: null, + }) + period: string; + + @Column({ + nullable: true, + comment: "ปี", + default: null, + }) + year: string; + @Column({ nullable: true, comment: "รหัสตัวชี้วัด", diff --git a/src/entities/kpiUserDevelopment.ts b/src/entities/kpiUserDevelopment.ts new file mode 100644 index 0000000..3ee07e1 --- /dev/null +++ b/src/entities/kpiUserDevelopment.ts @@ -0,0 +1,124 @@ +import { Entity, Column, ManyToOne, JoinColumn } from "typeorm"; +import { EntityBase } from "./base/Base"; +import { KpiUserEvaluation } from "./kpiUserEvaluation"; + +@Entity("kpiUserDevelopment") +export class KpiUserDevelopment extends EntityBase { + @Column({ + nullable: true, + comment: "ชื่อเรื่อง", + default: null, + }) + name: string; + + @Column({ + nullable: true, + comment: "เป้าหมาย", + default: null, + }) + target: string; + + @Column({ + type: "double", + nullable: true, + default: null, + comment: "ผลการประเมิน", + }) + summary: number; + + @Column({ + nullable: true, + comment: "เกณฑ์การประเมิน 10", + default: null, + }) + achievement10: string; + + @Column({ + nullable: true, + comment: "เกณฑ์การประเมิน 5", + default: null, + }) + achievement5: string; + + @Column({ + nullable: true, + comment: "เกณฑ์การประเมิน 0", + default: null, + }) + achievement0: string; + + @Column({ + nullable: true, + length: 40, + comment: "คีย์นอก(FK)ของตาราง kpiUserEvaluation", + default: null, + }) + kpiUserEvaluationId: string; + + @ManyToOne(() => KpiUserEvaluation, (kpiUserEvaluation) => kpiUserEvaluation.kpiUserDevelopments) + @JoinColumn({ name: "kpiUserEvaluationId" }) + kpiUserEvaluation: KpiUserEvaluation; +} + +export class CreateKpiUserSpecial { + @Column() + including: string | null; + @Column() + includingName: string | null; + @Column() + achievement1: string | null; + @Column() + achievement2: string | null; + @Column() + achievement3: string | null; + @Column() + achievement4: string | null; + @Column() + achievement5: string | null; + @Column() + target: string; + @Column() + unit: number; + @Column() + weight: number; + @Column() + meaning: string; + @Column() + formula: string; + @Column("uuid") + kpiUserEvaluationId: string; +} + +export class UpdateKpiUserSpecial { + @Column() + including: string | null; + @Column() + includingName: string | null; + @Column() + achievement1: string | null; + @Column() + achievement2: string | null; + @Column() + achievement3: string | null; + @Column() + achievement4: string | null; + @Column() + achievement5: string | null; + @Column() + target: string; + @Column() + unit: number; + @Column() + weight: number; + @Column() + meaning: string; + @Column() + formula: string; + @Column("uuid") + kpiUserEvaluationId: string; +} + +export class KpiUserSpecialDataPoint { + id: string; + point: number; +} diff --git a/src/entities/kpiUserEvaluation.ts b/src/entities/kpiUserEvaluation.ts index 1e2e6af..54c70af 100644 --- a/src/entities/kpiUserEvaluation.ts +++ b/src/entities/kpiUserEvaluation.ts @@ -6,6 +6,7 @@ import { KpiUserRole } from "./kpiUserRole"; import { KpiUserPlanned } from "./kpiUserPlanned"; import { KpiUserCapacity } from "./kpiUserCapacity"; import { KpiUserEvaluationReason } from "./kpiUserEvaluationReason"; +import { KpiUserDevelopment } from "./kpiUserDevelopment"; @Entity("kpiUserEvaluation") export class KpiUserEvaluation extends EntityBase { @Column({ @@ -69,7 +70,7 @@ export class KpiUserEvaluation extends EntityBase { nullable: true, length: 40, comment: - "สถานะการประเมินผล ดังนี้ PENDING = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น", + "สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น", default: null, }) evaluationStatus: string; @@ -140,6 +141,9 @@ export class KpiUserEvaluation extends EntityBase { @OneToMany(() => KpiUserSpecial, (kpiUserSpecial) => kpiUserSpecial.kpiUserEvaluation) kpiUserSpecials: KpiUserSpecial[]; + @OneToMany(() => KpiUserDevelopment, (kpiUserDevelopment) => kpiUserDevelopment.kpiUserEvaluation) + kpiUserDevelopments: KpiUserDevelopment[]; + @OneToMany( () => KpiUserEvaluationReason, (kpiUserEvaluationReason) => kpiUserEvaluationReason.kpiUserEvaluation, diff --git a/src/entities/kpiUserSpecial.ts b/src/entities/kpiUserSpecial.ts index 9bf8c41..8fb45f4 100644 --- a/src/entities/kpiUserSpecial.ts +++ b/src/entities/kpiUserSpecial.ts @@ -4,6 +4,20 @@ import { KpiUserEvaluation } from "./kpiUserEvaluation"; @Entity("kpiUserSpecial") export class KpiUserSpecial extends EntityBase { + @Column({ + nullable: true, + comment: "รอบ", + default: null, + }) + period: string; + + @Column({ + nullable: true, + comment: "ปี", + default: null, + }) + year: string; + @Column({ nullable: true, comment: "รหัสตัวชี้วัด", diff --git a/src/migration/1715147757259-add_table_kpiDevelopment.ts b/src/migration/1715147757259-add_table_kpiDevelopment.ts new file mode 100644 index 0000000..bbfbbfa --- /dev/null +++ b/src/migration/1715147757259-add_table_kpiDevelopment.ts @@ -0,0 +1,26 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddTableKpiDevelopment1715147757259 implements MigrationInterface { + name = 'AddTableKpiDevelopment1715147757259' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE \`kpiUserDevelopment\` (\`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', \`name\` varchar(255) NULL COMMENT 'ชื่อเรื่อง', \`target\` varchar(255) NULL COMMENT 'เป้าหมาย', \`summary\` double NULL COMMENT 'ผลการประเมิน', \`achievement10\` varchar(255) NULL COMMENT 'เกณฑ์การประเมิน 10', \`achievement5\` varchar(255) NULL COMMENT 'เกณฑ์การประเมิน 5', \`achievement0\` varchar(255) NULL COMMENT 'เกณฑ์การประเมิน 0', \`kpiUserEvaluationId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง kpiUserEvaluation', PRIMARY KEY (\`id\`)) ENGINE=InnoDB`); + await queryRunner.query(`ALTER TABLE \`kpiUserSpecial\` ADD \`period\` varchar(255) NULL COMMENT 'รอบ'`); + await queryRunner.query(`ALTER TABLE \`kpiUserSpecial\` ADD \`year\` varchar(255) NULL COMMENT 'ปี'`); + await queryRunner.query(`ALTER TABLE \`kpiSpecial\` ADD \`period\` varchar(255) NULL COMMENT 'รอบ'`); + await queryRunner.query(`ALTER TABLE \`kpiSpecial\` ADD \`year\` varchar(255) NULL COMMENT 'ปี'`); + await queryRunner.query(`ALTER TABLE \`kpiUserEvaluation\` CHANGE \`evaluationStatus\` \`evaluationStatus\` varchar(40) NULL COMMENT 'สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น'`); + await queryRunner.query(`ALTER TABLE \`kpiUserDevelopment\` ADD CONSTRAINT \`FK_d7b8acb8bfc3c3b6fe7a769c70d\` FOREIGN KEY (\`kpiUserEvaluationId\`) REFERENCES \`kpiUserEvaluation\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`kpiUserDevelopment\` DROP FOREIGN KEY \`FK_d7b8acb8bfc3c3b6fe7a769c70d\``); + await queryRunner.query(`ALTER TABLE \`kpiUserEvaluation\` CHANGE \`evaluationStatus\` \`evaluationStatus\` varchar(40) NULL COMMENT 'สถานะการประเมินผล ดังนี้ PENDING = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น'`); + await queryRunner.query(`ALTER TABLE \`kpiSpecial\` DROP COLUMN \`year\``); + await queryRunner.query(`ALTER TABLE \`kpiSpecial\` DROP COLUMN \`period\``); + await queryRunner.query(`ALTER TABLE \`kpiUserSpecial\` DROP COLUMN \`year\``); + await queryRunner.query(`ALTER TABLE \`kpiUserSpecial\` DROP COLUMN \`period\``); + await queryRunner.query(`DROP TABLE \`kpiUserDevelopment\``); + } + +} From 6dfe7203d4ba2a7aded2d0f48346af94e6863ee9 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Wed, 8 May 2024 13:56:50 +0700 Subject: [PATCH 2/3] =?UTF-8?q?=E0=B8=84=E0=B9=89=E0=B8=99=E0=B8=AB?= =?UTF-8?q?=E0=B8=B2=E0=B8=95=E0=B8=B2=E0=B8=A1=E0=B8=AA=E0=B8=96=E0=B8=B2?= =?UTF-8?q?=E0=B8=99=E0=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/KpiEvaluationController.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/controllers/KpiEvaluationController.ts b/src/controllers/KpiEvaluationController.ts index ee3eb52..9f6dcc6 100644 --- a/src/controllers/KpiEvaluationController.ts +++ b/src/controllers/KpiEvaluationController.ts @@ -72,6 +72,7 @@ export class kpiEvaluationController extends Controller { @Query("page") page: number = 1, @Query("pageSize") pageSize: number = 10, @Query("keyword") keyword?: string, + @Query("status") status?: string, ) { let whereClause: any = {}; @@ -84,6 +85,9 @@ export class kpiEvaluationController extends Controller { const [kpiEvaluation, total] = await this.kpiEvaluationRepository.findAndCount({ ...whereClause, + ...(status == null || status == undefined + ? {} + : { evaluationStatus: status.trim().toUpperCase() }), ...(keyword ? {} : { skip: (page - 1) * pageSize, take: pageSize }), order: { level: "DESC", From f247d20afb91df9a86e84c212d13f1dfa3fc8887 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Wed, 8 May 2024 14:03:13 +0700 Subject: [PATCH 3/3] status start NEW --- src/controllers/KpiUserEvaluationController.ts | 2 +- src/entities/kpiUserEvaluation.ts | 2 +- .../1715151729330-add_table_kpiDevelopment1.ts | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 src/migration/1715151729330-add_table_kpiDevelopment1.ts diff --git a/src/controllers/KpiUserEvaluationController.ts b/src/controllers/KpiUserEvaluationController.ts index 102a1f8..0c8e8fd 100644 --- a/src/controllers/KpiUserEvaluationController.ts +++ b/src/controllers/KpiUserEvaluationController.ts @@ -127,7 +127,7 @@ export class KpiUserEvaluationController extends Controller { kpiUserEvaluation.lastName = x.lastName; }) .catch((x) => {}); - kpiUserEvaluation.evaluationStatus = "PENDING"; + kpiUserEvaluation.evaluationStatus = "NEW"; kpiUserEvaluation.evaluationResults = "PENDING"; kpiUserEvaluation.createdUserId = request.user.sub; kpiUserEvaluation.createdFullName = request.user.name; diff --git a/src/entities/kpiUserEvaluation.ts b/src/entities/kpiUserEvaluation.ts index 54c70af..f20e494 100644 --- a/src/entities/kpiUserEvaluation.ts +++ b/src/entities/kpiUserEvaluation.ts @@ -71,7 +71,7 @@ export class KpiUserEvaluation extends EntityBase { length: 40, comment: "สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น", - default: null, + default: "NEW", }) evaluationStatus: string; diff --git a/src/migration/1715151729330-add_table_kpiDevelopment1.ts b/src/migration/1715151729330-add_table_kpiDevelopment1.ts new file mode 100644 index 0000000..06b0b21 --- /dev/null +++ b/src/migration/1715151729330-add_table_kpiDevelopment1.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddTableKpiDevelopment11715151729330 implements MigrationInterface { + name = 'AddTableKpiDevelopment11715151729330' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`kpiUserEvaluation\` CHANGE \`evaluationStatus\` \`evaluationStatus\` varchar(40) NULL COMMENT 'สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น' DEFAULT 'NEW'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`kpiUserEvaluation\` CHANGE \`evaluationStatus\` \`evaluationStatus\` varchar(40) NULL COMMENT 'สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น'`); + } + +}