From c5235e960dc5bcd53d3e1aea57a275d16c1b82e6 Mon Sep 17 00:00:00 2001 From: kittapath Date: Mon, 17 Mar 2025 15:38:02 +0700 Subject: [PATCH 1/2] update --- src/controllers/UserController.ts | 12 +++- src/controllers/WorkflowController.ts | 79 ++++++++++++++++++--------- 2 files changed, 64 insertions(+), 27 deletions(-) diff --git a/src/controllers/UserController.ts b/src/controllers/UserController.ts index 91834c26..48b8c4ac 100644 --- a/src/controllers/UserController.ts +++ b/src/controllers/UserController.ts @@ -903,7 +903,17 @@ export class KeycloakController extends Controller { }); for await (const _item of profiles) { - const result = await changeUserPassword(_item.keycloak, "P@ssw0rd"); + let password = _item.citizenId; + if (_item.birthDate != null) { + const gregorianYear = _item.birthDate.getFullYear() + 543; + + const formattedDate = + _item.birthDate.toISOString().slice(8, 10) + + _item.birthDate.toISOString().slice(5, 7) + + gregorianYear; + password = formattedDate; + } + const result = await changeUserPassword(_item.keycloak, password); if (!result) { continue; } diff --git a/src/controllers/WorkflowController.ts b/src/controllers/WorkflowController.ts index ec239349..9be7f84d 100644 --- a/src/controllers/WorkflowController.ts +++ b/src/controllers/WorkflowController.ts @@ -1,4 +1,4 @@ -import { Body, Controller, Get, Path, Post, Put, Request, Route, Security, Tags, } from "tsoa"; +import { Body, Controller, Get, Path, Post, Put, Request, Route, Security, Tags } from "tsoa"; import { AppDataSource } from "../database/data-source"; import { RequestWithUser } from "../middlewares/user"; import HttpError from "../interfaces/http-error"; @@ -658,7 +658,7 @@ export class WorkflowController extends Controller { receiverUserIds: [ { receiverUserId: body.profileId, - notiLink: `${process.env.VITE_URL_SSO}/${assign.path}/${state.workflow.refId}`, + notiLink: `${process.env.VITE_URL_MGT}/${assign.path}/${state.workflow.refId}`, }, ], payload: "", //แนบไฟล์ @@ -802,6 +802,18 @@ export class WorkflowController extends Controller { pageSize: number; }, ) { + let userId = ""; + if (xxx) { + } else { + const posMasterUser = await this.posMasterRepo.findOne({ + where: { + orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, + current_holder: { keycloak: request.user.sub }, + }, + relations: ["current_holder", "current_holder.posType", "current_holder.posLevel"], + }); + } + const posMasterUser = await this.posMasterRepo.findOne({ where: { orgRevision: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false }, @@ -825,6 +837,19 @@ export class WorkflowController extends Controller { }; if (type.trim().toUpperCase() == "OPERATE") { + condition = { + isDirector: true, + orgRootId: posMasterUser.orgRootId, + orgRevisionId: posMasterUser.orgRevisionId, + // orgChild1Id: IsNull(), + // orgChild2Id: IsNull(), + // orgChild3Id: IsNull(), + // orgChild4Id: IsNull(), + }; + condition.orgChild1Id = IsNull(); + condition.orgChild2Id = IsNull(); + condition.orgChild3Id = IsNull(); + condition.orgChild4Id = IsNull(); } else { if ( (posMasterUser.current_holder.posType.posTypeName == "ทั่วไป" && @@ -1144,46 +1169,48 @@ export class WorkflowController extends Controller { return new HttpSuccess(); } - /** + /** * API เช็ค สกจ * * @summary เช็ค สกจ * */ @Post("find/director") - async getProfileDirectorByProfileId(@Request() req: RequestWithUser, - @Body() - body: { - refId: string[]; - },) { + async getProfileDirectorByProfileId( + @Request() req: RequestWithUser, + @Body() + body: { + refId: string[]; + }, + ) { const _posMaster = await this.posMasterRepo.find({ where: { orgRevision: { orgRevisionIsDraft: false, orgRevisionIsCurrent: true }, current_holderId: In(body.refId), }, - select:["orgRootId","orgChild1Id","orgChild2Id","orgChild3Id","orgChild4Id"] + select: ["orgRootId", "orgChild1Id", "orgChild2Id", "orgChild3Id", "orgChild4Id"], }); - const _data:any = _posMaster.map((x) => ({ - orgRootId: x.orgRootId, - orgChild1Id: x.orgChild1Id, - orgChild2Id: x.orgChild2Id, - orgChild3Id: x.orgChild3Id, - orgChild4Id: x.orgChild4Id, - isDirector: true, - current_holder: Not(IsNull()), - })); + const _data: any = _posMaster.map((x) => ({ + orgRootId: x.orgRootId, + orgChild1Id: x.orgChild1Id, + orgChild2Id: x.orgChild2Id, + orgChild3Id: x.orgChild3Id, + orgChild4Id: x.orgChild4Id, + isDirector: true, + current_holder: Not(IsNull()), + })); const posMaster = await this.posMasterRepo.find({ where: _data, - relations:["current_holder"] + relations: ["current_holder"], }); - + const data = posMaster.map((x) => ({ - id: x.current_holder.id, - citizenId: x.current_holder.citizenId, - prefix: x.current_holder.prefix, - firstName: x.current_holder.firstName, - lastName: x.current_holder.lastName, - })); + id: x.current_holder.id, + citizenId: x.current_holder.citizenId, + prefix: x.current_holder.prefix, + firstName: x.current_holder.firstName, + lastName: x.current_holder.lastName, + })); return new HttpSuccess(data); } } From 23b6452d56435b599774f8d582618172b4d96e8f Mon Sep 17 00:00:00 2001 From: mamoss <> Date: Mon, 17 Mar 2025 15:42:48 +0700 Subject: [PATCH 2/2] update salary --- src/controllers/ImportDataController.ts | 56 +++++++++++++++++-------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/src/controllers/ImportDataController.ts b/src/controllers/ImportDataController.ts index de9dca59..bc66ea3d 100644 --- a/src/controllers/ImportDataController.ts +++ b/src/controllers/ImportDataController.ts @@ -1,6 +1,6 @@ import { Controller, Post, Route, Security, Tags, Request, UploadedFile } from "tsoa"; import { AppDataSource } from "../database/data-source"; -import { In, IsNull, Not } from "typeorm"; +import { In, IsNull, LessThanOrEqual, Not } from "typeorm"; import HttpSuccess from "../interfaces/http-success"; import { UseInterceptors } from "@nestjs/common"; import { Profile } from "../entities/Profile"; @@ -2276,11 +2276,11 @@ export class ImportDataController extends Controller { @Post("mapposition-Officer") async MapPositionOfficer(@Request() request: { user: Record }) { const officer = await AppDataSource.getRepository(Profile) - .createQueryBuilder("profile") - .leftJoinAndSelect("profile.current_holders", "posMaster") - // .where({citizenId: "1720700018869"}) - .where("posMaster.id IS NULL") - .getMany(); + .createQueryBuilder("profile") + .leftJoinAndSelect("profile.current_holders", "posMaster") + // .where({citizenId: "1720700018869"}) + .where("posMaster.id IS NULL") + .getMany(); let rowCount = 0; let _null: any = null; let type_: any = null; @@ -2294,22 +2294,22 @@ export class ImportDataController extends Controller { console.log(rowCount); const item = await AppDataSource.getRepository(OFFICER) .createQueryBuilder("OFFICER") - .where({ CIT: _item.citizenId }) + .where({ CIT: _item.citizenId }) .getOne(); if (item == null) { continue; } let posMaster = new PosMaster(); - let orgRoot = (await this.orgRootRepo.findOne({ - where: { - DEPARTMENT_CODE: item.DEPARTMENT_CODE, - DIVISION_CODE: item.DIVISION_CODE, - SECTION_CODE: item.SECTION_CODE, - JOB_CODE: item.JOB_CODE, - orgRevisionId: orgRevision.id, - }, - })) as OrgRoot; + let orgRoot = (await this.orgRootRepo.findOne({ + where: { + DEPARTMENT_CODE: item.DEPARTMENT_CODE, + DIVISION_CODE: item.DIVISION_CODE, + SECTION_CODE: item.SECTION_CODE, + JOB_CODE: item.JOB_CODE, + orgRevisionId: orgRevision.id, + }, + })) as OrgRoot; if (orgRoot != null) { posMaster.orgRootId = orgRoot.id ?? _null; } else { @@ -2325,7 +2325,7 @@ export class ImportDataController extends Controller { if (orgChild1 != null) { posMaster.orgRootId = orgChild1.orgRootId ?? _null; posMaster.orgChild1Id = orgChild1.id ?? _null; - } else { + } else { let orgChild2 = await this.orgChild2Repo.findOne({ where: { DEPARTMENT_CODE: item.DEPARTMENT_CODE, @@ -2381,7 +2381,7 @@ export class ImportDataController extends Controller { posMaster.isDirector = false; posMaster.isSit = false; posMaster.current_holderId = _item.id; - posMaster.posMasterNo = item.SALARY == "" ? _null : Number(item.POS_NUM_CODE); + posMaster.posMasterNo = item.POS_NUM_CODE == "" || item.POS_NUM_CODE == null ? _null : Number(item.POS_NUM_CODE); posMaster.orgRevisionId = orgRevision.id; posMaster.posMasterCreatedAt = new Date(); posMaster.createdUserId = request.user.sub; @@ -2583,4 +2583,24 @@ export class ImportDataController extends Controller { } return new HttpSuccess(); } + + /** + * @summary เงินเดือน ข้าราชการ + */ + @Post("update-amount") + async UpdateAmount(@Request() request: { user: Record }) { + let rowCount = 0; + const profile:any = await this.profileRepo.find({where: { amount: LessThanOrEqual(0) }}); + + for await (const _item of profile) { + const OFFICER = await this.OFFICERRepo.findOne({ select: ["CIT", "SALARY"], where: { CIT: _item.citizenId } }); + if (OFFICER) { + rowCount++; + _item.amount = Number(OFFICER.SALARY); + await this.profileRepo.save(_item); + console.log(rowCount); + } + } + return new HttpSuccess(); + } }