From ac28c1c36f16a133ab4e7ac4aa8bf44af6038057 Mon Sep 17 00:00:00 2001 From: "DESKTOP-2S5P7D1\\Windows 10" Date: Tue, 12 Nov 2024 14:09:16 +0700 Subject: [PATCH] =?UTF-8?q?null=20=E0=B8=81=E0=B8=A3=E0=B8=A3=E0=B8=A1?= =?UTF-8?q?=E0=B8=81=E0=B8=B2=E0=B8=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/AppointController.ts | 310 ++++++++++++--------------- src/entities/Appoint.ts | 4 +- 2 files changed, 143 insertions(+), 171 deletions(-) diff --git a/src/controllers/AppointController.ts b/src/controllers/AppointController.ts index 5a9d32b..932c528 100644 --- a/src/controllers/AppointController.ts +++ b/src/controllers/AppointController.ts @@ -1,204 +1,176 @@ -import { - Controller, - Route, - Security, - Tags, - Body, - Request, - SuccessResponse, - Response, - Get, - Put, - Post, - Path, - Delete, - Query, -} from "tsoa"; -import { setLogDataDiff } from "../interfaces/utils"; +import { Controller, Route, Security, Tags, Body, Request, SuccessResponse, Response, Get, Put, Post, Path, Delete, Query } from "tsoa" +import { setLogDataDiff } from "../interfaces/utils" -import { AppDataSource } from "../database/data-source"; -import HttpSuccess from "../interfaces/http-success"; -import HttpStatusCode from "../interfaces/http-status"; -import HttpError from "../interfaces/http-error"; -import permission from "../interfaces/permission"; -import { RequestWithUser } from "../middlewares/user"; -import { Appoint, CreateAppoint, Person, UpdateAppoint } from "../entities/Appoint"; -import { AppointDirector } from "../entities/AppointDirector"; +import { AppDataSource } from "../database/data-source" +import HttpSuccess from "../interfaces/http-success" +import HttpStatusCode from "../interfaces/http-status" +import HttpError from "../interfaces/http-error" +import permission from "../interfaces/permission" +import { RequestWithUser } from "../middlewares/user" +import { Appoint, CreateAppoint, Person, UpdateAppoint } from "../entities/Appoint" +import { AppointDirector } from "../entities/AppointDirector" @Route("api/v1/probation/appoint") @Tags("Appoint Director") @Security("bearerAuth") -@Response( - HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", -) +@Response(HttpStatusCode.INTERNAL_SERVER_ERROR, "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง") export class AppointController extends Controller { - private appointRepository = AppDataSource.getRepository(Appoint); - private appointDirectorRepository = AppDataSource.getRepository(AppointDirector); + private appointRepository = AppDataSource.getRepository(Appoint) + private appointDirectorRepository = AppDataSource.getRepository(AppointDirector) - /** - * API รายการแต่งตั้งคณะกรรมการฯ ทดลองงาน - * - * @summary รายการแต่งตั้งคณะกรรมการฯ - * - */ - @Get("") - async GetList( - @Query() keyword: string = "", - @Query("page") page: number = 1, - @Query("pageSize") pageSize: number = 10, - @Request() request: RequestWithUser, - ) { - await new permission().PermissionList(request, "SYS_PROBATION"); - const _data = await new permission().PermissionOrgList(request, "SYS_PROBATION"); + /** + * API รายการแต่งตั้งคณะกรรมการฯ ทดลองงาน + * + * @summary รายการแต่งตั้งคณะกรรมการฯ + * + */ + @Get("") + async GetList(@Query() keyword: string = "", @Query("page") page: number = 1, @Query("pageSize") pageSize: number = 10, @Request() request: RequestWithUser) { + await new permission().PermissionList(request, "SYS_PROBATION") + const _data = await new permission().PermissionOrgList(request, "SYS_PROBATION") - const conditions: any = {}; + const conditions: any = {} - if (_data.root != undefined && _data.root != null && _data.root[0] != null) { - conditions.root = _data.root; - } + if (_data.root != undefined && _data.root != null && _data.root[0] != null) { + conditions.root = _data.root + } - if (_data.child1 != undefined && _data.child1 != null && _data.child1[0] != null) { - conditions.child1 = _data.child1; - } + if (_data.child1 != undefined && _data.child1 != null && _data.child1[0] != null) { + conditions.child1 = _data.child1 + } - if (_data.child2 != undefined && _data.child2 != null && _data.child2[0] != null) { - conditions.child2 = _data.child2; - } + if (_data.child2 != undefined && _data.child2 != null && _data.child2[0] != null) { + conditions.child2 = _data.child2 + } - if (_data.child3 != undefined && _data.child3 != null && _data.child3[0] != null) { - conditions.child3 = _data.child3; - } + if (_data.child3 != undefined && _data.child3 != null && _data.child3[0] != null) { + conditions.child3 = _data.child3 + } - if (_data.child4 != undefined && _data.child4 != null && _data.child4[0] != null) { - conditions.child4 = _data.child4; - } + if (_data.child4 != undefined && _data.child4 != null && _data.child4[0] != null) { + conditions.child4 = _data.child4 + } - const appoint = await this.appointRepository.find({ - relations: ["personal"], - where: { personal: conditions }, - }); + const appoint = await this.appointRepository.find({ + relations: ["personal"], + where: { personal: conditions }, + }) - return new HttpSuccess(appoint); - } + return new HttpSuccess(appoint) + } - /** - * API รายการแต่งตั้งคณะกรรมการฯ ที่ออกคำสั่งแล้วทดลองงาน - * - * @summary รายการแต่งตั้งคณะกรรมการฯ ที่ออกคำสั่งแล้ว - * - */ - @Get("list/{id}") - async GetListCommand(@Request() request: RequestWithUser, @Path() id: string) { - const appoint = await this.appointRepository.find({ - relations: ["directors"], - where: { profileId: id, status: "DONE" }, - }); + /** + * API รายการแต่งตั้งคณะกรรมการฯ ที่ออกคำสั่งแล้วทดลองงาน + * + * @summary รายการแต่งตั้งคณะกรรมการฯ ที่ออกคำสั่งแล้ว + * + */ + @Get("list/{id}") + async GetListCommand(@Request() request: RequestWithUser, @Path() id: string) { + const appoint = await this.appointRepository.find({ + relations: ["directors"], + where: { profileId: id, status: "DONE" }, + }) - return new HttpSuccess(appoint); - } + return new HttpSuccess(appoint) + } - /** - * API สร้างการแต่งตั้งคณะกรรมการฯ ทดลองงาน - * - * @summary สร้างการแต่งตั้งคณะกรรมการฯ - * - */ - @Post("") - async Create(@Request() request: RequestWithUser, @Body() requestBody: CreateAppoint) { - await new permission().PermissionCreate(request, "SYS_PROBATION"); + /** + * API สร้างการแต่งตั้งคณะกรรมการฯ ทดลองงาน + * + * @summary สร้างการแต่งตั้งคณะกรรมการฯ + * + */ + @Post("") + async Create(@Request() request: RequestWithUser, @Body() requestBody: CreateAppoint) { + await new permission().PermissionCreate(request, "SYS_PROBATION") - const data: any = { - topic: requestBody.topic, - profileId: requestBody.profileId, - createdUserId: request.user.sub, - createdFullName: request.user.name, - }; - const before = null; - const appoint = await this.appointRepository.save(data, { data: request }); - setLogDataDiff(request, { before, after: appoint }); + const data: any = { + topic: requestBody.topic, + profileId: requestBody.profileId, + createdUserId: request.user.sub, + createdFullName: request.user.name, + } + const before = null + const appoint = await this.appointRepository.save(data, { data: request }) + setLogDataDiff(request, { before, after: appoint }) - return new HttpSuccess(appoint.id); - } + return new HttpSuccess(appoint.id) + } - /** - * API ดึงข้อมูลแต่งตั้งคณะกรรมการฯ - * - * @summary API ดึงข้อมูลแต่งตั้งคณะกรรมการฯ ตาม id - * - */ - @Get("{id}") - async GetById(@Request() request: RequestWithUser, @Path() id: string) { - let _workflow = await new permission().Workflow(request, id, "SYS_PROBATION"); - if (_workflow == false) await new permission().PermissionGet(request, "SYS_PROBATION"); + /** + * API ดึงข้อมูลแต่งตั้งคณะกรรมการฯ + * + * @summary API ดึงข้อมูลแต่งตั้งคณะกรรมการฯ ตาม id + * + */ + @Get("{id}") + async GetById(@Request() request: RequestWithUser, @Path() id: string) { + let _workflow = await new permission().Workflow(request, id, "SYS_PROBATION") + if (_workflow == false) await new permission().PermissionGet(request, "SYS_PROBATION") - const appoint = await this.appointRepository.findOne({ - select: ["id", "topic", "status", "profileId"], - where: { id }, - relations: ["directors"], - }); + const appoint = await this.appointRepository.findOne({ + select: ["id", "topic", "status", "profileId"], + where: { id }, + relations: ["directors"], + }) - return new HttpSuccess(appoint); - } + return new HttpSuccess(appoint) + } - /** - * API แก้ไขการแต่งตั้งคณะกรรมการฯ ทดลองงาน - * - * @summary แก้ไขการแต่งตั้งคณะกรรมการฯ - * - */ - @Put("{id}") - async Update( - @Request() request: RequestWithUser, - @Body() requestBody: UpdateAppoint, - @Path() id: string, - ) { - await new permission().PermissionUpdate(request, "SYS_PROBATION"); + /** + * API แก้ไขการแต่งตั้งคณะกรรมการฯ ทดลองงาน + * + * @summary แก้ไขการแต่งตั้งคณะกรรมการฯ + * + */ + @Put("{id}") + async Update(@Request() request: RequestWithUser, @Body() requestBody: UpdateAppoint, @Path() id: string) { + await new permission().PermissionUpdate(request, "SYS_PROBATION") - const appoint: any = await this.appointRepository.findOne({ where: { id } }); + const appoint: any = await this.appointRepository.findOne({ where: { id } }) - if (!appoint) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการแต่งตั้งคณะกรรมการฯ"); - } + if (!appoint) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการแต่งตั้งคณะกรรมการฯ") + } - const before = appoint; + const before = appoint - appoint.topic = requestBody.topic; - appoint.updateUserId = request.user.sub; - appoint.updateFullName = request.user.name; + appoint.topic = requestBody.topic + appoint.updateUserId = request.user.sub + appoint.updateFullName = request.user.name + await this.appointDirectorRepository.delete({ appointId: id }) + const directors: any = await requestBody.persons.map((x: Person) => ({ + ...x, + appointId: id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + })) + await this.appointDirectorRepository.save(directors) - await this.appointDirectorRepository.delete({ appointId: id }); - const directors = await requestBody.persons.map((x: Person) => ({ - ...x, - appointId: id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - })); - await this.appointDirectorRepository.save(directors); + await this.appointRepository.save(appoint, { data: request }) + setLogDataDiff(request, { before, after: appoint }) - await this.appointRepository.save(appoint, { data: request }); - setLogDataDiff(request, { before, after: appoint }); + return new HttpSuccess() + } - return new HttpSuccess(); - } + /** + * API ลบรายการแต่งตั้งคณะกรรมการฯ + * + * @summary ลบรายการแต่งตั้งคณะกรรมการฯ + * + */ + @Delete("{id}") + public async deleteRole(@Path() id: string, @Request() request: RequestWithUser) { + await new permission().PermissionDelete(request, "SYS_PROBATION") - /** - * API ลบรายการแต่งตั้งคณะกรรมการฯ - * - * @summary ลบรายการแต่งตั้งคณะกรรมการฯ - * - */ - @Delete("{id}") - public async deleteRole(@Path() id: string, @Request() request: RequestWithUser) { - await new permission().PermissionDelete(request, "SYS_PROBATION"); + await this.appointDirectorRepository.delete({ appointId: id }) - await this.appointDirectorRepository.delete({ appointId: id }); + const result = await this.appointRepository.delete({ id }) + if (!result) throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") - const result = await this.appointRepository.delete({ id }); - if (!result) throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - - return new HttpSuccess(); - } + return new HttpSuccess() + } } diff --git a/src/entities/Appoint.ts b/src/entities/Appoint.ts index 491d765..cbe21b5 100644 --- a/src/entities/Appoint.ts +++ b/src/entities/Appoint.ts @@ -52,11 +52,11 @@ export class CreateAppoint { export type Person = { profileId: string - name?: string | null + name: string | null position?: string | null positionType?: string | null positionLevel?: string | null - role?: string | null + role: string | null posNo?: string | null actFullName?: string | null }