filter education

This commit is contained in:
mamoss 2025-09-08 00:10:59 +07:00
parent e7798402eb
commit 332a96efb3
4 changed files with 187 additions and 159 deletions

View file

@ -68,6 +68,7 @@ import permission from "../interfaces/permission";
import axios from "axios";
import { deleteUser } from "../keycloak";
import { ProfileSalaryHistory } from "../entities/ProfileSalaryHistory";
import { getTopDegrees } from "../services/PositionService";
@Route("api/v1/org/profile-temp")
@Tags("ProfileEmployee")
@Security("bearerAuth")
@ -688,7 +689,9 @@ export class ProfileEmployeeTempController extends Controller {
Salary:
item.amount != null ? Extension.ToThaiNumber(item.amount.toLocaleString()) : null,
Special:
item.amountSpecial != null ? Extension.ToThaiNumber(item.amountSpecial.toLocaleString()) : null,
item.amountSpecial != null
? Extension.ToThaiNumber(item.amountSpecial.toLocaleString())
: null,
Rank: item.positionLevel != null ? Extension.ToThaiNumber(item.positionLevel) : null,
RefAll: item.remark ? Extension.ToThaiNumber(item.remark) : null,
PositionLevel:
@ -1142,8 +1145,8 @@ export class ProfileEmployeeTempController extends Controller {
{
statusTemp: "PENDING",
type: "TEMP",
keycloak: request.user.sub
}
keycloak: request.user.sub,
},
)
.getManyAndCount();
const data = await Promise.all(
@ -1510,15 +1513,12 @@ export class ProfileEmployeeTempController extends Controller {
} else if (searchField == "position") {
queryLike = "profileEmployee.position LIKE :keyword";
}
let _conditionAll =
`current_holderTemps.orgRootId is null AND current_holderTemps.orgChild1Id is null AND
let _conditionAll = `current_holderTemps.orgRootId is null AND current_holderTemps.orgChild1Id is null AND
current_holderTemps.orgChild2Id is null AND current_holderTemps.orgChild3Id is null AND
current_holderTemps.orgChild4Id is null AND profileEmployee.createdUserId = :keycloak AND
profileEmployee.employeeClass = :type`
let _conditionFullname=
`CONCAT(profileEmployee.prefix, profileEmployee.firstName, ' ', profileEmployee.lastName) LIKE :keyword`
let _conditionCitizenId =
`profileEmployee.citizenId LIKE :keyword`
profileEmployee.employeeClass = :type`;
let _conditionFullname = `CONCAT(profileEmployee.prefix, profileEmployee.firstName, ' ', profileEmployee.lastName) LIKE :keyword`;
let _conditionCitizenId = `profileEmployee.citizenId LIKE :keyword`;
const findRevision = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: true },
});
@ -1611,42 +1611,29 @@ export class ProfileEmployeeTempController extends Controller {
keyword2: `${posLevel}`,
},
)
.andWhere(
"profileEmployee.employeeClass = :type", {
type: type ? type.trim().toLocaleUpperCase() : "TEMP"
}
)
.andWhere("profileEmployee.employeeClass = :type", {
type: type ? type.trim().toLocaleUpperCase() : "TEMP",
})
.orWhere(
new Brackets((qb) => {
if (!searchKeyword) {
qb.andWhere(
_conditionAll,
{
keycloak: request.user.sub,
type: type ? type.trim().toLocaleUpperCase() : "TEMP"
}
)
}
else {
qb.andWhere(_conditionAll, {
keycloak: request.user.sub,
type: type ? type.trim().toLocaleUpperCase() : "TEMP",
});
} else {
if (searchField != "citizenId") {
qb.andWhere(
`${_conditionAll} AND ${_conditionFullname}`,
{
qb.andWhere(`${_conditionAll} AND ${_conditionFullname}`, {
keyword: `%${searchKeyword}%`,
keycloak: request.user.sub,
type: type ? type.trim().toLocaleUpperCase() : "TEMP"
},
)
}
else {
qb.andWhere(
`${_conditionAll} AND ${_conditionCitizenId}`,
{
keyword: `%${searchKeyword}%`,
keycloak: request.user.sub,
type: type ? type.trim().toLocaleUpperCase() : "TEMP"
},
)
type: type ? type.trim().toLocaleUpperCase() : "TEMP",
});
} else {
qb.andWhere(`${_conditionAll} AND ${_conditionCitizenId}`, {
keyword: `%${searchKeyword}%`,
keycloak: request.user.sub,
type: type ? type.trim().toLocaleUpperCase() : "TEMP",
});
}
}
}),
@ -1660,18 +1647,20 @@ export class ProfileEmployeeTempController extends Controller {
_data.current_holderTemps.length == 0
? null
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4 !=
null
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild4 != null
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4.orgChild4ShortName} ${_data.current_holders.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild3 != null
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild3.orgChild3ShortName} ${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) !=
null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild2 != null
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild2.orgChild2ShortName} ${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
: _data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) !=
null &&
_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild1 != null
? `${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild1.orgChild1ShortName} ${_data.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
@ -1844,46 +1833,46 @@ export class ProfileEmployeeTempController extends Controller {
keyword: `%${requestBody.keyword}%`,
},
)
.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 != ""
? "CONCAT(profileEmployee.prefix,profileEmployee.firstName,' ',profileEmployee.lastName) LIKE :keyword"
: "1=1",
{
keyword: `%${requestBody.keyword}%`,
},
)
.orWhere(
requestBody.keyword != null && requestBody.keyword != ""
? "CONCAT(profileEmployee.firstName,' ',profileEmployee.lastName) LIKE :keyword"
: "1=1",
{
keyword: `%${requestBody.keyword}%`,
},
)
.orWhere(
requestBody.keyword != null && requestBody.keyword != ""
? "profileEmployee.citizenId LIKE :keyword"
: "1=1",
{
keyword: `%${requestBody.keyword}%`,
},
);
.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 != ""
? "CONCAT(profileEmployee.prefix,profileEmployee.firstName,' ',profileEmployee.lastName) LIKE :keyword"
: "1=1",
{
keyword: `%${requestBody.keyword}%`,
},
)
.orWhere(
requestBody.keyword != null && requestBody.keyword != ""
? "CONCAT(profileEmployee.firstName,' ',profileEmployee.lastName) LIKE :keyword"
: "1=1",
{
keyword: `%${requestBody.keyword}%`,
},
)
.orWhere(
requestBody.keyword != null && requestBody.keyword != ""
? "profileEmployee.citizenId LIKE :keyword"
: "1=1",
{
keyword: `%${requestBody.keyword}%`,
},
);
// .orWhere(
// requestBody.keyword != null && requestBody.keyword != ""
// ? "profileEmployee.position LIKE :keyword"
@ -2194,19 +2183,20 @@ export class ProfileEmployeeTempController extends Controller {
body: {
fieldName: string;
keyword?: string;
system?: string;
system?: string;
},
) {
// ค้นหารายชื่อถ้าไม่ส่ง system มาให้ default ตามทะเบียนประวัติ
let _system:string ="SYS_REGISTRY_TEMP";
if(body.system)
_system = body.system;
let _system: string = "SYS_REGISTRY_TEMP";
if (body.system) _system = body.system;
let _data = await new permission().PermissionOrgList(request, _system);
const findRevision = await this.orgRevisionRepo.findOne({ where: { orgRevisionIsCurrent: true } });
const findRevision = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: true },
});
if (!findRevision) {
throw new HttpError(HttpStatus.NOT_FOUND, "not found. OrgRevision");
}
let queryLike = "1=1"
let queryLike = "1=1";
switch (body.fieldName) {
case "citizenId":
queryLike = "profile.citizenId LIKE :keyword";
@ -2221,11 +2211,12 @@ export class ProfileEmployeeTempController extends Controller {
break;
case "fullName":
queryLike = "CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword";
queryLike =
"CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword";
break;
default:
queryLike = "1=1"
queryLike = "1=1";
break;
}
@ -2298,18 +2289,20 @@ export class ProfileEmployeeTempController extends Controller {
item.current_holderTemps.length == 0
? null
: item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4 !=
null
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild4 != null
? `${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild4.orgChild4ShortName} ${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild3 !=
null
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild3 != null
? `${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild3.orgChild3ShortName} ${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
: item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) !=
null &&
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild2 != null
? `${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild2.orgChild2ShortName} ${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
: item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
: item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) !=
null &&
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)
?.orgChild1 != null
? `${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgChild1.orgChild1ShortName} ${item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.posMasterNo}`
@ -2323,7 +2316,8 @@ export class ProfileEmployeeTempController extends Controller {
const root =
item.current_holderTemps.length == 0 ||
(item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id) != null &&
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgRoot == null)
item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgRoot ==
null)
? null
: item.current_holderTemps.find((x) => x.orgRevisionId == findRevision.id)?.orgRoot;
@ -3458,9 +3452,10 @@ export class ProfileEmployeeTempController extends Controller {
posNo: orgRevisionRef?.posMasterNo,
positionExecutive: "",
positionType: profile.posType?.posTypeName,
positionLevel: profile.posType && profile.posLevel
? `${profile.posType?.posTypeShortName} ${profile.posLevel?.posLevelName}`
: "",
positionLevel:
profile.posType && profile.posLevel
? `${profile.posType?.posTypeShortName} ${profile.posLevel?.posLevelName}`
: "",
amountSpecial: profile.amountSpecial,
orgRoot: orgRootRef?.orgRootName,
orgChild1: orgChild1Ref?.orgChild1Name,
@ -4169,7 +4164,7 @@ export class ProfileEmployeeTempController extends Controller {
salary: profile.amount,
education:
profile && profile.profileEducations.length > 0
? `${profile.profileEducations[0].degree ?? ""} ${profile.profileEducations[0].field ?? ""}`
? await getTopDegrees(profile.profileEducations)
: "-",
};
@ -4225,7 +4220,7 @@ export class ProfileEmployeeTempController extends Controller {
});
return new HttpSuccess();
}
/**
* API
*