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) {
const getEmpPosLevel = await this.employeePosLevelRepository.findOne({
relations: ["posType"],
select: ["id", "posLevelName", "posLevelRank"],
select: ["id", "posLevelName", "posLevelRank", "posLevelAuthority"],
where: { id: id },
});
if (!getEmpPosLevel) {
@ -176,8 +176,9 @@ 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, //ผู้มีอำนาจสั่งบรรจุ
posLevelAuthority: getEmpPosLevel.posLevelAuthority, //ผู้มีอำนาจสั่งบรรจุ
};
return new HttpSuccess(mapEmpPosLevel);
}
@ -192,13 +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);
}

View file

@ -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,

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 { 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,

View file

@ -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);
}
}

View file

@ -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<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\``);
}
}