diff --git a/src/controllers/ProfileEmployeeController.ts b/src/controllers/ProfileEmployeeController.ts index a807c638..0a87094c 100644 --- a/src/controllers/ProfileEmployeeController.ts +++ b/src/controllers/ProfileEmployeeController.ts @@ -2590,7 +2590,7 @@ export class ProfileEmployeeController extends Controller { } const [profiles, total] = await this.profileRepo .createQueryBuilder("profileEmployee") - .leftJoinAndSelect("profileEmployee.next_holders", "next_holders") + .leftJoinAndSelect("profileEmployee.current_holders", "current_holders") .leftJoinAndSelect("profileEmployee.posLevel", "posLevel") .leftJoinAndSelect("profileEmployee.posType", "posType") .where( @@ -2606,12 +2606,29 @@ export class ProfileEmployeeController extends Controller { new Brackets((qb) => { qb.where( requestBody.keyword != null && requestBody.keyword != "" - ? `CONCAT(profileEmployee.prefix, profileEmployee.firstName," ",profileEmployee.lastName) LIKE :keyword` + ? "profileEmployee.prefix LIKE :keyword" : "1=1", { keyword: `%${requestBody.keyword}%`, }, - ).orWhere( + ) + .orWhere( + requestBody.keyword != null && requestBody.keyword != "" + ? "profileEmployee.firstName LIKE :keyword" + : "1=1", + { + keyword: `%${requestBody.keyword}%`, + }, + ) + .orWhere( + requestBody.keyword != null && requestBody.keyword != "" + ? "profileEmployee.lastName LIKE :keyword" + : "1=1", + { + keyword: `%${requestBody.keyword}%`, + }, + ) + .orWhere( requestBody.keyword != null && requestBody.keyword != "" ? "profileEmployee.citizenId LIKE :keyword" : "1=1", @@ -2642,19 +2659,22 @@ export class ProfileEmployeeController extends Controller { qb.where("profileEmployee.id NOT IN (:...ids)", { ids: orgRevision.employeePosMasters - .filter((x) => x.next_holderId != null) - .map((x) => x.next_holderId).length == 0 + .filter((x) => x.current_holderId != null) + .map((x) => x.current_holderId).length == 0 ? ["zxc"] : orgRevision.employeePosMasters - .filter((x) => x.next_holderId != null) - .map((x) => x.next_holderId), + .filter((x) => x.current_holderId != null) + .map((x) => x.current_holderId), }); }), ) .andWhere("profileEmployee.employeeClass = :employeeClass", { employeeClass: "PERM" }) .skip((requestBody.page - 1) * requestBody.pageSize) .take(requestBody.pageSize) + .orderBy("posType.posTypeRank", "ASC") + .addOrderBy("posLevel.posLevelRank", "ASC") .getManyAndCount(); + const data = profiles.map((_data) => ({ id: _data.id, prefix: _data.prefix, diff --git a/src/controllers/ProfileEmployeeTempController.ts b/src/controllers/ProfileEmployeeTempController.ts index a3e7734b..78a7e665 100644 --- a/src/controllers/ProfileEmployeeTempController.ts +++ b/src/controllers/ProfileEmployeeTempController.ts @@ -1704,7 +1704,7 @@ export class ProfileEmployeeTempController extends Controller { } const [profiles, total] = await this.profileRepo .createQueryBuilder("profileEmployee") - .leftJoinAndSelect("profileEmployee.next_holderTemps", "next_holderTemps") + .leftJoinAndSelect("profileEmployee.current_holderTemps", "current_holderTemps") .leftJoinAndSelect("profileEmployee.posLevel", "posLevel") .leftJoinAndSelect("profileEmployee.posType", "posType") .where( @@ -1720,12 +1720,29 @@ export class ProfileEmployeeTempController extends Controller { new Brackets((qb) => { qb.where( requestBody.keyword != null && requestBody.keyword != "" - ? `CONCAT(profileEmployee.prefix, profileEmployee.firstName," ",profileEmployee.lastName) LIKE :keyword` + ? "profileEmployee.prefix LIKE :keyword" : "1=1", { keyword: `%${requestBody.keyword}%`, }, - ).orWhere( + ) + .orWhere( + requestBody.keyword != null && requestBody.keyword != "" + ? "profileEmployee.firstName LIKE :keyword" + : "1=1", + { + keyword: `%${requestBody.keyword}%`, + }, + ) + .orWhere( + requestBody.keyword != null && requestBody.keyword != "" + ? "profileEmployee.lastName LIKE :keyword" + : "1=1", + { + keyword: `%${requestBody.keyword}%`, + }, + ) + .orWhere( requestBody.keyword != null && requestBody.keyword != "" ? "profileEmployee.citizenId LIKE :keyword" : "1=1", @@ -1780,18 +1797,20 @@ export class ProfileEmployeeTempController extends Controller { qb.where("profileEmployee.id NOT IN (:...ids)", { ids: orgRevision.employeeTempPosMasters - .filter((x) => x.next_holderId != null) - .map((x) => x.next_holderId).length == 0 + .filter((x) => x.current_holderId != null) + .map((x) => x.current_holderId).length == 0 ? ["zxc"] : orgRevision.employeeTempPosMasters - .filter((x) => x.next_holderId != null) - .map((x) => x.next_holderId), + .filter((x) => x.current_holderId != null) + .map((x) => x.current_holderId), }); }), ) .andWhere("profileEmployee.employeeClass = :employeeClass", { employeeClass: "TEMP" }) .skip((requestBody.page - 1) * requestBody.pageSize) .take(requestBody.pageSize) + .orderBy("posType.posTypeRank", "ASC") + .addOrderBy("posLevel.posLevelRank", "ASC") .getManyAndCount(); const data = profiles.map((_data) => ({ id: _data.id,