From 1a5adfa6d3e4dc0e27b29b5435ab2ead9e4aeb48 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 30 Jan 2025 17:38:35 +0700 Subject: [PATCH] add finish status --- src/controllers/EvaluateResultController.ts | 45 ++++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/src/controllers/EvaluateResultController.ts b/src/controllers/EvaluateResultController.ts index 89ad819..795f2bf 100644 --- a/src/controllers/EvaluateResultController.ts +++ b/src/controllers/EvaluateResultController.ts @@ -11,6 +11,7 @@ import { Body, Query, Put, + Patch, } from "tsoa"; import HttpSuccess from "../interfaces/http-success"; import HttpStatusCode from "../interfaces/http-status"; @@ -424,6 +425,39 @@ export class EvaluateResultController extends Controller { }); setLogDataDiff(request, { before: null, after: postData }); + return new HttpSuccess(); + } + + /** + * API บันทึกข้อมูลแบบรายงานการประเมินฯ + * + * @summary บันทึกข้อมูลแบบรายงานการประเมินฯ + * + */ + @Patch("") + async PatchData( + @Query() assign_id: string, + @Query() evaluate_no: number | string, + @Request() request: RequestWithUser, + ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + + const assign = await this.assignRepository.findOne({ + relations: ["profile"], + where: { id: assign_id }, + }); + if (!assign) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + } + + const result = await this.evaluateResultRepository.findOne({ + where: { assign_id, no: evaluate_no.toString() }, + }); + + if (!result) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผลการประเมิน"); + } + const personal = await this.personalRepository.findOne({ where: { personal_id: assign.personal_id }, }); @@ -432,21 +466,21 @@ export class EvaluateResultController extends Controller { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } personal.probation_status = - requestBody.pass_result == 1 + result.pass_result == 1 ? 2 // ไม่ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้รับราชการต่อ - : requestBody.pass_result == 2 + : result.pass_result == 2 ? 3 // ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้ออกจากราชการ - : requestBody.pass_result == 4 + : result.pass_result == 4 ? 1 // ไม่ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้ทดลองปฏิบัติหน้าที่ราชการต่อไป : personal.probation_status; - if (requestBody.pass_result == 3) { + if (result.pass_result == 3) { personal.probation_status = 7; // #noti ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ กรณีขยายระยะเวลา await new CallAPI() .PostData(request, "/placement/noti", { subject: "ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ", - body: `ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ เห็นควรให้ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการต่อไปอีก ${requestBody.expand_month} เดือน`, + body: `ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ เห็นควรให้ขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการต่อไปอีก ${result.expand_month} เดือน`, receiverUserId: assign.personal_id, payload: "", isSendMail: false, @@ -459,7 +493,6 @@ export class EvaluateResultController extends Controller { } await this.personalRepository.save(personal, { data: request }); - return new HttpSuccess(); }