From 7cada3195d4556f175251eb9b12d53a533dbf2fe Mon Sep 17 00:00:00 2001 From: kittapath Date: Thu, 17 Oct 2024 09:46:55 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=AB=E0=B8=B2=E0=B8=9C=E0=B8=B9=E0=B9=89?= =?UTF-8?q?=E0=B8=9A=E0=B8=B1=E0=B8=87=E0=B8=84=E0=B8=B1=E0=B8=9A=E0=B8=9A?= =?UTF-8?q?=E0=B8=B1=E0=B8=8D=E0=B8=8A=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/WorkflowController.ts | 50 ++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/src/controllers/WorkflowController.ts b/src/controllers/WorkflowController.ts index a37a95c5..36d65ece 100644 --- a/src/controllers/WorkflowController.ts +++ b/src/controllers/WorkflowController.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Post, Request, Route, Security, Tags } from "tsoa"; +import { Body, Controller, Get, Path, Post, Request, Route, Security, Tags } from "tsoa"; import { AppDataSource } from "../database/data-source"; import { RequestWithUser } from "../middlewares/user"; import HttpError from "../interfaces/http-error"; @@ -16,7 +16,7 @@ import { MetaState } from "../entities/MetaState"; import { MetaStateOperator } from "../entities/MetaStateOperator"; import { PosMasterAssign } from "../entities/PosMasterAssign"; import { PosMaster } from "../entities/PosMaster"; -import { Not } from "typeorm"; +import { IsNull, Not } from "typeorm"; @Route("api/v1/org/workflow") @Tags("Workflow") @@ -131,7 +131,7 @@ export class WorkflowController extends Controller { if (item.orgChild1 == null || item.orgChild1.isOfficer == false) { const stateOperatorUser = new StateOperatorUser(); Object.assign(stateOperatorUser, { - profileId: profile.id, + profileId: item.current_holderId, operator: "Officer", order: i + 2, workflowId: workflow.id, @@ -141,7 +141,7 @@ export class WorkflowController extends Controller { } else { const stateOperatorUser = new StateOperatorUser(); Object.assign(stateOperatorUser, { - profileId: profile.id, + profileId: item.current_holderId, operator: "PersonnelOfficer", order: i + 2, workflowId: workflow.id, @@ -266,7 +266,8 @@ export class WorkflowController extends Controller { }); if (!stateOperatorUser) throw new HttpError(HttpStatus.NOT_FOUND, "ผู้ใช้งานนี้ไม่มีหน้าที่ในกระบวนการนี้"); - + console.log(stateOperatorUser.operator); + console.log(stateOperatorUser.workflow.stateId); const operator = await this.stateOperatorRepo.findOne({ where: { operator: stateOperatorUser.operator, @@ -586,4 +587,43 @@ export class WorkflowController extends Controller { profileId: stateUserComment?.profileId || null, }); } + + /** + * + * + */ + @Get("commander") + async getProfilePlacement(@Request() req: RequestWithUser) { + const posMasterUser = await this.posMasterRepo.findOne({ + where: { + orgRevision: { orgRevisionIsCurrent: false, orgRevisionIsDraft: true }, + current_holder: { keycloak: req.user.sub }, + }, + }); + if (!posMasterUser || !posMasterUser.orgRootId) + throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบตำแหน่งผู้ใช้งาน"); + + const posMasters = await this.posMasterRepo.find({ + where: { + orgRevision: { orgRevisionIsCurrent: false, orgRevisionIsDraft: true }, + isDirector: true, + current_holderId: Not(IsNull()), + orgRootId: posMasterUser.orgRootId, + }, + relations: ["current_holder", "orgRoot"], + }); + + let _posMasters = posMasters.map((data) => ({ + id: data.current_holderId, + prefix: data.current_holder.prefix, + firstName: data.current_holder.firstName, + lastName: data.current_holder.lastName, + position: data.current_holder.position, + posLevel: data.current_holder.posLevel, + posType: data.current_holder.posType, + orgRoot: data.orgRoot.orgRootName, + })); + + return new HttpSuccess(_posMasters); + } }