diff --git a/src/controllers/ProfileEmployeeController.ts b/src/controllers/ProfileEmployeeController.ts index 02ea587e..a665030f 100644 --- a/src/controllers/ProfileEmployeeController.ts +++ b/src/controllers/ProfileEmployeeController.ts @@ -66,6 +66,7 @@ import { ProfileInsignia } from "../entities/ProfileInsignia"; import { ProfileLeave } from "../entities/ProfileLeave"; import permission from "../interfaces/permission"; import axios from "axios"; +import { Position } from "../entities/Position"; @Route("api/v1/org/profile-employee") @Tags("ProfileEmployee") @Security("bearerAuth") @@ -107,6 +108,8 @@ export class ProfileEmployeeController extends Controller { private profileEducationRepository = AppDataSource.getRepository(ProfileEducation); private profileInsigniaRepo = AppDataSource.getRepository(ProfileInsignia); private profileLeaveRepository = AppDataSource.getRepository(ProfileLeave); + private positionRepository = AppDataSource.getRepository(Position); + /** * report ประวัติแบบย่อ ลูกจ้าง * @@ -257,7 +260,7 @@ export class ProfileEmployeeController extends Controller { ? Extension.ToThaiNumber(profile.profileSalarys[0].amount.toLocaleString()) : "-", registrationAddress: Extension.ToThaiNumber( - `${_regisAddres}${_subDistrict}${_district}${_province}${registrationZipCode}`, + `${_regisAddres}${_subDistrict}${_district}${_province}${registrationZipCode}`, ), salaryDate: profile.profileSalarys.length > 0 && profile.profileSalarys[0].date != null @@ -272,9 +275,7 @@ export class ProfileEmployeeController extends Controller { : "-", ocFullPath: `${_child4}${_child3}${_child2}${_child1}${_root}`, educations: Education, - url: ImgUrl - ? ImgUrl - : `https://bma-ehr.frappet.synology.me/assets/avatar_user-89f22423.jpg`, + url: ImgUrl ? ImgUrl : `https://bma-ehr.frappet.synology.me/assets/avatar_user-89f22423.jpg`, }; return new HttpSuccess({ @@ -447,7 +448,7 @@ export class ProfileEmployeeController extends Controller { }); const certs = cert_raw.length > 0 - ? cert_raw.slice(-2).map((item) => ({ + ? cert_raw.slice(-2).map((item) => ({ CertificateType: item.certificateType ?? null, Issuer: item.issuer ?? null, CertificateNo: Extension.ToThaiNumber(item.certificateNo) ?? null, @@ -677,90 +678,102 @@ export class ProfileEmployeeController extends Controller { }, ]; - const data = { - fullName: `${profiles?.prefix}${profiles?.firstName} ${profiles?.lastName}`, - prefix: profiles?.prefix != null ? profiles.prefix : "", - firstName: profiles?.firstName != null ? profiles.firstName : "", - lastName: profiles?.lastName != null ? profiles.lastName : "", - ocFullPath: `${_child4}${_child3}${_child2}${_child1}${_root}`, - birthDate: profiles?.birthDate - ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(profiles.birthDate)) - : "", - retireDate: - profiles.dateRetireLaw != null - ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(profiles.dateRetireLaw)) - : "", - appointDate: profiles?.dateAppoint - ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(profiles.dateAppoint)) - : "", - citizenId: - profiles.citizenId != null ? Extension.ToThaiNumber(profiles.citizenId.toString()) : "", - fatherFullName: - profileFamilyFather?.fatherPrefix || - profileFamilyFather?.fatherFirstName || - profileFamilyFather?.fatherLastName - ? `${profileFamilyFather?.fatherPrefix ?? ""}${profileFamilyFather?.fatherFirstName ?? ""} ${profileFamilyFather?.fatherLastName ?? ""}`.trim() - : null, - motherFullName: - profileFamilyMother?.motherPrefix || - profileFamilyMother?.motherFirstName || - profileFamilyMother?.motherLastName - ? `${profileFamilyMother?.motherPrefix ?? ""}${profileFamilyMother?.motherFirstName ?? ""} ${profileFamilyMother?.motherLastName ?? ""}`.trim() - : null, - coupleFullName: - profileFamilyCouple?.couplePrefix || - profileFamilyCouple?.coupleFirstName || - profileFamilyCouple?.coupleLastNameOld - ? `${profileFamilyCouple?.couplePrefix ?? ""}${profileFamilyCouple?.coupleFirstName ?? ""} ${profileFamilyCouple?.coupleLastName ?? ""}`.trim() - : null, - coupleLastNameOld: profileFamilyCouple?.coupleLastNameOld ?? null, - currentAddress: - profiles.currentAddress != null ? Extension.ToThaiNumber(profiles.currentAddress) : "", - currentSubDistrict: - profiles.currentSubDistrict != null - ? Extension.ToThaiNumber(profiles.currentSubDistrict.name) - : "", - currentDistrict: - profiles.currentDistrict != null - ? Extension.ToThaiNumber(profiles.currentDistrict.name) - : "", - currentProvince: - profiles.currentProvince != null - ? Extension.ToThaiNumber(profiles.currentProvince.name) - : "", - telephone: - profiles.telephoneNumber != null ? Extension.ToThaiNumber(profiles.telephoneNumber) : "", - url: ImgUrl - ? ImgUrl - : `https://bma-ehr.frappet.synology.me/assets/avatar_user-89f22423.jpg`, - url1: _ImgUrl[0] ? _ImgUrl[0] : null, - yearUpload1: profiles.profileAvatars[0] ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[0].createdAt)) : null, - url2: _ImgUrl[1] ? _ImgUrl[1] : null, - yearUpload2: profiles.profileAvatars[1] ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[1].createdAt)) : null, - url3: _ImgUrl[2] ? _ImgUrl[2] : null, - yearUpload3: profiles.profileAvatars[2] ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[2].createdAt)) : null, - url4: _ImgUrl[3] ? _ImgUrl[3] : null, - yearUpload4: profiles.profileAvatars[3] ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[3].createdAt)) : null, - url5: _ImgUrl[4] ? _ImgUrl[4] : null, - yearUpload5: profiles.profileAvatars[4] ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[4].createdAt)) : null, - url6: _ImgUrl[5] ? _ImgUrl[5] : null, - yearUpload6: profiles.profileAvatars[5] ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[5].createdAt)) : null, - url7: _ImgUrl[6] ? _ImgUrl[6] : null, - yearUpload7: profiles.profileAvatars[6] ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[6].createdAt)) : null, - insignias, - leaves, - certs, - trainings, - disciplines, - educations, - salarys, - }; - - return new HttpSuccess({ - template: "kk1-emp", - reportName: "docx-report", - data: data, - }); + const data = { + fullName: `${profiles?.prefix}${profiles?.firstName} ${profiles?.lastName}`, + prefix: profiles?.prefix != null ? profiles.prefix : "", + firstName: profiles?.firstName != null ? profiles.firstName : "", + lastName: profiles?.lastName != null ? profiles.lastName : "", + ocFullPath: `${_child4}${_child3}${_child2}${_child1}${_root}`, + birthDate: profiles?.birthDate + ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(profiles.birthDate)) + : "", + retireDate: + profiles.dateRetireLaw != null + ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(profiles.dateRetireLaw)) + : "", + appointDate: profiles?.dateAppoint + ? Extension.ToThaiNumber(Extension.ToThaiFullDate2(profiles.dateAppoint)) + : "", + citizenId: + profiles.citizenId != null ? Extension.ToThaiNumber(profiles.citizenId.toString()) : "", + fatherFullName: + profileFamilyFather?.fatherPrefix || + profileFamilyFather?.fatherFirstName || + profileFamilyFather?.fatherLastName + ? `${profileFamilyFather?.fatherPrefix ?? ""}${profileFamilyFather?.fatherFirstName ?? ""} ${profileFamilyFather?.fatherLastName ?? ""}`.trim() + : null, + motherFullName: + profileFamilyMother?.motherPrefix || + profileFamilyMother?.motherFirstName || + profileFamilyMother?.motherLastName + ? `${profileFamilyMother?.motherPrefix ?? ""}${profileFamilyMother?.motherFirstName ?? ""} ${profileFamilyMother?.motherLastName ?? ""}`.trim() + : null, + coupleFullName: + profileFamilyCouple?.couplePrefix || + profileFamilyCouple?.coupleFirstName || + profileFamilyCouple?.coupleLastNameOld + ? `${profileFamilyCouple?.couplePrefix ?? ""}${profileFamilyCouple?.coupleFirstName ?? ""} ${profileFamilyCouple?.coupleLastName ?? ""}`.trim() + : null, + coupleLastNameOld: profileFamilyCouple?.coupleLastNameOld ?? null, + currentAddress: + profiles.currentAddress != null ? Extension.ToThaiNumber(profiles.currentAddress) : "", + currentSubDistrict: + profiles.currentSubDistrict != null + ? Extension.ToThaiNumber(profiles.currentSubDistrict.name) + : "", + currentDistrict: + profiles.currentDistrict != null + ? Extension.ToThaiNumber(profiles.currentDistrict.name) + : "", + currentProvince: + profiles.currentProvince != null + ? Extension.ToThaiNumber(profiles.currentProvince.name) + : "", + telephone: + profiles.telephoneNumber != null ? Extension.ToThaiNumber(profiles.telephoneNumber) : "", + url: ImgUrl ? ImgUrl : `https://bma-ehr.frappet.synology.me/assets/avatar_user-89f22423.jpg`, + url1: _ImgUrl[0] ? _ImgUrl[0] : null, + yearUpload1: profiles.profileAvatars[0] + ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[0].createdAt)) + : null, + url2: _ImgUrl[1] ? _ImgUrl[1] : null, + yearUpload2: profiles.profileAvatars[1] + ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[1].createdAt)) + : null, + url3: _ImgUrl[2] ? _ImgUrl[2] : null, + yearUpload3: profiles.profileAvatars[2] + ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[2].createdAt)) + : null, + url4: _ImgUrl[3] ? _ImgUrl[3] : null, + yearUpload4: profiles.profileAvatars[3] + ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[3].createdAt)) + : null, + url5: _ImgUrl[4] ? _ImgUrl[4] : null, + yearUpload5: profiles.profileAvatars[4] + ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[4].createdAt)) + : null, + url6: _ImgUrl[5] ? _ImgUrl[5] : null, + yearUpload6: profiles.profileAvatars[5] + ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[5].createdAt)) + : null, + url7: _ImgUrl[6] ? _ImgUrl[6] : null, + yearUpload7: profiles.profileAvatars[6] + ? Extension.ToThaiNumber(Extension.ToThaiShortYear(profiles.profileAvatars[6].createdAt)) + : null, + insignias, + leaves, + certs, + trainings, + disciplines, + educations, + salarys, + }; + + return new HttpSuccess({ + template: "kk1-emp", + reportName: "docx-report", + data: data, + }); } /** @@ -1861,98 +1874,106 @@ export class ProfileEmployeeController extends Controller { orgRevisionPublish = await this.orgRevisionRepo .createQueryBuilder("orgRevision") .where("orgRevision.id = :revisionId", { revisionId }) - // .andWhere("orgRevision.orgRevisionIsDraft = false") - // .andWhere("orgRevision.orgRevisionIsCurrent = true") .getOne(); if (!orgRevisionPublish) { throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบแบบร่างโครงสร้าง"); } } + const posMaster = + profile.current_holders == null || + profile.current_holders.length == 0 || + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) == null + ? null + : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id); + + const root = + profile.current_holders == null || + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot == null + ? null + : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot; + const child1 = + profile.current_holders == null || + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1 == + null + ? null + : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1; + const child2 = + profile.current_holders == null || + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2 == + null + ? null + : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2; + const child3 = + profile.current_holders == null || + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3 == + null + ? null + : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3; + const child4 = + profile.current_holders == null || + profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4 == + null + ? null + : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4; + + const position = await this.positionRepository.findOne({ + relations: ["posExecutive"], + where: { + posMasterId: posMaster?.id, + }, + }); + const _profile = { profileId: profile.id, - rank: profile.rank, prefix: profile.prefix, + rank: profile.rank, + avatar: profile.avatar, + isProbation: profile.isProbation, + avatarName: profile.avatarName, firstName: profile.firstName, lastName: profile.lastName, citizenId: profile.citizenId, + birthDate: profile.birthDate, position: profile.position, + leaveDate: profile.dateLeave, + dateStart: profile.dateStart, + dateRetireLaw: profile.dateRetireLaw, + posMaster: posMaster == null ? null : posMaster.posMasterNo, + posMasterNo: posMaster == null ? null : posMaster.posMasterNo, posLevelName: profile.posLevel == null ? null : profile.posLevel.posLevelName, posLevelRank: profile.posLevel == null ? null : profile.posLevel.posLevelRank, posLevelId: profile.posLevel == null ? null : profile.posLevel.id, posTypeName: profile.posType == null ? null : profile.posType.posTypeName, posTypeRank: profile.posType == null ? null : profile.posType.posTypeRank, posTypeId: profile.posType == null ? null : profile.posType.id, - rootId: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot == - null + posExecutiveName: + position == null || position.posExecutive == null ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) - ?.orgRootId, - root: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot == - null + : position.posExecutive.posExecutiveName, + posExecutivePriority: + position == null || position.posExecutive == null ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot - .orgRootName, - child1Id: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) - ?.orgChild1Id, - child1: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild1 - .orgChild1Name, - child2Id: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) - ?.orgChild2Id, - child2: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild2 - .orgChild2Name, - child3Id: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) - ?.orgChild3Id, - child3: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild3 - .orgChild3Name, - child4Id: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id) - ?.orgChild4Id, - child4: - profile.current_holders == null || - profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4 == - null - ? null - : profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgChild4 - .orgChild4Name, + : position.posExecutive.posExecutivePriority, + posExecutiveId: + position == null || position.posExecutive == null ? null : position.posExecutive.id, + rootId: root == null ? null : root.id, + root: root == null ? null : root.orgRootName, + rootShortName: root == null ? null : root.orgRootShortName, + child1Id: child1 == null ? null : child1.id, + child1: child1 == null ? null : child1.orgChild1Name, + child1ShortName: child1 == null ? null : child1.orgChild1ShortName, + child2Id: child2 == null ? null : child2.id, + child2: child2 == null ? null : child2.orgChild2Name, + child2ShortName: child2 == null ? null : child2.orgChild2ShortName, + child3Id: child3 == null ? null : child3.id, + child3: child3 == null ? null : child3.orgChild3Name, + child3ShortName: child3 == null ? null : child3.orgChild3ShortName, + child4Id: child4 == null ? null : child4.id, + child4: child4 == null ? null : child4.orgChild4Name, + child4ShortName: child4 == null ? null : child4.orgChild4ShortName, + node: null, + nodeId: null, salary: profile && profile.profileSalarys.length > 0 ? profile.profileSalarys[0].amount : null, };