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

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