Merge branch 'develop' into adiDev

This commit is contained in:
AdisakKanthawilang 2024-03-14 14:19:15 +07:00
commit 6dc30ecf14
6 changed files with 65 additions and 16 deletions

View file

@ -167,7 +167,7 @@ export class EmployeePosLevelController extends Controller {
async GetEmpLevelById(@Path() id: string) { async GetEmpLevelById(@Path() id: string) {
const getEmpPosLevel = await this.employeePosLevelRepository.findOne({ const getEmpPosLevel = await this.employeePosLevelRepository.findOne({
relations: ["posType"], relations: ["posType"],
select: ["id", "posLevelName", "posLevelRank"], select: ["id", "posLevelName", "posLevelRank", "posLevelAuthority"],
where: { id: id }, where: { id: id },
}); });
if (!getEmpPosLevel) { if (!getEmpPosLevel) {
@ -176,8 +176,9 @@ export class EmployeePosLevelController extends Controller {
const mapEmpPosLevel = { const mapEmpPosLevel = {
id: getEmpPosLevel.id, id: getEmpPosLevel.id,
posLevelName: getEmpPosLevel.posLevelName, posLevelName: getEmpPosLevel.posLevelName,
posTypeId: getEmpPosLevel.posType == null ? null : getEmpPosLevel.posType.id,
posTypeName: getEmpPosLevel.posType == null ? null : getEmpPosLevel.posType.posTypeName, //กลุ่มงาน posTypeName: getEmpPosLevel.posType == null ? null : getEmpPosLevel.posType.posTypeName, //กลุ่มงาน
commander: null, //ผู้มีอำนาจสั่งบรรจุ posLevelAuthority: getEmpPosLevel.posLevelAuthority, //ผู้มีอำนาจสั่งบรรจุ
}; };
return new HttpSuccess(mapEmpPosLevel); return new HttpSuccess(mapEmpPosLevel);
} }
@ -192,13 +193,14 @@ export class EmployeePosLevelController extends Controller {
async GetEmpPosLevel() { async GetEmpPosLevel() {
const empPosLevel = await this.employeePosLevelRepository.find({ const empPosLevel = await this.employeePosLevelRepository.find({
relations: ["posType"], relations: ["posType"],
select: ["id", "posLevelName", "posLevelRank"], select: ["id", "posLevelName", "posLevelRank", "posLevelAuthority"],
}); });
const mapEmpPosLevel = empPosLevel.map((item) => ({ const mapEmpPosLevel = empPosLevel.map((item) => ({
id: item.id, id: item.id,
posLevelName: item.posLevelName, posLevelName: item.posLevelName,
posTypeId: item.posType == null ? null : item.posType.id,
posTypeName: item.posType == null ? null : item.posType.posTypeName, //กลุ่มงาน posTypeName: item.posType == null ? null : item.posType.posTypeName, //กลุ่มงาน
commander: null, //ผู้มีอำนาจสั่งบรรจุ posLevelAuthority: item.posLevelAuthority, //ผู้มีอำนาจสั่งบรรจุ
})); }));
return new HttpSuccess(mapEmpPosLevel); return new HttpSuccess(mapEmpPosLevel);
} }

View file

@ -154,7 +154,7 @@ export class EmployeePosTypeController extends Controller {
async GetEmpTypeById(@Path() id: string) { async GetEmpTypeById(@Path() id: string) {
const getEmpPosType = await this.employeePosTypeRepository.findOne({ const getEmpPosType = await this.employeePosTypeRepository.findOne({
relations: ["posLevels"], relations: ["posLevels"],
select: ["id", "posTypeName", "posTypeRank"], select: ["id", "posTypeName", "posTypeRank", "posTypeShortName"],
where: { id: id }, where: { id: id },
}); });
if (!getEmpPosType) { if (!getEmpPosType) {
@ -165,6 +165,7 @@ export class EmployeePosTypeController extends Controller {
id: getEmpPosType.id, id: getEmpPosType.id,
posTypeName: getEmpPosType.posTypeName, posTypeName: getEmpPosType.posTypeName,
posTypeRank: getEmpPosType.posTypeRank, posTypeRank: getEmpPosType.posTypeRank,
posTypeShortName: getEmpPosType.posTypeShortName,
posLevels: getEmpPosType.posLevels.map((empPosLevel) => ({ posLevels: getEmpPosType.posLevels.map((empPosLevel) => ({
id: empPosLevel.id, id: empPosLevel.id,
posLevelName: empPosLevel.posLevelName, posLevelName: empPosLevel.posLevelName,
@ -185,13 +186,14 @@ export class EmployeePosTypeController extends Controller {
async GetEmpPosType() { async GetEmpPosType() {
const empPosType = await this.employeePosTypeRepository.find({ const empPosType = await this.employeePosTypeRepository.find({
relations: ["posLevels"], relations: ["posLevels"],
select: ["id", "posTypeName", "posTypeRank"], select: ["id", "posTypeName", "posTypeRank", "posTypeShortName"],
}); });
const mapEmpPosType = empPosType.map((item) => ({ const mapEmpPosType = empPosType.map((item) => ({
id: item.id, id: item.id,
posTypeName: item.posTypeName, posTypeName: item.posTypeName,
posTypeRank: item.posTypeRank, posTypeRank: item.posTypeRank,
posTypeShortName: item.posTypeShortName,
posLevels: item.posLevels.map((empPosLevel) => ({ posLevels: item.posLevels.map((empPosLevel) => ({
id: empPosLevel.id, id: empPosLevel.id,
posLevelName: empPosLevel.posLevelName, posLevelName: empPosLevel.posLevelName,

View file

@ -24,7 +24,7 @@ import { Equal, ILike, In, IsNull, Like, Not, Brackets, Between } from "typeorm"
import { InsigniaType, CreateInsigniaType, UpdateInsigniaType } from "../entities/InsigniaType"; import { InsigniaType, CreateInsigniaType, UpdateInsigniaType } from "../entities/InsigniaType";
import { Insignia, CreateInsignias, UpdateInsignias } from "../entities/Insignia"; import { Insignia, CreateInsignias, UpdateInsignias } from "../entities/Insignia";
@Route("api/v1/org/insignia/Insignias") @Route("api/v1/org/insignia/insignia")
@Tags("Insignia") @Tags("Insignia")
@Security("bearerAuth") @Security("bearerAuth")
@Response( @Response(
@ -180,10 +180,9 @@ export class InsigniaController extends Controller {
const insigniaAll = await this.insigniaRepository.find({ const insigniaAll = await this.insigniaRepository.find({
relations: ["insigniaType"], relations: ["insigniaType"],
select: ["id", "name", "shortName", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive", "note"], 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) => ({ const mapInsigniaAll = insigniaAll.map((item) => ({
id: item.id, id: item.id,
name: item.name, name: item.name,

View file

@ -132,6 +132,22 @@ export class InsigniaTypeController extends Controller {
return new HttpSuccess(); 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 * API
* *
@ -142,6 +158,7 @@ export class InsigniaTypeController extends Controller {
@Get("{id}") @Get("{id}")
async GetInsigniaTypeById(@Path() id: string) { async GetInsigniaTypeById(@Path() id: string) {
const insigniaType = await this.insigniaTypeRepository.findOne({ const insigniaType = await this.insigniaTypeRepository.findOne({
relations: ["insignias"],
select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"], select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"],
where: { id: id }, where: { id: id },
}); });
@ -159,13 +176,10 @@ export class InsigniaTypeController extends Controller {
*/ */
@Get("") @Get("")
async GetInsigniaType() { async GetInsigniaType() {
const insigniaTypeAll = await this.insigniaTypeRepository.find({ 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); return new HttpSuccess(insigniaTypeAll);
} }
} }

View file

@ -3,6 +3,11 @@ import { EntityBase } from "./base/Base";
import { EmployeePosDict } from "./EmployeePosDict"; import { EmployeePosDict } from "./EmployeePosDict";
import { EmployeePosType } from "./EmployeePosType"; import { EmployeePosType } from "./EmployeePosType";
enum EmployeePosLevelAuthoritys {
HEAD = "HEAD",
DEPUTY = "DEPUTY",
GOVERNOR = "GOVERNOR",
}
@Entity("employeePosLevel") @Entity("employeePosLevel")
export class EmployeePosLevel extends EntityBase { export class EmployeePosLevel extends EntityBase {
@Column({ @Column({
@ -17,6 +22,16 @@ export class EmployeePosLevel extends EntityBase {
}) })
posLevelRank: number; posLevelRank: number;
@Column({
nullable: true,
comment:
"ผู้มีอำนาจสั่งบรรจุของระดับนี้ head = หัวหน้าหน่วยงาน , deputy = ปลัด , governor = ผู้ว่าฯ",
type: "enum",
enum: EmployeePosLevelAuthoritys,
default: null,
})
posLevelAuthority: EmployeePosLevelAuthoritys;
@Column({ @Column({
length: 40, length: 40,
comment: "คีย์นอก(FK)ของตาราง employeePosType", comment: "คีย์นอก(FK)ของตาราง employeePosType",
@ -38,8 +53,11 @@ export class CreateEmployeePosLevel {
@Column() @Column()
posLevelRank: number; posLevelRank: number;
@Column()
posLevelAuthority: string;
@Column("uuid") @Column("uuid")
posTypeId: string; posTypeId: string;
} }
export type UpdateEmployeePosLevel = Partial<CreateEmployeePosLevel>; export type UpdateEmployeePosLevel = Partial<CreateEmployeePosLevel> & { posLevelAuthority: EmployeePosLevelAuthoritys };

View file

@ -0,0 +1,14 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class AddColumnEmployeePosLevelPosLevelAuthority1710399617760 implements MigrationInterface {
name = 'AddColumnEmployeePosLevelPosLevelAuthority1710399617760'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`employeePosLevel\` ADD \`posLevelAuthority\` enum ('HEAD', 'DEPUTY', 'GOVERNOR') NULL COMMENT 'ผู้มีอำนาจสั่งบรรจุของระดับนี้ head = หัวหน้าหน่วยงาน , deputy = ปลัด , governor = ผู้ว่าฯ'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`employeePosLevel\` DROP COLUMN \`posLevelAuthority\``);
}
}