Merge branch 'develop' into adiDev

This commit is contained in:
AdisakKanthawilang 2024-05-08 14:04:22 +07:00
commit f3c66103a9
8 changed files with 203 additions and 3 deletions

View file

@ -72,6 +72,7 @@ export class kpiEvaluationController extends Controller {
@Query("page") page: number = 1, @Query("page") page: number = 1,
@Query("pageSize") pageSize: number = 10, @Query("pageSize") pageSize: number = 10,
@Query("keyword") keyword?: string, @Query("keyword") keyword?: string,
@Query("status") status?: string,
) { ) {
let whereClause: any = {}; let whereClause: any = {};
@ -84,6 +85,9 @@ export class kpiEvaluationController extends Controller {
const [kpiEvaluation, total] = await this.kpiEvaluationRepository.findAndCount({ const [kpiEvaluation, total] = await this.kpiEvaluationRepository.findAndCount({
...whereClause, ...whereClause,
...(status == null || status == undefined
? {}
: { evaluationStatus: status.trim().toUpperCase() }),
...(keyword ? {} : { skip: (page - 1) * pageSize, take: pageSize }), ...(keyword ? {} : { skip: (page - 1) * pageSize, take: pageSize }),
order: { order: {
level: "DESC", level: "DESC",

View file

@ -127,7 +127,7 @@ export class KpiUserEvaluationController extends Controller {
kpiUserEvaluation.lastName = x.lastName; kpiUserEvaluation.lastName = x.lastName;
}) })
.catch((x) => {}); .catch((x) => {});
kpiUserEvaluation.evaluationStatus = "PENDING"; kpiUserEvaluation.evaluationStatus = "NEW";
kpiUserEvaluation.evaluationResults = "PENDING"; kpiUserEvaluation.evaluationResults = "PENDING";
kpiUserEvaluation.createdUserId = request.user.sub; kpiUserEvaluation.createdUserId = request.user.sub;
kpiUserEvaluation.createdFullName = request.user.name; kpiUserEvaluation.createdFullName = request.user.name;

View file

@ -4,6 +4,20 @@ import { KpiUserEvaluation } from "./kpiUserEvaluation";
@Entity("kpiSpecial") @Entity("kpiSpecial")
export class KpiSpecial extends EntityBase { export class KpiSpecial extends EntityBase {
@Column({
nullable: true,
comment: "รอบ",
default: null,
})
period: string;
@Column({
nullable: true,
comment: "ปี",
default: null,
})
year: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "รหัสตัวชี้วัด", comment: "รหัสตัวชี้วัด",

View file

@ -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;
}

View file

@ -6,6 +6,7 @@ import { KpiUserRole } from "./kpiUserRole";
import { KpiUserPlanned } from "./kpiUserPlanned"; import { KpiUserPlanned } from "./kpiUserPlanned";
import { KpiUserCapacity } from "./kpiUserCapacity"; import { KpiUserCapacity } from "./kpiUserCapacity";
import { KpiUserEvaluationReason } from "./kpiUserEvaluationReason"; import { KpiUserEvaluationReason } from "./kpiUserEvaluationReason";
import { KpiUserDevelopment } from "./kpiUserDevelopment";
@Entity("kpiUserEvaluation") @Entity("kpiUserEvaluation")
export class KpiUserEvaluation extends EntityBase { export class KpiUserEvaluation extends EntityBase {
@Column({ @Column({
@ -69,8 +70,8 @@ export class KpiUserEvaluation extends EntityBase {
nullable: true, nullable: true,
length: 40, length: 40,
comment: comment:
"สถานะการประเมินผล ดังนี้ PENDING = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น", "สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น",
default: null, default: "NEW",
}) })
evaluationStatus: string; evaluationStatus: string;
@ -140,6 +141,9 @@ export class KpiUserEvaluation extends EntityBase {
@OneToMany(() => KpiUserSpecial, (kpiUserSpecial) => kpiUserSpecial.kpiUserEvaluation) @OneToMany(() => KpiUserSpecial, (kpiUserSpecial) => kpiUserSpecial.kpiUserEvaluation)
kpiUserSpecials: KpiUserSpecial[]; kpiUserSpecials: KpiUserSpecial[];
@OneToMany(() => KpiUserDevelopment, (kpiUserDevelopment) => kpiUserDevelopment.kpiUserEvaluation)
kpiUserDevelopments: KpiUserDevelopment[];
@OneToMany( @OneToMany(
() => KpiUserEvaluationReason, () => KpiUserEvaluationReason,
(kpiUserEvaluationReason) => kpiUserEvaluationReason.kpiUserEvaluation, (kpiUserEvaluationReason) => kpiUserEvaluationReason.kpiUserEvaluation,

View file

@ -4,6 +4,20 @@ import { KpiUserEvaluation } from "./kpiUserEvaluation";
@Entity("kpiUserSpecial") @Entity("kpiUserSpecial")
export class KpiUserSpecial extends EntityBase { export class KpiUserSpecial extends EntityBase {
@Column({
nullable: true,
comment: "รอบ",
default: null,
})
period: string;
@Column({
nullable: true,
comment: "ปี",
default: null,
})
year: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "รหัสตัวชี้วัด", comment: "รหัสตัวชี้วัด",

View file

@ -0,0 +1,26 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class AddTableKpiDevelopment1715147757259 implements MigrationInterface {
name = 'AddTableKpiDevelopment1715147757259'
public async up(queryRunner: QueryRunner): Promise<void> {
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<void> {
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\``);
}
}

View file

@ -0,0 +1,14 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class AddTableKpiDevelopment11715151729330 implements MigrationInterface {
name = 'AddTableKpiDevelopment11715151729330'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`kpiUserEvaluation\` CHANGE \`evaluationStatus\` \`evaluationStatus\` varchar(40) NULL COMMENT 'สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น' DEFAULT 'NEW'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`kpiUserEvaluation\` CHANGE \`evaluationStatus\` \`evaluationStatus\` varchar(40) NULL COMMENT 'สถานะการประเมินผล ดังนี้ NEW = รอดำเนินการ, INPROGRESS = กําลังดำเนินการ, DONE = ประเมินเสร็จสิ้น'`);
}
}