no message

This commit is contained in:
Kittapath 2024-04-17 17:31:07 +07:00
parent 5f5942089a
commit d9c98f4f25
7 changed files with 169 additions and 56 deletions

View file

@ -1469,7 +1469,7 @@ export class DevelopmentController extends Controller {
? item.employeePosLevel.posLevelName ? item.employeePosLevel.posLevelName
: null, : null,
posExecutive: item.posExecutive, posExecutive: item.posExecutive,
org: item.root, org: item.org,
trainingDays: item.trainingDays, trainingDays: item.trainingDays,
commandNumber: item.order, commandNumber: item.order,
commandDate: item.dateOrder, commandDate: item.dateOrder,

View file

@ -35,6 +35,34 @@ export class DevelopmentEmployeeHistoryController extends Controller {
private posTypeRepository = AppDataSource.getRepository(EmployeePosType); private posTypeRepository = AppDataSource.getRepository(EmployeePosType);
private posLevelRepository = AppDataSource.getRepository(EmployeePosLevel); 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 / * API /
* *
@ -187,12 +215,16 @@ export class DevelopmentEmployeeHistoryController extends Controller {
* @summary DEV_009 - / #9 * @summary DEV_009 - / #9
* *
*/ */
@Get() @Post("filter")
async GetDevelopmentHistoryLists( async GetDevelopmentHistoryLists(
@Query("page") page: number = 1, @Body()
@Query("pageSize") pageSize: number = 10, body: {
@Query("keyword") keyword?: string, page: number;
@Query("year") year?: number, pageSize: number;
keyword?: string;
year?: number;
root: string | null;
},
) { ) {
const type = "EMPLOYEE"; const type = "EMPLOYEE";
const [development, total] = await AppDataSource.getRepository(DevelopmentHistory) const [development, total] = await AppDataSource.getRepository(DevelopmentHistory)
@ -201,77 +233,84 @@ export class DevelopmentEmployeeHistoryController extends Controller {
.leftJoinAndSelect("developmentHistory.employeePosLevel", "employeePosLevel") .leftJoinAndSelect("developmentHistory.employeePosLevel", "employeePosLevel")
.leftJoinAndSelect("developmentHistory.employeePosType", "employeePosType") .leftJoinAndSelect("developmentHistory.employeePosType", "employeePosType")
.andWhere( .andWhere(
year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1", body.year != 0 && body.year != null && body.year != undefined
{ year: year }, ? "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("developmentHistory.type = :type", { type: type })
.andWhere( .andWhere(
new Brackets((qb) => { new Brackets((qb) => {
qb.where( 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( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.firstName LIKE :keyword" ? "developmentHistory.firstName LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.lastName LIKE :keyword" ? "developmentHistory.lastName LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.position LIKE :keyword" ? "developmentHistory.position LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.position LIKE :keyword" ? "developmentHistory.position LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .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( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "employeePosType.posTypeName LIKE :keyword" ? "employeePosType.posTypeName LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "employeePosLevel.posLevelName LIKE :keyword" ? "employeePosLevel.posLevelName LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
); );
}), }),
) )
.orderBy("developmentHistory.createdAt", "DESC") .orderBy("developmentHistory.createdAt", "DESC")
.skip((page - 1) * pageSize) .skip((body.page - 1) * body.pageSize)
.take(pageSize) .take(body.pageSize)
.getManyAndCount(); .getManyAndCount();
const formattedData = development.map((item) => ({ const formattedData = development.map((item) => ({

View file

@ -35,6 +35,34 @@ export class DevelopmentOfficerHistoryController extends Controller {
private posTypeRepository = AppDataSource.getRepository(PosType); private posTypeRepository = AppDataSource.getRepository(PosType);
private posLevelRepository = AppDataSource.getRepository(PosLevel); 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 / * API /
* *
@ -179,13 +207,16 @@ export class DevelopmentOfficerHistoryController extends Controller {
* @summary DEV_009 - / #9 * @summary DEV_009 - / #9
* *
*/ */
@Get() @Post("filter")
async GetDevelopmentHistoryLists( async GetDevelopmentHistoryLists(
@Query("page") page: number = 1, @Body()
@Query("pageSize") pageSize: number = 10, body: {
@Query("keyword") keyword?: string, page: number;
@Query("year") year?: number, pageSize: number;
@Query("root") root?: number, keyword?: string;
year?: number;
root: string | null;
},
) { ) {
const type = "OFFICER"; const type = "OFFICER";
const [development, total] = await AppDataSource.getRepository(DevelopmentHistory) const [development, total] = await AppDataSource.getRepository(DevelopmentHistory)
@ -194,76 +225,87 @@ export class DevelopmentOfficerHistoryController extends Controller {
.leftJoinAndSelect("developmentHistory.posLevel", "posLevel") .leftJoinAndSelect("developmentHistory.posLevel", "posLevel")
.leftJoinAndSelect("developmentHistory.posType", "posType") .leftJoinAndSelect("developmentHistory.posType", "posType")
.andWhere( .andWhere(
year != 0 && year != null && year != undefined ? "development.year = :year" : "1=1", body.year != 0 && body.year != null && body.year != undefined
{ year: year }, ? "development.year = :year"
: "1=1",
{ year: body.year },
) )
.andWhere(root != null && root != undefined ? "development.root = :root" : "1=1", { .andWhere(body.root != null && body.root != undefined ? "development.root = :root" : "1=1", {
root: root, root: body.root,
}) })
.andWhere(body.root != null ? "developmentHistory.root = :root" : "1=1", { root: body.root })
.andWhere("developmentHistory.type = :type", { type: type }) .andWhere("developmentHistory.type = :type", { type: type })
.andWhere( .andWhere(
new Brackets((qb) => { new Brackets((qb) => {
qb.where( 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( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.firstName LIKE :keyword" ? "developmentHistory.firstName LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.lastName LIKE :keyword" ? "developmentHistory.lastName LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.position LIKE :keyword" ? "developmentHistory.position LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .orWhere(
keyword != null && keyword != "" body.keyword != null && body.keyword != ""
? "developmentHistory.position LIKE :keyword" ? "developmentHistory.position LIKE :keyword"
: "1=1", : "1=1",
{ {
keyword: `%${keyword}%`, keyword: `%${body.keyword}%`,
}, },
) )
.orWhere( .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( .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( .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") .orderBy("developmentHistory.createdAt", "DESC")
.skip((page - 1) * pageSize) .skip((body.page - 1) * body.pageSize)
.take(pageSize) .take(body.pageSize)
.getManyAndCount(); .getManyAndCount();
const formattedData = development.map((item) => ({ const formattedData = development.map((item) => ({
id: item.id, id: item.id,

View file

@ -238,7 +238,7 @@ export class DevelopmentScholarshipController extends Controller {
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้"); throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลทุนการศึกษา/ฝึกอบรมนี้");
} }
const formattedData = { const formattedData = {
root: getDevelopment.root ? getDevelopment.root : null, org: getDevelopment.org ? getDevelopment.org : null,
rank: getDevelopment.rank ? getDevelopment.rank : null, rank: getDevelopment.rank ? getDevelopment.rank : null,
prefix: getDevelopment.prefix ? getDevelopment.prefix : null, prefix: getDevelopment.prefix ? getDevelopment.prefix : null,
firstName: getDevelopment.firstName ? getDevelopment.firstName : null, firstName: getDevelopment.firstName ? getDevelopment.firstName : null,
@ -367,7 +367,7 @@ export class DevelopmentScholarshipController extends Controller {
"isGraduated", "isGraduated",
"graduatedDate", "graduatedDate",
"graduatedReason", "graduatedReason",
"root", "org",
], ],
}); });
if (!getDevelopment) { if (!getDevelopment) {

View file

@ -22,6 +22,13 @@ export class DevelopmentHistory extends EntityBase {
}) })
root: string; root: string;
@Column({
nullable: true,
comment: "ชื่อหน่วยงานที่สังกัด",
default: null,
})
org: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "ชื่อย่อหน่วยงาน", comment: "ชื่อย่อหน่วยงาน",

View file

@ -19,6 +19,13 @@ export class DevelopmentScholarship extends EntityBase {
}) })
root: string; root: string;
@Column({
nullable: true,
comment: "ชื่อหน่วยงานที่สังกัด",
default: null,
})
org: string;
@Column({ @Column({
nullable: true, nullable: true,
comment: "ชื่อย่อหน่วยงาน", comment: "ชื่อย่อหน่วยงาน",
@ -529,6 +536,7 @@ export class DevelopmentScholarship extends EntityBase {
export class CreateDevelopmentScholarship { export class CreateDevelopmentScholarship {
rootId: string | null; rootId: string | null;
root: string | null; root: string | null;
org: string | null;
orgRootShortName: string | null; orgRootShortName: string | null;
orgRevisionId: string | null; orgRevisionId: string | null;
profileId: string | null; profileId: string | null;
@ -588,6 +596,7 @@ export class CreateDevelopmentScholarship {
export class UpdateDevelopmentScholarship { export class UpdateDevelopmentScholarship {
rootId: string | null; rootId: string | null;
root: string | null; root: string | null;
org: string | null;
orgRootShortName: string | null; orgRootShortName: string | null;
orgRevisionId: string | null; orgRevisionId: string | null;
profileId: string | null; profileId: string | null;

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