entity ย้ายสับเปลี่ยนตำแหน่ง

This commit is contained in:
Bright 2024-06-11 16:14:36 +07:00
parent 8e73b3317d
commit c1be9bc235
4 changed files with 292 additions and 1 deletions

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

View file

@ -556,7 +556,11 @@ export class ProfileEmployeeController extends Controller {
const exists =
!!body.citizenId &&
(await this.profileRepo.findOne({
where: { id: Not(id), citizenId: body.citizenId },
where: {
id: Not(id),
citizenId: body.citizenId,
employeeClass: String(body.employeeClass)
},
}));
if (exists) {

View file

@ -0,0 +1,37 @@
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;
@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;
};

View 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;
}