From ac1599485abc2e0b90b03254126d632c3e97fb26 Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 14 Mar 2024 11:21:55 +0700 Subject: [PATCH 1/2] Fix --- src/controllers/EmployeePosLevelController.ts | 2 ++ src/controllers/EmployeePosTypeController.ts | 6 +++-- src/controllers/InsigniaController.ts | 7 +++--- src/controllers/InsigniaTypeController.ts | 24 +++++++++++++++---- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/controllers/EmployeePosLevelController.ts b/src/controllers/EmployeePosLevelController.ts index 782cf561..b43d6d56 100644 --- a/src/controllers/EmployeePosLevelController.ts +++ b/src/controllers/EmployeePosLevelController.ts @@ -176,6 +176,7 @@ export class EmployeePosLevelController extends Controller { const mapEmpPosLevel = { id: getEmpPosLevel.id, posLevelName: getEmpPosLevel.posLevelName, + posTypeId: getEmpPosLevel.posType == null ? null : getEmpPosLevel.posType.id, posTypeName: getEmpPosLevel.posType == null ? null : getEmpPosLevel.posType.posTypeName, //กลุ่มงาน commander: null, //ผู้มีอำนาจสั่งบรรจุ }; @@ -197,6 +198,7 @@ export class EmployeePosLevelController extends Controller { const mapEmpPosLevel = empPosLevel.map((item) => ({ id: item.id, posLevelName: item.posLevelName, + posTypeId: item.posType == null ? null : item.posType.id, posTypeName: item.posType == null ? null : item.posType.posTypeName, //กลุ่มงาน commander: null, //ผู้มีอำนาจสั่งบรรจุ })); diff --git a/src/controllers/EmployeePosTypeController.ts b/src/controllers/EmployeePosTypeController.ts index d20e2206..08b9859a 100644 --- a/src/controllers/EmployeePosTypeController.ts +++ b/src/controllers/EmployeePosTypeController.ts @@ -154,7 +154,7 @@ export class EmployeePosTypeController extends Controller { async GetEmpTypeById(@Path() id: string) { const getEmpPosType = await this.employeePosTypeRepository.findOne({ relations: ["posLevels"], - select: ["id", "posTypeName", "posTypeRank"], + select: ["id", "posTypeName", "posTypeRank", "posTypeShortName"], where: { id: id }, }); if (!getEmpPosType) { @@ -165,6 +165,7 @@ export class EmployeePosTypeController extends Controller { id: getEmpPosType.id, posTypeName: getEmpPosType.posTypeName, posTypeRank: getEmpPosType.posTypeRank, + posTypeShortName: getEmpPosType.posTypeShortName, posLevels: getEmpPosType.posLevels.map((empPosLevel) => ({ id: empPosLevel.id, posLevelName: empPosLevel.posLevelName, @@ -185,13 +186,14 @@ export class EmployeePosTypeController extends Controller { async GetEmpPosType() { const empPosType = await this.employeePosTypeRepository.find({ relations: ["posLevels"], - select: ["id", "posTypeName", "posTypeRank"], + select: ["id", "posTypeName", "posTypeRank", "posTypeShortName"], }); const mapEmpPosType = empPosType.map((item) => ({ id: item.id, posTypeName: item.posTypeName, posTypeRank: item.posTypeRank, + posTypeShortName: item.posTypeShortName, posLevels: item.posLevels.map((empPosLevel) => ({ id: empPosLevel.id, posLevelName: empPosLevel.posLevelName, diff --git a/src/controllers/InsigniaController.ts b/src/controllers/InsigniaController.ts index c1355f2d..a0069f44 100644 --- a/src/controllers/InsigniaController.ts +++ b/src/controllers/InsigniaController.ts @@ -24,7 +24,7 @@ import { Equal, ILike, In, IsNull, Like, Not, Brackets, Between } from "typeorm" import { InsigniaType, CreateInsigniaType, UpdateInsigniaType } from "../entities/InsigniaType"; import { Insignia, CreateInsignias, UpdateInsignias } from "../entities/Insignia"; -@Route("api/v1/org/insignia/Insignias") +@Route("api/v1/org/insignia/insignia") @Tags("Insignia") @Security("bearerAuth") @Response( @@ -180,10 +180,9 @@ export class InsigniaController extends Controller { const insigniaAll = await this.insigniaRepository.find({ relations: ["insigniaType"], select: ["id", "name", "shortName", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive", "note"], + order: { "level": "ASC" } }); - if (!insigniaAll) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลเครื่องราชอิสริยาภรณ์นี้"); - } + const mapInsigniaAll = insigniaAll.map((item) => ({ id: item.id, name: item.name, diff --git a/src/controllers/InsigniaTypeController.ts b/src/controllers/InsigniaTypeController.ts index cfd8ec86..164aaf93 100644 --- a/src/controllers/InsigniaTypeController.ts +++ b/src/controllers/InsigniaTypeController.ts @@ -132,6 +132,22 @@ export class InsigniaTypeController extends Controller { return new HttpSuccess(); } + /** + * API รายการลำดับชั้นเครื่องราชอิสริยาภรณ์ Active + * + * @summary ORG_ - รายการลำดับชั้นเครื่องราชอิสริยาภรณ์ Active (ADMIN) # + * + */ + @Get("active") + async GetInsigniaType_Active() { + const insigniaType_Active = await this.insigniaTypeRepository.find({ + select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"], + where: { isActive: true }, + order: { "name": "ASC" } + }); + return new HttpSuccess(insigniaType_Active); + } + /** * API รายละเอียดข้อมูลลำดับชั้นเครื่องราชอิสริยาภรณ์ * @@ -142,6 +158,7 @@ export class InsigniaTypeController extends Controller { @Get("{id}") async GetInsigniaTypeById(@Path() id: string) { const insigniaType = await this.insigniaTypeRepository.findOne({ + relations: ["insignias"], select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"], where: { id: id }, }); @@ -159,13 +176,10 @@ export class InsigniaTypeController extends Controller { */ @Get("") async GetInsigniaType() { - const insigniaTypeAll = await this.insigniaTypeRepository.find({ - select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"] + select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"], + order: { "name": "ASC" } }); - if (!insigniaTypeAll) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลลำดับชั้นเครื่องราชอิสริยาภรณ์ นี้"); - } return new HttpSuccess(insigniaTypeAll); } } From a069c81d41fa8c68b25dd6752a97870018cf6d4b Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 14 Mar 2024 14:02:17 +0700 Subject: [PATCH 2/2] =?UTF-8?q?=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88?= =?UTF-8?q?=E0=B8=A1=E0=B8=9F=E0=B8=B4=E0=B8=A5=E0=B8=94=E0=B9=8C=20employ?= =?UTF-8?q?eePosLevel.posLevelAuthority?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/EmployeePosLevelController.ts | 8 ++++---- src/entities/EmployeePosLevel.ts | 20 ++++++++++++++++++- ...lumn_employeePosLevel-posLevelAuthority.ts | 14 +++++++++++++ 3 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 src/migration/1710399617760-add_column_employeePosLevel-posLevelAuthority.ts diff --git a/src/controllers/EmployeePosLevelController.ts b/src/controllers/EmployeePosLevelController.ts index b43d6d56..89de4730 100644 --- a/src/controllers/EmployeePosLevelController.ts +++ b/src/controllers/EmployeePosLevelController.ts @@ -167,7 +167,7 @@ export class EmployeePosLevelController extends Controller { async GetEmpLevelById(@Path() id: string) { const getEmpPosLevel = await this.employeePosLevelRepository.findOne({ relations: ["posType"], - select: ["id", "posLevelName", "posLevelRank"], + select: ["id", "posLevelName", "posLevelRank", "posLevelAuthority"], where: { id: id }, }); if (!getEmpPosLevel) { @@ -178,7 +178,7 @@ export class EmployeePosLevelController extends Controller { posLevelName: getEmpPosLevel.posLevelName, posTypeId: getEmpPosLevel.posType == null ? null : getEmpPosLevel.posType.id, posTypeName: getEmpPosLevel.posType == null ? null : getEmpPosLevel.posType.posTypeName, //กลุ่มงาน - commander: null, //ผู้มีอำนาจสั่งบรรจุ + posLevelAuthority: getEmpPosLevel.posLevelAuthority, //ผู้มีอำนาจสั่งบรรจุ }; return new HttpSuccess(mapEmpPosLevel); } @@ -193,14 +193,14 @@ export class EmployeePosLevelController extends Controller { async GetEmpPosLevel() { const empPosLevel = await this.employeePosLevelRepository.find({ relations: ["posType"], - select: ["id", "posLevelName", "posLevelRank"], + select: ["id", "posLevelName", "posLevelRank", "posLevelAuthority"], }); const mapEmpPosLevel = empPosLevel.map((item) => ({ id: item.id, posLevelName: item.posLevelName, posTypeId: item.posType == null ? null : item.posType.id, posTypeName: item.posType == null ? null : item.posType.posTypeName, //กลุ่มงาน - commander: null, //ผู้มีอำนาจสั่งบรรจุ + posLevelAuthority: item.posLevelAuthority, //ผู้มีอำนาจสั่งบรรจุ })); return new HttpSuccess(mapEmpPosLevel); } diff --git a/src/entities/EmployeePosLevel.ts b/src/entities/EmployeePosLevel.ts index ae3c1713..6380ac04 100644 --- a/src/entities/EmployeePosLevel.ts +++ b/src/entities/EmployeePosLevel.ts @@ -3,6 +3,11 @@ import { EntityBase } from "./base/Base"; import { EmployeePosDict } from "./EmployeePosDict"; import { EmployeePosType } from "./EmployeePosType"; +enum EmployeePosLevelAuthoritys { + HEAD = "HEAD", + DEPUTY = "DEPUTY", + GOVERNOR = "GOVERNOR", +} @Entity("employeePosLevel") export class EmployeePosLevel extends EntityBase { @Column({ @@ -17,6 +22,16 @@ export class EmployeePosLevel extends EntityBase { }) posLevelRank: number; + @Column({ + nullable: true, + comment: + "ผู้มีอำนาจสั่งบรรจุของระดับนี้ head = หัวหน้าหน่วยงาน , deputy = ปลัด , governor = ผู้ว่าฯ", + type: "enum", + enum: EmployeePosLevelAuthoritys, + default: null, + }) + posLevelAuthority: EmployeePosLevelAuthoritys; + @Column({ length: 40, comment: "คีย์นอก(FK)ของตาราง employeePosType", @@ -38,8 +53,11 @@ export class CreateEmployeePosLevel { @Column() posLevelRank: number; + @Column() + posLevelAuthority: string; + @Column("uuid") posTypeId: string; } -export type UpdateEmployeePosLevel = Partial; +export type UpdateEmployeePosLevel = Partial & { posLevelAuthority: EmployeePosLevelAuthoritys }; diff --git a/src/migration/1710399617760-add_column_employeePosLevel-posLevelAuthority.ts b/src/migration/1710399617760-add_column_employeePosLevel-posLevelAuthority.ts new file mode 100644 index 00000000..74dbf59f --- /dev/null +++ b/src/migration/1710399617760-add_column_employeePosLevel-posLevelAuthority.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class AddColumnEmployeePosLevelPosLevelAuthority1710399617760 implements MigrationInterface { + name = 'AddColumnEmployeePosLevelPosLevelAuthority1710399617760' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`employeePosLevel\` ADD \`posLevelAuthority\` enum ('HEAD', 'DEPUTY', 'GOVERNOR') NULL COMMENT 'ผู้มีอำนาจสั่งบรรจุของระดับนี้ head = หัวหน้าหน่วยงาน , deputy = ปลัด , governor = ผู้ว่าฯ'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`employeePosLevel\` DROP COLUMN \`posLevelAuthority\``); + } + +}