diff --git a/src/services/rabbitmq.ts b/src/services/rabbitmq.ts index 5093f52a..875ae3f8 100644 --- a/src/services/rabbitmq.ts +++ b/src/services/rabbitmq.ts @@ -565,7 +565,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { relations: ["posMaster"], where: { posMaster: { - orgRevisionId: orgRevisionPublish!.id, + orgRevisionId: orgRevisionPublish?.id, }, }, }); @@ -578,7 +578,30 @@ 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]) + // ); const _null: any = null; for (const item of posMaster) { @@ -588,15 +611,19 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { 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({ @@ -663,45 +690,6 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { 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({