From e2387a3846699a0a395294f647499fa91ab3b137 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 5 Sep 2024 15:18:09 +0700 Subject: [PATCH 01/13] edit readme & change IMAGE_NAME --- .github/workflows/release.yaml | 3 ++- README.md | 25 +++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5116050..4142249 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -7,7 +7,8 @@ on: workflow_dispatch: env: REGISTRY: docker.frappet.com - IMAGE_NAME: ehr/bma-ehr-node-service + # IMAGE_NAME: ehr/bma-ehr-node-service + IMAGE_NAME: ehr/bma-ehr-probation DEPLOY_HOST: frappet.com # COMPOSE_PATH: /home/frappet/docker/bma-ehr COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-probation diff --git a/README.md b/README.md index 2d78d17..9c611de 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,29 @@ Envelopment - Express - Mysql -Run Project +Install packages ``` -> npm install -> npm run dev +npm install +``` + +Run project + +``` +npm run dev ``` Migration -1. สร้าง entities +1. สร้าง/แก้ไข entities 2. สร้างไฟล์ migration จาก entities และรัน update เข้า database - > npm run migration:generate src/migration/xxx (xxx คือชื่อไฟล์ migrate) - > npm run migration:run + +``` +npm run migration:generate src/migration/xxx (xxx คือชื่อไฟล์ migrate) +``` + +3. Run migration + +``` +npm run migration:run +``` From a888739f381cac6ea828fcf0609ba3e946c069fc Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 5 Sep 2024 15:39:28 +0700 Subject: [PATCH 02/13] remove git action --- workflows/release.yaml | 87 ------------------------------------------ 1 file changed, 87 deletions(-) delete mode 100644 workflows/release.yaml diff --git a/workflows/release.yaml b/workflows/release.yaml deleted file mode 100644 index 0c083cc..0000000 --- a/workflows/release.yaml +++ /dev/null @@ -1,87 +0,0 @@ -name: release-test -run-name: release-test ${{ github.actor }} -on: - push: - tags: - - "version-[0-9]+.[0-9]+.[0-9]+" - workflow_dispatch: -env: - REGISTRY: docker.frappet.com - IMAGE_NAME: ehr/bma-ehr-development-service - DEPLOY_HOST: frappet.com - # COMPOSE_PATH: /home/frappet/docker/bma-ehr - COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-development -jobs: - # act workflow_dispatch -W .github/workflows/release.yaml --input IMAGE_VER=test-v1 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd - release-test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - # skip Set up QEMU because it fail on act and container - # Gen Version try to get version from tag or inut - - name: Set output tags - id: vars - run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT - - name: Gen Version - id: gen_ver - run: | - if [[ $GITHUB_REF == 'refs/tags/'* ]]; then - IMAGE_VER=${{ steps.vars.outputs.tag }} - else - IMAGE_VER=${{ github.event.inputs.IMAGE_VER }} - fi - if [[ $IMAGE_VER == '' ]]; then - IMAGE_VER='test-vBeta' - fi - echo '::set-output name=image_ver::'$IMAGE_VER - - name: Check Version - run: | - echo $GITHUB_REF - echo ${{ steps.gen_ver.outputs.image_ver }} - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Login in to registry - uses: docker/login-action@v2 - with: - registry: ${{env.REGISTRY}} - username: ${{secrets.DOCKER_USER}} - password: ${{secrets.DOCKER_PASS}} - - name: Build and push docker image - uses: docker/build-push-action@v3 - with: - context: . - platforms: linux/amd64 - push: true - tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest - - name: Remote Deployment - uses: appleboy/ssh-action@v0.1.8 - with: - host: ${{env.DEPLOY_HOST}} - username: frappet - password: ${{ secrets.SSH_PASSWORD }} - port: 10102 - script: | - cd "${{env.COMPOSE_PATH}}" - docker compose pull - docker compose up -d - echo "${{ steps.gen_ver.outputs.image_ver }}"> success - - uses: snow-actions/line-notify@v1.1.0 - if: success() - with: - access_token: ${{ secrets.TOKEN_LINE }} - message: | - -Success✅✅✅ - Image: ${{env.IMAGE_NAME}} - Version: ${{ steps.gen_ver.outputs.IMAGE_VER }} - By: ${{github.actor}} - - uses: snow-actions/line-notify@v1.1.0 - if: failure() - with: - access_token: ${{ secrets.TOKEN_LINE }} - message: | - -Failure❌❌❌ - Image: ${{env.IMAGE_NAME}} - Version: ${{ steps.gen_ver.outputs.IMAGE_VER }} - By: ${{github.actor}} - From 15f351f6e7d93028f1853352eea3dbd0f2b1353c Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 5 Sep 2024 15:53:10 +0700 Subject: [PATCH 03/13] test install --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4ca0f48..0b580b5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /app # Install app dependencies COPY package*.json ./ -RUN npm ci +RUN npm i COPY . . @@ -24,7 +24,7 @@ WORKDIR /app COPY package*.json ./ # COPY .env ./ -RUN npm ci --production +RUN npm i --production COPY --from=builder /app/dist ./dist From 400b9c0b28d5b97763c56d1fb4567d059b1d94e1 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 5 Sep 2024 16:39:17 +0700 Subject: [PATCH 04/13] updated name system --- src/controllers/MyController.ts | 4 ++-- tsoa.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/controllers/MyController.ts b/src/controllers/MyController.ts index 7f14906..2bd82e4 100644 --- a/src/controllers/MyController.ts +++ b/src/controllers/MyController.ts @@ -2,10 +2,10 @@ import { Controller, Get, Route, Security, Tags } from "tsoa"; @Route("/hello") @Tags("Test") -@Security("bearerAuth") +// @Security("bearerAuth") export class AppController extends Controller { @Get() public async GET() { - return { message: "Hello Development" }; + return { message: "Hello Probation System" }; } } diff --git a/tsoa.json b/tsoa.json index e50408a..1a4f851 100644 --- a/tsoa.json +++ b/tsoa.json @@ -9,7 +9,7 @@ "info": { "title": "bma-ehr-probation - API", "version": "0.0.1", - "description": "ระบบการพัฒนาบุคลากร/การศึกษาต่อ (Development: DV)", + "description": "ระบบทดลองปฏิบัติหน้าที่ราชการ (Probation)", "license": { "name": "by Frappet", "url": "https://frappet.com" From ba612f1b2bfae1db53eaba7697120d0e66b36298 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 5 Sep 2024 16:56:22 +0700 Subject: [PATCH 05/13] fixing path --- src/app.ts | 13 +- src/controllers/AssignController.ts | 246 ++++++--------- src/controllers/CalculateController.ts | 6 +- src/controllers/DataOptionsController.ts | 27 +- src/controllers/EvaluateChairmanController.ts | 105 ++----- src/controllers/EvaluateController.ts | 76 ++--- src/controllers/EvaluateRecordController.ts | 284 +++++------------- src/controllers/EvaluateResultController.ts | 88 ++---- src/controllers/MyController.ts | 4 +- src/controllers/PersonalController.ts | 58 +--- src/controllers/ReportController.ts | 130 +++----- src/controllers/SurveyController.ts | 11 +- 12 files changed, 325 insertions(+), 723 deletions(-) diff --git a/src/app.ts b/src/app.ts index 326a5a2..12180ca 100644 --- a/src/app.ts +++ b/src/app.ts @@ -4,11 +4,10 @@ import cors from "cors"; import express from "express"; import swaggerUi from "swagger-ui-express"; import swaggerDocument from "./swagger.json"; -import * as cron from "node-cron"; import error from "./middlewares/error"; import { AppDataSource } from "./database/data-source"; import { RegisterRoutes } from "./routes"; -// import logMiddleware from "./middlewares/logs"; +import logMiddleware from "./middlewares/logs"; async function main() { await AppDataSource.initialize(); @@ -18,11 +17,11 @@ async function main() { app.use( cors({ origin: "*", - }) + }), ); app.use(express.json()); app.use(express.urlencoded({ extended: true })); - // app.use(logMiddleware); + app.use(logMiddleware); app.use("/", express.static("static")); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); @@ -36,11 +35,9 @@ async function main() { APP_PORT, APP_HOST, () => ( - console.log( - `[APP] Application is running on: http://localhost:${APP_PORT}` - ), + console.log(`[APP] Application is running on: http://localhost:${APP_PORT}`), console.log(`[APP] Swagger on: http://localhost:${APP_PORT}/api-docs`) - ) + ), ); } diff --git a/src/controllers/AssignController.ts b/src/controllers/AssignController.ts index ed6d539..4d7b8af 100644 --- a/src/controllers/AssignController.ts +++ b/src/controllers/AssignController.ts @@ -21,21 +21,12 @@ import { findEndDate, setLogDataDiff } from "../interfaces/utils"; import { Personal } from "../entities/Personal"; import permission from "../interfaces/permission"; import { Assign, CreateAssign } from "../entities/Assign"; -import { - AssignDirector, - CreateAssignDirector, -} from "../entities/AssignDirector"; +import { AssignDirector, CreateAssignDirector } from "../entities/AssignDirector"; import { AssignJob, CreateAssignJob } from "../entities/AssignJob"; -import { - AssignKnowledge, - CreateAssignKnowledge, -} from "../entities/AssignKnowledge"; +import { AssignKnowledge, CreateAssignKnowledge } from "../entities/AssignKnowledge"; import { AssignLaw, CreateAssignLaw } from "../entities/AssignLaw"; import { AssignSkill, CreateAssignSkill } from "../entities/AssignSkill"; -import { - AssignCompetency, - CreateAssignCompetency, -} from "../entities/AssignCompetency"; +import { AssignCompetency, CreateAssignCompetency } from "../entities/AssignCompetency"; import { AssignCompetencyGroup, CreateAssignCompetencyGroup, @@ -44,29 +35,24 @@ import { AssignOutput, CreateAssignOutput } from "../entities/AssignOutput"; import { Law } from "../entities/Law"; import CallAPI from "../interfaces/call-api"; -@Route("api/v1/assign") +@Route("api/v1/probation/assign") @Tags("ฟอร์มมอบหมายงาน") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class AssignController extends Controller { private assignRepository = AppDataSource.getRepository(Assign); private personalRepository = AppDataSource.getRepository(Personal); - private assignDirectorRepository = - AppDataSource.getRepository(AssignDirector); + private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); private assignJobRepository = AppDataSource.getRepository(AssignJob); - private assignKnowledgeRepository = - AppDataSource.getRepository(AssignKnowledge); + private assignKnowledgeRepository = AppDataSource.getRepository(AssignKnowledge); private assignLawRepository = AppDataSource.getRepository(AssignLaw); private assignSkillRepository = AppDataSource.getRepository(AssignSkill); - private assignCompetencyRepository = - AppDataSource.getRepository(AssignCompetency); - private assignCompetencyGroupRepository = AppDataSource.getRepository( - AssignCompetencyGroup - ); + private assignCompetencyRepository = AppDataSource.getRepository(AssignCompetency); + private assignCompetencyGroupRepository = AppDataSource.getRepository(AssignCompetencyGroup); private assignOutputRepository = AppDataSource.getRepository(AssignOutput); private lawsRepository = AppDataSource.getRepository(Law); @@ -77,10 +63,7 @@ export class AssignController extends Controller { * */ @Post("") - async AddAssign( - @Request() request: RequestWithUser, - @Body() requestBody: CreateAssign - ) { + async AddAssign(@Request() request: RequestWithUser, @Body() requestBody: CreateAssign) { await new permission().PermissionUpdate(request, "SYS_PROBATION"); const person = await this.personalRepository.findOne({ where: { @@ -112,17 +95,15 @@ export class AssignController extends Controller { const assign = await this.assignRepository.save(data, { data: request }); setLogDataDiff(request, { before, after: data }); - const jobs = await requestBody.assign_jobs.map( - (x: CreateAssignJob, index: number) => ({ - ...x, - id: index + 1, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - }) - ); + const jobs = await requestBody.assign_jobs.map((x: CreateAssignJob, index: number) => ({ + ...x, + id: index + 1, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + })); await this.assignJobRepository.save(jobs, { data: request }); setLogDataDiff(request, { before, after: jobs }); @@ -135,36 +116,32 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignKnowledgeRepository.save(knowledges, { data: request }); setLogDataDiff(request, { before, after: knowledges }); - const laws = await requestBody.assign_law.map( - (x: CreateAssignLaw, index: number) => ({ - ordering: index + 1, - law_id: x.id, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - }) - ); + const laws = await requestBody.assign_law.map((x: CreateAssignLaw, index: number) => ({ + ordering: index + 1, + law_id: x.id, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + })); await this.assignLawRepository.save(laws, { data: request }); setLogDataDiff(request, { before, after: laws }); - const skills = await requestBody.assign_skill.map( - (x: CreateAssignSkill, index: number) => ({ - skill_id: index + 1, - skill_level: x.level, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - }) - ); + const skills = await requestBody.assign_skill.map((x: CreateAssignSkill, index: number) => ({ + skill_id: index + 1, + skill_level: x.level, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + })); await this.assignSkillRepository.save(skills, { data: request }); setLogDataDiff(request, { before, after: skills }); @@ -179,7 +156,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignCompetencyRepository.save(competencise, { data: request }); setLogDataDiff(request, { before, after: competencise }); @@ -195,7 +172,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignCompetencyGroupRepository.save(competencyGroups, { data: request, @@ -211,7 +188,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignOutputRepository.save(outputs, { data: request }); setLogDataDiff(request, { before, after: outputs }); @@ -226,7 +203,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignDirectorRepository.save(directors, { data: request }); setLogDataDiff(request, { before, after: directors }); @@ -244,7 +221,7 @@ export class AssignController extends Controller { async EditAssign( @Query() assign_id: string, @Request() request: RequestWithUser, - @Body() requestBody: CreateAssign + @Body() requestBody: CreateAssign, ) { await new permission().PermissionUpdate(request, "SYS_PROBATION"); @@ -254,10 +231,7 @@ export class AssignController extends Controller { let before = assign; if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const person = await this.personalRepository.findOne({ @@ -278,17 +252,15 @@ export class AssignController extends Controller { }; await this.assignJobRepository.delete({ assign_id }); - const jobs = await requestBody.assign_jobs.map( - (x: CreateAssignJob, index: number) => ({ - ...x, - id: index + 1, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - }) - ); + const jobs = await requestBody.assign_jobs.map((x: CreateAssignJob, index: number) => ({ + ...x, + id: index + 1, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + })); await this.assignJobRepository.save(jobs); await this.assignKnowledgeRepository.delete({ assign_id }); @@ -301,36 +273,32 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignKnowledgeRepository.save(knowledges); await this.assignLawRepository.delete({ assign_id }); - const laws = await requestBody.assign_law.map( - (x: CreateAssignLaw, index: number) => ({ - ordering: index + 1, - law_id: x.id, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - }) - ); + const laws = await requestBody.assign_law.map((x: CreateAssignLaw, index: number) => ({ + ordering: index + 1, + law_id: x.id, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + })); await this.assignLawRepository.save(laws); await this.assignSkillRepository.delete({ assign_id }); - const skills = await requestBody.assign_skill.map( - (x: CreateAssignSkill, index: number) => ({ - skill_id: index + 1, - skill_level: x.level, - assign_id: assign.id, - createdUserId: request.user.sub, - createdFullName: request.user.name, - updateUserId: request.user.sub, - updateFullName: request.user.name, - }) - ); + const skills = await requestBody.assign_skill.map((x: CreateAssignSkill, index: number) => ({ + skill_id: index + 1, + skill_level: x.level, + assign_id: assign.id, + createdUserId: request.user.sub, + createdFullName: request.user.name, + updateUserId: request.user.sub, + updateFullName: request.user.name, + })); await this.assignSkillRepository.save(skills); await this.assignCompetencyRepository.delete({ assign_id }); @@ -345,7 +313,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignCompetencyRepository.save(competencise); @@ -361,7 +329,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignCompetencyGroupRepository.save(competencyGroups); @@ -375,7 +343,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignOutputRepository.save(outputs); @@ -390,7 +358,7 @@ export class AssignController extends Controller { createdFullName: request.user.name, updateUserId: request.user.sub, updateFullName: request.user.name, - }) + }), ); await this.assignDirectorRepository.save(directors); @@ -469,10 +437,7 @@ export class AssignController extends Controller { * */ @Get("assign-list") - async ListPersonal( - @Request() request: RequestWithUser, - @Query() personal_id: string - ) { + async ListPersonal(@Request() request: RequestWithUser, @Query() personal_id: string) { await new permission().PermissionGet(request, "SYS_PROBATION"); const lists = await this.assignRepository.find({ select: ["id", "round_no", "date_start", "date_finish"], @@ -500,14 +465,10 @@ export class AssignController extends Controller { } } - const commanderData = await (director.find( - (x) => x.role == "commander" - ) ?? null); + const commanderData = await (director.find((x) => x.role == "commander") ?? null); const commander = commanderData ? commanderData.fullname : null; - const chairmanData = await (director.find( - (x) => x.role == "chairman" - ) ?? null); + const chairmanData = await (director.find((x) => x.role == "chairman") ?? null); const chairman = chairmanData ? chairmanData.fullname : null; await result.push({ @@ -516,7 +477,7 @@ export class AssignController extends Controller { commander: commander, chairman: chairman, }); - }) + }), ); return new HttpSuccess(result); @@ -529,10 +490,7 @@ export class AssignController extends Controller { * */ @Get("") - async GetAssign( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async GetAssign(@Query() assign_id: string, @Request() request: RequestWithUser) { await new permission().PermissionUpdate(request, "SYS_PROBATION"); const assign = await this.assignRepository.findOne({ @@ -553,10 +511,7 @@ export class AssignController extends Controller { }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profileData = await this.personalRepository.findOne({ @@ -651,12 +606,7 @@ export class AssignController extends Controller { })); const competencyData = await this.assignCompetencyRepository.find({ - select: [ - "competency_id", - "competency_level", - "competency_name", - "competency_description", - ], + select: ["competency_id", "competency_level", "competency_name", "competency_description"], where: { assign_id }, }); @@ -667,17 +617,15 @@ export class AssignController extends Controller { description: x.competency_description, })); - const competencyGroupData = await this.assignCompetencyGroupRepository.find( - { - select: [ - "competency_group_id", - "competency_group_level", - "competency_group_name", - "competency_group_description", - ], - where: { assign_id }, - } - ); + const competencyGroupData = await this.assignCompetencyGroupRepository.find({ + select: [ + "competency_group_id", + "competency_group_level", + "competency_group_name", + "competency_group_description", + ], + where: { assign_id }, + }); const competency_groups = await competencyGroupData.map((x) => ({ id: x.competency_group_id, level: x.competency_group_level, @@ -703,16 +651,13 @@ export class AssignController extends Controller { ...e, name: e.fullname, label: - e.fullname + - " " + - (e.position ? `(${e.position}, ${e.posType}: ${e.posLevel})` : ""), + e.fullname + " " + (e.position ? `(${e.position}, ${e.posType}: ${e.posLevel})` : ""), Position: e.position, // report }); } } - const commanderData = await (director.find((x) => x.role == "commander") ?? - null); + const commanderData = await (director.find((x) => x.role == "commander") ?? null); const commander = await (commanderData ? { ...commanderData, @@ -727,8 +672,7 @@ export class AssignController extends Controller { } : null); - const chairmanData = await (director.find((x) => x.role == "chairman") ?? - null); + const chairmanData = await (director.find((x) => x.role == "chairman") ?? null); const chairman = await (chairmanData ? { ...chairmanData, diff --git a/src/controllers/CalculateController.ts b/src/controllers/CalculateController.ts index 281ed85..0ace989 100644 --- a/src/controllers/CalculateController.ts +++ b/src/controllers/CalculateController.ts @@ -15,12 +15,12 @@ import HttpStatusCode from "../interfaces/http-status"; import { RequestWithUser } from "../middlewares/user"; import { findEndDate } from "../interfaces/utils"; -@Route("api/v1/calculate") +@Route("api/v1/probation/calculate") @Tags("ฟอร์มมอบหมายงาน") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class CalculateController extends Controller { @@ -37,7 +37,7 @@ export class CalculateController extends Controller { month: number; start_date: Date; }, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const { month, start_date } = requestBody; const finish_date = findEndDate(month, start_date); diff --git a/src/controllers/DataOptionsController.ts b/src/controllers/DataOptionsController.ts index ca801c9..9fe41c9 100644 --- a/src/controllers/DataOptionsController.ts +++ b/src/controllers/DataOptionsController.ts @@ -22,19 +22,18 @@ import { Personal } from "../entities/Personal"; import { Law } from "../entities/Law"; import { Assign } from "../entities/Assign"; -@Route("api/v1/data-options") +@Route("api/v1/probation/data-options") @Tags("Data Options") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class DataOptionController extends Controller { private personalRepository = AppDataSource.getRepository(Personal); private knowledgeRepository = AppDataSource.getRepository(Knowledge); - private mapKnowledgeSkillRepository = - AppDataSource.getRepository(MapKnowledgeSkill); + private mapKnowledgeSkillRepository = AppDataSource.getRepository(MapKnowledgeSkill); private skillRepository = AppDataSource.getRepository(Skill); private lawRepository = AppDataSource.getRepository(Law); private assignRepository = AppDataSource.getRepository(Assign); @@ -46,10 +45,7 @@ export class DataOptionController extends Controller { * */ @Get("knowledge") - async GetKnowledge( - @Query() personal_id: string, - @Request() request: RequestWithUser - ) { + async GetKnowledge(@Query() personal_id: string, @Request() request: RequestWithUser) { const person = await this.personalRepository.findOne({ where: { personal_id }, }); @@ -102,10 +98,7 @@ export class DataOptionController extends Controller { * */ @Get("skill") - async GetSkill( - @Query() personal_id: string, - @Request() request: RequestWithUser - ) { + async GetSkill(@Query() personal_id: string, @Request() request: RequestWithUser) { const person = await this.personalRepository.findOne({ where: { personal_id }, }); @@ -223,10 +216,7 @@ export class DataOptionController extends Controller { * */ @Get("law") - async GetLaw( - @Query() personal_id: string, - @Request() request: RequestWithUser - ) { + async GetLaw(@Query() personal_id: string, @Request() request: RequestWithUser) { const results = await this.lawRepository.find({ select: ["id", "parent_id", "description", "status_select"], where: { @@ -253,10 +243,7 @@ export class DataOptionController extends Controller { * */ @Get("new-assign") - async NewAssign( - @Query() personal_id: string, - @Request() request: RequestWithUser - ) { + async NewAssign(@Query() personal_id: string, @Request() request: RequestWithUser) { const person = await this.personalRepository.findOne({ select: [ "personal_id", diff --git a/src/controllers/EvaluateChairmanController.ts b/src/controllers/EvaluateChairmanController.ts index 3ed3108..e02fb79 100644 --- a/src/controllers/EvaluateChairmanController.ts +++ b/src/controllers/EvaluateChairmanController.ts @@ -22,25 +22,20 @@ import HttpError from "../interfaces/http-error"; import { Assign } from "../entities/Assign"; import { Personal } from "../entities/Personal"; import CallAPI from "../interfaces/call-api"; -import { - CreateEvaluateChairman, - EvaluateChairman, -} from "../entities/EvaluateChairman"; +import { CreateEvaluateChairman, EvaluateChairman } from "../entities/EvaluateChairman"; -@Route("api/v1/evaluate-chairman") +@Route("api/v1/probation/evaluate-chairman") @Tags("แบบประเมินผล (คณะกรรมการ)") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class EvaluateChairmanController extends Controller { - private assignDirectorRepository = - AppDataSource.getRepository(AssignDirector); + private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); private assignRepository = AppDataSource.getRepository(Assign); - private evaluateChairmanRepository = - AppDataSource.getRepository(EvaluateChairman); + private evaluateChairmanRepository = AppDataSource.getRepository(EvaluateChairman); private personalRepository = AppDataSource.getRepository(Personal); /** @@ -50,10 +45,7 @@ export class EvaluateChairmanController extends Controller { * */ @Get("create") - async CreateEvaluate( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async CreateEvaluate(@Query() assign_id: string) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -71,10 +63,7 @@ export class EvaluateChairmanController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profile = await (assign.profile @@ -82,10 +71,7 @@ export class EvaluateChairmanController extends Controller { ...assign.profile, id: assign.profile.personal_id, name: - assign.profile.prefixName + - assign.profile.firstName + - " " + - assign.profile.lastName, + assign.profile.prefixName + assign.profile.firstName + " " + assign.profile.lastName, Oc: assign.profile.organization, } : null); @@ -107,10 +93,7 @@ export class EvaluateChairmanController extends Controller { }); if (!directorData) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -125,14 +108,10 @@ export class EvaluateChairmanController extends Controller { } } - const commanderData = await (directorData.find( - (x) => x.role == "commander" - ) ?? null); + const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); const commander = commanderData ? commanderData.fullname : null; - const chairmanData = await (directorData.find( - (x) => x.role == "chairman" - ) ?? null); + const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); const chairman = chairmanData ? chairmanData.fullname : null; return new HttpSuccess({ @@ -193,10 +172,7 @@ export class EvaluateChairmanController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -223,10 +199,7 @@ export class EvaluateChairmanController extends Controller { }); if (!directorData) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -241,14 +214,10 @@ export class EvaluateChairmanController extends Controller { } } - const commanderData = await (directorData.find( - (x) => x.role == "commander" - ) ?? null); + const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); const commander = commanderData ? commanderData.fullname : null; - const chairmanData = await (directorData.find( - (x) => x.role == "chairman" - ) ?? null); + const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); const chairman = chairmanData ? chairmanData.fullname : null; return new HttpSuccess({ @@ -271,7 +240,7 @@ export class EvaluateChairmanController extends Controller { async PostData( @Query() assign_id: string, @Body() requestBody: CreateEvaluateChairman, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -291,10 +260,7 @@ export class EvaluateChairmanController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -313,9 +279,7 @@ export class EvaluateChairmanController extends Controller { : 0, behavior_other_desc: requestBody.behavior_orther.text, behavior_other_level: - requestBody.behavior_orther.text != "" - ? Number(requestBody.behavior_orther.level) - : 0, + requestBody.behavior_orther.text != "" ? Number(requestBody.behavior_orther.level) : 0, createdUserId: request.user.sub, createdFullName: request.user.name, @@ -359,10 +323,10 @@ export class EvaluateChairmanController extends Controller { */ @Put("") async UpdateData( - @Query() assign_id: string, + // @Query() assign_id: string, @Query() evaluate_id: string, @Body() requestBody: CreateEvaluateChairman, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { let evaluate = await this.evaluateChairmanRepository.findOne({ where: { id: evaluate_id }, @@ -384,9 +348,7 @@ export class EvaluateChairmanController extends Controller { ? requestBody.achievement_other.text : ""; evaluate.achievement_other_level = - requestBody.achievement_other.text != "" - ? Number(requestBody.achievement_other.level) - : 0; + requestBody.achievement_other.text != "" ? Number(requestBody.achievement_other.level) : 0; evaluate.conduct1_level = requestBody.conduct1_level; evaluate.conduct2_level = requestBody.conduct2_level; @@ -402,24 +364,15 @@ export class EvaluateChairmanController extends Controller { evaluate.discipline5_level = requestBody.discipline5_level; evaluate.behavior_other_desc = requestBody.behavior_orther.text; evaluate.behavior_other_level = - requestBody.behavior_orther.text != "" - ? Number(requestBody.behavior_orther.level) - : 0; + requestBody.behavior_orther.text != "" ? Number(requestBody.behavior_orther.level) : 0; evaluate.develop_orientation_score = requestBody.develop_orientation_score; - evaluate.develop_self_learning_score = - requestBody.develop_self_learning_score; - evaluate.develop_training_seminar_score = - requestBody.develop_training_seminar_score; - evaluate.develop_other_training_score = - requestBody.develop_other_training_score; - evaluate.develop_orientation_percent = - requestBody.develop_orientation_percent; - evaluate.develop_self_learning_percent = - requestBody.develop_self_learning_percent; - evaluate.develop_training_seminar_percent = - requestBody.develop_training_seminar_percent; - evaluate.develop_other_training_percent = - requestBody.develop_other_training_percent; + evaluate.develop_self_learning_score = requestBody.develop_self_learning_score; + evaluate.develop_training_seminar_score = requestBody.develop_training_seminar_score; + evaluate.develop_other_training_score = requestBody.develop_other_training_score; + evaluate.develop_orientation_percent = requestBody.develop_orientation_percent; + evaluate.develop_self_learning_percent = requestBody.develop_self_learning_percent; + evaluate.develop_training_seminar_percent = requestBody.develop_training_seminar_percent; + evaluate.develop_other_training_percent = requestBody.develop_other_training_percent; evaluate.develop_result = requestBody.develop_result; evaluate.achievement_score = requestBody.achievement_score; evaluate.achievement_score_total = requestBody.achievement_score_total; diff --git a/src/controllers/EvaluateController.ts b/src/controllers/EvaluateController.ts index 9dcf649..452c3a5 100644 --- a/src/controllers/EvaluateController.ts +++ b/src/controllers/EvaluateController.ts @@ -20,27 +20,22 @@ import { AppDataSource } from "../database/data-source"; import { AssignDirector } from "../entities/AssignDirector"; import HttpError from "../interfaces/http-error"; import { Assign } from "../entities/Assign"; -import { - CreateEvaluateCommander, - EvaluateCommander, -} from "../entities/EvaluateCommander"; +import { CreateEvaluateCommander, EvaluateCommander } from "../entities/EvaluateCommander"; import { Personal } from "../entities/Personal"; import CallAPI from "../interfaces/call-api"; -@Route("api/v1/evaluate") +@Route("api/v1/probation/evaluate") @Tags("แบบประเมินผล (ผู้บังคับบัญชา)") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class EvaluateController extends Controller { - private assignDirectorRepository = - AppDataSource.getRepository(AssignDirector); + private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); private assignRepository = AppDataSource.getRepository(Assign); - private evaluateCommanderRepository = - AppDataSource.getRepository(EvaluateCommander); + private evaluateCommanderRepository = AppDataSource.getRepository(EvaluateCommander); private personalRepository = AppDataSource.getRepository(Personal); /** @@ -50,10 +45,7 @@ export class EvaluateController extends Controller { * */ @Get("create") - async CreateEvaluate( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async CreateEvaluate(@Query() assign_id: string) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -71,10 +63,7 @@ export class EvaluateController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profile = await (assign.profile @@ -82,10 +71,7 @@ export class EvaluateController extends Controller { ...assign.profile, id: assign.profile.personal_id, name: - assign.profile.prefixName + - assign.profile.firstName + - " " + - assign.profile.lastName, + assign.profile.prefixName + assign.profile.firstName + " " + assign.profile.lastName, Oc: assign.profile.organization, } : null); @@ -103,14 +89,7 @@ export class EvaluateController extends Controller { : findEndDate(evaluate_amount * 3, assign.date_start); const commanderData = await this.assignDirectorRepository.find({ - select: [ - "personal_id", - "dated", - "fullname", - "position", - "posType", - "posLevel", - ], + select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { personal_id: director_id }, }); @@ -176,10 +155,7 @@ export class EvaluateController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } // const profile = await (assign.profile @@ -208,14 +184,7 @@ export class EvaluateController extends Controller { // : findEndDate(evaluate_amount * 3, assign.date_start); const directorData = await this.assignDirectorRepository.find({ - select: [ - "personal_id", - "dated", - "fullname", - "position", - "posType", - "posLevel", - ], + select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { personal_id: director_id }, }); @@ -262,7 +231,7 @@ export class EvaluateController extends Controller { async PostData( @Query() assign_id: string, @Body() requestBody: CreateEvaluateCommander, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -282,10 +251,7 @@ export class EvaluateController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -304,9 +270,7 @@ export class EvaluateController extends Controller { : 0, behavior_other_desc: requestBody.behavior_orther.text, behavior_other_level: - requestBody.behavior_orther.text != "" - ? Number(requestBody.behavior_orther.level) - : 0, + requestBody.behavior_orther.text != "" ? Number(requestBody.behavior_orther.level) : 0, createdUserId: request.user.sub, createdFullName: request.user.name, @@ -350,10 +314,10 @@ export class EvaluateController extends Controller { */ @Put("") async UpdateData( - @Query() assign_id: string, + // @Query() assign_id: string, @Query() evaluate_id: string, @Body() requestBody: CreateEvaluateCommander, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { let evaluate = await this.evaluateCommanderRepository.findOne({ where: { id: evaluate_id }, @@ -376,9 +340,7 @@ export class EvaluateController extends Controller { ? requestBody.achievement_other.text : ""; evaluate.achievement_other_level = - requestBody.achievement_other.text != "" - ? Number(requestBody.achievement_other.level) - : 0; + requestBody.achievement_other.text != "" ? Number(requestBody.achievement_other.level) : 0; evaluate.conduct1_level = requestBody.conduct1_level; evaluate.conduct2_level = requestBody.conduct2_level; @@ -394,9 +356,7 @@ export class EvaluateController extends Controller { evaluate.discipline5_level = requestBody.discipline5_level; evaluate.behavior_other_desc = requestBody.behavior_orther.text; evaluate.behavior_other_level = - requestBody.behavior_orther.text != "" - ? Number(requestBody.behavior_orther.level) - : 0; + requestBody.behavior_orther.text != "" ? Number(requestBody.behavior_orther.level) : 0; evaluate.behavior_strength_desc = requestBody.behavior_strength_desc; evaluate.behavior_improve_desc = requestBody.behavior_improve_desc; evaluate.orientation = requestBody.orientation; diff --git a/src/controllers/EvaluateRecordController.ts b/src/controllers/EvaluateRecordController.ts index 1b74269..268d00d 100644 --- a/src/controllers/EvaluateRecordController.ts +++ b/src/controllers/EvaluateRecordController.ts @@ -22,34 +22,25 @@ import HttpError from "../interfaces/http-error"; import { Assign } from "../entities/Assign"; import { Personal } from "../entities/Personal"; import { AssignOutput } from "../entities/AssignOutput"; -import { - CreateEvaluateAssessor, - EvaluateAssessor, -} from "../entities/EvaluateAssessor"; -import { - CreateEvaluateAchievement, - EvaluateAchievement, -} from "../entities/EvaluateAchievement"; +import { CreateEvaluateAssessor, EvaluateAssessor } from "../entities/EvaluateAssessor"; +import { CreateEvaluateAchievement, EvaluateAchievement } from "../entities/EvaluateAchievement"; import CallAPI from "../interfaces/call-api"; -@Route("api/v1/evaluate-record") +@Route("api/v1/probation/evaluate-record") @Tags("แบบบันทึกผล") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class EvaluateRecordController extends Controller { - private assignDirectorRepository = - AppDataSource.getRepository(AssignDirector); + private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); private assignRepository = AppDataSource.getRepository(Assign); private personalRepository = AppDataSource.getRepository(Personal); private assignOutputRepository = AppDataSource.getRepository(AssignOutput); - private evaluateAssessorRepository = - AppDataSource.getRepository(EvaluateAssessor); - private evaluateAchievementRepository = - AppDataSource.getRepository(EvaluateAchievement); + private evaluateAssessorRepository = AppDataSource.getRepository(EvaluateAssessor); + private evaluateAchievementRepository = AppDataSource.getRepository(EvaluateAchievement); /** * API ดึงข้อมูลตอนกดสร้างแบบบันทึกผล @@ -58,19 +49,9 @@ export class EvaluateRecordController extends Controller { * */ @Get("create") - async GetCreate( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async GetCreate(@Query() assign_id: string) { const directorData = await this.assignDirectorRepository.findOne({ - select: [ - "personal_id", - "dated", - "fullname", - "position", - "posType", - "posLevel", - ], + select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { assign_id, role: "mentor", @@ -96,10 +77,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profileData = await this.personalRepository.findOne({ @@ -122,11 +100,7 @@ export class EvaluateRecordController extends Controller { const profile = await { id: profileData.personal_id, - name: - profileData.prefixName + - profileData.firstName + - " " + - profileData.lastName, + name: profileData.prefixName + profileData.firstName + " " + profileData.lastName, positionName: profileData.positionName, positionLevelName: profileData.positionLevelName, Oc: profileData.organization, @@ -153,22 +127,12 @@ export class EvaluateRecordController extends Controller { : findEndDate(evaluate_amount * 2, assign.date_start)); var commanderData = await this.assignDirectorRepository.findOne({ - select: [ - "personal_id", - "dated", - "fullname", - "position", - "posType", - "posLevel", - ], + select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { personal_id: director_id }, }); if (!commanderData) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลผู้บังคับบัญชา" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้บังคับบัญชา"); } const commander = await { @@ -225,12 +189,7 @@ export class EvaluateRecordController extends Controller { } const achievementData = await this.evaluateAchievementRepository.find({ - select: [ - "output_desc", - "evaluate_expect_level", - "output_desc", - "evaluate_output_level", - ], + select: ["output_desc", "evaluate_expect_level", "output_desc", "evaluate_output_level"], where: { evaluate_id: evaluate.id, }, @@ -304,20 +263,18 @@ export class EvaluateRecordController extends Controller { await Promise.all( evaluate.map(async (element: any, index: number) => { - const achievementData = await this.evaluateAchievementRepository.find( - { - select: [ - "output_desc", - "evaluate_expect_level", - "output_desc", - "evaluate_output_level", - ], - where: { - evaluate_id: element.id, - }, - order: { output_id: "ASC" }, - } - ); + const achievementData = await this.evaluateAchievementRepository.find({ + select: [ + "output_desc", + "evaluate_expect_level", + "output_desc", + "evaluate_output_level", + ], + where: { + evaluate_id: element.id, + }, + order: { output_id: "ASC" }, + }); const achievements = await achievementData.map((achievement) => { return { @@ -368,7 +325,7 @@ export class EvaluateRecordController extends Controller { updatedAt: element.updatedAt, achievements: achievements, }; - }) + }), ); } @@ -379,10 +336,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -405,14 +359,7 @@ export class EvaluateRecordController extends Controller { })); const directorData = await this.assignDirectorRepository.find({ - select: [ - "personal_id", - "dated", - "fullname", - "position", - "posType", - "posLevel", - ], + select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { personal_id: director_id }, }); @@ -440,7 +387,7 @@ export class EvaluateRecordController extends Controller { async PostData( @Query() assign_id: string, @Body() requestBody: CreateEvaluateAssessor, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -460,10 +407,7 @@ export class EvaluateRecordController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -482,9 +426,7 @@ export class EvaluateRecordController extends Controller { : 0, behavior_other_desc: requestBody.behavio_orther.text, behavior_other_level: - requestBody.behavio_orther.text != "" - ? Number(requestBody.behavio_orther.level) - : 0, + requestBody.behavio_orther.text != "" ? Number(requestBody.behavio_orther.level) : 0, behavior_strength_desc: requestBody.behavior_strength_desc, behavior_improve_desc: requestBody.behavior_improve_desc, orientation: requestBody.orientation, @@ -497,10 +439,9 @@ export class EvaluateRecordController extends Controller { updateFullName: request.user.name, }; - const evaluateAssessor = await this.evaluateAssessorRepository.save( - postData, - { data: request } - ); + const evaluateAssessor = await this.evaluateAssessorRepository.save(postData, { + data: request, + }); if (evaluateAssessor) { await Promise.all( @@ -513,9 +454,7 @@ export class EvaluateRecordController extends Controller { assessor_id: director_id, evaluate_expect_level: Number(expenct.level), output_desc: requestBody.evaluate_ouptut[index].text, - evaluate_output_level: Number( - requestBody.evaluate_ouptut[index].level - ), + evaluate_output_level: Number(requestBody.evaluate_ouptut[index].level), createdUserId: request.user.sub, createdFullName: request.user.name, updateUserId: request.user.sub, @@ -524,7 +463,7 @@ export class EvaluateRecordController extends Controller { await this.evaluateAchievementRepository.save(evaluateAchievement, { data: request, }); - }) + }), ); } @@ -564,7 +503,7 @@ export class EvaluateRecordController extends Controller { @Query() assign_id: string, @Query() evaluate_id: string, @Body() requestBody: CreateEvaluateAssessor, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -599,9 +538,7 @@ export class EvaluateRecordController extends Controller { ? requestBody.achievement_other.text : ""; evaluate.achievement_other_level = - requestBody.achievement_other.text != "" - ? Number(requestBody.achievement_other.level) - : 0; + requestBody.achievement_other.text != "" ? Number(requestBody.achievement_other.level) : 0; evaluate.achievement_strength_desc = requestBody.achievement_strength_desc; evaluate.achievement_improve_desc = requestBody.achievement_improve_desc; @@ -619,9 +556,7 @@ export class EvaluateRecordController extends Controller { evaluate.discipline5_level = requestBody.discipline5_level; evaluate.behavior_other_desc = requestBody.behavio_orther.text; evaluate.behavior_other_level = - requestBody.behavio_orther.text != "" - ? Number(requestBody.behavio_orther.level) - : 0; + requestBody.behavio_orther.text != "" ? Number(requestBody.behavio_orther.level) : 0; evaluate.behavior_strength_desc = requestBody.behavior_strength_desc; evaluate.behavior_improve_desc = requestBody.behavior_improve_desc; evaluate.orientation = requestBody.orientation; @@ -631,10 +566,9 @@ export class EvaluateRecordController extends Controller { evaluate.updateUserId = request.user.sub; evaluate.updateFullName = request.user.name; - const evaluateAssessor = await this.evaluateAssessorRepository.save( - evaluate, - { data: request } - ); + const evaluateAssessor = await this.evaluateAssessorRepository.save(evaluate, { + data: request, + }); if (evaluateAssessor) { await this.evaluateAchievementRepository.delete({ @@ -649,9 +583,7 @@ export class EvaluateRecordController extends Controller { assessor_id: director_id, evaluate_expect_level: Number(expenct.level), output_desc: requestBody.evaluate_ouptut[index].text, - evaluate_output_level: Number( - requestBody.evaluate_ouptut[index].level - ), + evaluate_output_level: Number(requestBody.evaluate_ouptut[index].level), createdUserId: request.user.sub, createdFullName: request.user.name, updateUserId: request.user.sub, @@ -660,7 +592,7 @@ export class EvaluateRecordController extends Controller { await this.evaluateAchievementRepository.save(evaluateAchievement, { data: request, }); - }) + }), ); } @@ -676,19 +608,9 @@ export class EvaluateRecordController extends Controller { * */ @Get("create/commander") - async GetCreateCommander( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async GetCreateCommander(@Query() assign_id: string) { const directorData = await this.assignDirectorRepository.findOne({ - select: [ - "personal_id", - "dated", - "fullname", - "position", - "posType", - "posLevel", - ], + select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { assign_id, role: "commander", @@ -714,10 +636,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profileData = await this.personalRepository.findOne({ @@ -740,11 +659,7 @@ export class EvaluateRecordController extends Controller { const profile = await { id: profileData.personal_id, - name: - profileData.prefixName + - profileData.firstName + - " " + - profileData.lastName, + name: profileData.prefixName + profileData.firstName + " " + profileData.lastName, positionName: profileData.positionName, positionLevelName: profileData.positionLevelName, Oc: profileData.organization, @@ -788,10 +703,7 @@ export class EvaluateRecordController extends Controller { * */ @Get("commander") - async GetDataCommander( - @Query() assign_id: string, - @Query() evaluate_no?: string - ) { + async GetDataCommander(@Query() assign_id: string, @Query() evaluate_no?: string) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -821,12 +733,7 @@ export class EvaluateRecordController extends Controller { } const achievementData = await this.evaluateAchievementRepository.find({ - select: [ - "output_desc", - "evaluate_expect_level", - "output_desc", - "evaluate_output_level", - ], + select: ["output_desc", "evaluate_expect_level", "output_desc", "evaluate_output_level"], where: { evaluate_id: evaluate.id, }, @@ -900,20 +807,18 @@ export class EvaluateRecordController extends Controller { await Promise.all( evaluate.map(async (element: any, index: number) => { - const achievementData = await this.evaluateAchievementRepository.find( - { - select: [ - "output_desc", - "evaluate_expect_level", - "output_desc", - "evaluate_output_level", - ], - where: { - evaluate_id: element.id, - }, - order: { output_id: "ASC" }, - } - ); + const achievementData = await this.evaluateAchievementRepository.find({ + select: [ + "output_desc", + "evaluate_expect_level", + "output_desc", + "evaluate_output_level", + ], + where: { + evaluate_id: element.id, + }, + order: { output_id: "ASC" }, + }); const achievements = await achievementData.map((achievement) => { return { @@ -964,7 +869,7 @@ export class EvaluateRecordController extends Controller { updatedAt: element.updatedAt, achievements: achievements, }; - }) + }), ); } @@ -975,10 +880,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -1001,14 +903,7 @@ export class EvaluateRecordController extends Controller { })); const directorData = await this.assignDirectorRepository.find({ - select: [ - "personal_id", - "dated", - "fullname", - "position", - "posType", - "posLevel", - ], + select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { personal_id: director_id }, }); @@ -1036,7 +931,7 @@ export class EvaluateRecordController extends Controller { async PostDataCommander( @Query() assign_id: string, @Body() requestBody: CreateEvaluateAssessor, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -1056,10 +951,7 @@ export class EvaluateRecordController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -1078,9 +970,7 @@ export class EvaluateRecordController extends Controller { : 0, behavior_other_desc: requestBody.behavio_orther.text, behavior_other_level: - requestBody.behavio_orther.text != "" - ? Number(requestBody.behavio_orther.level) - : 0, + requestBody.behavio_orther.text != "" ? Number(requestBody.behavio_orther.level) : 0, behavior_strength_desc: requestBody.behavior_strength_desc, behavior_improve_desc: requestBody.behavior_improve_desc, orientation: requestBody.orientation, @@ -1093,10 +983,9 @@ export class EvaluateRecordController extends Controller { updateFullName: request.user.name, }; - const evaluateAssessor = await this.evaluateAssessorRepository.save( - postData, - { data: request } - ); + const evaluateAssessor = await this.evaluateAssessorRepository.save(postData, { + data: request, + }); if (evaluateAssessor) { await Promise.all( requestBody.evaluate_expenct_level.map(async (expenct, index) => { @@ -1107,9 +996,7 @@ export class EvaluateRecordController extends Controller { assessor_id: director_id, evaluate_expect_level: Number(expenct.level), output_desc: requestBody.evaluate_ouptut[index].text, - evaluate_output_level: Number( - requestBody.evaluate_ouptut[index].level - ), + evaluate_output_level: Number(requestBody.evaluate_ouptut[index].level), createdUserId: request.user.sub, createdFullName: request.user.name, updateUserId: request.user.sub, @@ -1118,7 +1005,7 @@ export class EvaluateRecordController extends Controller { await this.evaluateAchievementRepository.save(evaluateAchievement, { data: request, }); - }) + }), ); } @@ -1157,7 +1044,7 @@ export class EvaluateRecordController extends Controller { @Query() assign_id: string, @Query() evaluate_id: string, @Body() requestBody: CreateEvaluateAssessor, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -1191,9 +1078,7 @@ export class EvaluateRecordController extends Controller { ? requestBody.achievement_other.text : ""; evaluate.achievement_other_level = - requestBody.achievement_other.text != "" - ? Number(requestBody.achievement_other.level) - : 0; + requestBody.achievement_other.text != "" ? Number(requestBody.achievement_other.level) : 0; evaluate.achievement_strength_desc = requestBody.achievement_strength_desc; evaluate.achievement_improve_desc = requestBody.achievement_improve_desc; @@ -1211,9 +1096,7 @@ export class EvaluateRecordController extends Controller { evaluate.discipline5_level = requestBody.discipline5_level; evaluate.behavior_other_desc = requestBody.behavio_orther.text; evaluate.behavior_other_level = - requestBody.behavio_orther.text != "" - ? Number(requestBody.behavio_orther.level) - : 0; + requestBody.behavio_orther.text != "" ? Number(requestBody.behavio_orther.level) : 0; evaluate.behavior_strength_desc = requestBody.behavior_strength_desc; evaluate.behavior_improve_desc = requestBody.behavior_improve_desc; evaluate.orientation = requestBody.orientation; @@ -1223,10 +1106,9 @@ export class EvaluateRecordController extends Controller { evaluate.updateUserId = request.user.sub; evaluate.updateFullName = request.user.name; - const evaluateAssessor = await this.evaluateAssessorRepository.save( - evaluate, - { data: request } - ); + const evaluateAssessor = await this.evaluateAssessorRepository.save(evaluate, { + data: request, + }); if (evaluateAssessor) { await this.evaluateAchievementRepository.delete({ @@ -1241,9 +1123,7 @@ export class EvaluateRecordController extends Controller { assessor_id: director_id, evaluate_expect_level: Number(expenct.level), output_desc: requestBody.evaluate_ouptut[index].text, - evaluate_output_level: Number( - requestBody.evaluate_ouptut[index].level - ), + evaluate_output_level: Number(requestBody.evaluate_ouptut[index].level), createdUserId: request.user.sub, createdFullName: request.user.name, updateUserId: request.user.sub, @@ -1252,7 +1132,7 @@ export class EvaluateRecordController extends Controller { await this.evaluateAchievementRepository.save(evaluateAchievement, { data: request, }); - }) + }), ); } diff --git a/src/controllers/EvaluateResultController.ts b/src/controllers/EvaluateResultController.ts index d705581..dc639e7 100644 --- a/src/controllers/EvaluateResultController.ts +++ b/src/controllers/EvaluateResultController.ts @@ -20,35 +20,25 @@ import { AppDataSource } from "../database/data-source"; import { AssignDirector } from "../entities/AssignDirector"; import HttpError from "../interfaces/http-error"; import { Assign } from "../entities/Assign"; -import { - CreateEvaluateCommander, - EvaluateCommander, -} from "../entities/EvaluateCommander"; import { Personal } from "../entities/Personal"; import CallAPI from "../interfaces/call-api"; import { EvaluateChairman } from "../entities/EvaluateChairman"; -import { - CreateEvaluateResult, - EvaluateResult, -} from "../entities/EvaluateResult"; +import { CreateEvaluateResult, EvaluateResult } from "../entities/EvaluateResult"; -@Route("api/v1/evaluate-result") +@Route("api/v1/probation/evaluate-result") @Tags("แบบรายงานการประเมินฯ") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class EvaluateResultController extends Controller { - private assignDirectorRepository = - AppDataSource.getRepository(AssignDirector); + private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); private assignRepository = AppDataSource.getRepository(Assign); - private evaluateChairmanRepository = - AppDataSource.getRepository(EvaluateChairman); + private evaluateChairmanRepository = AppDataSource.getRepository(EvaluateChairman); private personalRepository = AppDataSource.getRepository(Personal); - private evaluateResultRepository = - AppDataSource.getRepository(EvaluateResult); + private evaluateResultRepository = AppDataSource.getRepository(EvaluateResult); /** * API ข้อมูลตอนกดสร้างแบบรายงานการประเมินฯ @@ -57,19 +47,13 @@ export class EvaluateResultController extends Controller { * */ @Get("create") - async CreateEvaluate( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async CreateEvaluate(@Query() assign_id: string) { const assign = await this.assignRepository.findOne({ relations: ["profile"], where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profile = await (assign.profile @@ -77,10 +61,7 @@ export class EvaluateResultController extends Controller { ...assign.profile, id: assign.profile.personal_id, name: - assign.profile.prefixName + - assign.profile.firstName + - " " + - assign.profile.lastName, + assign.profile.prefixName + assign.profile.firstName + " " + assign.profile.lastName, Oc: assign.profile.organization, } : null); @@ -90,10 +71,7 @@ export class EvaluateResultController extends Controller { }); if (!directorData) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -108,14 +86,10 @@ export class EvaluateResultController extends Controller { } } - const commanderData = await (directorData.find( - (x) => x.role == "commander" - ) ?? null); + const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); const commander = commanderData ? commanderData.fullname : null; - const chairmanData = await (directorData.find( - (x) => x.role == "chairman" - ) ?? null); + const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); const chairman = chairmanData ? chairmanData.fullname : null; const resultData = await this.evaluateChairmanRepository.findOne({ @@ -193,10 +167,7 @@ export class EvaluateResultController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -223,10 +194,7 @@ export class EvaluateResultController extends Controller { }); if (!directorData) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -241,14 +209,10 @@ export class EvaluateResultController extends Controller { } } - const commanderData = await (directorData.find( - (x) => x.role == "commander" - ) ?? null); + const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); const commander = commanderData ? commanderData.fullname : null; - const chairmanData = await (directorData.find( - (x) => x.role == "chairman" - ) ?? null); + const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); const chairman = chairmanData ? chairmanData.fullname : null; return new HttpSuccess({ @@ -271,7 +235,7 @@ export class EvaluateResultController extends Controller { async PostData( @Query() assign_id: string, @Body() requestBody: CreateEvaluateResult, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -291,10 +255,7 @@ export class EvaluateResultController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -304,8 +265,7 @@ export class EvaluateResultController extends Controller { no: 1, personal_id: assign.personal_id, date_start: requestBody.start_date, - expand_month: - requestBody.pass_result == 3 ? Number(requestBody.expand_month) : 0, + expand_month: requestBody.pass_result == 3 ? Number(requestBody.expand_month) : 0, createdUserId: request.user.sub, createdFullName: request.user.name, @@ -366,7 +326,7 @@ export class EvaluateResultController extends Controller { @Query() assign_id: string, @Query() evaluate_id: string, @Body() requestBody: CreateEvaluateResult, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { let evaluate = await this.evaluateResultRepository.findOne({ where: { id: evaluate_id }, @@ -382,8 +342,7 @@ export class EvaluateResultController extends Controller { evaluate.date_finish = requestBody.date_finish; evaluate.develop_complete = requestBody.develop_complete; evaluate.pass_result = requestBody.pass_result; - evaluate.expand_month = - requestBody.pass_result == 3 ? requestBody.expand_month : 0; + evaluate.expand_month = requestBody.pass_result == 3 ? requestBody.expand_month : 0; evaluate.reson = requestBody.reson; evaluate.chairman_dated = requestBody.chairman_dated; @@ -400,10 +359,7 @@ export class EvaluateResultController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลแบบมอบหมายงาน" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const personal = await this.personalRepository.findOne({ where: { personal_id: assign.personal_id }, diff --git a/src/controllers/MyController.ts b/src/controllers/MyController.ts index 2bd82e4..173310d 100644 --- a/src/controllers/MyController.ts +++ b/src/controllers/MyController.ts @@ -1,6 +1,6 @@ -import { Controller, Get, Route, Security, Tags } from "tsoa"; +import { Controller, Get, Route, Tags } from "tsoa"; -@Route("/hello") +@Route("/probation/hello") @Tags("Test") // @Security("bearerAuth") export class AppController extends Controller { diff --git a/src/controllers/PersonalController.ts b/src/controllers/PersonalController.ts index a47e561..70a0c8a 100644 --- a/src/controllers/PersonalController.ts +++ b/src/controllers/PersonalController.ts @@ -21,12 +21,12 @@ import { Personal, PostPersonal } from "../entities/Personal"; import permission from "../interfaces/permission"; import { Assign } from "../entities/Assign"; -@Route("api/v1/personal") +@Route("api/v1/probation/personal") @Tags("Personal") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class PersonalController extends Controller { @@ -40,43 +40,25 @@ export class PersonalController extends Controller { * */ @Post("add") - async AddPersonal( - @Body() requestBody: PostPersonal, - @Request() request: RequestWithUser - ) { + async AddPersonal(@Body() requestBody: PostPersonal, @Request() request: RequestWithUser) { await new permission().PermissionCreate(request, "SYS_PROBATION"); const checkPersonal: number = await this.personalRepository.count({ where: { personal_id: requestBody.id }, }); if (checkPersonal > 0) { - return new HttpError( - HttpStatusCode.BAD_REQUEST, - "ผู้ทดลองปฏิบัติหน้าที่ราชการนี้มีอยู่แล้ว" - ); + return new HttpError(HttpStatusCode.BAD_REQUEST, "ผู้ทดลองปฏิบัติหน้าที่ราชการนี้มีอยู่แล้ว"); } - let organization = await (requestBody.orgChild4Name - ? requestBody.orgChild4Name + "/" - : ""); - organization += await (requestBody.orgChild3Name - ? requestBody.orgChild3Name + "/" - : ""); - organization += await (requestBody.orgChild2Name - ? requestBody.orgChild2Name + "/" - : ""); - organization += await (requestBody.orgChild1Name - ? requestBody.orgChild1Name + "/" - : ""); - organization += await (requestBody.orgRootName - ? requestBody.orgRootName - : ""); + let organization = await (requestBody.orgChild4Name ? requestBody.orgChild4Name + "/" : ""); + organization += await (requestBody.orgChild3Name ? requestBody.orgChild3Name + "/" : ""); + organization += await (requestBody.orgChild2Name ? requestBody.orgChild2Name + "/" : ""); + organization += await (requestBody.orgChild1Name ? requestBody.orgChild1Name + "/" : ""); + organization += await (requestBody.orgRootName ? requestBody.orgRootName : ""); const personalData = Object.assign(new Personal()); personalData.personal_id = requestBody.id; - personalData.order_number = requestBody.order_number - ? requestBody.order_number - : ""; + personalData.order_number = requestBody.order_number ? requestBody.order_number : ""; personalData.probation_status = 1; personalData.createdUserId = request.user.sub; personalData.createdFullName = request.user.name; @@ -87,12 +69,8 @@ export class PersonalController extends Controller { personalData.firstName = requestBody.firstName; personalData.lastName = requestBody.lastName; personalData.isProbation = requestBody.isProbation ? 1 : 0; - personalData.positionLevelName = requestBody.posLevelName - ? requestBody.posLevelName - : ""; - personalData.positionName = requestBody.position - ? requestBody.position - : ""; + personalData.positionLevelName = requestBody.posLevelName ? requestBody.posLevelName : ""; + personalData.positionName = requestBody.position ? requestBody.position : ""; personalData.positionLineName = requestBody.posLineName; personalData.positionTypeName = requestBody.posTypeName; personalData.posNo = requestBody.posNo ? requestBody.posNo : ""; @@ -122,10 +100,7 @@ export class PersonalController extends Controller { }); if (!lists) { - return new HttpError( - HttpStatusCode.INTERNAL_SERVER_ERROR, - "ไม่สามารถแสดงข้อมูลได้" - ); + return new HttpError(HttpStatusCode.INTERNAL_SERVER_ERROR, "ไม่สามารถแสดงข้อมูลได้"); } let result: any = []; @@ -148,7 +123,7 @@ export class PersonalController extends Controller { order_number: item.order_number, probation_status: item.probation_status, }); - }) + }), ); return new HttpSuccess(result); @@ -161,10 +136,7 @@ export class PersonalController extends Controller { * */ @Get("") - async GetPersonal( - @Request() request: RequestWithUser, - @Query() personal_id: string - ) { + async GetPersonal(@Request() request: RequestWithUser, @Query() personal_id: string) { await new permission().PermissionList(request, "SYS_PROBATION"); const person = await this.personalRepository.findOne({ where: { personal_id: personal_id }, diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index c81ee29..796e4a8 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -27,28 +27,22 @@ import { EvaluateAchievement } from "../entities/EvaluateAchievement"; import { EvaluateCommander } from "../entities/EvaluateCommander"; import CallAPI from "../interfaces/call-api"; -@Route("api/v1/report") +@Route("api/v1/probation/report") @Tags("Report") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class ReportController extends Controller { - private evaluateChairmanRepository = - AppDataSource.getRepository(EvaluateChairman); - private evaluateResultRepository = - AppDataSource.getRepository(EvaluateResult); + private evaluateChairmanRepository = AppDataSource.getRepository(EvaluateChairman); + private evaluateResultRepository = AppDataSource.getRepository(EvaluateResult); private personalRepository = AppDataSource.getRepository(Personal); - private evaluateAssessorRepository = - AppDataSource.getRepository(EvaluateAssessor); - private assignDirectorRepository = - AppDataSource.getRepository(AssignDirector); - private evaluateAchievementRepository = - AppDataSource.getRepository(EvaluateAchievement); - private evaluateCommanderRepository = - AppDataSource.getRepository(EvaluateCommander); + private evaluateAssessorRepository = AppDataSource.getRepository(EvaluateAssessor); + private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); + private evaluateAchievementRepository = AppDataSource.getRepository(EvaluateAchievement); + private evaluateCommanderRepository = AppDataSource.getRepository(EvaluateCommander); /** * API สำหรับออกรายงาน @@ -57,10 +51,7 @@ export class ReportController extends Controller { * */ @Get("") - async GetReport( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async GetReport(@Query() assign_id: string) { const evaluate = await this.evaluateChairmanRepository.findOne({ where: { assign_id }, }); @@ -70,21 +61,14 @@ export class ReportController extends Controller { }); if (!evaluate || !result) { - return new HttpError( - HttpStatusCode.NOT_FOUND, - "ไม่พบข้อมูลผลการทดลองปฏิบัติราชการ" - ); + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผลการทดลองปฏิบัติราชการ"); } - const develop_total_score = await (Number( - evaluate.develop_orientation_score - ) + + const develop_total_score = await (Number(evaluate.develop_orientation_score) + Number(evaluate.develop_self_learning_score) + Number(evaluate.develop_training_seminar_score) + Number(evaluate.develop_other_training_score)); - const develop_total_percent = await (Number( - evaluate.develop_orientation_percent - ) + + const develop_total_percent = await (Number(evaluate.develop_orientation_percent) + Number(evaluate.develop_orientation_percent) + Number(evaluate.develop_self_learning_percent) + Number(evaluate.develop_training_seminar_percent)); @@ -97,8 +81,7 @@ export class ReportController extends Controller { develop_total_score, develop_orientation_percent: evaluate.develop_orientation_percent, develop_self_learning_percent: evaluate.develop_self_learning_percent, - develop_training_seminar_percent: - evaluate.develop_training_seminar_percent, + develop_training_seminar_percent: evaluate.develop_training_seminar_percent, develop_other_training_percent: evaluate.develop_other_training_percent, develop_total_percent, develop_result: evaluate.develop_result, @@ -127,7 +110,7 @@ export class ReportController extends Controller { * */ @Get("pass") - async GetPass(@Request() request: RequestWithUser) { + async GetPass() { const lists = await this.personalRepository.find({ where: { probation_status: 2 }, }); @@ -148,7 +131,7 @@ export class ReportController extends Controller { }, assign, }); - }) + }), ); return new HttpSuccess(data); @@ -161,7 +144,7 @@ export class ReportController extends Controller { * */ @Get("not-pass") - async GetDataNotPass(@Request() request: RequestWithUser) { + async GetDataNotPass() { const lists = await this.personalRepository.find({ where: { probation_status: 3 }, }); @@ -182,7 +165,7 @@ export class ReportController extends Controller { }, assign, }); - }) + }), ); return new HttpSuccess(data); @@ -195,7 +178,7 @@ export class ReportController extends Controller { * */ @Get("expand") - async GetDataExpand(@Request() request: RequestWithUser) { + async GetDataExpand() { const lists = await this.personalRepository.find({ select: ["personal_id"], where: { probation_status: 7 }, @@ -214,7 +197,7 @@ export class ReportController extends Controller { async UpdateStatus( @Query() personal_id: string, @Body() requestBody: { command_no: string }, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const personal = await this.personalRepository.findOne({ where: { personal_id }, @@ -227,6 +210,8 @@ export class ReportController extends Controller { personal.order_number = requestBody.command_no; personal.probation_status = 8; + personal.updateFullName = request.user.name; + personal.updateUserId = request.user.sub; this.personalRepository.save(personal, { data: request }); setLogDataDiff(request, { before, after: personal }); @@ -263,20 +248,23 @@ export class ReportController extends Controller { async ChangeStatus( @Query() personal_id: string, @Body() reqBody: { status: number }, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { - const person = await this.personalRepository.findOne({ + const personal = await this.personalRepository.findOne({ where: { personal_id }, }); - const before = person; + const before = personal; - if (!person) { + if (!personal) { return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } - person.probation_status = await reqBody.status; - await this.personalRepository.save(person, { data: request }); - setLogDataDiff(request, { before, after: person }); + personal.probation_status = await reqBody.status; + personal.updateFullName = request.user.name; + personal.updateUserId = request.user.sub; + + await this.personalRepository.save(personal, { data: request }); + setLogDataDiff(request, { before, after: personal }); return new HttpSuccess(); } @@ -288,10 +276,7 @@ export class ReportController extends Controller { * */ @Get("form-record") - async GetDataFormRecord( - @Query() id: string, - @Request() request: RequestWithUser - ) { + async GetDataFormRecord(@Query() id: string) { const evaluate = await this.evaluateAssessorRepository.findOne({ where: { id }, }); @@ -301,15 +286,7 @@ export class ReportController extends Controller { } const directorData = await this.assignDirectorRepository.findOne({ - select: [ - "personal_id", - "fullname", - "position", - "posType", - "posLevel", - "role", - "dated", - ], + select: ["personal_id", "fullname", "position", "posType", "posLevel", "role", "dated"], where: { personal_id: evaluate.director_id }, }); @@ -356,7 +333,7 @@ export class ReportController extends Controller { evaluate_expect_level, evaluate_output_level, }); - }) + }), ); const evaluateData = await { @@ -579,10 +556,7 @@ export class ReportController extends Controller { * */ @Get("evaluate-commander") - async GetDataEvaluateCommander( - @Query() id: string, - @Request() request: RequestWithUser - ) { + async GetDataEvaluateCommander(@Query() id: string) { const evaluate = await this.evaluateCommanderRepository.findOne({ where: { id }, }); @@ -836,10 +810,7 @@ export class ReportController extends Controller { * */ @Get("evaluate-chairman") - async GetDataEvaluateChairman( - @Query() id: string, - @Request() request: RequestWithUser - ) { + async GetDataEvaluateChairman(@Query() id: string) { const evaluate = await this.evaluateChairmanRepository.findOne({ where: { id }, }); @@ -848,15 +819,11 @@ export class ReportController extends Controller { return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } - const develop_total_score = await (Number( - evaluate.develop_orientation_score - ) + + const develop_total_score = await (Number(evaluate.develop_orientation_score) + Number(evaluate.develop_self_learning_score) + Number(evaluate.develop_training_seminar_score) + Number(evaluate.develop_other_training_score)); - const develop_total_percent = await (Number( - evaluate.develop_orientation_percent - ) + + const develop_total_percent = await (Number(evaluate.develop_orientation_percent) + Number(evaluate.develop_orientation_percent) + Number(evaluate.develop_self_learning_percent) + Number(evaluate.develop_training_seminar_percent)); @@ -1029,8 +996,7 @@ export class ReportController extends Controller { develop_total_score: develop_total_score, develop_orientation_percent: evaluate.develop_orientation_percent, develop_self_learning_percent: evaluate.develop_self_learning_percent, - develop_training_seminar_percent: - evaluate.develop_training_seminar_percent, + develop_training_seminar_percent: evaluate.develop_training_seminar_percent, develop_other_training_percent: evaluate.develop_other_training_percent, develop_total_percent: develop_total_percent, develop_result: evaluate.develop_result, @@ -1070,15 +1036,7 @@ export class ReportController extends Controller { }; const directorData = await this.assignDirectorRepository.find({ - select: [ - "personal_id", - "fullname", - "position", - "posType", - "posLevel", - "role", - "dated", - ], + select: ["personal_id", "fullname", "position", "posType", "posLevel", "role", "dated"], where: { assign_id: assign.id }, }); @@ -1093,18 +1051,16 @@ export class ReportController extends Controller { name: element.fullname, Position: element.position, }; - }) + }), ); const mentorData = await (director.find((x) => x.role == "mentor") ?? null); const mentor = mentorData != null ? mentorData : null; - const commanderData = await (director.find((x) => x.role == "commander") ?? - null); + const commanderData = await (director.find((x) => x.role == "commander") ?? null); const commander = commanderData != null ? commanderData : null; - const chairmanData = await (director.find((x) => x.role == "chairman") ?? - null); + const chairmanData = await (director.find((x) => x.role == "chairman") ?? null); const chairman = chairmanData != null ? chairmanData : null; return new HttpSuccess({ diff --git a/src/controllers/SurveyController.ts b/src/controllers/SurveyController.ts index 38c9632..cc740c1 100644 --- a/src/controllers/SurveyController.ts +++ b/src/controllers/SurveyController.ts @@ -18,12 +18,12 @@ import { setLogDataDiff } from "../interfaces/utils"; import { Survey } from "../entities/Survey"; import { AppDataSource } from "../database/data-source"; -@Route("api/v1/survey") +@Route("api/v1/probation/survey") @Tags("Survey") @Security("bearerAuth") @Response( HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง" + "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class SurveyController extends Controller { @@ -36,10 +36,7 @@ export class SurveyController extends Controller { * */ @Get("") - async GetSurvey( - @Query() assign_id: string, - @Request() request: RequestWithUser - ) { + async GetSurvey(@Query() assign_id: string, @Request() request: RequestWithUser) { const result = await this.surveyRepository.findOne({ where: { assign_id, @@ -58,7 +55,7 @@ export class SurveyController extends Controller { async PostSurvey( @Query() assign_id: string, @Body() requestBody: any, - @Request() request: RequestWithUser + @Request() request: RequestWithUser, ) { const before = null; const data = await { ...requestBody, personal_id: request.user.sub }; From fd76c6ee097ad1a0cfd186435b53f5e32b2f7737 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Thu, 5 Sep 2024 17:26:52 +0700 Subject: [PATCH 06/13] fixing response object --- src/controllers/DataOptionsController.ts | 6 ++---- src/controllers/ReportController.ts | 8 ++++---- src/controllers/SurveyController.ts | 10 +++++----- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/controllers/DataOptionsController.ts b/src/controllers/DataOptionsController.ts index 9fe41c9..86e5162 100644 --- a/src/controllers/DataOptionsController.ts +++ b/src/controllers/DataOptionsController.ts @@ -278,12 +278,10 @@ export class DataOptionController extends Controller { ...person, }; - const data = await { + return new HttpSuccess({ person: responsePerson, assign_no: assign + 1, assign_month: 6, - }; - - return new HttpSuccess({ data: data }); + }); } } diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 796e4a8..65e27dc 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -179,12 +179,12 @@ export class ReportController extends Controller { */ @Get("expand") async GetDataExpand() { - const lists = await this.personalRepository.find({ + const data = await this.personalRepository.find({ select: ["personal_id"], where: { probation_status: 7 }, }); - return new HttpSuccess(lists); + return new HttpSuccess(data); } /** @@ -556,7 +556,7 @@ export class ReportController extends Controller { * */ @Get("evaluate-commander") - async GetDataEvaluateCommander(@Query() id: string) { + async GetDataEvaluateCommander(@Query() id: string, @Request() request: RequestWithUser) { const evaluate = await this.evaluateCommanderRepository.findOne({ where: { id }, }); @@ -810,7 +810,7 @@ export class ReportController extends Controller { * */ @Get("evaluate-chairman") - async GetDataEvaluateChairman(@Query() id: string) { + async GetDataEvaluateChairman(@Query() id: string, @Request() request: RequestWithUser) { const evaluate = await this.evaluateChairmanRepository.findOne({ where: { id }, }); diff --git a/src/controllers/SurveyController.ts b/src/controllers/SurveyController.ts index cc740c1..3a471fb 100644 --- a/src/controllers/SurveyController.ts +++ b/src/controllers/SurveyController.ts @@ -36,13 +36,13 @@ export class SurveyController extends Controller { * */ @Get("") - async GetSurvey(@Query() assign_id: string, @Request() request: RequestWithUser) { - const result = await this.surveyRepository.findOne({ + async GetSurvey(@Query() assign_id: string) { + const data = await this.surveyRepository.findOne({ where: { assign_id, }, }); - return new HttpSuccess(result); + return new HttpSuccess(data); } /** @@ -58,10 +58,10 @@ export class SurveyController extends Controller { @Request() request: RequestWithUser, ) { const before = null; - const data = await { ...requestBody, personal_id: request.user.sub }; + const data = await { ...requestBody, personal_id: request.user.sub, assign_id }; await this.surveyRepository.save(data, { data: request }); setLogDataDiff(request, { before, after: data }); - return new HttpSuccess(data); + return new HttpSuccess(); } } From 78be6d81b271025493fe66420801a922ede0beda Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 6 Sep 2024 09:35:23 +0700 Subject: [PATCH 07/13] fixing response option skill & knowlage --- src/controllers/DataOptionsController.ts | 180 ++++++++++++++--------- 1 file changed, 111 insertions(+), 69 deletions(-) diff --git a/src/controllers/DataOptionsController.ts b/src/controllers/DataOptionsController.ts index 86e5162..fc8dab2 100644 --- a/src/controllers/DataOptionsController.ts +++ b/src/controllers/DataOptionsController.ts @@ -50,13 +50,11 @@ export class DataOptionController extends Controller { where: { personal_id }, }); - console.log(person); - if (!person) { return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } - const result = await this.mapKnowledgeSkillRepository.findOne({ + let result = await this.mapKnowledgeSkillRepository.findOne({ where: { positionName: person.positionName, positionLevelName: person.positionLevelName, @@ -65,7 +63,17 @@ export class DataOptionController extends Controller { }); if (!result) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + // ถ้าตำแหน่งไม่ตรงหาจากระดับตำแหน่งแทนเพื่อให้ฟอร์มสามารถกรอกต่อได้ + result = await this.mapKnowledgeSkillRepository.findOne({ + where: { + positionLevelName: person.positionLevelName, + active: 1, + }, + }); + } + + if (!result) { + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลความรู้ที่ตรงกับตำแหน่ง"); } const knowledges = await this.knowledgeRepository.find({ @@ -107,7 +115,7 @@ export class DataOptionController extends Controller { return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } - const result = await this.mapKnowledgeSkillRepository.findOne({ + let result = await this.mapKnowledgeSkillRepository.findOne({ select: [ "skill_computer_level", "skill_english_level", @@ -122,90 +130,124 @@ export class DataOptionController extends Controller { }); if (!result) { + // ถ้าตำแหน่งไม่ตรงหาจากระดับตำแหน่งแทนเพื่อให้ฟอร์มสามารถกรอกต่อได้ + result = await this.mapKnowledgeSkillRepository.findOne({ + select: [ + "skill_computer_level", + "skill_english_level", + "skill_information_level", + "skill_resourse_level", + ], + where: { + positionLevelName: person.positionLevelName, + active: 1, + }, + }); + } + + if (!result) { + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะที่ตรงกับตำแหน่ง"); + } + + const computerData = await this.skillRepository.findOne({ + where: { type: TypeSkill.COMPUTER, active: 1 }, + }); + + if (!computerData) { + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะคอมพิวเตอร์"); + } + const computer = await { + id: computerData.id, + title: computerData.title, + level_description: + result.skill_computer_level == 1 + ? computerData.level1 + : result.skill_computer_level == 2 + ? computerData.level2 + : result.skill_computer_level == 3 + ? computerData.level3 + : result.skill_computer_level == 4 + ? computerData.level4 + : computerData.level5, + level: result.skill_computer_level, + }; + + const englishData = await this.skillRepository.findOne({ + where: { type: TypeSkill.ENG, active: 1 }, + }); + + if (!englishData) { + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะภาษาอังกฤษ"); + } + + const english = await { + id: englishData.id, + title: englishData.title, + level_description: + result.skill_english_level == 1 + ? englishData.level1 + : result.skill_english_level == 2 + ? englishData.level2 + : result.skill_english_level == 3 + ? englishData.level3 + : result.skill_english_level == 4 + ? englishData.level4 + : englishData.level5, + level: result.skill_english_level, + }; + + const informationData = await this.skillRepository.findOne({ + where: { type: TypeSkill.INFORMATION, active: 1 }, + }); + + if (!informationData) { return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } - const skills = await this.skillRepository.find({ - where: { type: TypeSkill.COMPUTER, active: 1 }, - }); - const skill = await skills.map((v) => ({ - id: v.id, - title: v.title, - level_description: - result.skill_english_level == 1 - ? v.level1 - : result.skill_english_level == 2 - ? v.level2 - : result.skill_english_level == 3 - ? v.level3 - : result.skill_english_level == 4 - ? v.level4 - : v.level5, - level: result.skill_english_level, - })); - - const englishs = await this.skillRepository.find({ - where: { type: TypeSkill.ENG, active: 1 }, - }); - const english = await englishs.map((v) => ({ - id: v.id, - title: v.title, - level_description: - result.skill_english_level == 1 - ? v.level1 - : result.skill_english_level == 2 - ? v.level2 - : result.skill_english_level == 3 - ? v.level3 - : result.skill_english_level == 4 - ? v.level4 - : v.level5, - level: result.skill_english_level, - })); - - const informations = await this.skillRepository.find({ - where: { type: TypeSkill.INFORMATION, active: 1 }, - }); - const information = await informations.map((v) => ({ - id: v.id, - title: v.title, + const information = await { + id: informationData.id, + title: informationData.title, level_description: result.skill_information_level == 1 - ? v.level1 + ? informationData.level1 : result.skill_information_level == 2 - ? v.level2 + ? informationData.level2 : result.skill_information_level == 3 - ? v.level3 + ? informationData.level3 : result.skill_information_level == 4 - ? v.level4 - : v.level5, + ? informationData.level4 + : informationData.level5, level: result.skill_information_level, - })); + }; - const resourses = await this.skillRepository.find({ + const resourseData = await this.skillRepository.findOne({ where: { type: TypeSkill.RESOURSE, active: 1 }, }); - const resourse = await resourses.map((v) => ({ - id: v.id, - title: v.title, + if (!resourseData) { + return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } + + const resourse = await { + id: resourseData.id, + title: resourseData.title, level_description: result.skill_resourse_level == 1 - ? v.level1 + ? resourseData.level1 : result.skill_resourse_level == 2 - ? v.level2 + ? resourseData.level2 : result.skill_resourse_level == 3 - ? v.level3 + ? resourseData.level3 : result.skill_resourse_level == 4 - ? v.level4 - : v.level5, + ? resourseData.level4 + : resourseData.level5, level: result.skill_resourse_level, - })); + }; return new HttpSuccess({ - computer: skill, - english: english, - information: information, - resourse: resourse, + computer, + english, + information, + resourse, }); } From 0e54b8b8809fd579222d4ad534b7ece6accb3eb2 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 6 Sep 2024 09:37:29 +0700 Subject: [PATCH 08/13] fixing throw HttpError --- src/controllers/AssignController.ts | 10 ++-- src/controllers/DataOptionsController.ts | 20 ++++---- src/controllers/EvaluateChairmanController.ts | 20 ++++---- src/controllers/EvaluateController.ts | 16 +++--- src/controllers/EvaluateRecordController.ts | 50 +++++++++---------- src/controllers/EvaluateResultController.ts | 26 +++++----- src/controllers/PersonalController.ts | 6 +-- src/controllers/ReportController.ts | 32 ++++++------ 8 files changed, 90 insertions(+), 90 deletions(-) diff --git a/src/controllers/AssignController.ts b/src/controllers/AssignController.ts index 4d7b8af..8d9f925 100644 --- a/src/controllers/AssignController.ts +++ b/src/controllers/AssignController.ts @@ -72,7 +72,7 @@ export class AssignController extends Controller { }); if (!person) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } const roundNo = await this.assignRepository.count({ @@ -231,7 +231,7 @@ export class AssignController extends Controller { let before = assign; if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const person = await this.personalRepository.findOne({ @@ -241,7 +241,7 @@ export class AssignController extends Controller { }); if (!person) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } const data: any = { @@ -511,7 +511,7 @@ export class AssignController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profileData = await this.personalRepository.findOne({ @@ -532,7 +532,7 @@ export class AssignController extends Controller { }); if (!profileData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } const profile = { diff --git a/src/controllers/DataOptionsController.ts b/src/controllers/DataOptionsController.ts index fc8dab2..a42ea51 100644 --- a/src/controllers/DataOptionsController.ts +++ b/src/controllers/DataOptionsController.ts @@ -51,7 +51,7 @@ export class DataOptionController extends Controller { }); if (!person) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } let result = await this.mapKnowledgeSkillRepository.findOne({ @@ -73,7 +73,7 @@ export class DataOptionController extends Controller { } if (!result) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลความรู้ที่ตรงกับตำแหน่ง"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลความรู้ที่ตรงกับตำแหน่ง"); } const knowledges = await this.knowledgeRepository.find({ @@ -112,7 +112,7 @@ export class DataOptionController extends Controller { }); if (!person) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } let result = await this.mapKnowledgeSkillRepository.findOne({ @@ -146,7 +146,7 @@ export class DataOptionController extends Controller { } if (!result) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะที่ตรงกับตำแหน่ง"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะที่ตรงกับตำแหน่ง"); } const computerData = await this.skillRepository.findOne({ @@ -154,7 +154,7 @@ export class DataOptionController extends Controller { }); if (!computerData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะคอมพิวเตอร์"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะคอมพิวเตอร์"); } const computer = await { id: computerData.id, @@ -177,7 +177,7 @@ export class DataOptionController extends Controller { }); if (!englishData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะภาษาอังกฤษ"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทักษะภาษาอังกฤษ"); } const english = await { @@ -201,7 +201,7 @@ export class DataOptionController extends Controller { }); if (!informationData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const information = await { @@ -224,7 +224,7 @@ export class DataOptionController extends Controller { where: { type: TypeSkill.RESOURSE, active: 1 }, }); if (!resourseData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const resourse = await { @@ -267,7 +267,7 @@ export class DataOptionController extends Controller { }); if (!results) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const result = await results.map((v) => ({ @@ -306,7 +306,7 @@ export class DataOptionController extends Controller { }); if (!person) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const assign = await this.assignRepository.count({ diff --git a/src/controllers/EvaluateChairmanController.ts b/src/controllers/EvaluateChairmanController.ts index e02fb79..24ef5fc 100644 --- a/src/controllers/EvaluateChairmanController.ts +++ b/src/controllers/EvaluateChairmanController.ts @@ -54,7 +54,7 @@ export class EvaluateChairmanController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -63,7 +63,7 @@ export class EvaluateChairmanController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profile = await (assign.profile @@ -93,7 +93,7 @@ export class EvaluateChairmanController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -143,7 +143,7 @@ export class EvaluateChairmanController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; let evaluate: any = null; @@ -165,14 +165,14 @@ export class EvaluateChairmanController extends Controller { } if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); } const assign = await this.assignRepository.findOne({ where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -199,7 +199,7 @@ export class EvaluateChairmanController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -250,7 +250,7 @@ export class EvaluateChairmanController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -260,7 +260,7 @@ export class EvaluateChairmanController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -335,7 +335,7 @@ export class EvaluateChairmanController extends Controller { const before = evaluate; if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); } evaluate.chairman_dated = requestBody.chairman_dated; diff --git a/src/controllers/EvaluateController.ts b/src/controllers/EvaluateController.ts index 452c3a5..8e89761 100644 --- a/src/controllers/EvaluateController.ts +++ b/src/controllers/EvaluateController.ts @@ -54,7 +54,7 @@ export class EvaluateController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -63,7 +63,7 @@ export class EvaluateController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profile = await (assign.profile @@ -126,7 +126,7 @@ export class EvaluateController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; let evaluate: any = null; @@ -148,14 +148,14 @@ export class EvaluateController extends Controller { } if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); } const assign = await this.assignRepository.findOne({ where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } // const profile = await (assign.profile @@ -241,7 +241,7 @@ export class EvaluateController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -251,7 +251,7 @@ export class EvaluateController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -326,7 +326,7 @@ export class EvaluateController extends Controller { const before = evaluate; if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); } evaluate.commander_dated = requestBody.commander_dated; diff --git a/src/controllers/EvaluateRecordController.ts b/src/controllers/EvaluateRecordController.ts index 268d00d..fa45773 100644 --- a/src/controllers/EvaluateRecordController.ts +++ b/src/controllers/EvaluateRecordController.ts @@ -59,7 +59,7 @@ export class EvaluateRecordController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const director = await { @@ -77,7 +77,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profileData = await this.personalRepository.findOne({ @@ -95,7 +95,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!profileData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } const profile = await { @@ -132,7 +132,7 @@ export class EvaluateRecordController extends Controller { }); if (!commanderData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้บังคับบัญชา"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้บังคับบัญชา"); } const commander = await { @@ -168,7 +168,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -185,7 +185,7 @@ export class EvaluateRecordController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); } const achievementData = await this.evaluateAchievementRepository.find({ @@ -196,7 +196,7 @@ export class EvaluateRecordController extends Controller { order: { output_id: "ASC" }, }); if (!achievementData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const achievements = await achievementData.map((achievement) => { @@ -258,7 +258,7 @@ export class EvaluateRecordController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } await Promise.all( @@ -336,7 +336,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -397,7 +397,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -407,7 +407,7 @@ export class EvaluateRecordController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -513,7 +513,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -525,7 +525,7 @@ export class EvaluateRecordController extends Controller { const before = evaluate; if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); } evaluate.assessor_dated = requestBody.assessor_dated; @@ -618,7 +618,7 @@ export class EvaluateRecordController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const director = await { @@ -636,7 +636,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profileData = await this.personalRepository.findOne({ @@ -654,7 +654,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!profileData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } const profile = await { @@ -712,7 +712,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -729,7 +729,7 @@ export class EvaluateRecordController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); } const achievementData = await this.evaluateAchievementRepository.find({ @@ -740,7 +740,7 @@ export class EvaluateRecordController extends Controller { order: { output_id: "ASC" }, }); if (!achievementData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const achievements = await achievementData.map((achievement) => { @@ -802,7 +802,7 @@ export class EvaluateRecordController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } await Promise.all( @@ -880,7 +880,7 @@ export class EvaluateRecordController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -941,7 +941,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -951,7 +951,7 @@ export class EvaluateRecordController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -1054,7 +1054,7 @@ export class EvaluateRecordController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -1064,7 +1064,7 @@ export class EvaluateRecordController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); } const before = evaluate; diff --git a/src/controllers/EvaluateResultController.ts b/src/controllers/EvaluateResultController.ts index dc639e7..dab138b 100644 --- a/src/controllers/EvaluateResultController.ts +++ b/src/controllers/EvaluateResultController.ts @@ -53,7 +53,7 @@ export class EvaluateResultController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const profile = await (assign.profile @@ -71,7 +71,7 @@ export class EvaluateResultController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -105,7 +105,7 @@ export class EvaluateResultController extends Controller { }); if (!resultData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมินผล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมินผล"); } const develop_complete = await (resultData.develop_orientation_score > 0 && @@ -148,7 +148,7 @@ export class EvaluateResultController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -160,14 +160,14 @@ export class EvaluateResultController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); } const assign = await this.assignRepository.findOne({ where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const experimenteeData = await this.personalRepository.find({ @@ -194,7 +194,7 @@ export class EvaluateResultController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } let mentors = ""; @@ -245,7 +245,7 @@ export class EvaluateResultController extends Controller { }, }); if (!director) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล"); } const director_id = director.personal_id; @@ -255,7 +255,7 @@ export class EvaluateResultController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const postData: any = await { @@ -283,7 +283,7 @@ export class EvaluateResultController extends Controller { }); if (!personal) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } personal.probation_status = requestBody.pass_result == 1 @@ -335,7 +335,7 @@ export class EvaluateResultController extends Controller { const before = evaluate; if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลการประเมิน"); } evaluate.date_start = requestBody.start_date; @@ -359,14 +359,14 @@ export class EvaluateResultController extends Controller { where: { id: assign_id }, }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } const personal = await this.personalRepository.findOne({ where: { personal_id: assign.personal_id }, }); if (!personal) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } personal.probation_status = requestBody.pass_result == 1 diff --git a/src/controllers/PersonalController.ts b/src/controllers/PersonalController.ts index 70a0c8a..61bf3c5 100644 --- a/src/controllers/PersonalController.ts +++ b/src/controllers/PersonalController.ts @@ -47,7 +47,7 @@ export class PersonalController extends Controller { where: { personal_id: requestBody.id }, }); if (checkPersonal > 0) { - return new HttpError(HttpStatusCode.BAD_REQUEST, "ผู้ทดลองปฏิบัติหน้าที่ราชการนี้มีอยู่แล้ว"); + throw new HttpError(HttpStatusCode.BAD_REQUEST, "ผู้ทดลองปฏิบัติหน้าที่ราชการนี้มีอยู่แล้ว"); } let organization = await (requestBody.orgChild4Name ? requestBody.orgChild4Name + "/" : ""); @@ -100,7 +100,7 @@ export class PersonalController extends Controller { }); if (!lists) { - return new HttpError(HttpStatusCode.INTERNAL_SERVER_ERROR, "ไม่สามารถแสดงข้อมูลได้"); + throw new HttpError(HttpStatusCode.INTERNAL_SERVER_ERROR, "ไม่สามารถแสดงข้อมูลได้"); } let result: any = []; @@ -143,7 +143,7 @@ export class PersonalController extends Controller { }); if (!person) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } const probation_no = await this.assignRepository.count({ diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index 65e27dc..aad63bb 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -61,7 +61,7 @@ export class ReportController extends Controller { }); if (!evaluate || !result) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผลการทดลองปฏิบัติราชการ"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผลการทดลองปฏิบัติราชการ"); } const develop_total_score = await (Number(evaluate.develop_orientation_score) + @@ -205,7 +205,7 @@ export class ReportController extends Controller { const before = personal; if (!personal) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } personal.order_number = requestBody.command_no; @@ -256,7 +256,7 @@ export class ReportController extends Controller { const before = personal; if (!personal) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); } personal.probation_status = await reqBody.status; @@ -282,7 +282,7 @@ export class ReportController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const directorData = await this.assignDirectorRepository.findOne({ @@ -291,7 +291,7 @@ export class ReportController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const director = await { @@ -306,7 +306,7 @@ export class ReportController extends Controller { }); if (!achievements) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } let achievement: any = []; @@ -516,7 +516,7 @@ export class ReportController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const experimenteeData = await this.personalRepository.findOne({ @@ -526,7 +526,7 @@ export class ReportController extends Controller { }); if (!experimenteeData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const experimentee = await { @@ -562,7 +562,7 @@ export class ReportController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const evaluateData = await { @@ -747,7 +747,7 @@ export class ReportController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const experimenteeData = await this.personalRepository.findOne({ @@ -757,7 +757,7 @@ export class ReportController extends Controller { }); if (!experimenteeData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const experimentee = await { @@ -786,7 +786,7 @@ export class ReportController extends Controller { }); if (!commanderData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const commander = await { @@ -816,7 +816,7 @@ export class ReportController extends Controller { }); if (!evaluate) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const develop_total_score = await (Number(evaluate.develop_orientation_score) + @@ -1011,7 +1011,7 @@ export class ReportController extends Controller { }); if (!assign) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const experimenteeData = await this.personalRepository.findOne({ @@ -1021,7 +1021,7 @@ export class ReportController extends Controller { }); if (!experimenteeData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const experimentee = await { @@ -1041,7 +1041,7 @@ export class ReportController extends Controller { }); if (!directorData) { - return new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } const director = await Promise.all( From 4b55b8cf2024d5918af78801f0fede71fa3f809e Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 6 Sep 2024 09:48:59 +0700 Subject: [PATCH 09/13] fixing assign parameter --- src/controllers/AssignController.ts | 8 ++--- src/entities/Assign.ts | 51 ++++++++--------------------- 2 files changed, 17 insertions(+), 42 deletions(-) diff --git a/src/controllers/AssignController.ts b/src/controllers/AssignController.ts index 8d9f925..ec9f9c4 100644 --- a/src/controllers/AssignController.ts +++ b/src/controllers/AssignController.ts @@ -67,7 +67,7 @@ export class AssignController extends Controller { await new permission().PermissionUpdate(request, "SYS_PROBATION"); const person = await this.personalRepository.findOne({ where: { - personal_id: requestBody.personal_id, + personal_id: requestBody.personalId, }, }); @@ -78,14 +78,14 @@ export class AssignController extends Controller { const roundNo = await this.assignRepository.count({ where: { active: 1, - personal_id: requestBody.personal_id, + personal_id: requestBody.personalId, }, }); const data: any = { ...requestBody, round_no: roundNo + 1, - personal_id: requestBody.personal_id, + personal_id: requestBody.personalId, createdUserId: request.user.sub, createdFullName: request.user.name, updateUserId: request.user.sub, @@ -236,7 +236,7 @@ export class AssignController extends Controller { const person = await this.personalRepository.findOne({ where: { - personal_id: requestBody.personal_id, + personal_id: requestBody.personalId, }, }); diff --git a/src/entities/Assign.ts b/src/entities/Assign.ts index e7015df..602a022 100644 --- a/src/entities/Assign.ts +++ b/src/entities/Assign.ts @@ -1,20 +1,7 @@ -import { - CreateEvaluateCommander, - EvaluateCommander, -} from "./EvaluateCommander"; -import { - Entity, - Column, - OneToMany, - JoinColumn, - PrimaryGeneratedColumn, - ManyToOne, -} from "typeorm"; +import { CreateEvaluateCommander, EvaluateCommander } from "./EvaluateCommander"; +import { Entity, Column, OneToMany, JoinColumn, PrimaryGeneratedColumn, ManyToOne } from "typeorm"; import { EntityBase } from "./base/Base"; -import { - AssignCompetencyGroup, - CreateAssignCompetencyGroup, -} from "./AssignCompetencyGroup"; +import { AssignCompetencyGroup, CreateAssignCompetencyGroup } from "./AssignCompetencyGroup"; import { CreateSurvel, Survey } from "./Survey"; import { AssignCompetency, CreateAssignCompetency } from "./AssignCompetency"; import { AssignDirector, CreateAssignDirector } from "./AssignDirector"; @@ -23,10 +10,7 @@ import { AssignKnowledge, CreateAssignKnowledge } from "./AssignKnowledge"; import { AssignLaw, CreateAssignLaw } from "./AssignLaw"; import { AssignOutput, CreateAssignOutput } from "./AssignOutput"; import { AssignSkill, CreateAssignSkill } from "./AssignSkill"; -import { - CreateEvaluateAchievement, - EvaluateAchievement, -} from "./EvaluateAchievement"; +import { CreateEvaluateAchievement, EvaluateAchievement } from "./EvaluateAchievement"; import { CreateEvaluateAssessor, EvaluateAssessor } from "./EvaluateAssessor"; import { CreateEvaluateChairman, EvaluateChairman } from "./EvaluateChairman"; import { CreateEvaluateResult, EvaluateResult } from "./EvaluateResult"; @@ -102,22 +86,16 @@ export class Assign extends EntityBase { @OneToMany( () => AssignCompetencyGroup, - (competencyGroup: AssignCompetencyGroup) => competencyGroup.assign + (competencyGroup: AssignCompetencyGroup) => competencyGroup.assign, ) @JoinColumn({ name: "id" }) competencyGroups: AssignCompetencyGroup[]; - @OneToMany( - () => AssignCompetency, - (competency: AssignCompetency) => competency.assign - ) + @OneToMany(() => AssignCompetency, (competency: AssignCompetency) => competency.assign) @JoinColumn({ name: "id" }) competencys: AssignCompetency[]; - @OneToMany( - () => AssignDirector, - (director: AssignDirector) => director.assign - ) + @OneToMany(() => AssignDirector, (director: AssignDirector) => director.assign) @JoinColumn({ name: "id" }) directors: AssignDirector[]; @@ -125,10 +103,7 @@ export class Assign extends EntityBase { @JoinColumn({ name: "id" }) jobs: AssignJob[]; - @OneToMany( - () => AssignKnowledge, - (knowledge: AssignKnowledge) => knowledge.assign - ) + @OneToMany(() => AssignKnowledge, (knowledge: AssignKnowledge) => knowledge.assign) @JoinColumn({ name: "id" }) knowledges: AssignKnowledge[]; @@ -150,28 +125,28 @@ export class Assign extends EntityBase { @OneToMany( () => EvaluateAchievement, - (evaluateAchievement: EvaluateAchievement) => evaluateAchievement.assign + (evaluateAchievement: EvaluateAchievement) => evaluateAchievement.assign, ) @JoinColumn({ name: "id" }) evaluateAchievements: EvaluateAchievement; @OneToMany( () => EvaluateAssessor, - (evaluateAssessor: EvaluateAssessor) => evaluateAssessor.assign + (evaluateAssessor: EvaluateAssessor) => evaluateAssessor.assign, ) @JoinColumn({ name: "id" }) evaluateAssessors: EvaluateAssessor; @OneToMany( () => EvaluateChairman, - (evaluateChairman: EvaluateChairman) => evaluateChairman.assign + (evaluateChairman: EvaluateChairman) => evaluateChairman.assign, ) @JoinColumn({ name: "id" }) evaluateChairmans: EvaluateChairman; @OneToMany( () => EvaluateCommander, - (evaluateCommander: EvaluateCommander) => evaluateCommander.assign + (evaluateCommander: EvaluateCommander) => evaluateCommander.assign, ) @JoinColumn({ name: "id" }) evaluateCommanders: EvaluateCommander; @@ -193,7 +168,7 @@ export class CreateAssign { @Column() experimenter_dated?: Date; @Column() - personal_id?: string; + personalId?: string; fullname?: string; position?: string; monthSelect?: number; From b48df265059c880033b92139e52c640cb120e844 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 6 Sep 2024 14:38:37 +0700 Subject: [PATCH 10/13] updated api after test connect frontend --- src/controllers/AssignController.ts | 24 +++- src/controllers/EvaluateChairmanController.ts | 118 ++++++++++++++--- src/controllers/EvaluateController.ts | 24 ++-- src/controllers/EvaluateRecordController.ts | 8 +- src/controllers/EvaluateResultController.ts | 119 +++++++++++++++--- src/entities/Assign.ts | 6 + src/entities/AssignLaw.ts | 10 +- src/entities/EvaluateResult.ts | 10 +- src/entities/Law.ts | 14 +-- .../1725594553970-update-assigntb.ts | 15 +++ 10 files changed, 275 insertions(+), 73 deletions(-) create mode 100644 src/migration/1725594553970-update-assigntb.ts diff --git a/src/controllers/AssignController.ts b/src/controllers/AssignController.ts index ec9f9c4..d39c738 100644 --- a/src/controllers/AssignController.ts +++ b/src/controllers/AssignController.ts @@ -451,6 +451,7 @@ export class AssignController extends Controller { lists.map(async (item) => { const director = await this.assignDirectorRepository.find({ where: { assign_id: item.id }, + order: { ordering: "ASC" }, }); let mentors = ""; @@ -500,6 +501,7 @@ export class AssignController extends Controller { "round_no", "date_start", "date_finish", + "other_desc", "other4_desc", "other5_no1_desc", "experimenter_dated", @@ -575,12 +577,21 @@ export class AssignController extends Controller { where: { active: 1 }, }); - const laws = await lawData.map((x) => ({ - id: x.id, - selected: x.assignLaw ? 1 : 0, - description: x.description, - status_select: x.status_select, - })); + const laws = await Promise.all( + lawData.map(async (x) => { + const assignLaw = await this.assignLawRepository.countBy({ + assign_id: assign_id, + law_id: x.id, + }); + + return { + id: x.id, + selected: assignLaw > 0 ? 1 : 0, + description: x.description, + status_select: x.status_select, + }; + }), + ); const skillsData = await this.assignSkillRepository.find({ relations: ["skill"], @@ -640,6 +651,7 @@ export class AssignController extends Controller { const director = await this.assignDirectorRepository.find({ where: { assign_id }, + order: { ordering: "ASC" }, }); let mentors = []; diff --git a/src/controllers/EvaluateChairmanController.ts b/src/controllers/EvaluateChairmanController.ts index 24ef5fc..97a12fe 100644 --- a/src/controllers/EvaluateChairmanController.ts +++ b/src/controllers/EvaluateChairmanController.ts @@ -90,29 +90,70 @@ export class EvaluateChairmanController extends Controller { const directorData = await this.assignDirectorRepository.find({ where: { assign_id }, + order: { ordering: "ASC" }, }); if (!directorData) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } - let mentors = ""; + let mentors = []; const mentorList = await directorData.filter((x) => x.role == "mentor"); if (mentorList.length > 0) { for (let index = 0; index < mentorList.length; index++) { const e = await mentorList[index]; - mentors += e.fullname; - if (index < mentorList.length - 1) { - mentors += ", "; - } + + mentors.push({ + personal_id: e.personal_id, + dated: e.dated, + name: e.fullname, + label: + e.fullname + " " + (e.position ? `(${e.position}, ${e.posType}: ${e.posLevel})` : ""), + position: e.position, + posType: e.posType, + posLevel: e.posLevel, + }); } } const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); - const commander = commanderData ? commanderData.fullname : null; + + const commander = + commanderData != null + ? { + personal_id: commanderData.personal_id, + dated: commanderData.dated, + name: commanderData.fullname, + label: + commanderData.fullname + + " " + + (commanderData.position + ? `(${commanderData.position}, ${commanderData.posType}: ${commanderData.posLevel})` + : ""), + position: commanderData.position, + posType: commanderData.posType, + posLevel: commanderData.posLevel, + } + : null; const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); - const chairman = chairmanData ? chairmanData.fullname : null; + const chairman = + chairmanData != null + ? { + personal_id: chairmanData.personal_id, + dated: chairmanData.dated, + name: chairmanData.fullname, + label: + chairmanData.fullname + + " " + + (chairmanData.position + ? `(${chairmanData.position}, ${chairmanData.posType}: ${chairmanData.posLevel})` + : ""), + position: chairmanData.position, + posType: chairmanData.posType, + posLevel: chairmanData.posLevel, + } + : null; return new HttpSuccess({ person: profile ? profile : null, @@ -156,12 +197,18 @@ export class EvaluateChairmanController extends Controller { }, }); } else { - evaluate = await this.evaluateChairmanRepository.findOne({ + evaluate = await this.evaluateChairmanRepository.find({ where: { director_id, assign_id, }, }); + + if (evaluate) + evaluate = await evaluate.map((element: EvaluateChairman) => ({ + ...element, + no: Number(element.no), + })); } if (!evaluate) { @@ -196,29 +243,70 @@ export class EvaluateChairmanController extends Controller { const directorData = await this.assignDirectorRepository.find({ where: { assign_id }, + order: { ordering: "ASC" }, }); if (!directorData) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } - let mentors = ""; + let mentors = []; const mentorList = await directorData.filter((x) => x.role == "mentor"); if (mentorList.length > 0) { for (let index = 0; index < mentorList.length; index++) { const e = await mentorList[index]; - mentors += e.fullname; - if (index < mentorList.length - 1) { - mentors += ", "; - } + + mentors.push({ + personal_id: e.personal_id, + dated: e.dated, + name: e.fullname, + label: + e.fullname + " " + (e.position ? `(${e.position}, ${e.posType}: ${e.posLevel})` : ""), + position: e.position, + posType: e.posType, + posLevel: e.posLevel, + }); } } const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); - const commander = commanderData ? commanderData.fullname : null; + + const commander = + commanderData != null + ? { + personal_id: commanderData.personal_id, + dated: commanderData.dated, + name: commanderData.fullname, + label: + commanderData.fullname + + " " + + (commanderData.position + ? `(${commanderData.position}, ${commanderData.posType}: ${commanderData.posLevel})` + : ""), + position: commanderData.position, + posType: commanderData.posType, + posLevel: commanderData.posLevel, + } + : null; const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); - const chairman = chairmanData ? chairmanData.fullname : null; + const chairman = + chairmanData != null + ? { + personal_id: chairmanData.personal_id, + dated: chairmanData.dated, + name: chairmanData.fullname, + label: + chairmanData.fullname + + " " + + (chairmanData.position + ? `(${chairmanData.position}, ${chairmanData.posType}: ${chairmanData.posLevel})` + : ""), + position: chairmanData.position, + posType: chairmanData.posType, + posLevel: chairmanData.posLevel, + } + : null; return new HttpSuccess({ experimentee: experimentee, diff --git a/src/controllers/EvaluateController.ts b/src/controllers/EvaluateController.ts index 8e89761..d602a5d 100644 --- a/src/controllers/EvaluateController.ts +++ b/src/controllers/EvaluateController.ts @@ -88,16 +88,18 @@ export class EvaluateController extends Controller { ? assign.date_start : findEndDate(evaluate_amount * 3, assign.date_start); - const commanderData = await this.assignDirectorRepository.find({ + const commanderData = await this.assignDirectorRepository.findOne({ select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { personal_id: director_id }, }); - - const commander = await commanderData.map((element) => ({ - ...element, - name: element.fullname, - label: `${element.fullname} (${element.position}, ${element.posType}: ${element.posLevel})`, - })); + if (!commanderData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้บังคับบัญชา"); + } + const commander = await { + ...commanderData, + name: commanderData.fullname, + label: `${commanderData.fullname} (${commanderData.position}, ${commanderData.posType}: ${commanderData.posLevel})`, + }; return new HttpSuccess({ person: profile, @@ -139,12 +141,18 @@ export class EvaluateController extends Controller { }, }); } else { - evaluate = await this.evaluateCommanderRepository.findOne({ + evaluate = await this.evaluateCommanderRepository.find({ where: { director_id, assign_id, }, }); + + if (evaluate) + evaluate = await evaluate.map((element: EvaluateCommander) => ({ + ...element, + no: Number(element.no), + })); } if (!evaluate) { diff --git a/src/controllers/EvaluateRecordController.ts b/src/controllers/EvaluateRecordController.ts index fa45773..15efc0c 100644 --- a/src/controllers/EvaluateRecordController.ts +++ b/src/controllers/EvaluateRecordController.ts @@ -211,7 +211,7 @@ export class EvaluateRecordController extends Controller { id: evaluate.id, director_id: evaluate.director_id, assign_id, - no: evaluate.no, + no: Number(evaluate.no), date_start: evaluate.date_start, date_finish: evaluate.date_finish, assessor_dated: evaluate.assessor_dated, @@ -288,7 +288,7 @@ export class EvaluateRecordController extends Controller { id: element.id, director_id: element.director_id, assign_id, - no: element.no, + no: Number(element.no), date_start: element.date_start, date_finish: element.date_finish, assessor_dated: element.assessor_dated, @@ -755,7 +755,7 @@ export class EvaluateRecordController extends Controller { id: evaluate.id, director_id: evaluate.director_id, assign_id, - no: evaluate.no, + no: Number(evaluate.no), date_start: evaluate.date_start, date_finish: evaluate.date_finish, assessor_dated: evaluate.assessor_dated, @@ -832,7 +832,7 @@ export class EvaluateRecordController extends Controller { id: element.id, director_id: element.director_id, assign_id, - no: element.no, + no: Number(element.no), date_start: element.date_start, date_finish: element.date_finish, assessor_dated: element.assessor_dated, diff --git a/src/controllers/EvaluateResultController.ts b/src/controllers/EvaluateResultController.ts index dab138b..de393b3 100644 --- a/src/controllers/EvaluateResultController.ts +++ b/src/controllers/EvaluateResultController.ts @@ -68,29 +68,70 @@ export class EvaluateResultController extends Controller { const directorData = await this.assignDirectorRepository.find({ where: { assign_id }, + order: { ordering: "ASC" }, }); if (!directorData) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } - let mentors = ""; + let mentors = []; const mentorList = await directorData.filter((x) => x.role == "mentor"); if (mentorList.length > 0) { for (let index = 0; index < mentorList.length; index++) { const e = await mentorList[index]; - mentors += e.fullname; - if (index < mentorList.length - 1) { - mentors += ", "; - } + + mentors.push({ + personal_id: e.personal_id, + dated: e.dated, + name: e.fullname, + label: + e.fullname + " " + (e.position ? `(${e.position}, ${e.posType}: ${e.posLevel})` : ""), + position: e.position, + posType: e.posType, + posLevel: e.posLevel, + }); } } const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); - const commander = commanderData ? commanderData.fullname : null; + + const commander = + commanderData != null + ? { + personal_id: commanderData.personal_id, + dated: commanderData.dated, + name: commanderData.fullname, + label: + commanderData.fullname + + " " + + (commanderData.position + ? `(${commanderData.position}, ${commanderData.posType}: ${commanderData.posLevel})` + : ""), + position: commanderData.position, + posType: commanderData.posType, + posLevel: commanderData.posLevel, + } + : null; const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); - const chairman = chairmanData ? chairmanData.fullname : null; + const chairman = + chairmanData != null + ? { + personal_id: chairmanData.personal_id, + dated: chairmanData.dated, + name: chairmanData.fullname, + label: + chairmanData.fullname + + " " + + (chairmanData.position + ? `(${chairmanData.position}, ${chairmanData.posType}: ${chairmanData.posLevel})` + : ""), + position: chairmanData.position, + posType: chairmanData.posType, + posLevel: chairmanData.posLevel, + } + : null; const resultData = await this.evaluateChairmanRepository.findOne({ select: [ @@ -152,7 +193,7 @@ export class EvaluateResultController extends Controller { } const director_id = director.personal_id; - const evaluate = await this.evaluateChairmanRepository.findOne({ + const evaluate = await this.evaluateResultRepository.findOne({ where: { director_id, assign_id, @@ -160,7 +201,7 @@ export class EvaluateResultController extends Controller { }); if (!evaluate) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบประเมิน"); + return new HttpSuccess(null); } const assign = await this.assignRepository.findOne({ @@ -191,29 +232,70 @@ export class EvaluateResultController extends Controller { const directorData = await this.assignDirectorRepository.find({ where: { assign_id }, + order: { ordering: "ASC" }, }); if (!directorData) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผู้ดูแล ผู้บังคับบัญชาและประธาน"); } - let mentors = ""; + let mentors = []; const mentorList = await directorData.filter((x) => x.role == "mentor"); if (mentorList.length > 0) { for (let index = 0; index < mentorList.length; index++) { const e = await mentorList[index]; - mentors += e.fullname; - if (index < mentorList.length - 1) { - mentors += ", "; - } + + mentors.push({ + personal_id: e.personal_id, + dated: e.dated, + name: e.fullname, + label: + e.fullname + " " + (e.position ? `(${e.position}, ${e.posType}: ${e.posLevel})` : ""), + position: e.position, + posType: e.posType, + posLevel: e.posLevel, + }); } } const commanderData = await (directorData.find((x) => x.role == "commander") ?? null); - const commander = commanderData ? commanderData.fullname : null; + + const commander = + commanderData != null + ? { + personal_id: commanderData.personal_id, + dated: commanderData.dated, + name: commanderData.fullname, + label: + commanderData.fullname + + " " + + (commanderData.position + ? `(${commanderData.position}, ${commanderData.posType}: ${commanderData.posLevel})` + : ""), + position: commanderData.position, + posType: commanderData.posType, + posLevel: commanderData.posLevel, + } + : null; const chairmanData = await (directorData.find((x) => x.role == "chairman") ?? null); - const chairman = chairmanData ? chairmanData.fullname : null; + const chairman = + chairmanData != null + ? { + personal_id: chairmanData.personal_id, + dated: chairmanData.dated, + name: chairmanData.fullname, + label: + chairmanData.fullname + + " " + + (chairmanData.position + ? `(${chairmanData.position}, ${chairmanData.posType}: ${chairmanData.posLevel})` + : ""), + position: chairmanData.position, + posType: chairmanData.posType, + posLevel: chairmanData.posLevel, + } + : null; return new HttpSuccess({ commander, @@ -342,7 +424,10 @@ export class EvaluateResultController extends Controller { evaluate.date_finish = requestBody.date_finish; evaluate.develop_complete = requestBody.develop_complete; evaluate.pass_result = requestBody.pass_result; - evaluate.expand_month = requestBody.pass_result == 3 ? requestBody.expand_month : 0; + evaluate.expand_month = + requestBody.pass_result && requestBody.pass_result == 3 + ? Number(requestBody.expand_month) + : 0; evaluate.reson = requestBody.reson; evaluate.chairman_dated = requestBody.chairman_dated; diff --git a/src/entities/Assign.ts b/src/entities/Assign.ts index 602a022..ce84ab2 100644 --- a/src/entities/Assign.ts +++ b/src/entities/Assign.ts @@ -80,6 +80,12 @@ export class Assign extends EntityBase { }) active: number; + @Column({ + nullable: true, + comment: "กฎหมายอื่นๆ", + }) + other_desc!: string; + @ManyToOne(() => Personal, (person: Personal) => person.personal_id) @JoinColumn({ name: "personal_id" }) profile: Personal; diff --git a/src/entities/AssignLaw.ts b/src/entities/AssignLaw.ts index e999995..245aa8e 100644 --- a/src/entities/AssignLaw.ts +++ b/src/entities/AssignLaw.ts @@ -1,4 +1,4 @@ -import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm"; +import { Entity, Column, ManyToOne, JoinColumn, OneToMany, OneToOne } from "typeorm"; import { EntityBase } from "./base/Base"; import { Assign } from "./Assign"; import { Law } from "./Law"; @@ -27,13 +27,13 @@ export class AssignLaw extends EntityBase { }) ordering: number; - @ManyToOne(() => Assign, (assign: Assign) => assign.laws) + @ManyToOne(() => Assign, (assign: Assign) => assign.id) @JoinColumn({ name: "assign_id" }) assign: Assign; - @OneToMany(() => Law, (law: Law) => law.assignLaw) - @JoinColumn({ name: "law_id" }) - law: Law; + // @ManyToOne(() => Law, (law: Law) => law.assignLaw) + // @JoinColumn({ name: "law_id" }) + // law: Law; } export class CreateAssignLaw { diff --git a/src/entities/EvaluateResult.ts b/src/entities/EvaluateResult.ts index 2e972b0..b81dc42 100644 --- a/src/entities/EvaluateResult.ts +++ b/src/entities/EvaluateResult.ts @@ -1,10 +1,4 @@ -import { - Entity, - Column, - ManyToOne, - JoinColumn, - PrimaryGeneratedColumn, -} from "typeorm"; +import { Entity, Column, ManyToOne, JoinColumn, PrimaryGeneratedColumn } from "typeorm"; import { EntityBase } from "./base/Base"; import { Assign } from "./Assign"; @@ -103,7 +97,7 @@ export class CreateEvaluateResult { date_finish: Date; develop_complete: number; pass_result: number; - expand_month: number; + expand_month?: number; reson: string; chairman_dated: Date | null; director1_dated: Date | null; diff --git a/src/entities/Law.ts b/src/entities/Law.ts index 6462aef..3ef961a 100644 --- a/src/entities/Law.ts +++ b/src/entities/Law.ts @@ -1,10 +1,4 @@ -import { - Entity, - Column, - PrimaryGeneratedColumn, - OneToMany, - JoinColumn, -} from "typeorm"; +import { Entity, Column, PrimaryGeneratedColumn, OneToMany, JoinColumn, OneToOne } from "typeorm"; import { EntityBase } from "./base/Base"; import { AssignLaw } from "./AssignLaw"; @@ -41,7 +35,7 @@ export class Law extends EntityBase { }) active: number; - @OneToMany(() => AssignLaw, (assignLaw: AssignLaw) => assignLaw.law_id) - @JoinColumn({ name: "id" }) - assignLaw: AssignLaw[]; + // @OneToMany(() => AssignLaw, (l: AssignLaw) => l.law_id) + // @JoinColumn({ name: "id" }) + // assignLaw: AssignLaw[]; } diff --git a/src/migration/1725594553970-update-assigntb.ts b/src/migration/1725594553970-update-assigntb.ts new file mode 100644 index 0000000..bf5f767 --- /dev/null +++ b/src/migration/1725594553970-update-assigntb.ts @@ -0,0 +1,15 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class UpdateAssigntb1725594553970 implements MigrationInterface { + name = "UpdateAssigntb1725594553970"; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE \`assign\` ADD \`other_desc\` varchar(255) NULL COMMENT 'กฎหมายอื่นๆ'`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`assign\` DROP COLUMN \`other_desc\``); + } +} From 7e83cd8d87637df93a755440831b3ba3237aa205 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 6 Sep 2024 15:17:42 +0700 Subject: [PATCH 11/13] updated permission --- src/controllers/AssignController.ts | 2 +- src/controllers/DataOptionsController.ts | 10 +++--- src/controllers/EvaluateChairmanController.ts | 17 ++++++++-- src/controllers/EvaluateController.ts | 18 ++++++++-- src/controllers/EvaluateRecordController.ts | 34 ++++++++++++++++--- src/controllers/EvaluateResultController.ts | 17 ++++++++-- src/controllers/PersonalController.ts | 2 +- 7 files changed, 81 insertions(+), 19 deletions(-) diff --git a/src/controllers/AssignController.ts b/src/controllers/AssignController.ts index d39c738..fe86297 100644 --- a/src/controllers/AssignController.ts +++ b/src/controllers/AssignController.ts @@ -492,7 +492,7 @@ export class AssignController extends Controller { */ @Get("") async GetAssign(@Query() assign_id: string, @Request() request: RequestWithUser) { - await new permission().PermissionUpdate(request, "SYS_PROBATION"); + await new permission().PermissionGet(request, "SYS_PROBATION"); const assign = await this.assignRepository.findOne({ select: [ diff --git a/src/controllers/DataOptionsController.ts b/src/controllers/DataOptionsController.ts index a42ea51..994ed7d 100644 --- a/src/controllers/DataOptionsController.ts +++ b/src/controllers/DataOptionsController.ts @@ -3,7 +3,6 @@ import { Route, Security, Tags, - Path, Request, SuccessResponse, Response, @@ -21,6 +20,7 @@ import { MapKnowledgeSkill } from "../entities/MapKnowledgeSkill"; import { Personal } from "../entities/Personal"; import { Law } from "../entities/Law"; import { Assign } from "../entities/Assign"; +import permission from "../interfaces/permission"; @Route("api/v1/probation/data-options") @Tags("Data Options") @@ -45,7 +45,7 @@ export class DataOptionController extends Controller { * */ @Get("knowledge") - async GetKnowledge(@Query() personal_id: string, @Request() request: RequestWithUser) { + async GetKnowledge(@Query() personal_id: string) { const person = await this.personalRepository.findOne({ where: { personal_id }, }); @@ -106,7 +106,7 @@ export class DataOptionController extends Controller { * */ @Get("skill") - async GetSkill(@Query() personal_id: string, @Request() request: RequestWithUser) { + async GetSkill(@Query() personal_id: string) { const person = await this.personalRepository.findOne({ where: { personal_id }, }); @@ -258,7 +258,7 @@ export class DataOptionController extends Controller { * */ @Get("law") - async GetLaw(@Query() personal_id: string, @Request() request: RequestWithUser) { + async GetLaw(@Query() personal_id: string) { const results = await this.lawRepository.find({ select: ["id", "parent_id", "description", "status_select"], where: { @@ -286,6 +286,8 @@ export class DataOptionController extends Controller { */ @Get("new-assign") async NewAssign(@Query() personal_id: string, @Request() request: RequestWithUser) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const person = await this.personalRepository.findOne({ select: [ "personal_id", diff --git a/src/controllers/EvaluateChairmanController.ts b/src/controllers/EvaluateChairmanController.ts index 97a12fe..a104dc7 100644 --- a/src/controllers/EvaluateChairmanController.ts +++ b/src/controllers/EvaluateChairmanController.ts @@ -23,7 +23,7 @@ import { Assign } from "../entities/Assign"; import { Personal } from "../entities/Personal"; import CallAPI from "../interfaces/call-api"; import { CreateEvaluateChairman, EvaluateChairman } from "../entities/EvaluateChairman"; - +import permission from "../interfaces/permission"; @Route("api/v1/probation/evaluate-chairman") @Tags("แบบประเมินผล (คณะกรรมการ)") @Security("bearerAuth") @@ -45,7 +45,9 @@ export class EvaluateChairmanController extends Controller { * */ @Get("create") - async CreateEvaluate(@Query() assign_id: string) { + async CreateEvaluate(@Query() assign_id: string, @Request() request: RequestWithUser) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -174,7 +176,12 @@ export class EvaluateChairmanController extends Controller { * */ @Get("") - async GetEvaluate(@Query() assign_id: string, @Query() evaluate_no?: string) { + async GetEvaluate( + @Request() request: RequestWithUser, + @Query() assign_id: string, + @Query() evaluate_no?: string, + ) { + await new permission().PermissionGet(request, "SYS_PROBATION"); // ต้องปรับเป็น id ของคนที่ access เข้ามา const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -330,6 +337,8 @@ export class EvaluateChairmanController extends Controller { @Body() requestBody: CreateEvaluateChairman, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -416,6 +425,8 @@ export class EvaluateChairmanController extends Controller { @Body() requestBody: CreateEvaluateChairman, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + let evaluate = await this.evaluateChairmanRepository.findOne({ where: { id: evaluate_id }, }); diff --git a/src/controllers/EvaluateController.ts b/src/controllers/EvaluateController.ts index d602a5d..a784d44 100644 --- a/src/controllers/EvaluateController.ts +++ b/src/controllers/EvaluateController.ts @@ -23,7 +23,7 @@ import { Assign } from "../entities/Assign"; import { CreateEvaluateCommander, EvaluateCommander } from "../entities/EvaluateCommander"; import { Personal } from "../entities/Personal"; import CallAPI from "../interfaces/call-api"; - +import permission from "../interfaces/permission"; @Route("api/v1/probation/evaluate") @Tags("แบบประเมินผล (ผู้บังคับบัญชา)") @Security("bearerAuth") @@ -45,7 +45,9 @@ export class EvaluateController extends Controller { * */ @Get("create") - async CreateEvaluate(@Query() assign_id: string) { + async CreateEvaluate(@Query() assign_id: string, @Request() request: RequestWithUser) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -118,7 +120,13 @@ export class EvaluateController extends Controller { * */ @Get("") - async GetEvaluate(@Query() assign_id: string, @Query() evaluate_no?: string) { + async GetEvaluate( + @Request() request: RequestWithUser, + @Query() assign_id: string, + @Query() evaluate_no?: string, + ) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + // ต้องปรับเป็น id ของคนที่ access เข้ามา const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -241,6 +249,8 @@ export class EvaluateController extends Controller { @Body() requestBody: CreateEvaluateCommander, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -327,6 +337,8 @@ export class EvaluateController extends Controller { @Body() requestBody: CreateEvaluateCommander, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + let evaluate = await this.evaluateCommanderRepository.findOne({ where: { id: evaluate_id }, }); diff --git a/src/controllers/EvaluateRecordController.ts b/src/controllers/EvaluateRecordController.ts index 15efc0c..48c01af 100644 --- a/src/controllers/EvaluateRecordController.ts +++ b/src/controllers/EvaluateRecordController.ts @@ -25,7 +25,7 @@ import { AssignOutput } from "../entities/AssignOutput"; import { CreateEvaluateAssessor, EvaluateAssessor } from "../entities/EvaluateAssessor"; import { CreateEvaluateAchievement, EvaluateAchievement } from "../entities/EvaluateAchievement"; import CallAPI from "../interfaces/call-api"; - +import permission from "../interfaces/permission"; @Route("api/v1/probation/evaluate-record") @Tags("แบบบันทึกผล") @Security("bearerAuth") @@ -49,7 +49,9 @@ export class EvaluateRecordController extends Controller { * */ @Get("create") - async GetCreate(@Query() assign_id: string) { + async GetCreate(@Query() assign_id: string, @Request() request: RequestWithUser) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const directorData = await this.assignDirectorRepository.findOne({ select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { @@ -159,7 +161,13 @@ export class EvaluateRecordController extends Controller { * */ @Get("") - async GetData(@Query() assign_id: string, @Query() evaluate_no?: string) { + async GetData( + @Request() request: RequestWithUser, + @Query() assign_id: string, + @Query() evaluate_no?: string, + ) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -389,6 +397,8 @@ export class EvaluateRecordController extends Controller { @Body() requestBody: CreateEvaluateAssessor, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -505,6 +515,8 @@ export class EvaluateRecordController extends Controller { @Body() requestBody: CreateEvaluateAssessor, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -608,7 +620,9 @@ export class EvaluateRecordController extends Controller { * */ @Get("create/commander") - async GetCreateCommander(@Query() assign_id: string) { + async GetCreateCommander(@Query() assign_id: string, @Request() request: RequestWithUser) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const directorData = await this.assignDirectorRepository.findOne({ select: ["personal_id", "dated", "fullname", "position", "posType", "posLevel"], where: { @@ -703,7 +717,13 @@ export class EvaluateRecordController extends Controller { * */ @Get("commander") - async GetDataCommander(@Query() assign_id: string, @Query() evaluate_no?: string) { + async GetDataCommander( + @Request() request: RequestWithUser, + @Query() assign_id: string, + @Query() evaluate_no?: string, + ) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -933,6 +953,8 @@ export class EvaluateRecordController extends Controller { @Body() requestBody: CreateEvaluateAssessor, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -1046,6 +1068,8 @@ export class EvaluateRecordController extends Controller { @Body() requestBody: CreateEvaluateAssessor, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { diff --git a/src/controllers/EvaluateResultController.ts b/src/controllers/EvaluateResultController.ts index de393b3..1aee787 100644 --- a/src/controllers/EvaluateResultController.ts +++ b/src/controllers/EvaluateResultController.ts @@ -24,6 +24,7 @@ import { Personal } from "../entities/Personal"; import CallAPI from "../interfaces/call-api"; import { EvaluateChairman } from "../entities/EvaluateChairman"; import { CreateEvaluateResult, EvaluateResult } from "../entities/EvaluateResult"; +import permission from "../interfaces/permission"; @Route("api/v1/probation/evaluate-result") @Tags("แบบรายงานการประเมินฯ") @@ -47,7 +48,9 @@ export class EvaluateResultController extends Controller { * */ @Get("create") - async CreateEvaluate(@Query() assign_id: string) { + async CreateEvaluate(@Query() assign_id: string, @Request() request: RequestWithUser) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + const assign = await this.assignRepository.findOne({ relations: ["profile"], where: { id: assign_id }, @@ -179,7 +182,13 @@ export class EvaluateResultController extends Controller { * */ @Get("") - async GetEvaluate(@Query() assign_id: string, @Query() evaluate_no?: string) { + async GetEvaluate( + @Request() request: RequestWithUser, + @Query() assign_id: string, + @Query() evaluate_no?: string, + ) { + await new permission().PermissionGet(request, "SYS_PROBATION"); + // ต้องปรับเป็น id ของคนที่ access เข้ามา const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], @@ -319,6 +328,8 @@ export class EvaluateResultController extends Controller { @Body() requestBody: CreateEvaluateResult, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + const director = await this.assignDirectorRepository.findOne({ select: ["personal_id"], where: { @@ -410,6 +421,8 @@ export class EvaluateResultController extends Controller { @Body() requestBody: CreateEvaluateResult, @Request() request: RequestWithUser, ) { + await new permission().PermissionUpdate(request, "SYS_PROBATION"); + let evaluate = await this.evaluateResultRepository.findOne({ where: { id: evaluate_id }, }); diff --git a/src/controllers/PersonalController.ts b/src/controllers/PersonalController.ts index 61bf3c5..8b9d31e 100644 --- a/src/controllers/PersonalController.ts +++ b/src/controllers/PersonalController.ts @@ -137,7 +137,7 @@ export class PersonalController extends Controller { */ @Get("") async GetPersonal(@Request() request: RequestWithUser, @Query() personal_id: string) { - await new permission().PermissionList(request, "SYS_PROBATION"); + await new permission().PermissionGet(request, "SYS_PROBATION"); const person = await this.personalRepository.findOne({ where: { personal_id: personal_id }, }); From 8bb7a9c526812a0db7c916d5f82830d058e216a2 Mon Sep 17 00:00:00 2001 From: waruneeauy Date: Fri, 6 Sep 2024 17:34:54 +0700 Subject: [PATCH 12/13] fixing data report --- src/controllers/EvaluateResultController.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/controllers/EvaluateResultController.ts b/src/controllers/EvaluateResultController.ts index 1aee787..c740f2e 100644 --- a/src/controllers/EvaluateResultController.ts +++ b/src/controllers/EvaluateResultController.ts @@ -220,7 +220,7 @@ export class EvaluateResultController extends Controller { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลแบบมอบหมายงาน"); } - const experimenteeData = await this.personalRepository.find({ + const experimenteeData = await this.personalRepository.findOne({ select: [ "personal_id", "prefixName", @@ -233,11 +233,15 @@ export class EvaluateResultController extends Controller { where: { personal_id: assign.personal_id }, }); - const experimentee = await experimenteeData.map((element) => ({ - ...element, - name: element.prefixName + element.firstName + " " + element.lastName, - Oc: element.organization, - })); + if (!experimenteeData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); + } + const experimentee = await { + ...experimenteeData, + name: + experimenteeData.prefixName + experimenteeData.firstName + " " + experimenteeData.lastName, + Oc: experimenteeData.organization, + }; const directorData = await this.assignDirectorRepository.find({ where: { assign_id }, From a2723ca8ca564f64cd747cb740aaf60280481be2 Mon Sep 17 00:00:00 2001 From: JoolsoftAdmin Date: Fri, 4 Oct 2024 22:36:12 +0700 Subject: [PATCH 13/13] =?UTF-8?q?=E0=B8=84=E0=B8=B3=E0=B8=AA=E0=B8=B1?= =?UTF-8?q?=E0=B9=88=E0=B8=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/ReportController.ts | 2193 ++++++++++++++------------- 1 file changed, 1125 insertions(+), 1068 deletions(-) diff --git a/src/controllers/ReportController.ts b/src/controllers/ReportController.ts index aad63bb..bd97889 100644 --- a/src/controllers/ReportController.ts +++ b/src/controllers/ReportController.ts @@ -1,1075 +1,1132 @@ -import { - Controller, - Route, - Security, - Tags, - Body, - Request, - SuccessResponse, - Response, - Get, - Query, - Put, -} from "tsoa"; -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 { RequestWithUser } from "../middlewares/user"; -import { DataPass, setLogDataDiff } from "../interfaces/utils"; -import { Personal } from "../entities/Personal"; -import { Assign } from "../entities/Assign"; -import { EvaluateChairman } from "../entities/EvaluateChairman"; -import { EvaluateResult } from "../entities/EvaluateResult"; -import { EvaluateAssessor } from "../entities/EvaluateAssessor"; -import { AssignDirector } from "../entities/AssignDirector"; -import { EvaluateAchievement } from "../entities/EvaluateAchievement"; -import { EvaluateCommander } from "../entities/EvaluateCommander"; -import CallAPI from "../interfaces/call-api"; +import { Controller, Route, Security, Tags, Body, Request, SuccessResponse, Response, Get, Query, Put, Post } from "tsoa" +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 { RequestWithUser } from "../middlewares/user" +import { DataPass, setLogDataDiff } from "../interfaces/utils" +import { Personal } from "../entities/Personal" +import { Assign } from "../entities/Assign" +import { EvaluateChairman } from "../entities/EvaluateChairman" +import { EvaluateResult } from "../entities/EvaluateResult" +import { EvaluateAssessor } from "../entities/EvaluateAssessor" +import { AssignDirector } from "../entities/AssignDirector" +import { EvaluateAchievement } from "../entities/EvaluateAchievement" +import { EvaluateCommander } from "../entities/EvaluateCommander" +import CallAPI from "../interfaces/call-api" +import { Double, In } from "typeorm" +import Extension from "../interfaces/extension" @Route("api/v1/probation/report") @Tags("Report") @Security("bearerAuth") -@Response( - HttpStatusCode.INTERNAL_SERVER_ERROR, - "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", -) +@Response(HttpStatusCode.INTERNAL_SERVER_ERROR, "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง") @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class ReportController extends Controller { - private evaluateChairmanRepository = AppDataSource.getRepository(EvaluateChairman); - private evaluateResultRepository = AppDataSource.getRepository(EvaluateResult); - private personalRepository = AppDataSource.getRepository(Personal); - private evaluateAssessorRepository = AppDataSource.getRepository(EvaluateAssessor); - private assignDirectorRepository = AppDataSource.getRepository(AssignDirector); - private evaluateAchievementRepository = AppDataSource.getRepository(EvaluateAchievement); - private evaluateCommanderRepository = AppDataSource.getRepository(EvaluateCommander); - - /** - * API สำหรับออกรายงาน - * - * @summary ผลการทดลองปฏิบัติราชการ - * - */ - @Get("") - async GetReport(@Query() assign_id: string) { - const evaluate = await this.evaluateChairmanRepository.findOne({ - where: { assign_id }, - }); - - const result = await this.evaluateResultRepository.findOne({ - where: { assign_id }, - }); - - if (!evaluate || !result) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผลการทดลองปฏิบัติราชการ"); - } - - const develop_total_score = await (Number(evaluate.develop_orientation_score) + - Number(evaluate.develop_self_learning_score) + - Number(evaluate.develop_training_seminar_score) + - Number(evaluate.develop_other_training_score)); - const develop_total_percent = await (Number(evaluate.develop_orientation_percent) + - Number(evaluate.develop_orientation_percent) + - Number(evaluate.develop_self_learning_percent) + - Number(evaluate.develop_training_seminar_percent)); - - const data = await { - develop_orientation_score: evaluate.develop_orientation_score, - develop_self_learning_score: evaluate.develop_self_learning_score, - develop_training_seminar_score: evaluate.develop_training_seminar_score, - develop_other_training_score: evaluate.develop_other_training_score, - develop_total_score, - develop_orientation_percent: evaluate.develop_orientation_percent, - develop_self_learning_percent: evaluate.develop_self_learning_percent, - develop_training_seminar_percent: evaluate.develop_training_seminar_percent, - develop_other_training_percent: evaluate.develop_other_training_percent, - develop_total_percent, - develop_result: evaluate.develop_result, - achievement_score: evaluate.achievement_score, - achievement_score_total: evaluate.achievement_score_total, - achievement_percent: evaluate.achievement_percent, - achievement_result: evaluate.achievement_result, - behavior_score: evaluate.behavior_score, - behavior_score_total: evaluate.behavior_score_total, - behavior_percent: evaluate.behavior_percent, - behavior_result: evaluate.behavior_result, - sum_score: evaluate.sum_score, - sum_percent: evaluate.sum_percent, - reason: result.reson, - pass_result: result.pass_result, - evaluate_date: result.chairman_dated, - }; - - return new HttpSuccess(data); - } - - /** - * API แสดงรายการผู้ผ่านทดลองงาน - * - * @summary รายการผู้ผ่านทดลองงาน - * - */ - @Get("pass") - async GetPass() { - const lists = await this.personalRepository.find({ - where: { probation_status: 2 }, - }); - - let data: DataPass[] = []; - await Promise.all( - lists.map(async (list) => { - const assign = await AppDataSource.getRepository(Assign).findOne({ - select: ["date_start", "date_finish"], - where: { personal_id: list.personal_id }, - }); - - if (assign) - data.push({ - person: { - id: list.personal_id, - name: `${list.prefixName}${list.firstName} ${list.lastName}`, - }, - assign, - }); - }), - ); - - return new HttpSuccess(data); - } - - /** - * API แสดงรายการผู้ไม่ผ่านทดลองงาน - * - * @summary รายการคนไม่ผ่านการทดลองปฏิบัติราชการและรอไปออกคำสั่ง - * - */ - @Get("not-pass") - async GetDataNotPass() { - const lists = await this.personalRepository.find({ - where: { probation_status: 3 }, - }); - - let data: DataPass[] = []; - await Promise.all( - lists.map(async (list) => { - const assign = await AppDataSource.getRepository(Assign).findOne({ - select: ["date_start", "date_finish"], - where: { personal_id: list.personal_id }, - }); - - if (assign) - data.push({ - person: { - id: list.personal_id, - name: `${list.prefixName}${list.firstName} ${list.lastName}`, - }, - assign, - }); - }), - ); - - return new HttpSuccess(data); - } - - /** - * API แสดงรายการคนที่ถูกขยายระยะเวลาทดลองงาน - * - * @summary รายการคนที่ถูกขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการและรอไปออกคำสั่ง - * - */ - @Get("expand") - async GetDataExpand() { - const data = await this.personalRepository.find({ - select: ["personal_id"], - where: { probation_status: 7 }, - }); - - return new HttpSuccess(data); - } - - /** - * API สำหรับปรับสถานะการดึงไปออกคำสั่ง - * - * @summary ปรับสถานะการดึงไปออกคำสั่ง - * - */ - @Put("status") - async UpdateStatus( - @Query() personal_id: string, - @Body() requestBody: { command_no: string }, - @Request() request: RequestWithUser, - ) { - const personal = await this.personalRepository.findOne({ - where: { personal_id }, - }); - const before = personal; - - if (!personal) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); - } - - personal.order_number = requestBody.command_no; - personal.probation_status = 8; - personal.updateFullName = request.user.name; - personal.updateUserId = request.user.sub; - - this.personalRepository.save(personal, { data: request }); - setLogDataDiff(request, { before, after: personal }); - - const resultText = - (await personal.probation_status) === 2 - ? "ไม่ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้รับราชการต่อ" - : "ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้ออกจากราชการ"; - - await new CallAPI() - .PostData(request, "/placement/noti", { - subject: "ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ", - body: `ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ ${resultText}`, - receiverUserId: personal_id, - payload: "", - isSendMail: false, - isSendInbox: true, - isSendNotification: true, - }) - .catch((error) => { - console.error("Error calling API:", error); - }); - - return new HttpSuccess(); - } - - /** - * API สำหรับปรับสถานะการดึงไปออกคำสั่ง - * - * @summary ปรับสถานะการดึงไปออกคำสั่ง - * - */ - @Put("change-status") - async ChangeStatus( - @Query() personal_id: string, - @Body() reqBody: { status: number }, - @Request() request: RequestWithUser, - ) { - const personal = await this.personalRepository.findOne({ - where: { personal_id }, - }); - const before = personal; - - if (!personal) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล"); - } - - personal.probation_status = await reqBody.status; - personal.updateFullName = request.user.name; - personal.updateUserId = request.user.sub; - - await this.personalRepository.save(personal, { data: request }); - setLogDataDiff(request, { before, after: personal }); - - return new HttpSuccess(); - } - - /** - * API แสดงข้อมูลแบบบันทึกผลตาม id - * - * @summary ข้อมูลแบบบันทึกผลตาม id - * - */ - @Get("form-record") - async GetDataFormRecord(@Query() id: string) { - const evaluate = await this.evaluateAssessorRepository.findOne({ - where: { id }, - }); - - if (!evaluate) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const directorData = await this.assignDirectorRepository.findOne({ - select: ["personal_id", "fullname", "position", "posType", "posLevel", "role", "dated"], - where: { personal_id: evaluate.director_id }, - }); - - if (!directorData) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const director = await { - ...directorData, - name: directorData.fullname, - position: directorData.position, - }; - - const achievements = await this.evaluateAchievementRepository.find({ - select: ["evaluate_expect_level", "evaluate_output_level"], - where: { evaluate_id: evaluate.id }, - }); - - if (!achievements) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - let achievement: any = []; - await Promise.all( - achievements.map(async (element) => { - const evaluate_expect_level = await { - col1: element.evaluate_expect_level == 1 ? "/" : "", - col2: element.evaluate_expect_level == 2 ? "/" : "", - col3: element.evaluate_expect_level == 3 ? "/" : "", - col4: element.evaluate_expect_level == 4 ? "/" : "", - col5: element.evaluate_expect_level == 5 ? "/" : "", - }; - - const evaluate_output_level = await { - col1: element.evaluate_output_level == 1 ? "/" : "", - col2: element.evaluate_output_level == 2 ? "/" : "", - col3: element.evaluate_output_level == 3 ? "/" : "", - col4: element.evaluate_output_level == 4 ? "/" : "", - col5: element.evaluate_output_level == 5 ? "/" : "", - }; - - achievement.push({ - ...element, - evaluate_expect_level, - evaluate_output_level, - }); - }), - ); - - const evaluateData = await { - id: evaluate.id, - no: evaluate.no, - date_start: evaluate.date_start, - date_finish: evaluate.date_finish, - sign_dated: evaluate.assessor_dated, - knowledge_level: { - col1: evaluate.knowledge_level == 1 ? "/" : "", - col2: evaluate.knowledge_level == 2 ? "/" : "", - col3: evaluate.knowledge_level == 3 ? "/" : "", - col4: evaluate.knowledge_level == 4 ? "/" : "", - col5: evaluate.knowledge_level == 5 ? "/" : "", - }, - skill_level: { - col1: evaluate.skill_level == 1 ? "/" : "", - col2: evaluate.skill_level == 2 ? "/" : "", - col3: evaluate.skill_level == 3 ? "/" : "", - col4: evaluate.skill_level == 4 ? "/" : "", - col5: evaluate.skill_level == 5 ? "/" : "", - }, - competency_level: { - col1: evaluate.competency_level == 1 ? "/" : "", - col2: evaluate.competency_level == 2 ? "/" : "", - col3: evaluate.competency_level == 3 ? "/" : "", - col4: evaluate.competency_level == 4 ? "/" : "", - col5: evaluate.competency_level == 5 ? "/" : "", - }, - learn_level: { - col1: evaluate.learn_level == 1 ? "/" : "", - col2: evaluate.learn_level == 2 ? "/" : "", - col3: evaluate.learn_level == 3 ? "/" : "", - col4: evaluate.learn_level == 4 ? "/" : "", - col5: evaluate.learn_level == 5 ? "/" : "", - }, - apply_level: { - col1: evaluate.apply_level == 1 ? "/" : "", - col2: evaluate.apply_level == 2 ? "/" : "", - col3: evaluate.apply_level == 3 ? "/" : "", - col4: evaluate.apply_level == 4 ? "/" : "", - col5: evaluate.apply_level == 5 ? "/" : "", - }, - achievement_other_desc: evaluate.achievement_other_desc, - achievement_other_level: - evaluate.achievement_other_level != null - ? { - col1: evaluate.achievement_other_level == 1 ? "/" : "", - col2: evaluate.achievement_other_level == 2 ? "/" : "", - col3: evaluate.achievement_other_level == 3 ? "/" : "", - col4: evaluate.achievement_other_level == 4 ? "/" : "", - col5: evaluate.achievement_other_level == 5 ? "/" : "", - } - : { - col1: "", - col2: "", - col3: "", - col4: "", - col5: "", - }, - achievement_strength_desc: evaluate.achievement_strength_desc, - achievement_improve_desc: evaluate.achievement_improve_desc, - conduct1_level: { - col1: evaluate.conduct1_level == 1 ? "/" : "", - col2: evaluate.conduct1_level == 2 ? "/" : "", - col3: evaluate.conduct1_level == 3 ? "/" : "", - col4: evaluate.conduct1_level == 4 ? "/" : "", - col5: evaluate.conduct1_level == 5 ? "/" : "", - }, - conduct2_level: { - col1: evaluate.conduct2_level == 1 ? "/" : "", - col2: evaluate.conduct2_level == 2 ? "/" : "", - col3: evaluate.conduct2_level == 3 ? "/" : "", - col4: evaluate.conduct2_level == 4 ? "/" : "", - col5: evaluate.conduct2_level == 5 ? "/" : "", - }, - conduct3_level: { - col1: evaluate.conduct3_level == 1 ? "/" : "", - col2: evaluate.conduct3_level == 2 ? "/" : "", - col3: evaluate.conduct3_level == 3 ? "/" : "", - col4: evaluate.conduct3_level == 4 ? "/" : "", - col5: evaluate.conduct3_level == 5 ? "/" : "", - }, - conduct4_level: { - col1: evaluate.conduct4_level == 1 ? "/" : "", - col2: evaluate.conduct4_level == 2 ? "/" : "", - col3: evaluate.conduct4_level == 3 ? "/" : "", - col4: evaluate.conduct4_level == 4 ? "/" : "", - col5: evaluate.conduct4_level == 5 ? "/" : "", - }, - moral1_level: { - col1: evaluate.moral1_level == 1 ? "/" : "", - col2: evaluate.moral1_level == 2 ? "/" : "", - col3: evaluate.moral1_level == 3 ? "/" : "", - col4: evaluate.moral1_level == 4 ? "/" : "", - col5: evaluate.moral1_level == 5 ? "/" : "", - }, - moral2_level: { - col1: evaluate.moral2_level == 1 ? "/" : "", - col2: evaluate.moral2_level == 2 ? "/" : "", - col3: evaluate.moral2_level == 3 ? "/" : "", - col4: evaluate.moral2_level == 4 ? "/" : "", - col5: evaluate.moral2_level == 5 ? "/" : "", - }, - moral3_level: { - col1: evaluate.moral3_level == 1 ? "/" : "", - col2: evaluate.moral3_level == 2 ? "/" : "", - col3: evaluate.moral3_level == 3 ? "/" : "", - col4: evaluate.moral3_level == 4 ? "/" : "", - col5: evaluate.moral3_level == 5 ? "/" : "", - }, - discipline1_level: { - col1: evaluate.discipline1_level == 1 ? "/" : "", - col2: evaluate.discipline1_level == 2 ? "/" : "", - col3: evaluate.discipline1_level == 3 ? "/" : "", - col4: evaluate.discipline1_level == 4 ? "/" : "", - col5: evaluate.discipline1_level == 5 ? "/" : "", - }, - discipline2_level: { - col1: evaluate.discipline2_level == 1 ? "/" : "", - col2: evaluate.discipline2_level == 2 ? "/" : "", - col3: evaluate.discipline2_level == 3 ? "/" : "", - col4: evaluate.discipline2_level == 4 ? "/" : "", - col5: evaluate.discipline2_level == 5 ? "/" : "", - }, - discipline3_level: { - col1: evaluate.discipline3_level == 1 ? "/" : "", - col2: evaluate.discipline3_level == 2 ? "/" : "", - col3: evaluate.discipline3_level == 3 ? "/" : "", - col4: evaluate.discipline3_level == 4 ? "/" : "", - col5: evaluate.discipline3_level == 5 ? "/" : "", - }, - discipline4_level: { - col1: evaluate.discipline4_level == 1 ? "/" : "", - col2: evaluate.discipline4_level == 2 ? "/" : "", - col3: evaluate.discipline4_level == 3 ? "/" : "", - col4: evaluate.discipline4_level == 4 ? "/" : "", - col5: evaluate.discipline4_level == 5 ? "/" : "", - }, - discipline5_level: { - col1: evaluate.discipline5_level == 1 ? "/" : "", - col2: evaluate.discipline5_level == 2 ? "/" : "", - col3: evaluate.discipline5_level == 3 ? "/" : "", - col4: evaluate.discipline5_level == 4 ? "/" : "", - col5: evaluate.discipline5_level == 5 ? "/" : "", - }, - behavior_other_desc: evaluate.behavior_other_desc, - behavior_other_level: - evaluate.behavior_other_level != null - ? { - col1: evaluate.behavior_other_level == 1 ? "/" : "", - col2: evaluate.behavior_other_level == 2 ? "/" : "", - col3: evaluate.behavior_other_level == 3 ? "/" : "", - col4: evaluate.behavior_other_level == 4 ? "/" : "", - col5: evaluate.behavior_other_level == 5 ? "/" : "", - } - : { - col1: "", - col2: "", - col3: "", - col4: "", - col5: "", - }, - - behavior_strength_desc: evaluate.behavior_strength_desc, - behavior_improve_desc: evaluate.behavior_improve_desc, - orientation: evaluate.orientation, - self_learning: evaluate.self_learning, - training_seminar: evaluate.training_seminar, - other_training: evaluate.other_training, - createdAt: evaluate.createdAt, - updatedAt: evaluate.updatedAt, - achievements: achievement, - role: director.role, - }; - - const assign = await AppDataSource.getRepository(Assign).findOne({ - select: ["id", "personal_id", "round_no", "date_start", "date_finish"], - where: { id: evaluate.assign_id }, - }); - - if (!assign) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const experimenteeData = await this.personalRepository.findOne({ - where: { - personal_id: assign.personal_id, - }, - }); - - if (!experimenteeData) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const experimentee = await { - ...experimenteeData, - name: `${experimenteeData.prefixName}${experimenteeData.firstName} ${experimenteeData.lastName}`, - PositionLevelName: experimenteeData.positionLevelName, - PositionLineName: experimenteeData.positionLineName, - Position: experimenteeData.positionName, - Department: "-", - OrganizationOrganization: experimenteeData.orgRootName, - Oc: experimenteeData.organization, - }; - - const data = await { - experimentee: experimentee ? experimentee : null, - director: director ? director : null, - assign, - evaluate: evaluateData, - }; - return new HttpSuccess(data); - } - - /** - * API แสดงข้อมูลแบบประเมินผล (ผู้บังคับบัญชา) ตาม id - * - * @summary ข้อมูลแบบประเมินผล (ผู้บังคับบัญชา) ตาม id - * - */ - @Get("evaluate-commander") - async GetDataEvaluateCommander(@Query() id: string, @Request() request: RequestWithUser) { - const evaluate = await this.evaluateCommanderRepository.findOne({ - where: { id }, - }); - - if (!evaluate) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const evaluateData = await { - id: evaluate.id, - no: evaluate.no, - date_start: evaluate.date_start, - date_finish: evaluate.date_finish, - sign_dated: evaluate.commander_dated, - knowledge_level: { - col1: evaluate.knowledge_level == 1 ? "/" : "", - col2: evaluate.knowledge_level == 2 ? "/" : "", - col3: evaluate.knowledge_level == 3 ? "/" : "", - col4: evaluate.knowledge_level == 4 ? "/" : "", - col5: evaluate.knowledge_level == 5 ? "/" : "", - }, - skill_level: { - col1: evaluate.skill_level == 1 ? "/" : "", - col2: evaluate.skill_level == 2 ? "/" : "", - col3: evaluate.skill_level == 3 ? "/" : "", - col4: evaluate.skill_level == 4 ? "/" : "", - col5: evaluate.skill_level == 5 ? "/" : "", - }, - competency_level: { - col1: evaluate.competency_level == 1 ? "/" : "", - col2: evaluate.competency_level == 2 ? "/" : "", - col3: evaluate.competency_level == 3 ? "/" : "", - col4: evaluate.competency_level == 4 ? "/" : "", - col5: evaluate.competency_level == 5 ? "/" : "", - }, - learn_level: { - col1: evaluate.learn_level == 1 ? "/" : "", - col2: evaluate.learn_level == 2 ? "/" : "", - col3: evaluate.learn_level == 3 ? "/" : "", - col4: evaluate.learn_level == 4 ? "/" : "", - col5: evaluate.learn_level == 5 ? "/" : "", - }, - apply_level: { - col1: evaluate.apply_level == 1 ? "/" : "", - col2: evaluate.apply_level == 2 ? "/" : "", - col3: evaluate.apply_level == 3 ? "/" : "", - col4: evaluate.apply_level == 4 ? "/" : "", - col5: evaluate.apply_level == 5 ? "/" : "", - }, - success_level: { - col1: evaluate.success_level == 1 ? "/" : "", - col2: evaluate.success_level == 2 ? "/" : "", - col3: evaluate.success_level == 3 ? "/" : "", - col4: evaluate.success_level == 4 ? "/" : "", - col5: evaluate.success_level == 5 ? "/" : "", - }, - achievement_other_desc: evaluate.achievement_other_desc, - achievement_other_level: - evaluate.achievement_other_level != null - ? { - col1: evaluate.achievement_other_level == 1 ? "/" : "", - col2: evaluate.achievement_other_level == 2 ? "/" : "", - col3: evaluate.achievement_other_level == 3 ? "/" : "", - col4: evaluate.achievement_other_level == 4 ? "/" : "", - col5: evaluate.achievement_other_level == 5 ? "/" : "", - } - : { - col1: "", - col2: "", - col3: "", - col4: "", - col5: "", - }, - conduct1_level: { - col1: evaluate.conduct1_level == 1 ? "/" : "", - col2: evaluate.conduct1_level == 2 ? "/" : "", - col3: evaluate.conduct1_level == 3 ? "/" : "", - col4: evaluate.conduct1_level == 4 ? "/" : "", - col5: evaluate.conduct1_level == 5 ? "/" : "", - }, - conduct2_level: { - col1: evaluate.conduct2_level == 1 ? "/" : "", - col2: evaluate.conduct2_level == 2 ? "/" : "", - col3: evaluate.conduct2_level == 3 ? "/" : "", - col4: evaluate.conduct2_level == 4 ? "/" : "", - col5: evaluate.conduct2_level == 5 ? "/" : "", - }, - conduct3_level: { - col1: evaluate.conduct3_level == 1 ? "/" : "", - col2: evaluate.conduct3_level == 2 ? "/" : "", - col3: evaluate.conduct3_level == 3 ? "/" : "", - col4: evaluate.conduct3_level == 4 ? "/" : "", - col5: evaluate.conduct3_level == 5 ? "/" : "", - }, - conduct4_level: { - col1: evaluate.conduct4_level == 1 ? "/" : "", - col2: evaluate.conduct4_level == 2 ? "/" : "", - col3: evaluate.conduct4_level == 3 ? "/" : "", - col4: evaluate.conduct4_level == 4 ? "/" : "", - col5: evaluate.conduct4_level == 5 ? "/" : "", - }, - moral1_level: { - col1: evaluate.moral1_level == 1 ? "/" : "", - col2: evaluate.moral1_level == 2 ? "/" : "", - col3: evaluate.moral1_level == 3 ? "/" : "", - col4: evaluate.moral1_level == 4 ? "/" : "", - col5: evaluate.moral1_level == 5 ? "/" : "", - }, - moral2_level: { - col1: evaluate.moral2_level == 1 ? "/" : "", - col2: evaluate.moral2_level == 2 ? "/" : "", - col3: evaluate.moral2_level == 3 ? "/" : "", - col4: evaluate.moral2_level == 4 ? "/" : "", - col5: evaluate.moral2_level == 5 ? "/" : "", - }, - moral3_level: { - col1: evaluate.moral3_level == 1 ? "/" : "", - col2: evaluate.moral3_level == 2 ? "/" : "", - col3: evaluate.moral3_level == 3 ? "/" : "", - col4: evaluate.moral3_level == 4 ? "/" : "", - col5: evaluate.moral3_level == 5 ? "/" : "", - }, - discipline1_level: { - col1: evaluate.discipline1_level == 1 ? "/" : "", - col2: evaluate.discipline1_level == 2 ? "/" : "", - col3: evaluate.discipline1_level == 3 ? "/" : "", - col4: evaluate.discipline1_level == 4 ? "/" : "", - col5: evaluate.discipline1_level == 5 ? "/" : "", - }, - discipline2_level: { - col1: evaluate.discipline2_level == 1 ? "/" : "", - col2: evaluate.discipline2_level == 2 ? "/" : "", - col3: evaluate.discipline2_level == 3 ? "/" : "", - col4: evaluate.discipline2_level == 4 ? "/" : "", - col5: evaluate.discipline2_level == 5 ? "/" : "", - }, - discipline3_level: { - col1: evaluate.discipline3_level == 1 ? "/" : "", - col2: evaluate.discipline3_level == 2 ? "/" : "", - col3: evaluate.discipline3_level == 3 ? "/" : "", - col4: evaluate.discipline3_level == 4 ? "/" : "", - col5: evaluate.discipline3_level == 5 ? "/" : "", - }, - discipline4_level: { - col1: evaluate.discipline4_level == 1 ? "/" : "", - col2: evaluate.discipline4_level == 2 ? "/" : "", - col3: evaluate.discipline4_level == 3 ? "/" : "", - col4: evaluate.discipline4_level == 4 ? "/" : "", - col5: evaluate.discipline4_level == 5 ? "/" : "", - }, - discipline5_level: { - col1: evaluate.discipline5_level == 1 ? "/" : "", - col2: evaluate.discipline5_level == 2 ? "/" : "", - col3: evaluate.discipline5_level == 3 ? "/" : "", - col4: evaluate.discipline5_level == 4 ? "/" : "", - col5: evaluate.discipline5_level == 5 ? "/" : "", - }, - behavior_other_desc: evaluate.behavior_other_desc, - behavior_other_level: - evaluate.behavior_other_level != null - ? { - col1: evaluate.behavior_other_level == 1 ? "/" : "", - col2: evaluate.behavior_other_level == 2 ? "/" : "", - col3: evaluate.behavior_other_level == 3 ? "/" : "", - col4: evaluate.behavior_other_level == 4 ? "/" : "", - col5: evaluate.behavior_other_level == 5 ? "/" : "", - } - : { - col1: "", - col2: "", - col3: "", - col4: "", - col5: "", - }, - behavior_strength_desc: evaluate.behavior_strength_desc, - behavior_improve_desc: evaluate.behavior_improve_desc, - orientation: evaluate.orientation, - self_learning: evaluate.self_learning, - training_seminar: evaluate.training_seminar, - other_training: evaluate.other_training, - createdAt: evaluate.createdAt, - updatedAt: evaluate.updatedAt, - }; - - const assign = await AppDataSource.getRepository(Assign).findOne({ - select: ["id", "personal_id", "round_no", "date_start", "date_finish"], - where: { id: evaluate.assign_id }, - }); - - if (!assign) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const experimenteeData = await this.personalRepository.findOne({ - where: { - personal_id: assign.personal_id, - }, - }); - - if (!experimenteeData) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const experimentee = await { - ...experimenteeData, - name: `${experimenteeData.prefixName}${experimenteeData.firstName} ${experimenteeData.lastName}`, - PositionLevelName: experimenteeData.positionLevelName, - PositionLineName: experimenteeData.positionLineName, - Position: experimenteeData.positionName, - Department: "-", - OrganizationOrganization: experimenteeData.orgRootName, - Oc: experimenteeData.organization, - }; - - const commanderData = await this.assignDirectorRepository.findOne({ - select: [ - "personal_id", - "fullname", - "position", - "position", - "posType", - "posLevel", - "role", - "dated", - ], - where: { personal_id: evaluate.director_id }, - }); - - if (!commanderData) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const commander = await { - ...commanderData, - name: commanderData.fullname, - Position: commanderData.position, - }; - - return new HttpSuccess({ - experimentee: experimentee ? experimentee : null, - commander: commander ? commander : null, - assign, - evaluate: evaluateData, - }); - } - - /** - * API แสดงข้อมูลแบบประเมินผล (คณะกรรมการ) ตาม id - * - * @summary ข้อมูลแบบประเมินผล (คณะกรรมการ) ตาม id - * - */ - @Get("evaluate-chairman") - async GetDataEvaluateChairman(@Query() id: string, @Request() request: RequestWithUser) { - const evaluate = await this.evaluateChairmanRepository.findOne({ - where: { id }, - }); - - if (!evaluate) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const develop_total_score = await (Number(evaluate.develop_orientation_score) + - Number(evaluate.develop_self_learning_score) + - Number(evaluate.develop_training_seminar_score) + - Number(evaluate.develop_other_training_score)); - const develop_total_percent = await (Number(evaluate.develop_orientation_percent) + - Number(evaluate.develop_orientation_percent) + - Number(evaluate.develop_self_learning_percent) + - Number(evaluate.develop_training_seminar_percent)); - - const evaluateData = await { - id: evaluate.id, - // director_id: evaluate.director_id, - // assign_id: evaluate.assign_id, - no: evaluate.no, - date_start: evaluate.date_start, - date_finish: evaluate.date_finish, - chairman_dated: evaluate.chairman_dated, - director1_dated: evaluate.director1_dated, - director2_dated: evaluate.director2_dated, - knowledge_level: { - col1: evaluate.knowledge_level == 1 ? "/" : "", - col2: evaluate.knowledge_level == 2 ? "/" : "", - col3: evaluate.knowledge_level == 3 ? "/" : "", - col4: evaluate.knowledge_level == 4 ? "/" : "", - col5: evaluate.knowledge_level == 5 ? "/" : "", - }, - apply_level: { - col1: evaluate.apply_level == 1 ? "/" : "", - col2: evaluate.apply_level == 2 ? "/" : "", - col3: evaluate.apply_level == 3 ? "/" : "", - col4: evaluate.apply_level == 4 ? "/" : "", - col5: evaluate.apply_level == 5 ? "/" : "", - }, - success_level: { - col1: evaluate.success_level == 1 ? "/" : "", - col2: evaluate.success_level == 2 ? "/" : "", - col3: evaluate.success_level == 3 ? "/" : "", - col4: evaluate.success_level == 4 ? "/" : "", - col5: evaluate.success_level == 5 ? "/" : "", - }, - achievement_other_desc: evaluate.achievement_other_desc, - achievement_other_level: - evaluate.achievement_other_level != null - ? { - col1: evaluate.achievement_other_level == 1 ? "/" : "", - col2: evaluate.achievement_other_level == 2 ? "/" : "", - col3: evaluate.achievement_other_level == 3 ? "/" : "", - col4: evaluate.achievement_other_level == 4 ? "/" : "", - col5: evaluate.achievement_other_level == 5 ? "/" : "", - } - : { - col1: "", - col2: "", - col3: "", - col4: "", - col5: "", - }, - conduct1_level: { - col1: evaluate.conduct1_level == 1 ? "/" : "", - col2: evaluate.conduct1_level == 2 ? "/" : "", - col3: evaluate.conduct1_level == 3 ? "/" : "", - col4: evaluate.conduct1_level == 4 ? "/" : "", - col5: evaluate.conduct1_level == 5 ? "/" : "", - }, - conduct2_level: { - col1: evaluate.conduct2_level == 1 ? "/" : "", - col2: evaluate.conduct2_level == 2 ? "/" : "", - col3: evaluate.conduct2_level == 3 ? "/" : "", - col4: evaluate.conduct2_level == 4 ? "/" : "", - col5: evaluate.conduct2_level == 5 ? "/" : "", - }, - conduct3_level: { - col1: evaluate.conduct3_level == 1 ? "/" : "", - col2: evaluate.conduct3_level == 2 ? "/" : "", - col3: evaluate.conduct3_level == 3 ? "/" : "", - col4: evaluate.conduct3_level == 4 ? "/" : "", - col5: evaluate.conduct3_level == 5 ? "/" : "", - }, - conduct4_level: { - col1: evaluate.conduct4_level == 1 ? "/" : "", - col2: evaluate.conduct4_level == 2 ? "/" : "", - col3: evaluate.conduct4_level == 3 ? "/" : "", - col4: evaluate.conduct4_level == 4 ? "/" : "", - col5: evaluate.conduct4_level == 5 ? "/" : "", - }, - moral1_level: { - col1: evaluate.moral1_level == 1 ? "/" : "", - col2: evaluate.moral1_level == 2 ? "/" : "", - col3: evaluate.moral1_level == 3 ? "/" : "", - col4: evaluate.moral1_level == 4 ? "/" : "", - col5: evaluate.moral1_level == 5 ? "/" : "", - }, - moral2_level: { - col1: evaluate.moral2_level == 1 ? "/" : "", - col2: evaluate.moral2_level == 2 ? "/" : "", - col3: evaluate.moral2_level == 3 ? "/" : "", - col4: evaluate.moral2_level == 4 ? "/" : "", - col5: evaluate.moral2_level == 5 ? "/" : "", - }, - moral3_level: { - col1: evaluate.moral3_level == 1 ? "/" : "", - col2: evaluate.moral3_level == 2 ? "/" : "", - col3: evaluate.moral3_level == 3 ? "/" : "", - col4: evaluate.moral3_level == 4 ? "/" : "", - col5: evaluate.moral3_level == 5 ? "/" : "", - }, - discipline1_level: { - col1: evaluate.discipline1_level == 1 ? "/" : "", - col2: evaluate.discipline1_level == 2 ? "/" : "", - col3: evaluate.discipline1_level == 3 ? "/" : "", - col4: evaluate.discipline1_level == 4 ? "/" : "", - col5: evaluate.discipline1_level == 5 ? "/" : "", - }, - discipline2_level: { - col1: evaluate.discipline2_level == 1 ? "/" : "", - col2: evaluate.discipline2_level == 2 ? "/" : "", - col3: evaluate.discipline2_level == 3 ? "/" : "", - col4: evaluate.discipline2_level == 4 ? "/" : "", - col5: evaluate.discipline2_level == 5 ? "/" : "", - }, - discipline3_level: { - col1: evaluate.discipline3_level == 1 ? "/" : "", - col2: evaluate.discipline3_level == 2 ? "/" : "", - col3: evaluate.discipline3_level == 3 ? "/" : "", - col4: evaluate.discipline3_level == 4 ? "/" : "", - col5: evaluate.discipline3_level == 5 ? "/" : "", - }, - discipline4_level: { - col1: evaluate.discipline4_level == 1 ? "/" : "", - col2: evaluate.discipline4_level == 2 ? "/" : "", - col3: evaluate.discipline4_level == 3 ? "/" : "", - col4: evaluate.discipline4_level == 4 ? "/" : "", - col5: evaluate.discipline4_level == 5 ? "/" : "", - }, - discipline5_level: { - col1: evaluate.discipline5_level == 1 ? "/" : "", - col2: evaluate.discipline5_level == 2 ? "/" : "", - col3: evaluate.discipline5_level == 3 ? "/" : "", - col4: evaluate.discipline5_level == 4 ? "/" : "", - col5: evaluate.discipline5_level == 5 ? "/" : "", - }, - behavior_other_desc: evaluate.behavior_other_desc, - behavior_other_level: - evaluate.behavior_other_level != null - ? { - col1: evaluate.behavior_other_level == 1 ? "/" : "", - col2: evaluate.behavior_other_level == 2 ? "/" : "", - col3: evaluate.behavior_other_level == 3 ? "/" : "", - col4: evaluate.behavior_other_level == 4 ? "/" : "", - col5: evaluate.behavior_other_level == 5 ? "/" : "", - } - : { - col1: "", - col2: "", - col3: "", - col4: "", - col5: "", - }, - - achievement_score: evaluate.achievement_score, - achievement_score_total: evaluate.achievement_score_total, - achievement_percent: evaluate.achievement_percent, - achievement_result: evaluate.achievement_result, - behavior_score: evaluate.behavior_score, - behavior_score_total: evaluate.behavior_score_total, - behavior_percent: evaluate.behavior_percent, - behavior_result: evaluate.behavior_result, - sum_score: evaluate.sum_score, - sum_percent: evaluate.sum_percent, - - develop_orientation_score: evaluate.develop_orientation_score, - develop_self_learning_score: evaluate.develop_self_learning_score, - develop_training_seminar_score: evaluate.develop_training_seminar_score, - develop_other_training_score: evaluate.develop_other_training_score, - develop_total_score: develop_total_score, - develop_orientation_percent: evaluate.develop_orientation_percent, - develop_self_learning_percent: evaluate.develop_self_learning_percent, - develop_training_seminar_percent: evaluate.develop_training_seminar_percent, - develop_other_training_percent: evaluate.develop_other_training_percent, - develop_total_percent: develop_total_percent, - develop_result: evaluate.develop_result, - evaluate_result: evaluate.evaluate_result, - createdAt: evaluate.createdAt, - updatedAt: evaluate.updatedAt, - }; - - const assign = await AppDataSource.getRepository(Assign).findOne({ - select: ["id", "personal_id", "round_no", "date_start", "date_finish"], - where: { id: evaluate.assign_id }, - }); - - if (!assign) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const experimenteeData = await this.personalRepository.findOne({ - where: { - personal_id: assign.personal_id, - }, - }); - - if (!experimenteeData) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const experimentee = await { - ...experimenteeData, - name: `${experimenteeData.prefixName}${experimenteeData.firstName} ${experimenteeData.lastName}`, - PositionLevelName: experimenteeData.positionLevelName, - PositionLineName: experimenteeData.positionLineName, - Position: experimenteeData.positionName, - Department: "-", - OrganizationOrganization: experimenteeData.orgRootName, - Oc: experimenteeData.organization, - }; - - const directorData = await this.assignDirectorRepository.find({ - select: ["personal_id", "fullname", "position", "posType", "posLevel", "role", "dated"], - where: { assign_id: assign.id }, - }); - - if (!directorData) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const director = await Promise.all( - directorData.map(async (element) => { - return { - ...element, - name: element.fullname, - Position: element.position, - }; - }), - ); - - const mentorData = await (director.find((x) => x.role == "mentor") ?? null); - const mentor = mentorData != null ? mentorData : null; - - const commanderData = await (director.find((x) => x.role == "commander") ?? null); - const commander = commanderData != null ? commanderData : null; - - const chairmanData = await (director.find((x) => x.role == "chairman") ?? null); - const chairman = chairmanData != null ? chairmanData : null; - - return new HttpSuccess({ - experimentee: experimentee ? experimentee : null, - chairman: chairman ? chairman : null, - director1: commander ? commander : null, - director2: mentor ? mentor : null, - assign, - evaluate: evaluateData, - }); - } + private evaluateChairmanRepository = AppDataSource.getRepository(EvaluateChairman) + private evaluateResultRepository = AppDataSource.getRepository(EvaluateResult) + private personalRepository = AppDataSource.getRepository(Personal) + private evaluateAssessorRepository = AppDataSource.getRepository(EvaluateAssessor) + private assignDirectorRepository = AppDataSource.getRepository(AssignDirector) + private evaluateAchievementRepository = AppDataSource.getRepository(EvaluateAchievement) + private evaluateCommanderRepository = AppDataSource.getRepository(EvaluateCommander) + + /** + * API สำหรับออกรายงาน + * + * @summary ผลการทดลองปฏิบัติราชการ + * + */ + @Get("") + async GetReport(@Query() assign_id: string) { + const evaluate = await this.evaluateChairmanRepository.findOne({ + where: { assign_id }, + }) + + const result = await this.evaluateResultRepository.findOne({ + where: { assign_id }, + }) + + if (!evaluate || !result) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลผลการทดลองปฏิบัติราชการ") + } + + const develop_total_score = await (Number(evaluate.develop_orientation_score) + + Number(evaluate.develop_self_learning_score) + + Number(evaluate.develop_training_seminar_score) + + Number(evaluate.develop_other_training_score)) + const develop_total_percent = await (Number(evaluate.develop_orientation_percent) + + Number(evaluate.develop_orientation_percent) + + Number(evaluate.develop_self_learning_percent) + + Number(evaluate.develop_training_seminar_percent)) + + const data = await { + develop_orientation_score: evaluate.develop_orientation_score, + develop_self_learning_score: evaluate.develop_self_learning_score, + develop_training_seminar_score: evaluate.develop_training_seminar_score, + develop_other_training_score: evaluate.develop_other_training_score, + develop_total_score, + develop_orientation_percent: evaluate.develop_orientation_percent, + develop_self_learning_percent: evaluate.develop_self_learning_percent, + develop_training_seminar_percent: evaluate.develop_training_seminar_percent, + develop_other_training_percent: evaluate.develop_other_training_percent, + develop_total_percent, + develop_result: evaluate.develop_result, + achievement_score: evaluate.achievement_score, + achievement_score_total: evaluate.achievement_score_total, + achievement_percent: evaluate.achievement_percent, + achievement_result: evaluate.achievement_result, + behavior_score: evaluate.behavior_score, + behavior_score_total: evaluate.behavior_score_total, + behavior_percent: evaluate.behavior_percent, + behavior_result: evaluate.behavior_result, + sum_score: evaluate.sum_score, + sum_percent: evaluate.sum_percent, + reason: result.reson, + pass_result: result.pass_result, + evaluate_date: result.chairman_dated, + } + + return new HttpSuccess(data) + } + + /** + * API แสดงรายการผู้ผ่านทดลองงาน + * + * @summary รายการผู้ผ่านทดลองงาน + * + */ + @Get("pass") + async GetPass() { + const lists = await this.personalRepository.find({ + where: { probation_status: 2 }, + }) + + let data: DataPass[] = [] + await Promise.all( + lists.map(async list => { + const assign = await AppDataSource.getRepository(Assign).findOne({ + select: ["date_start", "date_finish"], + where: { personal_id: list.personal_id }, + }) + + if (assign) + data.push({ + person: { + id: list.personal_id, + name: `${list.prefixName}${list.firstName} ${list.lastName}`, + }, + assign, + }) + }) + ) + + return new HttpSuccess(data) + } + + /** + * API แสดงรายการผู้ไม่ผ่านทดลองงาน + * + * @summary รายการคนไม่ผ่านการทดลองปฏิบัติราชการและรอไปออกคำสั่ง + * + */ + @Get("not-pass") + async GetDataNotPass() { + const lists = await this.personalRepository.find({ + where: { probation_status: 3 }, + }) + + let data: DataPass[] = [] + await Promise.all( + lists.map(async list => { + const assign = await AppDataSource.getRepository(Assign).findOne({ + select: ["date_start", "date_finish"], + where: { personal_id: list.personal_id }, + }) + + if (assign) + data.push({ + person: { + id: list.personal_id, + name: `${list.prefixName}${list.firstName} ${list.lastName}`, + }, + assign, + }) + }) + ) + + return new HttpSuccess(data) + } + + /** + * API แสดงรายการคนที่ถูกขยายระยะเวลาทดลองงาน + * + * @summary รายการคนที่ถูกขยายระยะเวลาทดลองปฏิบัติหน้าที่ราชการและรอไปออกคำสั่ง + * + */ + @Get("expand") + async GetDataExpand() { + const data = await this.personalRepository.find({ + select: ["personal_id"], + where: { probation_status: 7 }, + }) + + return new HttpSuccess(data) + } + + /** + * API สำหรับปรับสถานะการดึงไปออกคำสั่ง + * + * @summary ปรับสถานะการดึงไปออกคำสั่ง + * + */ + @Put("status") + async UpdateStatus(@Query() personal_id: string, @Body() requestBody: { command_no: string }, @Request() request: RequestWithUser) { + const personal = await this.personalRepository.findOne({ + where: { personal_id }, + }) + const before = personal + + if (!personal) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล") + } + + personal.order_number = requestBody.command_no + personal.probation_status = 8 + personal.updateFullName = request.user.name + personal.updateUserId = request.user.sub + + this.personalRepository.save(personal, { data: request }) + setLogDataDiff(request, { before, after: personal }) + + const resultText = (await personal.probation_status) === 2 ? "ไม่ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้รับราชการต่อ" : "ต่ำกว่ามาตรฐานที่กำหนด เห็นควรให้ออกจากราชการ" + + await new CallAPI() + .PostData(request, "/placement/noti", { + subject: "ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ", + body: `ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ ${resultText}`, + receiverUserId: personal_id, + payload: "", + isSendMail: false, + isSendInbox: true, + isSendNotification: true, + }) + .catch(error => { + console.error("Error calling API:", error) + }) + + return new HttpSuccess() + } + + /** + * API สำหรับปรับสถานะการดึงไปออกคำสั่ง + * + * @summary ปรับสถานะการดึงไปออกคำสั่ง + * + */ + @Put("change-status") + async ChangeStatus(@Query() personal_id: string, @Body() reqBody: { status: number }, @Request() request: RequestWithUser) { + const personal = await this.personalRepository.findOne({ + where: { personal_id }, + }) + const before = personal + + if (!personal) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลบุคคล") + } + + personal.probation_status = await reqBody.status + personal.updateFullName = request.user.name + personal.updateUserId = request.user.sub + + await this.personalRepository.save(personal, { data: request }) + setLogDataDiff(request, { before, after: personal }) + + return new HttpSuccess() + } + + /** + * API แสดงข้อมูลแบบบันทึกผลตาม id + * + * @summary ข้อมูลแบบบันทึกผลตาม id + * + */ + @Get("form-record") + async GetDataFormRecord(@Query() id: string) { + const evaluate = await this.evaluateAssessorRepository.findOne({ + where: { id }, + }) + + if (!evaluate) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const directorData = await this.assignDirectorRepository.findOne({ + select: ["personal_id", "fullname", "position", "posType", "posLevel", "role", "dated"], + where: { personal_id: evaluate.director_id }, + }) + + if (!directorData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const director = await { + ...directorData, + name: directorData.fullname, + position: directorData.position, + } + + const achievements = await this.evaluateAchievementRepository.find({ + select: ["evaluate_expect_level", "evaluate_output_level"], + where: { evaluate_id: evaluate.id }, + }) + + if (!achievements) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + let achievement: any = [] + await Promise.all( + achievements.map(async element => { + const evaluate_expect_level = await { + col1: element.evaluate_expect_level == 1 ? "/" : "", + col2: element.evaluate_expect_level == 2 ? "/" : "", + col3: element.evaluate_expect_level == 3 ? "/" : "", + col4: element.evaluate_expect_level == 4 ? "/" : "", + col5: element.evaluate_expect_level == 5 ? "/" : "", + } + + const evaluate_output_level = await { + col1: element.evaluate_output_level == 1 ? "/" : "", + col2: element.evaluate_output_level == 2 ? "/" : "", + col3: element.evaluate_output_level == 3 ? "/" : "", + col4: element.evaluate_output_level == 4 ? "/" : "", + col5: element.evaluate_output_level == 5 ? "/" : "", + } + + achievement.push({ + ...element, + evaluate_expect_level, + evaluate_output_level, + }) + }) + ) + + const evaluateData = await { + id: evaluate.id, + no: evaluate.no, + date_start: evaluate.date_start, + date_finish: evaluate.date_finish, + sign_dated: evaluate.assessor_dated, + knowledge_level: { + col1: evaluate.knowledge_level == 1 ? "/" : "", + col2: evaluate.knowledge_level == 2 ? "/" : "", + col3: evaluate.knowledge_level == 3 ? "/" : "", + col4: evaluate.knowledge_level == 4 ? "/" : "", + col5: evaluate.knowledge_level == 5 ? "/" : "", + }, + skill_level: { + col1: evaluate.skill_level == 1 ? "/" : "", + col2: evaluate.skill_level == 2 ? "/" : "", + col3: evaluate.skill_level == 3 ? "/" : "", + col4: evaluate.skill_level == 4 ? "/" : "", + col5: evaluate.skill_level == 5 ? "/" : "", + }, + competency_level: { + col1: evaluate.competency_level == 1 ? "/" : "", + col2: evaluate.competency_level == 2 ? "/" : "", + col3: evaluate.competency_level == 3 ? "/" : "", + col4: evaluate.competency_level == 4 ? "/" : "", + col5: evaluate.competency_level == 5 ? "/" : "", + }, + learn_level: { + col1: evaluate.learn_level == 1 ? "/" : "", + col2: evaluate.learn_level == 2 ? "/" : "", + col3: evaluate.learn_level == 3 ? "/" : "", + col4: evaluate.learn_level == 4 ? "/" : "", + col5: evaluate.learn_level == 5 ? "/" : "", + }, + apply_level: { + col1: evaluate.apply_level == 1 ? "/" : "", + col2: evaluate.apply_level == 2 ? "/" : "", + col3: evaluate.apply_level == 3 ? "/" : "", + col4: evaluate.apply_level == 4 ? "/" : "", + col5: evaluate.apply_level == 5 ? "/" : "", + }, + achievement_other_desc: evaluate.achievement_other_desc, + achievement_other_level: + evaluate.achievement_other_level != null + ? { + col1: evaluate.achievement_other_level == 1 ? "/" : "", + col2: evaluate.achievement_other_level == 2 ? "/" : "", + col3: evaluate.achievement_other_level == 3 ? "/" : "", + col4: evaluate.achievement_other_level == 4 ? "/" : "", + col5: evaluate.achievement_other_level == 5 ? "/" : "", + } + : { + col1: "", + col2: "", + col3: "", + col4: "", + col5: "", + }, + achievement_strength_desc: evaluate.achievement_strength_desc, + achievement_improve_desc: evaluate.achievement_improve_desc, + conduct1_level: { + col1: evaluate.conduct1_level == 1 ? "/" : "", + col2: evaluate.conduct1_level == 2 ? "/" : "", + col3: evaluate.conduct1_level == 3 ? "/" : "", + col4: evaluate.conduct1_level == 4 ? "/" : "", + col5: evaluate.conduct1_level == 5 ? "/" : "", + }, + conduct2_level: { + col1: evaluate.conduct2_level == 1 ? "/" : "", + col2: evaluate.conduct2_level == 2 ? "/" : "", + col3: evaluate.conduct2_level == 3 ? "/" : "", + col4: evaluate.conduct2_level == 4 ? "/" : "", + col5: evaluate.conduct2_level == 5 ? "/" : "", + }, + conduct3_level: { + col1: evaluate.conduct3_level == 1 ? "/" : "", + col2: evaluate.conduct3_level == 2 ? "/" : "", + col3: evaluate.conduct3_level == 3 ? "/" : "", + col4: evaluate.conduct3_level == 4 ? "/" : "", + col5: evaluate.conduct3_level == 5 ? "/" : "", + }, + conduct4_level: { + col1: evaluate.conduct4_level == 1 ? "/" : "", + col2: evaluate.conduct4_level == 2 ? "/" : "", + col3: evaluate.conduct4_level == 3 ? "/" : "", + col4: evaluate.conduct4_level == 4 ? "/" : "", + col5: evaluate.conduct4_level == 5 ? "/" : "", + }, + moral1_level: { + col1: evaluate.moral1_level == 1 ? "/" : "", + col2: evaluate.moral1_level == 2 ? "/" : "", + col3: evaluate.moral1_level == 3 ? "/" : "", + col4: evaluate.moral1_level == 4 ? "/" : "", + col5: evaluate.moral1_level == 5 ? "/" : "", + }, + moral2_level: { + col1: evaluate.moral2_level == 1 ? "/" : "", + col2: evaluate.moral2_level == 2 ? "/" : "", + col3: evaluate.moral2_level == 3 ? "/" : "", + col4: evaluate.moral2_level == 4 ? "/" : "", + col5: evaluate.moral2_level == 5 ? "/" : "", + }, + moral3_level: { + col1: evaluate.moral3_level == 1 ? "/" : "", + col2: evaluate.moral3_level == 2 ? "/" : "", + col3: evaluate.moral3_level == 3 ? "/" : "", + col4: evaluate.moral3_level == 4 ? "/" : "", + col5: evaluate.moral3_level == 5 ? "/" : "", + }, + discipline1_level: { + col1: evaluate.discipline1_level == 1 ? "/" : "", + col2: evaluate.discipline1_level == 2 ? "/" : "", + col3: evaluate.discipline1_level == 3 ? "/" : "", + col4: evaluate.discipline1_level == 4 ? "/" : "", + col5: evaluate.discipline1_level == 5 ? "/" : "", + }, + discipline2_level: { + col1: evaluate.discipline2_level == 1 ? "/" : "", + col2: evaluate.discipline2_level == 2 ? "/" : "", + col3: evaluate.discipline2_level == 3 ? "/" : "", + col4: evaluate.discipline2_level == 4 ? "/" : "", + col5: evaluate.discipline2_level == 5 ? "/" : "", + }, + discipline3_level: { + col1: evaluate.discipline3_level == 1 ? "/" : "", + col2: evaluate.discipline3_level == 2 ? "/" : "", + col3: evaluate.discipline3_level == 3 ? "/" : "", + col4: evaluate.discipline3_level == 4 ? "/" : "", + col5: evaluate.discipline3_level == 5 ? "/" : "", + }, + discipline4_level: { + col1: evaluate.discipline4_level == 1 ? "/" : "", + col2: evaluate.discipline4_level == 2 ? "/" : "", + col3: evaluate.discipline4_level == 3 ? "/" : "", + col4: evaluate.discipline4_level == 4 ? "/" : "", + col5: evaluate.discipline4_level == 5 ? "/" : "", + }, + discipline5_level: { + col1: evaluate.discipline5_level == 1 ? "/" : "", + col2: evaluate.discipline5_level == 2 ? "/" : "", + col3: evaluate.discipline5_level == 3 ? "/" : "", + col4: evaluate.discipline5_level == 4 ? "/" : "", + col5: evaluate.discipline5_level == 5 ? "/" : "", + }, + behavior_other_desc: evaluate.behavior_other_desc, + behavior_other_level: + evaluate.behavior_other_level != null + ? { + col1: evaluate.behavior_other_level == 1 ? "/" : "", + col2: evaluate.behavior_other_level == 2 ? "/" : "", + col3: evaluate.behavior_other_level == 3 ? "/" : "", + col4: evaluate.behavior_other_level == 4 ? "/" : "", + col5: evaluate.behavior_other_level == 5 ? "/" : "", + } + : { + col1: "", + col2: "", + col3: "", + col4: "", + col5: "", + }, + + behavior_strength_desc: evaluate.behavior_strength_desc, + behavior_improve_desc: evaluate.behavior_improve_desc, + orientation: evaluate.orientation, + self_learning: evaluate.self_learning, + training_seminar: evaluate.training_seminar, + other_training: evaluate.other_training, + createdAt: evaluate.createdAt, + updatedAt: evaluate.updatedAt, + achievements: achievement, + role: director.role, + } + + const assign = await AppDataSource.getRepository(Assign).findOne({ + select: ["id", "personal_id", "round_no", "date_start", "date_finish"], + where: { id: evaluate.assign_id }, + }) + + if (!assign) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const experimenteeData = await this.personalRepository.findOne({ + where: { + personal_id: assign.personal_id, + }, + }) + + if (!experimenteeData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const experimentee = await { + ...experimenteeData, + name: `${experimenteeData.prefixName}${experimenteeData.firstName} ${experimenteeData.lastName}`, + PositionLevelName: experimenteeData.positionLevelName, + PositionLineName: experimenteeData.positionLineName, + Position: experimenteeData.positionName, + Department: "-", + OrganizationOrganization: experimenteeData.orgRootName, + Oc: experimenteeData.organization, + } + + const data = await { + experimentee: experimentee ? experimentee : null, + director: director ? director : null, + assign, + evaluate: evaluateData, + } + return new HttpSuccess(data) + } + + /** + * API แสดงข้อมูลแบบประเมินผล (ผู้บังคับบัญชา) ตาม id + * + * @summary ข้อมูลแบบประเมินผล (ผู้บังคับบัญชา) ตาม id + * + */ + @Get("evaluate-commander") + async GetDataEvaluateCommander(@Query() id: string, @Request() request: RequestWithUser) { + const evaluate = await this.evaluateCommanderRepository.findOne({ + where: { id }, + }) + + if (!evaluate) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const evaluateData = await { + id: evaluate.id, + no: evaluate.no, + date_start: evaluate.date_start, + date_finish: evaluate.date_finish, + sign_dated: evaluate.commander_dated, + knowledge_level: { + col1: evaluate.knowledge_level == 1 ? "/" : "", + col2: evaluate.knowledge_level == 2 ? "/" : "", + col3: evaluate.knowledge_level == 3 ? "/" : "", + col4: evaluate.knowledge_level == 4 ? "/" : "", + col5: evaluate.knowledge_level == 5 ? "/" : "", + }, + skill_level: { + col1: evaluate.skill_level == 1 ? "/" : "", + col2: evaluate.skill_level == 2 ? "/" : "", + col3: evaluate.skill_level == 3 ? "/" : "", + col4: evaluate.skill_level == 4 ? "/" : "", + col5: evaluate.skill_level == 5 ? "/" : "", + }, + competency_level: { + col1: evaluate.competency_level == 1 ? "/" : "", + col2: evaluate.competency_level == 2 ? "/" : "", + col3: evaluate.competency_level == 3 ? "/" : "", + col4: evaluate.competency_level == 4 ? "/" : "", + col5: evaluate.competency_level == 5 ? "/" : "", + }, + learn_level: { + col1: evaluate.learn_level == 1 ? "/" : "", + col2: evaluate.learn_level == 2 ? "/" : "", + col3: evaluate.learn_level == 3 ? "/" : "", + col4: evaluate.learn_level == 4 ? "/" : "", + col5: evaluate.learn_level == 5 ? "/" : "", + }, + apply_level: { + col1: evaluate.apply_level == 1 ? "/" : "", + col2: evaluate.apply_level == 2 ? "/" : "", + col3: evaluate.apply_level == 3 ? "/" : "", + col4: evaluate.apply_level == 4 ? "/" : "", + col5: evaluate.apply_level == 5 ? "/" : "", + }, + success_level: { + col1: evaluate.success_level == 1 ? "/" : "", + col2: evaluate.success_level == 2 ? "/" : "", + col3: evaluate.success_level == 3 ? "/" : "", + col4: evaluate.success_level == 4 ? "/" : "", + col5: evaluate.success_level == 5 ? "/" : "", + }, + achievement_other_desc: evaluate.achievement_other_desc, + achievement_other_level: + evaluate.achievement_other_level != null + ? { + col1: evaluate.achievement_other_level == 1 ? "/" : "", + col2: evaluate.achievement_other_level == 2 ? "/" : "", + col3: evaluate.achievement_other_level == 3 ? "/" : "", + col4: evaluate.achievement_other_level == 4 ? "/" : "", + col5: evaluate.achievement_other_level == 5 ? "/" : "", + } + : { + col1: "", + col2: "", + col3: "", + col4: "", + col5: "", + }, + conduct1_level: { + col1: evaluate.conduct1_level == 1 ? "/" : "", + col2: evaluate.conduct1_level == 2 ? "/" : "", + col3: evaluate.conduct1_level == 3 ? "/" : "", + col4: evaluate.conduct1_level == 4 ? "/" : "", + col5: evaluate.conduct1_level == 5 ? "/" : "", + }, + conduct2_level: { + col1: evaluate.conduct2_level == 1 ? "/" : "", + col2: evaluate.conduct2_level == 2 ? "/" : "", + col3: evaluate.conduct2_level == 3 ? "/" : "", + col4: evaluate.conduct2_level == 4 ? "/" : "", + col5: evaluate.conduct2_level == 5 ? "/" : "", + }, + conduct3_level: { + col1: evaluate.conduct3_level == 1 ? "/" : "", + col2: evaluate.conduct3_level == 2 ? "/" : "", + col3: evaluate.conduct3_level == 3 ? "/" : "", + col4: evaluate.conduct3_level == 4 ? "/" : "", + col5: evaluate.conduct3_level == 5 ? "/" : "", + }, + conduct4_level: { + col1: evaluate.conduct4_level == 1 ? "/" : "", + col2: evaluate.conduct4_level == 2 ? "/" : "", + col3: evaluate.conduct4_level == 3 ? "/" : "", + col4: evaluate.conduct4_level == 4 ? "/" : "", + col5: evaluate.conduct4_level == 5 ? "/" : "", + }, + moral1_level: { + col1: evaluate.moral1_level == 1 ? "/" : "", + col2: evaluate.moral1_level == 2 ? "/" : "", + col3: evaluate.moral1_level == 3 ? "/" : "", + col4: evaluate.moral1_level == 4 ? "/" : "", + col5: evaluate.moral1_level == 5 ? "/" : "", + }, + moral2_level: { + col1: evaluate.moral2_level == 1 ? "/" : "", + col2: evaluate.moral2_level == 2 ? "/" : "", + col3: evaluate.moral2_level == 3 ? "/" : "", + col4: evaluate.moral2_level == 4 ? "/" : "", + col5: evaluate.moral2_level == 5 ? "/" : "", + }, + moral3_level: { + col1: evaluate.moral3_level == 1 ? "/" : "", + col2: evaluate.moral3_level == 2 ? "/" : "", + col3: evaluate.moral3_level == 3 ? "/" : "", + col4: evaluate.moral3_level == 4 ? "/" : "", + col5: evaluate.moral3_level == 5 ? "/" : "", + }, + discipline1_level: { + col1: evaluate.discipline1_level == 1 ? "/" : "", + col2: evaluate.discipline1_level == 2 ? "/" : "", + col3: evaluate.discipline1_level == 3 ? "/" : "", + col4: evaluate.discipline1_level == 4 ? "/" : "", + col5: evaluate.discipline1_level == 5 ? "/" : "", + }, + discipline2_level: { + col1: evaluate.discipline2_level == 1 ? "/" : "", + col2: evaluate.discipline2_level == 2 ? "/" : "", + col3: evaluate.discipline2_level == 3 ? "/" : "", + col4: evaluate.discipline2_level == 4 ? "/" : "", + col5: evaluate.discipline2_level == 5 ? "/" : "", + }, + discipline3_level: { + col1: evaluate.discipline3_level == 1 ? "/" : "", + col2: evaluate.discipline3_level == 2 ? "/" : "", + col3: evaluate.discipline3_level == 3 ? "/" : "", + col4: evaluate.discipline3_level == 4 ? "/" : "", + col5: evaluate.discipline3_level == 5 ? "/" : "", + }, + discipline4_level: { + col1: evaluate.discipline4_level == 1 ? "/" : "", + col2: evaluate.discipline4_level == 2 ? "/" : "", + col3: evaluate.discipline4_level == 3 ? "/" : "", + col4: evaluate.discipline4_level == 4 ? "/" : "", + col5: evaluate.discipline4_level == 5 ? "/" : "", + }, + discipline5_level: { + col1: evaluate.discipline5_level == 1 ? "/" : "", + col2: evaluate.discipline5_level == 2 ? "/" : "", + col3: evaluate.discipline5_level == 3 ? "/" : "", + col4: evaluate.discipline5_level == 4 ? "/" : "", + col5: evaluate.discipline5_level == 5 ? "/" : "", + }, + behavior_other_desc: evaluate.behavior_other_desc, + behavior_other_level: + evaluate.behavior_other_level != null + ? { + col1: evaluate.behavior_other_level == 1 ? "/" : "", + col2: evaluate.behavior_other_level == 2 ? "/" : "", + col3: evaluate.behavior_other_level == 3 ? "/" : "", + col4: evaluate.behavior_other_level == 4 ? "/" : "", + col5: evaluate.behavior_other_level == 5 ? "/" : "", + } + : { + col1: "", + col2: "", + col3: "", + col4: "", + col5: "", + }, + behavior_strength_desc: evaluate.behavior_strength_desc, + behavior_improve_desc: evaluate.behavior_improve_desc, + orientation: evaluate.orientation, + self_learning: evaluate.self_learning, + training_seminar: evaluate.training_seminar, + other_training: evaluate.other_training, + createdAt: evaluate.createdAt, + updatedAt: evaluate.updatedAt, + } + + const assign = await AppDataSource.getRepository(Assign).findOne({ + select: ["id", "personal_id", "round_no", "date_start", "date_finish"], + where: { id: evaluate.assign_id }, + }) + + if (!assign) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const experimenteeData = await this.personalRepository.findOne({ + where: { + personal_id: assign.personal_id, + }, + }) + + if (!experimenteeData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const experimentee = await { + ...experimenteeData, + name: `${experimenteeData.prefixName}${experimenteeData.firstName} ${experimenteeData.lastName}`, + PositionLevelName: experimenteeData.positionLevelName, + PositionLineName: experimenteeData.positionLineName, + Position: experimenteeData.positionName, + Department: "-", + OrganizationOrganization: experimenteeData.orgRootName, + Oc: experimenteeData.organization, + } + + const commanderData = await this.assignDirectorRepository.findOne({ + select: ["personal_id", "fullname", "position", "position", "posType", "posLevel", "role", "dated"], + where: { personal_id: evaluate.director_id }, + }) + + if (!commanderData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const commander = await { + ...commanderData, + name: commanderData.fullname, + Position: commanderData.position, + } + + return new HttpSuccess({ + experimentee: experimentee ? experimentee : null, + commander: commander ? commander : null, + assign, + evaluate: evaluateData, + }) + } + + /** + * API แสดงข้อมูลแบบประเมินผล (คณะกรรมการ) ตาม id + * + * @summary ข้อมูลแบบประเมินผล (คณะกรรมการ) ตาม id + * + */ + @Get("evaluate-chairman") + async GetDataEvaluateChairman(@Query() id: string, @Request() request: RequestWithUser) { + const evaluate = await this.evaluateChairmanRepository.findOne({ + where: { id }, + }) + + if (!evaluate) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const develop_total_score = await (Number(evaluate.develop_orientation_score) + + Number(evaluate.develop_self_learning_score) + + Number(evaluate.develop_training_seminar_score) + + Number(evaluate.develop_other_training_score)) + const develop_total_percent = await (Number(evaluate.develop_orientation_percent) + + Number(evaluate.develop_orientation_percent) + + Number(evaluate.develop_self_learning_percent) + + Number(evaluate.develop_training_seminar_percent)) + + const evaluateData = await { + id: evaluate.id, + // director_id: evaluate.director_id, + // assign_id: evaluate.assign_id, + no: evaluate.no, + date_start: evaluate.date_start, + date_finish: evaluate.date_finish, + chairman_dated: evaluate.chairman_dated, + director1_dated: evaluate.director1_dated, + director2_dated: evaluate.director2_dated, + knowledge_level: { + col1: evaluate.knowledge_level == 1 ? "/" : "", + col2: evaluate.knowledge_level == 2 ? "/" : "", + col3: evaluate.knowledge_level == 3 ? "/" : "", + col4: evaluate.knowledge_level == 4 ? "/" : "", + col5: evaluate.knowledge_level == 5 ? "/" : "", + }, + apply_level: { + col1: evaluate.apply_level == 1 ? "/" : "", + col2: evaluate.apply_level == 2 ? "/" : "", + col3: evaluate.apply_level == 3 ? "/" : "", + col4: evaluate.apply_level == 4 ? "/" : "", + col5: evaluate.apply_level == 5 ? "/" : "", + }, + success_level: { + col1: evaluate.success_level == 1 ? "/" : "", + col2: evaluate.success_level == 2 ? "/" : "", + col3: evaluate.success_level == 3 ? "/" : "", + col4: evaluate.success_level == 4 ? "/" : "", + col5: evaluate.success_level == 5 ? "/" : "", + }, + achievement_other_desc: evaluate.achievement_other_desc, + achievement_other_level: + evaluate.achievement_other_level != null + ? { + col1: evaluate.achievement_other_level == 1 ? "/" : "", + col2: evaluate.achievement_other_level == 2 ? "/" : "", + col3: evaluate.achievement_other_level == 3 ? "/" : "", + col4: evaluate.achievement_other_level == 4 ? "/" : "", + col5: evaluate.achievement_other_level == 5 ? "/" : "", + } + : { + col1: "", + col2: "", + col3: "", + col4: "", + col5: "", + }, + conduct1_level: { + col1: evaluate.conduct1_level == 1 ? "/" : "", + col2: evaluate.conduct1_level == 2 ? "/" : "", + col3: evaluate.conduct1_level == 3 ? "/" : "", + col4: evaluate.conduct1_level == 4 ? "/" : "", + col5: evaluate.conduct1_level == 5 ? "/" : "", + }, + conduct2_level: { + col1: evaluate.conduct2_level == 1 ? "/" : "", + col2: evaluate.conduct2_level == 2 ? "/" : "", + col3: evaluate.conduct2_level == 3 ? "/" : "", + col4: evaluate.conduct2_level == 4 ? "/" : "", + col5: evaluate.conduct2_level == 5 ? "/" : "", + }, + conduct3_level: { + col1: evaluate.conduct3_level == 1 ? "/" : "", + col2: evaluate.conduct3_level == 2 ? "/" : "", + col3: evaluate.conduct3_level == 3 ? "/" : "", + col4: evaluate.conduct3_level == 4 ? "/" : "", + col5: evaluate.conduct3_level == 5 ? "/" : "", + }, + conduct4_level: { + col1: evaluate.conduct4_level == 1 ? "/" : "", + col2: evaluate.conduct4_level == 2 ? "/" : "", + col3: evaluate.conduct4_level == 3 ? "/" : "", + col4: evaluate.conduct4_level == 4 ? "/" : "", + col5: evaluate.conduct4_level == 5 ? "/" : "", + }, + moral1_level: { + col1: evaluate.moral1_level == 1 ? "/" : "", + col2: evaluate.moral1_level == 2 ? "/" : "", + col3: evaluate.moral1_level == 3 ? "/" : "", + col4: evaluate.moral1_level == 4 ? "/" : "", + col5: evaluate.moral1_level == 5 ? "/" : "", + }, + moral2_level: { + col1: evaluate.moral2_level == 1 ? "/" : "", + col2: evaluate.moral2_level == 2 ? "/" : "", + col3: evaluate.moral2_level == 3 ? "/" : "", + col4: evaluate.moral2_level == 4 ? "/" : "", + col5: evaluate.moral2_level == 5 ? "/" : "", + }, + moral3_level: { + col1: evaluate.moral3_level == 1 ? "/" : "", + col2: evaluate.moral3_level == 2 ? "/" : "", + col3: evaluate.moral3_level == 3 ? "/" : "", + col4: evaluate.moral3_level == 4 ? "/" : "", + col5: evaluate.moral3_level == 5 ? "/" : "", + }, + discipline1_level: { + col1: evaluate.discipline1_level == 1 ? "/" : "", + col2: evaluate.discipline1_level == 2 ? "/" : "", + col3: evaluate.discipline1_level == 3 ? "/" : "", + col4: evaluate.discipline1_level == 4 ? "/" : "", + col5: evaluate.discipline1_level == 5 ? "/" : "", + }, + discipline2_level: { + col1: evaluate.discipline2_level == 1 ? "/" : "", + col2: evaluate.discipline2_level == 2 ? "/" : "", + col3: evaluate.discipline2_level == 3 ? "/" : "", + col4: evaluate.discipline2_level == 4 ? "/" : "", + col5: evaluate.discipline2_level == 5 ? "/" : "", + }, + discipline3_level: { + col1: evaluate.discipline3_level == 1 ? "/" : "", + col2: evaluate.discipline3_level == 2 ? "/" : "", + col3: evaluate.discipline3_level == 3 ? "/" : "", + col4: evaluate.discipline3_level == 4 ? "/" : "", + col5: evaluate.discipline3_level == 5 ? "/" : "", + }, + discipline4_level: { + col1: evaluate.discipline4_level == 1 ? "/" : "", + col2: evaluate.discipline4_level == 2 ? "/" : "", + col3: evaluate.discipline4_level == 3 ? "/" : "", + col4: evaluate.discipline4_level == 4 ? "/" : "", + col5: evaluate.discipline4_level == 5 ? "/" : "", + }, + discipline5_level: { + col1: evaluate.discipline5_level == 1 ? "/" : "", + col2: evaluate.discipline5_level == 2 ? "/" : "", + col3: evaluate.discipline5_level == 3 ? "/" : "", + col4: evaluate.discipline5_level == 4 ? "/" : "", + col5: evaluate.discipline5_level == 5 ? "/" : "", + }, + behavior_other_desc: evaluate.behavior_other_desc, + behavior_other_level: + evaluate.behavior_other_level != null + ? { + col1: evaluate.behavior_other_level == 1 ? "/" : "", + col2: evaluate.behavior_other_level == 2 ? "/" : "", + col3: evaluate.behavior_other_level == 3 ? "/" : "", + col4: evaluate.behavior_other_level == 4 ? "/" : "", + col5: evaluate.behavior_other_level == 5 ? "/" : "", + } + : { + col1: "", + col2: "", + col3: "", + col4: "", + col5: "", + }, + + achievement_score: evaluate.achievement_score, + achievement_score_total: evaluate.achievement_score_total, + achievement_percent: evaluate.achievement_percent, + achievement_result: evaluate.achievement_result, + behavior_score: evaluate.behavior_score, + behavior_score_total: evaluate.behavior_score_total, + behavior_percent: evaluate.behavior_percent, + behavior_result: evaluate.behavior_result, + sum_score: evaluate.sum_score, + sum_percent: evaluate.sum_percent, + + develop_orientation_score: evaluate.develop_orientation_score, + develop_self_learning_score: evaluate.develop_self_learning_score, + develop_training_seminar_score: evaluate.develop_training_seminar_score, + develop_other_training_score: evaluate.develop_other_training_score, + develop_total_score: develop_total_score, + develop_orientation_percent: evaluate.develop_orientation_percent, + develop_self_learning_percent: evaluate.develop_self_learning_percent, + develop_training_seminar_percent: evaluate.develop_training_seminar_percent, + develop_other_training_percent: evaluate.develop_other_training_percent, + develop_total_percent: develop_total_percent, + develop_result: evaluate.develop_result, + evaluate_result: evaluate.evaluate_result, + createdAt: evaluate.createdAt, + updatedAt: evaluate.updatedAt, + } + + const assign = await AppDataSource.getRepository(Assign).findOne({ + select: ["id", "personal_id", "round_no", "date_start", "date_finish"], + where: { id: evaluate.assign_id }, + }) + + if (!assign) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const experimenteeData = await this.personalRepository.findOne({ + where: { + personal_id: assign.personal_id, + }, + }) + + if (!experimenteeData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const experimentee = await { + ...experimenteeData, + name: `${experimenteeData.prefixName}${experimenteeData.firstName} ${experimenteeData.lastName}`, + PositionLevelName: experimenteeData.positionLevelName, + PositionLineName: experimenteeData.positionLineName, + Position: experimenteeData.positionName, + Department: "-", + OrganizationOrganization: experimenteeData.orgRootName, + Oc: experimenteeData.organization, + } + + const directorData = await this.assignDirectorRepository.find({ + select: ["personal_id", "fullname", "position", "posType", "posLevel", "role", "dated"], + where: { assign_id: assign.id }, + }) + + if (!directorData) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล") + } + + const director = await Promise.all( + directorData.map(async element => { + return { + ...element, + name: element.fullname, + Position: element.position, + } + }) + ) + + const mentorData = await (director.find(x => x.role == "mentor") ?? null) + const mentor = mentorData != null ? mentorData : null + + const commanderData = await (director.find(x => x.role == "commander") ?? null) + const commander = commanderData != null ? commanderData : null + + const chairmanData = await (director.find(x => x.role == "chairman") ?? null) + const chairman = chairmanData != null ? chairmanData : null + + return new HttpSuccess({ + experimentee: experimentee ? experimentee : null, + chairman: chairman ? chairman : null, + director1: commander ? commander : null, + director2: mentor ? mentor : null, + assign, + evaluate: evaluateData, + }) + } + + @Post("command11/officer/report/excecute") + public async command11Excecute( + @Request() request: RequestWithUser, + @Body() + body: { + refIds: { + refId: string + commandAffectDate: Date | null + commandNo: string | null + commandYear: number + templateDoc: string | null + amount: Double | null + positionSalaryAmount: Double | null + mouthSalaryAmount: Double | null + }[] + } + ) { + await new CallAPI() + .PostData(request, "/org/command/excexute/salary-probation", { + data: body.refIds.map(v => ({ + profileId: v.refId, + date: v.commandAffectDate, + refCommandNo: `${v.commandNo}/${Extension.ToThaiYear(v.commandYear)}`, + salaryRef: v.templateDoc, + })), + }) + .then(async res => {}) + .catch(() => {}) + return new HttpSuccess() + } + @Post("command11/officer/report") + public async command11( + @Request() req: RequestWithUser, + @Body() + body: { + refIds: string[] + } + ) { + const lists = await this.personalRepository.find({ + where: { probation_status: 2, personal_id: In(body.refIds) }, + }) + + return new HttpSuccess() + } + + @Post("command12/officer/report/excecute") + public async command12Excecute( + @Request() request: RequestWithUser, + @Body() + body: { + refIds: { + refId: string + commandAffectDate: Date | null + commandNo: string | null + commandYear: number + templateDoc: string | null + amount: Double | null + positionSalaryAmount: Double | null + mouthSalaryAmount: Double | null + }[] + } + ) { + await new CallAPI() + .PostData(request, "/org/command/excexute/salary-probation-leave", { + data: body.refIds.map(v => ({ + profileId: v.refId, + date: v.commandAffectDate, + refCommandNo: `${v.commandNo}/${Extension.ToThaiYear(v.commandYear)}`, + salaryRef: v.templateDoc, + })), + }) + .then(async res => {}) + .catch(() => {}) + return new HttpSuccess() + } + @Post("command12/officer/report") + public async command12( + @Request() req: RequestWithUser, + @Body() + body: { + refIds: string[] + } + ) { + const lists = await this.personalRepository.find({ + where: { probation_status: 3, personal_id: In(body.refIds) }, + }) + + return new HttpSuccess() + } }