Fix [Invalid KPI] ดึงข้อมูลการรักษาการ ต้องดึงมาจากในรายการรักษาการใน ทะเบียนประวัติที่ใช้งานอยู่ #132

This commit is contained in:
Bright 2025-06-19 12:10:05 +07:00
parent afdc758cd0
commit 3ac035d5e0

View file

@ -7649,6 +7649,7 @@ export class ProfileController extends Controller {
"current_holders.orgChild4",
"profileSalary",
"profileEducations",
"profileActpositions"
],
order: {
// profileSalary: {
@ -7657,6 +7658,9 @@ export class ProfileController extends Controller {
profileEducations: {
level: "ASC",
},
profileActpositions: {
createdAt: "ASC"
}
},
});
if (!profile) {
@ -7740,57 +7744,76 @@ export class ProfileController extends Controller {
?.orgRoot != null
? `${profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.orgRoot.orgRootShortName} ${profile.current_holders.find((x) => x.orgRevisionId == orgRevisionPublish.id)?.posMasterNo}`
: null;
const posMasterActs = await this.posMasterActRepository.find({
relations: [
"posMaster",
"posMaster.orgRoot",
"posMaster.orgChild1",
"posMaster.orgChild2",
"posMaster.orgChild3",
"posMaster.orgChild4",
"posMaster.current_holder",
"posMaster.current_holder.posLevel",
"posMaster.current_holder.posType",
],
where: {
posMaster: {
orgRevisionId: orgRevisionPublish.id,
},
posMasterChild: {
current_holderId: profile.id,
},
},
});
// const posMasterActs = await this.posMasterActRepository.find({
// relations: [
// "posMaster",
// "posMaster.orgRoot",
// "posMaster.orgChild1",
// "posMaster.orgChild2",
// "posMaster.orgChild3",
// "posMaster.orgChild4",
// "posMaster.current_holder",
// "posMaster.current_holder.posLevel",
// "posMaster.current_holder.posType",
// ],
// where: {
// posMaster: {
// orgRevisionId: orgRevisionPublish.id,
// },
// posMasterChild: {
// current_holderId: profile.id,
// },
// },
// });
// const data = await Promise.all(
// posMasterActs
// .sort((a, b) => a.posMaster.posMasterOrder - b.posMaster.posMasterOrder)
// .map((item) => {
// const shortName =
// item.posMaster != null && item.posMaster.orgChild4 != null
// ? `${item.posMaster.orgChild4.orgChild4ShortName} ${item.posMaster.posMasterNo}`
// : item.posMaster != null && item.posMaster?.orgChild3 != null
// ? `${item.posMaster.orgChild3.orgChild3ShortName} ${item.posMaster.posMasterNo}`
// : item.posMaster != null && item.posMaster?.orgChild2 != null
// ? `${item.posMaster.orgChild2.orgChild2ShortName} ${item.posMaster.posMasterNo}`
// : item.posMaster != null && item.posMaster?.orgChild1 != null
// ? `${item.posMaster.orgChild1.orgChild1ShortName} ${item.posMaster.posMasterNo}`
// : item.posMaster != null && item.posMaster?.orgRoot != null
// ? `${item.posMaster.orgRoot.orgRootShortName} ${item.posMaster.posMasterNo}`
// : null;
// return {
// id: item.id,
// posMasterOrder: item.posMasterOrder,
// profileId: item.posMaster?.current_holder?.id ?? null,
// citizenId: item.posMaster?.current_holder?.citizenId ?? null,
// prefix: item.posMaster?.current_holder?.prefix ?? null,
// firstName: item.posMaster?.current_holder?.firstName ?? null,
// lastName: item.posMaster?.current_holder?.lastName ?? null,
// posLevel: item.posMaster?.current_holder?.posLevel?.posLevelName ?? null,
// posType: item.posMaster?.current_holder?.posType?.posTypeName ?? null,
// position: item.posMaster?.current_holder?.position ?? null,
// posNo: shortName,
// };
// }),
// );
const data = await Promise.all(
posMasterActs
.sort((a, b) => a.posMaster.posMasterOrder - b.posMaster.posMasterOrder)
.map((item) => {
const shortName =
item.posMaster != null && item.posMaster.orgChild4 != null
? `${item.posMaster.orgChild4.orgChild4ShortName} ${item.posMaster.posMasterNo}`
: item.posMaster != null && item.posMaster?.orgChild3 != null
? `${item.posMaster.orgChild3.orgChild3ShortName} ${item.posMaster.posMasterNo}`
: item.posMaster != null && item.posMaster?.orgChild2 != null
? `${item.posMaster.orgChild2.orgChild2ShortName} ${item.posMaster.posMasterNo}`
: item.posMaster != null && item.posMaster?.orgChild1 != null
? `${item.posMaster.orgChild1.orgChild1ShortName} ${item.posMaster.posMasterNo}`
: item.posMaster != null && item.posMaster?.orgRoot != null
? `${item.posMaster.orgRoot.orgRootShortName} ${item.posMaster.posMasterNo}`
: null;
profile.profileActpositions
.filter(x => x.status)
.map((item, idx) => {
return {
id: item.id,
posMasterOrder: item.posMasterOrder,
profileId: item.posMaster?.current_holder?.id ?? null,
citizenId: item.posMaster?.current_holder?.citizenId ?? null,
prefix: item.posMaster?.current_holder?.prefix ?? null,
firstName: item.posMaster?.current_holder?.firstName ?? null,
lastName: item.posMaster?.current_holder?.lastName ?? null,
posLevel: item.posMaster?.current_holder?.posLevel?.posLevelName ?? null,
posType: item.posMaster?.current_holder?.posType?.posTypeName ?? null,
position: item.posMaster?.current_holder?.position ?? null,
posNo: shortName,
};
}),
posMasterOrder: idx+1,
profileId: item.profileId ?? null,
citizenId: profile.citizenId ?? null,
prefix: profile.prefix ?? null,
firstName: profile.firstName ?? null,
lastName: profile.lastName ?? null,
posLevel: profile.posLevel.posLevelName ?? null,
posType: profile.posType.posTypeName ?? null,
position: item.position ?? null,
posNo: item.posNo ?? null,
}
})
);
const permissionProflile = await this.permissionProflileRepository.findOne({
relations: ["orgRootTree"],