This commit is contained in:
harid 2026-01-09 18:40:10 +07:00
parent 53d6be09d5
commit f4be31ed08

View file

@ -565,7 +565,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
relations: ["posMaster"],
where: {
posMaster: {
orgRevisionId: orgRevisionPublish?.id,
orgRevisionId: orgRevisionPublish!.id,
},
},
});
@ -578,30 +578,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
}
assignMap.get(dna)!.push(posmasterAssign);
}
// // ดึง permissionProfiles ของ revision เดิม
// const oldPermissionProfiles = await permissionProfilesRepository.find({
// relations: ["orgRootTree"],
// where: {
// orgRootTree: {
// orgRevisionId: orgRevisionPublish?.id,
// }
// }
// });
// // สร้าง Map: ancestorDNA → permissionProfiles[]
// const permissionMap = new Map<string, PermissionProfile[]>();
// for (const permissionProfile of oldPermissionProfiles) {
// const dna = permissionProfile.orgRootTree.ancestorDNA;
// if (!permissionMap.has(dna)) {
// permissionMap.set(dna, []);
// }
// permissionMap.get(dna)!.push(permissionProfile);
// }
// const newRoots = await orgRootRepository.find({
// where: { orgRevisionId: orgRevisionDraft?.id },
// });
// const newRootMap = new Map(
// newRoots.map(r => [r.ancestorDNA, r.id])
// );
const _null: any = null;
for (const item of posMaster) {
@ -611,19 +588,15 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
const newAssigns = assigns.map(({ id, ...fields }) => ({
...fields, // copy ทุก field ยกเว้น id
posMasterId: item.id, // ผูกกับ posMasterId ใหม่
createdAt: new Date(),
createdFullName: user.name,
createdUserId: user.sub,
lastUpdatedAt: new Date(),
lastUpdateFullName: user.name,
lastUpdateUserId: user.sub,
}));
await posMasterAssignRepository.save(newAssigns);
}
// Clone permissionProfiles
// const perms = permissionMap.get(item.ancestorDNA);
// const newRootId = newRootMap.get(item.orgRoot.ancestorDNA);
// if (perms && perms.length > 0 && newRootId) {
// const newPerms = perms.map(({ id, ...fields }) => ({
// ...fields,
// orgRootId: newRootId,
// }));
// await permissionProfilesRepository.save(newPerms);
// }
if (item.next_holderId != null) {
const profile = await repoProfile.findOne({
@ -690,6 +663,45 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
const orgChild4 = await child4Repository.find({
where: { orgRevisionId: orgRevisionPublish.id },
});
const newRoots = await orgRootRepository.find({
where: { orgRevisionId: orgRevisionDraft.id },
});
// map ancestorDNA -> newRootId
const newRootMap = new Map(
newRoots.map(r => [r.ancestorDNA, r.id])
);
// ดึง permissionProfiles ของ revision เดิม
const oldPermissionProfiles = await permissionProfilesRepository.find({
relations: ["orgRootTree"],
where: {
orgRootTree: {
orgRevisionId: orgRevisionPublish.id,
}
}
});
const inserts: any[] = [];
for (const permiss of oldPermissionProfiles) {
const newRootId = newRootMap.get(permiss.orgRootTree.ancestorDNA);
if (!newRootId) continue;
const { id, ...fields } = permiss;
inserts.push({
...fields,
orgRootId: newRootId,
createdAt: new Date(),
createdFullName: user.name,
createdUserId: user.sub,
lastUpdatedAt: new Date(),
lastUpdateFullName: user.name,
lastUpdateUserId: user.sub,
});
}
if (inserts.length > 0) {
await permissionProfilesRepository.insert(inserts);
}
//หา dna posmaster ถ้าไม่มีให้เอาตัวเองเป็น dna
const orgemployeePosMaster = await repoEmployeePosmaster.find({