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

@ -78,6 +78,7 @@ import { ProfileAssistance } from "../entities/ProfileAssistance";
import { ProfileChangeName } from "../entities/ProfileChangeName";
import { ProfileChildren } from "../entities/ProfileChildren";
import { ProfileDuty } from "../entities/ProfileDuty";
import { getTopDegrees } from "../services/PositionService";
@Route("api/v1/org/profile-employee")
@Tags("ProfileEmployee")
@Security("bearerAuth")
@ -1107,14 +1108,14 @@ export class ProfileEmployeeController extends Controller {
: null,
disciplineDetail: item.detail ?? null,
refNo: Extension.ToThaiNumber(item.refCommandNo) ?? null,
level: item.level ?? ""
level: item.level ?? "",
}))
: [
{
disciplineYear: "-",
disciplineDetail: "-",
refNo: "-",
level: "-"
level: "-",
},
];
@ -1164,7 +1165,9 @@ export class ProfileEmployeeController 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: item.positionLevel
@ -1314,7 +1317,7 @@ export class ProfileEmployeeController extends Controller {
"profileLeave.dateLeaveEnd AS dateLeaveEnd",
"profileLeave.leaveDays AS leaveDays",
"profileLeave.reason AS reason",
"leaveType.name as name"
"leaveType.name as name",
])
.where("profileLeave.profileEmployeeId = :profileId", { profileId: id })
.andWhere("leaveType.code IN (:...codes)", { codes: ["LV-008", "LV-009", "LV-010"] })
@ -1324,10 +1327,12 @@ export class ProfileEmployeeController extends Controller {
const leaves2 =
leave2_raw.length > 0
? leave2_raw.map((item) => ({
date: item.dateLeaveStart && item.dateLeaveEnd
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveStart)) + " - "
+ Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveEnd))
: "-",
date:
item.dateLeaveStart && item.dateLeaveEnd
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveStart)) +
" - " +
Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.dateLeaveEnd))
: "-",
type: item.name || "-",
leaveDays: item.leaveDays ? Extension.ToThaiNumber(item.leaveDays.toString()) : "-",
reason: item.reason || "-",
@ -1389,24 +1394,25 @@ export class ProfileEmployeeController extends Controller {
];
const profileHistory = await this.profileHistoryRepo.find({
where: { profileEmployeeId: id },
order: { createdAt: "ASC" },
});
const history = profileHistory.length > 0
? profileHistory.map(item => ({
birthDateOld: item.birthDateOld
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.birthDateOld))
: "",
birthDate: item.birthDate
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.birthDate))
: "",
}))
: [
{
birthDateOld: "-",
birthDate: "-",
}
]
where: { profileEmployeeId: id },
order: { createdAt: "ASC" },
});
const history =
profileHistory.length > 0
? profileHistory.map((item) => ({
birthDateOld: item.birthDateOld
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.birthDateOld))
: "",
birthDate: item.birthDate
? Extension.ToThaiNumber(Extension.ToThaiFullDate2(item.birthDate))
: "",
}))
: [
{
birthDateOld: "-",
birthDate: "-",
},
];
const position_raw = await this.salaryRepo.find({
where: {
@ -1555,15 +1561,16 @@ export class ProfileEmployeeController extends Controller {
: "",
pointSum: item.pointSum ? Extension.ToThaiNumber(item.pointSum.toString()) : "",
pointSumTh: item.pointSum ? Extension.textPoint(item.pointSum) : "",
level: item.pointSum < 60.00
? "ต้องปรับปรุง (คะแนนต่ำกว่าร้อยละ ๖๐.)"
: item.pointSum <= 69.99 && item.pointSum >= 60.00
? "พอใช้ (คะแนนร้อยละ ๖๐. - ๖๙.๙๙)"
: item.pointSum <= 79.99 && item.pointSum >= 70.00
? "ดี (คะแนนร้อยละ ๗๐. - ๗๙.๙๙)"
: item.pointSum <= 89.99 && item.pointSum >= 80.00
? "ดีมาก (คะแนนร้อยละ ๘๐. - ๘๙.๙๙)"
: "ดีเด่น (คะแนนร้อยละ ๙๐. ขึ้นไป)"
level:
item.pointSum < 60.0
? "ต้องปรับปรุง (คะแนนต่ำกว่าร้อยละ ๖๐.)"
: item.pointSum <= 69.99 && item.pointSum >= 60.0
? "พอใช้ (คะแนนร้อยละ ๖๐. - ๖๙.๙๙)"
: item.pointSum <= 79.99 && item.pointSum >= 70.0
? "ดี (คะแนนร้อยละ ๗๐. - ๗๙.๙๙)"
: item.pointSum <= 89.99 && item.pointSum >= 80.0
? "ดีมาก (คะแนนร้อยละ ๘๐. - ๘๙.๙๙)"
: "ดีเด่น (คะแนนร้อยละ ๙๐. ขึ้นไป)",
}))
: [
{
@ -4012,26 +4019,28 @@ export class ProfileEmployeeController extends Controller {
body: {
fieldName: string;
keyword?: string;
system?: string;
system?: string;
},
) {
// ค้นหารายชื่อถ้าไม่ส่ง system มาให้ default ตามทะเบียนประวัติ
let _system:string ="SYS_REGISTRY_EMP";
if(body.system)
_system = body.system;
let _system: string = "SYS_REGISTRY_EMP";
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";
break;
case "fullName":
queryLike = "CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword";
queryLike =
"CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword";
break;
case "position":
@ -4039,7 +4048,7 @@ export class ProfileEmployeeController extends Controller {
break;
case "posNo":
queryLike = `
queryLike = `
CASE
WHEN current_holders.orgChild4Id IS NOT NULL THEN CONCAT(orgChild4.orgChild4ShortName, " ", current_holders.posMasterNo)
WHEN current_holders.orgChild3Id IS NOT NULL THEN CONCAT(orgChild3.orgChild3ShortName, " ", current_holders.posMasterNo)
@ -4063,10 +4072,10 @@ export class ProfileEmployeeController extends Controller {
break;
default:
queryLike = "1=1"
queryLike = "1=1";
break;
}
const [findProfile, total] = await this.profileRepo
.createQueryBuilder("profile")
.leftJoinAndSelect("profile.posType", "posType")
@ -5608,9 +5617,10 @@ export class ProfileEmployeeController 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,
@ -6366,7 +6376,7 @@ export class ProfileEmployeeController extends Controller {
salary: profile.amount,
education:
profile && profile.profileEducations.length > 0
? `${profile.profileEducations[0].degree ?? ""} ${profile.profileEducations[0].field ?? ""}`
? await getTopDegrees(profile.profileEducations)
: "-",
statusCheckEdit: profile.statusCheckEdit,
isEdit: permissionProflile?.isEdit ?? false,