Merge branch 'develop' into adiDev
This commit is contained in:
commit
543ef19664
7 changed files with 351 additions and 10 deletions
50
src/controllers/ChangePositionController.ts
Normal file
50
src/controllers/ChangePositionController.ts
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
import {
|
||||||
|
Controller,
|
||||||
|
Get,
|
||||||
|
Post,
|
||||||
|
Put,
|
||||||
|
Delete,
|
||||||
|
Patch,
|
||||||
|
Route,
|
||||||
|
Security,
|
||||||
|
Tags,
|
||||||
|
Body,
|
||||||
|
Path,
|
||||||
|
Request,
|
||||||
|
Example,
|
||||||
|
SuccessResponse,
|
||||||
|
Response,
|
||||||
|
Query,
|
||||||
|
} from "tsoa";
|
||||||
|
import { AppDataSource } from "../database/data-source";
|
||||||
|
import HttpSuccess from "../interfaces/http-success";
|
||||||
|
import HttpStatusCode from "../interfaces/http-status";
|
||||||
|
import { Equal, ILike, In, IsNull, Like, Not, Brackets, MoreThan } from "typeorm";
|
||||||
|
import { ChangePosition } from "../entities/ChangePosition";
|
||||||
|
|
||||||
|
@Route("api/v1/placement/change-position")
|
||||||
|
@Tags("Switch")
|
||||||
|
@Security("bearerAuth")
|
||||||
|
@Response(
|
||||||
|
HttpStatusCode.INTERNAL_SERVER_ERROR,
|
||||||
|
"เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง",
|
||||||
|
)
|
||||||
|
@SuccessResponse(HttpStatusCode.OK, "สำเร็จ")
|
||||||
|
export class ChangePositionController extends Controller {
|
||||||
|
private ChangePositionRepository = AppDataSource.getRepository(ChangePosition);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API รายการออกคำสั่งย้ายสับเปลี่ยนตำแหน่ง
|
||||||
|
*
|
||||||
|
* @summary API รายการออกคำสั่งย้ายสับเปลี่ยนตำแหน่ง
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("")
|
||||||
|
async GetChangePositionLists() {
|
||||||
|
|
||||||
|
const data = await this.ChangePositionRepository.find();
|
||||||
|
return new HttpSuccess(data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -22,6 +22,18 @@ export class ProfileAvatarController extends Controller {
|
||||||
return new HttpSuccess(lists);
|
return new HttpSuccess(lists);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Get("profileId/{id}")
|
||||||
|
async getProfile(@Path() id: string) {
|
||||||
|
const profile = await this.profileRepository.findOne({
|
||||||
|
select: ["avatar", "avatarName"],
|
||||||
|
where: { id },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!profile) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
||||||
|
|
||||||
|
return new HttpSuccess(profile);
|
||||||
|
}
|
||||||
|
|
||||||
@Get("select/{profileId}/{id}")
|
@Get("select/{profileId}/{id}")
|
||||||
public async selectAvatar(@Path() profileId: string, @Path() id: string) {
|
public async selectAvatar(@Path() profileId: string, @Path() id: string) {
|
||||||
const result = await this.avatarRepository.findOneBy({ id: id });
|
const result = await this.avatarRepository.findOneBy({ id: id });
|
||||||
|
|
|
||||||
|
|
@ -496,15 +496,27 @@ export class ProfileController extends Controller {
|
||||||
|
|
||||||
if (!profile) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
if (!profile) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
||||||
|
|
||||||
const _caregiver = await this.profileRepo.find({
|
const _caregiver = await this.profileRepo
|
||||||
relations: { posLevel: true, posType: true },
|
.createQueryBuilder("profile")
|
||||||
});
|
.leftJoinAndSelect("profile.posLevel", "posLevel")
|
||||||
const _commander = await this.profileRepo.find({
|
.leftJoinAndSelect("profile.posType", "posType")
|
||||||
relations: { posLevel: true, posType: true },
|
.skip((1 - 1) * 20)
|
||||||
});
|
.take(20)
|
||||||
const _chairman = await this.profileRepo.find({
|
.getMany();
|
||||||
relations: { posLevel: true, posType: true },
|
const _commander = await this.profileRepo
|
||||||
});
|
.createQueryBuilder("profile")
|
||||||
|
.leftJoinAndSelect("profile.posLevel", "posLevel")
|
||||||
|
.leftJoinAndSelect("profile.posType", "posType")
|
||||||
|
.skip((1 - 1) * 20)
|
||||||
|
.take(20)
|
||||||
|
.getMany();
|
||||||
|
const _chairman = await this.profileRepo
|
||||||
|
.createQueryBuilder("profile")
|
||||||
|
.leftJoinAndSelect("profile.posLevel", "posLevel")
|
||||||
|
.leftJoinAndSelect("profile.posType", "posType")
|
||||||
|
.skip((1 - 1) * 20)
|
||||||
|
.take(20)
|
||||||
|
.getMany();
|
||||||
|
|
||||||
const caregiver = _caregiver.map((_data) => ({
|
const caregiver = _caregiver.map((_data) => ({
|
||||||
id: _data.id,
|
id: _data.id,
|
||||||
|
|
|
||||||
|
|
@ -556,7 +556,11 @@ export class ProfileEmployeeController extends Controller {
|
||||||
const exists =
|
const exists =
|
||||||
!!body.citizenId &&
|
!!body.citizenId &&
|
||||||
(await this.profileRepo.findOne({
|
(await this.profileRepo.findOne({
|
||||||
where: { id: Not(id), citizenId: body.citizenId },
|
where: {
|
||||||
|
id: Not(id),
|
||||||
|
citizenId: body.citizenId,
|
||||||
|
employeeClass: String(body.employeeClass)
|
||||||
|
},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (exists) {
|
if (exists) {
|
||||||
|
|
|
||||||
45
src/entities/ChangePosition.ts
Normal file
45
src/entities/ChangePosition.ts
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
import { Entity, Column, ManyToOne, JoinColumn, OneToMany } from "typeorm";
|
||||||
|
import { EntityBase } from "./base/Base";
|
||||||
|
import { ProfileChangePosition } from "./ProfileChangePosition";
|
||||||
|
|
||||||
|
@Entity("changePosition")
|
||||||
|
export class ChangePosition extends EntityBase {
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อรอบการย้ายสับเปลี่ยนตำแหน่ง",
|
||||||
|
type: "text",
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
type: "datetime",
|
||||||
|
comment: "วันที่ดำเนินการ",
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
date: Date;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "สถานะ",
|
||||||
|
type: "text",
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
status: string;
|
||||||
|
|
||||||
|
@OneToMany(() => ProfileChangePosition, (x) => x.profile)
|
||||||
|
profileChangePosition: ProfileChangePosition[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export class CreateChangePosition {
|
||||||
|
name: string;
|
||||||
|
date?: Date;
|
||||||
|
status?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type UpdateChangePosition = {
|
||||||
|
name: string;
|
||||||
|
date?: Date;
|
||||||
|
status?: string;
|
||||||
|
};
|
||||||
200
src/entities/ProfileChangePosition.ts
Normal file
200
src/entities/ProfileChangePosition.ts
Normal file
|
|
@ -0,0 +1,200 @@
|
||||||
|
import { Entity, Column, ManyToOne, JoinColumn } from "typeorm";
|
||||||
|
import { EntityBase } from "./base/Base";
|
||||||
|
import { ChangePosition } from "./ChangePosition";
|
||||||
|
|
||||||
|
@Entity("profileChangePosition")
|
||||||
|
export class ProfileChangePosition extends EntityBase {
|
||||||
|
@Column({ nullable: true, comment: "เหตุผลที่รับโอนราชการ", type: "text", default: null })
|
||||||
|
reason: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "วุฒิ/สาขาเดิม", default: null })
|
||||||
|
educationOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "สังกัดเดิม", default: null })
|
||||||
|
organizationPositionOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "สังกัดเดิม", default: null })
|
||||||
|
organizationOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ตำแหน่งเดิม", default: null })
|
||||||
|
positionOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท", default: null })
|
||||||
|
positionTypeOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ", default: null })
|
||||||
|
positionLevelOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่", default: null })
|
||||||
|
positionNumberOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน", type: "double", default: null })
|
||||||
|
amountOld: number;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "profile Id", default: null })
|
||||||
|
profileId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "คำนำหน้า", default: null })
|
||||||
|
prefix: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อ", default: null })
|
||||||
|
firstName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "นามสกุล", default: null })
|
||||||
|
lastName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "เลขบัตรประชาชน", default: null })
|
||||||
|
citizenId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน root", default: null })
|
||||||
|
root: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน root", default: null })
|
||||||
|
rootId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน root", default: null })
|
||||||
|
rootShortName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child1", default: null })
|
||||||
|
child1: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child1", default: null })
|
||||||
|
child1Id: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child1", default: null })
|
||||||
|
child1ShortName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child2", default: null })
|
||||||
|
child2: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child2", default: null })
|
||||||
|
child2Id: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child2", default: null })
|
||||||
|
child2ShortName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child3", default: null })
|
||||||
|
child3: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child3", default: null })
|
||||||
|
child3Id: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child3", default: null })
|
||||||
|
child3ShortName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child4", default: null })
|
||||||
|
child4: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child4", default: null })
|
||||||
|
child4Id: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child4", default: null })
|
||||||
|
child4ShortName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ระดับโครงสร้าง", type: "int", default: null })
|
||||||
|
node: number;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id โครงสร้าง", type: "uuid", default: null })
|
||||||
|
nodeId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id อัตรากำลัง", default: null })
|
||||||
|
posmasterId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id revision", default: null })
|
||||||
|
orgRevisionId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id ตำแหน่ง", default: null })
|
||||||
|
positionId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "สายงาน", default: null })
|
||||||
|
positionField: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "เลขที่ตำแหน่ง", type: "int", default: null })
|
||||||
|
posMasterNo: number;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อตำแหน่งในสายงาน", default: null })
|
||||||
|
position: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id ประเภทตำแหน่ง", default: null })
|
||||||
|
posTypeId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อประเภทตำแหน่ง", default: null })
|
||||||
|
posTypeName: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id ระดับตำแหน่ง", default: null })
|
||||||
|
posLevelId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อระดับตำแหน่ง", default: null })
|
||||||
|
posLevelName: string;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน root old", default: null })
|
||||||
|
rootOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน root old", default: null })
|
||||||
|
rootOldId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน root old", default: null })
|
||||||
|
rootShortNameOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child1 old", default: null })
|
||||||
|
child1Old: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child1 old", default: null })
|
||||||
|
child1OldId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child1 old", default: null })
|
||||||
|
child1ShortNameOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child2 old", default: null })
|
||||||
|
child2Old: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child2 old", default: null })
|
||||||
|
child2OldId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child2 old", default: null })
|
||||||
|
child2ShortNameOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child3 old", default: null })
|
||||||
|
child3Old: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child3 old", default: null })
|
||||||
|
child3OldId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child3 old", default: null })
|
||||||
|
child3ShortNameOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อหน่วยงาน child4 old", default: null })
|
||||||
|
child4Old: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id หน่วยงาน child4 old", default: null })
|
||||||
|
child4OldId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อย่อหน่วยงาน child4 old", default: null })
|
||||||
|
child4ShortNameOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "เลขที่ตำแหน่ง old", type: "int", default: null })
|
||||||
|
posMasterNoOld: number;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id ประเภทตำแหน่ง old", default: null })
|
||||||
|
posTypeOldId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อประเภทตำแหน่ง old", default: null })
|
||||||
|
posTypeNameOld: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "id ระดับตำแหน่ง old", default: null })
|
||||||
|
posLevelOldId: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, comment: "ชื่อระดับตำแหน่ง old", default: null })
|
||||||
|
posLevelNameOld: string;
|
||||||
|
|
||||||
|
@Column({nullable: true, length: 40, comment: "คีย์นอก(FK)ของตาราง ChangePosition", default: null })
|
||||||
|
changePositionId: string;
|
||||||
|
|
||||||
|
@ManyToOne(() => ChangePosition, (v) => v.profileChangePosition)
|
||||||
|
@JoinColumn({ name: "changePositionId" })
|
||||||
|
profile: ChangePosition;
|
||||||
|
}
|
||||||
18
src/migration/1718097497764-add_table_change_position.ts
Normal file
18
src/migration/1718097497764-add_table_change_position.ts
Normal file
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue