sort ประเมินผลการปฏิบัติราชการระดับบุคคล

This commit is contained in:
Adisak 2025-10-02 11:19:14 +07:00
parent 50da2b4e70
commit 254d6ae810
3 changed files with 135 additions and 17 deletions

View file

@ -360,6 +360,8 @@ export class KpiUserDevelopmentController extends Controller {
// results?: string | null;
// reqedit?: string | null;
// evaluating?: boolean | null;
sortBy?: string;
descending?: boolean;
},
) {
// await new permission().PermissionList(request, "SYS_RESULT");
@ -372,7 +374,7 @@ export class KpiUserDevelopmentController extends Controller {
_data = x;
})
.catch((x) => {});
const [kpiUserDevelopment, total] = await AppDataSource.getRepository(KpiUserDevelopment)
let query = await AppDataSource.getRepository(KpiUserDevelopment)
.createQueryBuilder("kpiUserDevelopment")
.leftJoinAndSelect("kpiUserDevelopment.kpiUserEvaluation", "kpiUserEvaluation")
.leftJoinAndSelect("kpiUserEvaluation.kpiPeriod", "kpiPeriod")
@ -476,7 +478,46 @@ export class KpiUserDevelopmentController extends Controller {
});
}),
)
.orderBy("kpiUserDevelopment.createdAt", "ASC")
if (requestBody.sortBy) {
if(requestBody.sortBy === "developmentName"){
query = query.orderBy(
`kpiUserDevelopment.name`,
requestBody.descending ? "DESC" : "ASC"
);
}else if (requestBody.sortBy === "organization"){
query = query
.orderBy(`kpiUserEvaluation.child4`, requestBody.descending ? "DESC" : "ASC")
.addOrderBy(`kpiUserEvaluation.child3`, requestBody.descending ? "DESC" : "ASC")
.addOrderBy(`kpiUserEvaluation.child2`, requestBody.descending ? "DESC" : "ASC")
.addOrderBy(`kpiUserEvaluation.child1`, requestBody.descending ? "DESC" : "ASC")
.addOrderBy(`kpiUserEvaluation.org`, requestBody.descending ? "DESC" : "ASC");
}else if(requestBody.sortBy === "firstname"){
query = query.orderBy(
`kpiUserEvaluation.firstName`,
requestBody.descending ? "DESC" : "ASC"
);
}else if(requestBody.sortBy === "lastname"){
query = query.orderBy(
`kpiUserEvaluation.lastName`,
requestBody.descending ? "DESC" : "ASC"
);
}else if(requestBody.sortBy === "root"){
query = query.orderBy(
`kpiUserEvaluation.org`,
requestBody.descending ? "DESC" : "ASC"
);
}else{
query = query.orderBy(
`kpiUserEvaluation.${requestBody.sortBy}`,
requestBody.descending ? "DESC" : "ASC"
);
}
}else{
query = query.orderBy("kpiUserDevelopment.createdAt", "ASC")
}
const [kpiUserDevelopment, total] = await query
.skip((requestBody.page - 1) * requestBody.pageSize)
.take(requestBody.pageSize)
.getManyAndCount();