Merge branch 'adiDev' into develop

This commit is contained in:
Adisak 2025-10-01 17:41:50 +07:00
commit a45d3744e5
2 changed files with 68 additions and 4 deletions

View file

@ -4981,6 +4981,8 @@ export class ProfileEmployeeController extends Controller {
rootId?: string;
year: number;
period: string;
sortBy?: string;
descending?: boolean;
},
) {
const findRevision = await this.orgRevisionRepo.findOne({
@ -4990,7 +4992,7 @@ export class ProfileEmployeeController extends Controller {
throw new HttpError(HttpStatus.NOT_FOUND, "not found. OrgRevision");
}
const [findPosMaster, total] = await AppDataSource.getRepository(EmployeePosMaster)
let query = await AppDataSource.getRepository(EmployeePosMaster)
.createQueryBuilder("employeePosMaster")
.leftJoinAndSelect("employeePosMaster.current_holder", "current_holder")
.leftJoinAndSelect("employeePosMaster.orgRoot", "orgRoot")
@ -5122,10 +5124,40 @@ export class ProfileEmployeeController extends Controller {
);
}),
)
.orderBy("current_holder.citizenId", "ASC")
if (body.sortBy) {
if(body.sortBy === "posType"){
query = query.orderBy(
`posType.posTypeName`,
body.descending ? "DESC" : "ASC"
);
}else if(body.sortBy === "posLevel"){
query = query
.orderBy(`posType.posTypeShortName`,body.descending ? "DESC" : "ASC")
.addOrderBy(`posLevel.posLevelName`,body.descending ? "DESC" : "ASC");
}else if(body.sortBy === "orgShortName" || body.sortBy === "posMasterNo"){
query = query
.orderBy(`orgRoot.orgRootShortName`,body.descending ? "DESC" : "ASC")
.addOrderBy(`orgChild1.orgChild1ShortName`,body.descending ? "DESC" : "ASC")
.addOrderBy(`orgChild2.orgChild2ShortName`,body.descending ? "DESC" : "ASC")
.addOrderBy(`orgChild3.orgChild3ShortName`,body.descending ? "DESC" : "ASC")
.addOrderBy(`orgChild4.orgChild4ShortName`,body.descending ? "DESC" : "ASC")
.addOrderBy(`employeePosMaster.posMasterNo`,body.descending ? "DESC" : "ASC")
}else{
query = query.orderBy(
`current_holder.${body.sortBy}`,
body.descending ? "DESC" : "ASC"
);
}
}else{
query = query.orderBy("current_holder.citizenId", "ASC")
}
const [findPosMaster, total] = await query
.skip((body.page - 1) * body.pageSize)
.take(body.pageSize)
.getManyAndCount();
if (!findPosMaster) {
throw new HttpError(HttpStatus.NOT_FOUND, "not found. PosMaster");
}