hrms-api-probation/src/entities/EvaluateCommander.ts
2025-11-26 11:47:13 +07:00

314 lines
9.2 KiB
TypeScript

import {
Entity,
Column,
ManyToOne,
JoinColumn,
PrimaryGeneratedColumn,
} from "typeorm";
import { EntityBase } from "./base/Base";
import { Assign } from "./Assign";
@Entity("evaluateCommander")
export class EvaluateCommander extends EntityBase {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column({
nullable: false,
type: "uuid",
comment: "Id ของแบบมอบหมายงาน",
})
assign_id: string;
@Column({
nullable: false,
type: "uuid",
comment: "Id ผู้ประเมิน",
})
director_id: string;
@Column({
comment: "ครั้งที่ประเมิน",
default: 1,
})
no: string;
@Column({
type: "date",
nullable: false,
comment: "วันที่เริ่มการบันทึก",
})
date_start: Date;
@Column({
type: "date",
nullable: false,
comment: "วันที่สิ้นสุดการบันทึก",
})
date_finish: Date;
@Column({
type: "date",
nullable: true,
comment: "วันที่ลงนาม",
})
commander_dated: Date | null;
@Column({
nullable: false,
comment: "คะแนนความรู้ความสามารถ",
default: 0,
})
knowledge_level: number;
@Column({
nullable: false,
comment: "คะแนนทักษะ",
default: 0,
})
skill_level: number;
@Column({
nullable: false,
comment: "คะแนนสมรรถนะ",
default: 0,
})
competency_level: number;
@Column({
nullable: false,
comment: "คะแนนความสามารถในการเรียนรู้งาน",
default: 0,
})
learn_level: number;
@Column({
nullable: false,
comment: "คะแนนความสามารถในการปรับใช้ความรู้กับงานในหน้าที่",
default: 0,
})
apply_level: number;
@Column({
nullable: false,
comment: "คะแนนความสำเร็จของงานที่ได้รับมอบหมาย",
default: 0,
})
success_level: number;
@Column({
nullable: true,
comment: "ความสำเร็จของงานที่ได้รับมอบหมายอื่นๆ",
})
achievement_other_desc!: string;
@Column({
nullable: true,
comment: "ระดับความสำเร็จของงานที่ได้รับมอบหมายอื่นๆ",
})
achievement_other_level!: number;
@Column({
nullable: false,
comment: "คะแนนความประพฤติ ให้บริการประชาชนหรือผู้รับบริการด้วยอัธยาศัยดี",
default: 0,
})
conduct1_level: number;
@Column({
nullable: false,
comment: "คะแนนความประพฤติ มีความรับผิดชอบในการปฏิบัติบัติงาน",
default: 0,
})
conduct2_level: number;
@Column({
nullable: false,
comment:
"คะแนนความประพฤติ ให้บริการประชาชนหรือผู้รับบริการด้วยความรวดเร็ว เอาใจใส่เป็นมาตรฐานเดียวกัน",
default: 0,
})
conduct3_level: number;
@Column({
nullable: false,
comment:
"คะแนนความประพฤติ ตั้งใจปฏิบัติบัติหน้าที่ราชการด้วยความอุตสาหะ ขยันหมั่นเพียร",
default: 0,
})
conduct4_level: number;
@Column({
nullable: false,
comment:
"คะแนนความมีจรรยาบรรณ อุทิศตนและเสียสละเวลาในการปฏิบัติบัติงานอย่างเต็มกำลังความสามารถ",
default: 0,
})
moral1_level: number;
@Column({
nullable: false,
comment:
"คะแนนความมีจรรยาบรรณ มีจิตสำนึกที่ดี ปฏิบัติบัติงานด้วยความซื่อสัตย์ สุจริต",
default: 0,
})
moral2_level: number;
@Column({
nullable: false,
comment:
"คะแนนความมีจรรยาบรรณ ยึดมั่นในสถาบันบัพระมหากษัตริย์ และไม่กระทำการใด ๆ อันจะก่อให้เกิดความเสียหายต่อประเทศชาติ",
default: 0,
})
moral3_level: number;
@Column({
nullable: false,
comment: "คะแนนการรักษาวินัย มีความรับรัผิดชอบในการรักษาเวลาทำงาน",
default: 0,
})
discipline1_level: number;
@Column({
nullable: false,
comment:
"คะแนนการรักษาวินัย แต่งกายในการปฏิบัติบัติงานได้อย่างเหมาะสมกับการเป็นข้าราชการ",
default: 0,
})
discipline2_level: number;
@Column({
nullable: false,
comment:
"คะแนนการรักษาวินัย ไม่กระทำการใด ๆ อันอาจก่อให้เกิดความเสียหายแก่ชื่อเสียงของหน่วยงาน",
default: 0,
})
discipline3_level: number;
@Column({
nullable: false,
comment:
"คะแนนการรักษาวินัย ไม่กระทำการใด ๆ อันเป็นการเสื่อมเกียรติและศักดิ์ศรีของความเป็นข้าราชการ",
default: 0,
})
discipline4_level: number;
@Column({
nullable: false,
comment:
"คะแนนการรักษาวินัย ปฏิบัติบัติหน้าที่อย่างตรงไปตรงมาโดยยึดหลักจรรยาบรรณวิชาชีพ",
default: 0,
})
discipline5_level: number;
@Column({
type: "longtext",
nullable: true,
comment: "ความประพฤติอื่นๆ",
})
behavior_other_desc!: string;
@Column({
nullable: true,
comment: "ระดับความประพฤติอื่นๆ",
})
behavior_other_level!: number;
@Column({
type: "longtext",
nullable: false,
comment: "จุดเด่นของความประพฤติ",
})
behavior_strength_desc: string;
@Column({
type: "longtext",
nullable: false,
comment: "สิ่งที่ควรปรับปรุงของความประพฤติ",
})
behavior_improve_desc: string;
@Column({
nullable: false,
comment: "คะแนนการพัฒนาตนเอง การปฐมนิเทศ",
default: 0,
})
orientation: number;
@Column({
nullable: false,
comment: "คะแนนการพัฒนาตนเอง การเรียนรู้ด้วยตนเอง",
default: 0,
})
self_learning: number;
@Column({
nullable: false,
comment: "คะแนนการพัฒนาตนเอง การอบรมสัมนาร่วมกัน",
default: 0,
})
training_seminar: number;
@Column({
nullable: false,
comment: "คะแนนการพัฒนาตนเอง การอบรมอื่น ๆ ตามที่หน่วยงานกำหนด",
default: 0,
})
other_training: number;
@ManyToOne(() => Assign, (assign: Assign) => assign.evaluateCommanders)
@JoinColumn({ name: "assign_id" })
assign: Assign;
}
interface DataOtherCommander {
text: string;
level: number | null;
}
export class CreateEvaluateCommander {
evaluate_no?: number;
@Column()
start_date: Date;
@Column()
date_finish: Date;
commander_dated: Date | null;
knowledge_level: number;
skill_level: number;
competency_level: number;
learn_level: number;
apply_level: number;
success_level: number;
achievement_other: DataOtherCommander;
conduct1_level: number;
conduct2_level: number;
conduct3_level: number;
conduct4_level: number;
moral1_level: number;
moral2_level: number;
moral3_level: number;
discipline1_level: number;
discipline2_level: number;
discipline3_level: number;
discipline4_level: number;
discipline5_level: number;
behavior_orther: DataOtherCommander;
behavior_strength_desc: string;
behavior_improve_desc: string;
orientation: number;
self_learning: number;
training_seminar: number;
other_training: number;
createdUserId?: string;
createdFullName?: string;
updateUserId?: string;
updateFullName?: string;
}
export type UpdateEvaluateCommander = Partial<CreateEvaluateCommander>;