This commit is contained in:
harid 2026-01-09 14:25:04 +07:00
parent 3d34a4c5ef
commit 9aea3cc88c
3 changed files with 69 additions and 67 deletions

View file

@ -10828,15 +10828,18 @@ export class ProfileController extends Controller {
queryLike = "profile.citizenId LIKE :keyword"; queryLike = "profile.citizenId LIKE :keyword";
break; break;
case "fullname":
case "fullName": case "fullName":
queryLike = queryLike =
"CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword"; "CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword";
break; break;
case "firstname":
case "firstName": case "firstName":
queryLike = "profile.firstName LIKE :keyword"; queryLike = "profile.firstName LIKE :keyword";
break; break;
case "lastname":
case "lastName": case "lastName":
queryLike = "profile.lastName LIKE :keyword"; queryLike = "profile.lastName LIKE :keyword";
break; break;

View file

@ -5741,16 +5741,19 @@ export class ProfileEmployeeController extends Controller {
case "citizenId": case "citizenId":
queryLike = "profile.citizenId LIKE :keyword"; queryLike = "profile.citizenId LIKE :keyword";
break; break;
case "fullname":
case "fullName": case "fullName":
queryLike = queryLike =
"CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword"; "CONCAT(profile.prefix, profile.firstName, ' ', profile.lastName) LIKE :keyword";
break; break;
case "firstname":
case "firstName": case "firstName":
queryLike = "profile.firstName LIKE :keyword"; queryLike = "profile.firstName LIKE :keyword";
break; break;
case "lastname":
case "lastName": case "lastName":
queryLike = "profile.lastName LIKE :keyword"; queryLike = "profile.lastName LIKE :keyword";
break; break;

View file

@ -560,74 +560,70 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
"positions.posExecutive", "positions.posExecutive",
], ],
}); });
// // xxx // ดึง posMasterAssign ของ revision เดิม xxx
// // ดึง assignment ของ revision เดิม const oldposMasterAssigns = await posMasterAssignRepository.find({
// const oldAssigns = await posMasterAssignRepository.find({ relations: ["posMaster"],
// relations: ["posMaster"], where: {
// where: { posMaster: {
// posMaster: { orgRevisionId: orgRevisionPublish?.id,
// orgRevisionId: orgRevisionPublish?.id, },
// }, },
// }, });
// }); // สร้าง Map: ancestorDNA → posMasterAssign[]
// // สร้าง Map: ancestorDNA → assignments[] const assignMap = new Map<string, PosMasterAssign[]>();
// const assignMap = new Map<string, PosMasterAssign[]>(); for (const posmasterAssign of oldposMasterAssigns) {
// for (const a of oldAssigns) { const dna = posmasterAssign.posMaster.ancestorDNA;
// const dna = a.posMaster.ancestorDNA; if (!assignMap.has(dna)) {
// if (!assignMap.has(dna)) { assignMap.set(dna, []);
// assignMap.set(dna, []); }
// } assignMap.get(dna)!.push(posmasterAssign);
// assignMap.get(dna)!.push(a); }
// } // ดึง permissionProfiles ของ revision เดิม
// const permissionProfiles = await permissionProfilesRepository.find({ const oldPermissionProfiles = await permissionProfilesRepository.find({
// relations: ["orgRootTree"], relations: ["orgRootTree"],
// where: { where: {
// orgRootTree: { orgRootTree: {
// orgRevisionId: orgRevisionPublish?.id, orgRevisionId: orgRevisionPublish?.id,
// } }
// } }
// }); });
// const permissionMap = new Map<string, PermissionProfile[]>(); // สร้าง Map: ancestorDNA → permissionProfiles[]
// for (const p of permissionProfiles) { const permissionMap = new Map<string, PermissionProfile[]>();
// const dna = p.orgRootTree.ancestorDNA; for (const permissionProfile of oldPermissionProfiles) {
// if (!permissionMap.has(dna)) { const dna = permissionProfile.orgRootTree.ancestorDNA;
// permissionMap.set(dna, []); if (!permissionMap.has(dna)) {
// } permissionMap.set(dna, []);
// permissionMap.get(dna)!.push(p); }
// } permissionMap.get(dna)!.push(permissionProfile);
// const newRoots = await orgRootRepository.find({ }
// where: { orgRevisionId: orgRevisionDraft?.id }, const newRoots = await orgRootRepository.find({
// }); where: { orgRevisionId: orgRevisionDraft?.id },
// const newRootMap = new Map( });
// newRoots.map(r => [r.ancestorDNA, r.id]) const newRootMap = new Map(
// ); newRoots.map(r => [r.ancestorDNA, r.id])
);
const _null: any = null; const _null: any = null;
for (const item of posMaster) { for (const item of posMaster) {
// /* ===============================
// * Clone posMasterAssign & permissionProfiles xxx // Clone posMasterAssign xxx
// * =============================== */ const assigns = assignMap.get(item.ancestorDNA);
// const assigns = assignMap.get(item.ancestorDNA); if (assigns && assigns.length > 0) {
const newAssigns = assigns.map(({ id, ...fields }) => ({
// if (assigns && assigns.length > 0) { ...fields, // copy ทุก field ยกเว้น id
// const newAssigns = assigns.map(({ id, ...rest }) => ({ posMasterId: item.id, // ผูกกับ posMasterId ใหม่
// ...rest, // copy ทุก field ยกเว้น id }));
// posMasterId: item.id, // ผูกกับ posMaster ใหม่ await posMasterAssignRepository.save(newAssigns);
// })); }
// Clone permissionProfiles
// await posMasterAssignRepository.save(newAssigns); const perms = permissionMap.get(item.orgRoot.ancestorDNA);
// } const newRootId = newRootMap.get(item.orgRoot.ancestorDNA);
if (perms && perms.length > 0 && newRootId) {
// const perms = permissionMap.get(item.ancestorDNA); const newPerms = perms.map(({ id, ...fields }) => ({
// const newRootId = newRootMap.get(item.ancestorDNA); ...fields,
orgRootId: newRootId,
// if (perms && perms.length > 0 && newRootId) { }));
// const newPerms = perms.map(({ id, orgRootTree, ...rest }) => ({ await permissionProfilesRepository.save(newPerms);
// ...rest, // profileId, isEdit, isCheck }
// orgRootId: newRootId,
// }));
// await permissionProfilesRepository.save(newPerms);
// }
if (item.next_holderId != null) { if (item.next_holderId != null) {
const profile = await repoProfile.findOne({ const profile = await repoProfile.findOne({