update search

This commit is contained in:
mamoss 2026-01-07 01:44:18 +07:00
parent 01cffa44aa
commit dea1b11e1b

View file

@ -6161,8 +6161,8 @@ export class OrganizationDotnetController extends Controller {
where: {
...typeCondition,
createdAt: LessThanOrEqual(date),
firstName: Not("") && Not(IsNull()),
lastName: Not("") && Not(IsNull()),
// firstName: Not("") && Not(IsNull()),
// lastName: Not("") && Not(IsNull()),
},
order: {
firstName: "ASC",
@ -6171,10 +6171,10 @@ export class OrganizationDotnetController extends Controller {
},
});
// group by firstName + lastName แล้วเลือก create_at ล่าสุด
// group by ancestorDNA แล้วเลือก create_at ล่าสุด
const grouped = new Map<string, PosMasterHistory>();
for (const item of profile) {
const key = `${item.firstName}-${item.lastName}`;
const key = `${item.ancestorDNA}`;
if (!grouped.has(key)) {
grouped.set(key, item);
} else {
@ -6187,32 +6187,34 @@ export class OrganizationDotnetController extends Controller {
}
const profile_ = await Promise.all(
Array.from(grouped.values()).map(async (item: PosMasterHistory) => {
let profile = await this.profileRepo.findOne({
where: { id: item.profileId },
});
Array.from(grouped.values())
.filter((x) => x.profileId != null)
.map(async (item: PosMasterHistory) => {
let profile = await this.profileRepo.findOne({
where: { id: item.profileId },
});
return {
id: item.id,
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
citizenId: profile?.citizenId ?? null,
dateStart: profile?.dateStart ?? null,
dateAppoint: profile?.dateAppoint ?? null,
keycloak: profile?.keycloak ?? null,
posNo: item.shortName,
position: item.position,
positionLevel: item.posLevel,
positionType: item.posType,
// oc: Oc,
orgRootId: item.rootDnaId,
orgChild1Id: item.child1DnaId,
orgChild2Id: item.child2DnaId,
orgChild3Id: item.child3DnaId,
orgChild4Id: item.child4DnaId,
};
}),
return {
id: item.id,
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
citizenId: profile?.citizenId ?? null,
dateStart: profile?.dateStart ?? null,
dateAppoint: profile?.dateAppoint ?? null,
keycloak: profile?.keycloak ?? null,
posNo: item.shortName,
position: item.position,
positionLevel: item.posLevel,
positionType: item.posType,
// oc: Oc,
orgRootId: item.rootDnaId,
orgChild1Id: item.child1DnaId,
orgChild2Id: item.child2DnaId,
orgChild3Id: item.child3DnaId,
orgChild4Id: item.child4DnaId,
};
}),
);
return new HttpSuccess(profile_);