parent
8a96794e53
commit
0c523a55a4
4 changed files with 115 additions and 134 deletions
|
|
@ -4419,11 +4419,16 @@ export class ProfileEmployeeController extends Controller {
|
|||
page: number;
|
||||
pageSize: number;
|
||||
keyword?: string;
|
||||
type?: string;
|
||||
},
|
||||
) {
|
||||
let conditionFullName =
|
||||
"CONCAT(profileEmployee.prefix, profileEmployee.firstName, ' ', profileEmployee.lastName) LIKE :keyword";
|
||||
const [findProfile, total] = await AppDataSource.getRepository(ProfileEmployee)
|
||||
const orgRevisionActive = await this.orgRevisionRepo.findOne({
|
||||
where: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false },
|
||||
});
|
||||
if (!orgRevisionActive) {
|
||||
throw new HttpError(HttpStatus.NOT_FOUND, "not found. OrgRevision");
|
||||
}
|
||||
let query = AppDataSource.getRepository(ProfileEmployee)
|
||||
.createQueryBuilder("profileEmployee")
|
||||
.leftJoinAndSelect("profileEmployee.posLevel", "posLevel")
|
||||
.leftJoinAndSelect("profileEmployee.posType", "posType")
|
||||
|
|
@ -4435,88 +4440,78 @@ export class ProfileEmployeeController extends Controller {
|
|||
.leftJoinAndSelect("current_holders.orgChild3", "orgChild3")
|
||||
.leftJoinAndSelect("current_holders.orgChild4", "orgChild4")
|
||||
.leftJoinAndSelect("current_holders.positions", "positions")
|
||||
.where(`profileEmployee.position LIKE :keyword`, {
|
||||
keyword: `%${body.keyword}%`,
|
||||
})
|
||||
.orWhere(`profileEmployee.prefix LIKE :keyword`, {
|
||||
keyword: `%${body.keyword}%`,
|
||||
})
|
||||
.orWhere(`profileEmployee.firstName LIKE :keyword`, {
|
||||
keyword: `%${body.keyword}%`,
|
||||
})
|
||||
.orWhere(`profileEmployee.lastName LIKE :keyword`, {
|
||||
keyword: `%${body.keyword}%`,
|
||||
})
|
||||
.orWhere(`posLevel.posLevelName LIKE :keyword`, {
|
||||
keyword: `%${body.keyword}%`,
|
||||
})
|
||||
.orWhere(`posType.posTypeName LIKE :keyword`, {
|
||||
keyword: `%${body.keyword}%`,
|
||||
})
|
||||
.orWhere(conditionFullName, {
|
||||
keyword: `%${body.keyword}%`,
|
||||
})
|
||||
.andWhere(
|
||||
new Brackets(qb => {
|
||||
qb.where("profileEmployee.position LIKE :keyword", { keyword: `%${body.keyword}%` })
|
||||
.orWhere("posLevel.posLevelName LIKE :keyword", { keyword: `%${body.keyword}%` })
|
||||
.orWhere("posType.posTypeName LIKE :keyword", { keyword: `%${body.keyword}%` })
|
||||
.orWhere("CONCAT(profileEmployee.prefix, profileEmployee.firstName, ' ', profileEmployee.lastName) LIKE :keyword", { keyword: `%${body.keyword}%` });
|
||||
})
|
||||
)
|
||||
.andWhere("profileEmployee.isLeave = false")
|
||||
.andWhere("current_holders.orgRevisionId = :orgRevisionId", { orgRevisionId: orgRevisionActive.id });
|
||||
|
||||
if (body.type) {
|
||||
const typeUpper = body.type.trim().toUpperCase();
|
||||
if (typeUpper === "EMPLOYEE") {
|
||||
query = query.andWhere("profileEmployee.employeeClass = 'PERM'");
|
||||
}
|
||||
else if (typeUpper === "TEMP"){
|
||||
query = query.andWhere("profileEmployee.employeeClass = 'TEMP'");
|
||||
}
|
||||
}
|
||||
|
||||
const [findProfile, total] = await query
|
||||
.orderBy("profileEmployee.citizenId", "ASC")
|
||||
.skip((body.page - 1) * body.pageSize)
|
||||
.take(body.pageSize)
|
||||
.getManyAndCount();
|
||||
|
||||
const orgRevisionActive = await this.orgRevisionRepo.findOne({
|
||||
where: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false },
|
||||
});
|
||||
const findRevision = await this.orgRevisionRepo.findOne({
|
||||
where: { orgRevisionIsCurrent: true },
|
||||
});
|
||||
if (!findRevision) {
|
||||
throw new HttpError(HttpStatus.NOT_FOUND, "not found. OrgRevision");
|
||||
}
|
||||
|
||||
const mapDataProfile = await Promise.all(
|
||||
findProfile.map(async (item: ProfileEmployee) => {
|
||||
const posMaster =
|
||||
item.current_holders == null ||
|
||||
item.current_holders.length == 0 ||
|
||||
item.current_holders.find((x) => x.orgRevisionId == findRevision.id) == null
|
||||
item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id) == null
|
||||
? null
|
||||
: item.current_holders.find((x) => x.orgRevisionId == findRevision.id);
|
||||
: item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id);
|
||||
const position =
|
||||
posMaster == null ||
|
||||
item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.positions == null ||
|
||||
item.current_holders?.find((x) => x.orgRevisionId == findRevision.id)?.positions.length ==
|
||||
item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.positions == null ||
|
||||
item.current_holders?.find((x) => x.orgRevisionId == orgRevisionActive.id)?.positions.length ==
|
||||
0 ||
|
||||
item.current_holders
|
||||
.find((x) => x.orgRevisionId == findRevision.id)
|
||||
.find((x) => x.orgRevisionId == orgRevisionActive.id)
|
||||
?.positions?.find((position) => position.positionIsSelected == true) == null
|
||||
? null
|
||||
: item.current_holders
|
||||
.find((x) => x.orgRevisionId == findRevision.id)
|
||||
.find((x) => x.orgRevisionId == orgRevisionActive.id)
|
||||
?.positions?.find((position) => position.positionIsSelected == true);
|
||||
|
||||
const shortName =
|
||||
item.current_holders.length == 0
|
||||
? null
|
||||
: item.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4 !=
|
||||
: item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.orgChild4 !=
|
||||
null
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild3 !=
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.orgChild4.orgChild4ShortName} ${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.orgChild3 !=
|
||||
null
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == findRevision.id)
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.orgChild3.orgChild3ShortName} ${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)
|
||||
?.orgChild2 != null
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == findRevision.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == findRevision.id)
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.orgChild2.orgChild2ShortName} ${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id) != null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)
|
||||
?.orgChild1 != null
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == findRevision.id) !=
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.orgChild1.orgChild1ShortName} ${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.posMasterNo}`
|
||||
: item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id) !=
|
||||
null &&
|
||||
item.current_holders.find((x) => x.orgRevisionId == findRevision.id)
|
||||
item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)
|
||||
?.orgRoot != null
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
|
||||
? `${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.orgRoot.orgRootShortName} ${item.current_holders.find((x) => x.orgRevisionId == orgRevisionActive.id)?.posMasterNo}`
|
||||
: null;
|
||||
|
||||
return {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue