no message
This commit is contained in:
parent
5f5942089a
commit
d9c98f4f25
7 changed files with 169 additions and 56 deletions
|
|
@ -1469,7 +1469,7 @@ export class DevelopmentController extends Controller {
|
|||
? item.employeePosLevel.posLevelName
|
||||
: null,
|
||||
posExecutive: item.posExecutive,
|
||||
org: item.root,
|
||||
org: item.org,
|
||||
trainingDays: item.trainingDays,
|
||||
commandNumber: item.order,
|
||||
commandDate: item.dateOrder,
|
||||
|
|
|
|||
|
|
@ -35,6 +35,34 @@ export class DevelopmentEmployeeHistoryController extends Controller {
|
|||
private posTypeRepository = AppDataSource.getRepository(EmployeePosType);
|
||||
private posLevelRepository = AppDataSource.getRepository(EmployeePosLevel);
|
||||
|
||||
/**
|
||||
* API list หน่วยงาน
|
||||
*
|
||||
* @summary DEV_00 - list หน่วยงาน #
|
||||
*
|
||||
*/
|
||||
@Get("org/{year}")
|
||||
async GetOrgDevelopemt(@Path() year: number) {
|
||||
const type = "EMPLOYEE";
|
||||
const getOrg = await this.developmentHistoryRepository
|
||||
.createQueryBuilder("developmentHistory")
|
||||
.leftJoinAndSelect("developmentHistory.development", "development")
|
||||
.andWhere("developmentHistory.root IS NOT NULL")
|
||||
.andWhere(year > 0 ? "development.year LIKE :year" : "1=1", {
|
||||
year: `${year.toString()}`,
|
||||
})
|
||||
.andWhere("developmentHistory.type LIKE :type", {
|
||||
type: `${type}`,
|
||||
})
|
||||
.select("developmentHistory.root")
|
||||
.groupBy("developmentHistory.root")
|
||||
.getRawMany();
|
||||
if (getOrg.length > 0) {
|
||||
return new HttpSuccess(getOrg.map((x) => x.developmentHistory_root));
|
||||
}
|
||||
return new HttpSuccess(getOrg);
|
||||
}
|
||||
|
||||
/**
|
||||
* API เพิ่มประวัติการฝึกอบรม/ดูงาน
|
||||
*
|
||||
|
|
@ -187,12 +215,16 @@ export class DevelopmentEmployeeHistoryController extends Controller {
|
|||
* @summary DEV_009 - รายการประวัติการฝึกอบรม/ดูงาน #9
|
||||
*
|
||||
*/
|
||||
@Get()
|
||||
@Post("filter")
|
||||
async GetDevelopmentHistoryLists(
|
||||
@Query("page") page: number = 1,
|
||||
@Query("pageSize") pageSize: number = 10,
|
||||
@Query("keyword") keyword?: string,
|
||||
@Query("year") year?: number,
|
||||
@Body()
|
||||
body: {
|
||||
page: number;
|
||||
pageSize: number;
|
||||
keyword?: string;
|
||||
year?: number;
|
||||
root: string | null;
|
||||
},
|
||||
) {
|
||||
const type = "EMPLOYEE";
|
||||
const [development, total] = await AppDataSource.getRepository(DevelopmentHistory)
|
||||
|
|
@ -201,77 +233,84 @@ export class DevelopmentEmployeeHistoryController extends Controller {
|
|||
.leftJoinAndSelect("developmentHistory.employeePosLevel", "employeePosLevel")
|
||||
.leftJoinAndSelect("developmentHistory.employeePosType", "employeePosType")
|
||||
.andWhere(
|
||||
year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1",
|
||||
{ year: year },
|
||||
body.year != 0 && body.year != null && body.year != undefined
|
||||
? "development.year = :year"
|
||||
: "1=1",
|
||||
{ year: body.year },
|
||||
)
|
||||
.andWhere(body.root != null ? "developmentHistory.root = :root" : "1=1", { root: body.root })
|
||||
.andWhere("developmentHistory.type = :type", { type: type })
|
||||
.andWhere(
|
||||
new Brackets((qb) => {
|
||||
qb.where(
|
||||
keyword != null && keyword != "" ? "developmentHistory.prefix LIKE :keyword" : "1=1",
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.prefix LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.firstName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.lastName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.position LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.position LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != "" ? "development.projectName LIKE :keyword" : "1=1",
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "development.projectName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "employeePosType.posTypeName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "employeePosLevel.posLevelName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
);
|
||||
}),
|
||||
)
|
||||
.orderBy("developmentHistory.createdAt", "DESC")
|
||||
.skip((page - 1) * pageSize)
|
||||
.take(pageSize)
|
||||
.skip((body.page - 1) * body.pageSize)
|
||||
.take(body.pageSize)
|
||||
.getManyAndCount();
|
||||
|
||||
const formattedData = development.map((item) => ({
|
||||
|
|
|
|||
|
|
@ -35,6 +35,34 @@ export class DevelopmentOfficerHistoryController extends Controller {
|
|||
private posTypeRepository = AppDataSource.getRepository(PosType);
|
||||
private posLevelRepository = AppDataSource.getRepository(PosLevel);
|
||||
|
||||
/**
|
||||
* API list หน่วยงาน
|
||||
*
|
||||
* @summary DEV_00 - list หน่วยงาน #
|
||||
*
|
||||
*/
|
||||
@Get("org/{year}")
|
||||
async GetOrgDevelopemt(@Path() year: number) {
|
||||
const type = "OFFICER";
|
||||
const getOrg = await this.developmentHistoryRepository
|
||||
.createQueryBuilder("developmentHistory")
|
||||
.leftJoinAndSelect("developmentHistory.development", "development")
|
||||
.andWhere("developmentHistory.root IS NOT NULL")
|
||||
.andWhere(year > 0 ? "development.year LIKE :year" : "1=1", {
|
||||
year: `${year.toString()}`,
|
||||
})
|
||||
.andWhere("developmentHistory.type LIKE :type", {
|
||||
type: `${type}`,
|
||||
})
|
||||
.select("developmentHistory.root")
|
||||
.groupBy("developmentHistory.root")
|
||||
.getRawMany();
|
||||
if (getOrg.length > 0) {
|
||||
return new HttpSuccess(getOrg.map((x) => x.developmentHistory_root));
|
||||
}
|
||||
return new HttpSuccess(getOrg);
|
||||
}
|
||||
|
||||
/**
|
||||
* API เพิ่มประวัติการฝึกอบรม/ดูงาน
|
||||
*
|
||||
|
|
@ -179,13 +207,16 @@ export class DevelopmentOfficerHistoryController extends Controller {
|
|||
* @summary DEV_009 - รายการประวัติการฝึกอบรม/ดูงาน #9
|
||||
*
|
||||
*/
|
||||
@Get()
|
||||
@Post("filter")
|
||||
async GetDevelopmentHistoryLists(
|
||||
@Query("page") page: number = 1,
|
||||
@Query("pageSize") pageSize: number = 10,
|
||||
@Query("keyword") keyword?: string,
|
||||
@Query("year") year?: number,
|
||||
@Query("root") root?: number,
|
||||
@Body()
|
||||
body: {
|
||||
page: number;
|
||||
pageSize: number;
|
||||
keyword?: string;
|
||||
year?: number;
|
||||
root: string | null;
|
||||
},
|
||||
) {
|
||||
const type = "OFFICER";
|
||||
const [development, total] = await AppDataSource.getRepository(DevelopmentHistory)
|
||||
|
|
@ -194,76 +225,87 @@ export class DevelopmentOfficerHistoryController extends Controller {
|
|||
.leftJoinAndSelect("developmentHistory.posLevel", "posLevel")
|
||||
.leftJoinAndSelect("developmentHistory.posType", "posType")
|
||||
.andWhere(
|
||||
year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1",
|
||||
{ year: year },
|
||||
body.year != 0 && body.year != null && body.year != undefined
|
||||
? "development.year = :year"
|
||||
: "1=1",
|
||||
{ year: body.year },
|
||||
)
|
||||
.andWhere(root != null && root != undefined ? "development.root = :root" : "1=1", {
|
||||
root: root,
|
||||
.andWhere(body.root != null && body.root != undefined ? "development.root = :root" : "1=1", {
|
||||
root: body.root,
|
||||
})
|
||||
.andWhere(body.root != null ? "developmentHistory.root = :root" : "1=1", { root: body.root })
|
||||
.andWhere("developmentHistory.type = :type", { type: type })
|
||||
.andWhere(
|
||||
new Brackets((qb) => {
|
||||
qb.where(
|
||||
keyword != null && keyword != "" ? "developmentHistory.prefix LIKE :keyword" : "1=1",
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.prefix LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.firstName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.lastName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.position LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != ""
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "developmentHistory.position LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != "" ? "development.projectName LIKE :keyword" : "1=1",
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "development.projectName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != "" ? "posType.posTypeName LIKE :keyword" : "1=1",
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "posType.posTypeName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
)
|
||||
.orWhere(
|
||||
keyword != null && keyword != "" ? "posLevel.posLevelName LIKE :keyword" : "1=1",
|
||||
body.keyword != null && body.keyword != ""
|
||||
? "posLevel.posLevelName LIKE :keyword"
|
||||
: "1=1",
|
||||
{
|
||||
keyword: `%${keyword}%`,
|
||||
keyword: `%${body.keyword}%`,
|
||||
},
|
||||
);
|
||||
}),
|
||||
)
|
||||
.orderBy("developmentHistory.createdAt", "DESC")
|
||||
.skip((page - 1) * pageSize)
|
||||
.take(pageSize)
|
||||
.skip((body.page - 1) * body.pageSize)
|
||||
.take(body.pageSize)
|
||||
.getManyAndCount();
|
||||
const formattedData = development.map((item) => ({
|
||||
id: item.id,
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ export class DevelopmentScholarshipController extends Controller {
|
|||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้");
|
||||
}
|
||||
const formattedData = {
|
||||
root: getDevelopment.root ? getDevelopment.root : null,
|
||||
org: getDevelopment.org ? getDevelopment.org : null,
|
||||
rank: getDevelopment.rank ? getDevelopment.rank : null,
|
||||
prefix: getDevelopment.prefix ? getDevelopment.prefix : null,
|
||||
firstName: getDevelopment.firstName ? getDevelopment.firstName : null,
|
||||
|
|
@ -367,7 +367,7 @@ export class DevelopmentScholarshipController extends Controller {
|
|||
"isGraduated",
|
||||
"graduatedDate",
|
||||
"graduatedReason",
|
||||
"root",
|
||||
"org",
|
||||
],
|
||||
});
|
||||
if (!getDevelopment) {
|
||||
|
|
|
|||
|
|
@ -22,6 +22,13 @@ export class DevelopmentHistory extends EntityBase {
|
|||
})
|
||||
root: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ชื่อหน่วยงานที่สังกัด",
|
||||
default: null,
|
||||
})
|
||||
org: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ชื่อย่อหน่วยงาน",
|
||||
|
|
|
|||
|
|
@ -19,6 +19,13 @@ export class DevelopmentScholarship extends EntityBase {
|
|||
})
|
||||
root: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ชื่อหน่วยงานที่สังกัด",
|
||||
default: null,
|
||||
})
|
||||
org: string;
|
||||
|
||||
@Column({
|
||||
nullable: true,
|
||||
comment: "ชื่อย่อหน่วยงาน",
|
||||
|
|
@ -529,6 +536,7 @@ export class DevelopmentScholarship extends EntityBase {
|
|||
export class CreateDevelopmentScholarship {
|
||||
rootId: string | null;
|
||||
root: string | null;
|
||||
org: string | null;
|
||||
orgRootShortName: string | null;
|
||||
orgRevisionId: string | null;
|
||||
profileId: string | null;
|
||||
|
|
@ -588,6 +596,7 @@ export class CreateDevelopmentScholarship {
|
|||
export class UpdateDevelopmentScholarship {
|
||||
rootId: string | null;
|
||||
root: string | null;
|
||||
org: string | null;
|
||||
orgRootShortName: string | null;
|
||||
orgRevisionId: string | null;
|
||||
profileId: string | null;
|
||||
|
|
|
|||
16
src/migration/1713347839774-update_table_devhis_add_org.ts
Normal file
16
src/migration/1713347839774-update_table_devhis_add_org.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class UpdateTableDevhisAddOrg1713347839774 implements MigrationInterface {
|
||||
name = 'UpdateTableDevhisAddOrg1713347839774'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`developmentHistory\` ADD \`org\` varchar(255) NULL COMMENT 'ชื่อหน่วยงานที่สังกัด'`);
|
||||
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` ADD \`org\` varchar(255) NULL COMMENT 'ชื่อหน่วยงานที่สังกัด'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE \`developmentScholarship\` DROP COLUMN \`org\``);
|
||||
await queryRunner.query(`ALTER TABLE \`developmentHistory\` DROP COLUMN \`org\``);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue