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({ nullable: true, comment: "ความประพฤติอื่นๆ", }) behavior_other_desc!: string; @Column({ nullable: true, comment: "ระดับความประพฤติอื่นๆ", }) behavior_other_level!: number; @Column({ nullable: false, comment: "จุดเด่นของความประพฤติ", }) behavior_strength_desc: string; @Column({ 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;