diff --git a/src/services/rabbitmq.ts b/src/services/rabbitmq.ts index 875ae3f8..e8205187 100644 --- a/src/services/rabbitmq.ts +++ b/src/services/rabbitmq.ts @@ -578,33 +578,33 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { } 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(); - // 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]) - // ); + // ดึง permissionProfiles ของ revision เดิม + const oldPermissionProfiles = await permissionProfilesRepository.find({ + relations: ["orgRootTree"], + where: { + orgRootTree: { + orgRevisionId: orgRevisionPublish?.id, + } + } + }); + // สร้าง Map: ancestorDNA → permissionProfiles[] + const permissionMap = new Map(); + 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) { - + // Clone posMasterAssign xxx const assigns = assignMap.get(item.ancestorDNA); if (assigns && assigns.length > 0) { @@ -615,15 +615,15 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { 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); - // } + const perms = permissionMap.get(item.orgRoot.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({