เผยแพร่โครงสร้าง

This commit is contained in:
mamoss 2025-08-22 12:26:00 +07:00
parent fd18644ef8
commit 329f83a989

View file

@ -246,7 +246,7 @@ async function handler(msg: amqp.ConsumeMessage): Promise<boolean> {
return null;
}
allRefIds.add(key);
return {
refId: x.refId,
commandNo: command.commandNo,
@ -264,7 +264,7 @@ async function handler(msg: amqp.ConsumeMessage): Promise<boolean> {
};
})
.filter(Boolean),
20
20,
);
for (const chunk of chunks) {
@ -272,7 +272,7 @@ async function handler(msg: amqp.ConsumeMessage): Promise<boolean> {
{ headers: { authorization: token } },
path + "/excecute",
{ refIds: chunk },
false
false,
);
}
@ -289,7 +289,6 @@ async function handler(msg: amqp.ConsumeMessage): Promise<boolean> {
console.log("[AMQ] Excecute Command Success");
return !!result;
} catch (e) {
console.error(e);
if (user) {
@ -555,8 +554,15 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
const profile = await repoProfile.findOne({
where: { id: item.next_holderId == null ? "" : item.next_holderId },
});
const position = await item.positions.find((x) => x.positionIsSelected == true);
if (profile != null) {
if (profile != null && item.positions.length > 0) {
let position = await item.positions.find((x) => x.positionIsSelected == true);
if (position == null) {
position = await item.positions.find((x) => x.posLevelId == profile?.posLevelId);
if (position == null) {
position = await item.positions.sort((a, b) => a.orderNo - b.orderNo)[0];
}
}
profile.posLevelId = position?.posLevelId ?? _null;
profile.posTypeId = position?.posTypeId ?? _null;
profile.position = position?.positionName ?? _null;
@ -631,29 +637,28 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
// }));
// await repoEmployeePosmaster.save(_orgemployeePosMaster);
const validProfileIds = new Set(
(await repoProfileEmployee.find({ select: ["id"] })).map(p => p.id)
(await repoProfileEmployee.find({ select: ["id"] })).map((p) => p.id),
);
_orgemployeePosMaster = orgemployeePosMaster.map((x) => ({
...x,
current_holderId: x.current_holderId && validProfileIds.has(x.current_holderId)
? x.current_holderId
: null,
current_holderId:
x.current_holderId && validProfileIds.has(x.current_holderId) ? x.current_holderId : null,
ancestorDNA:
!x.ancestorDNA || x.ancestorDNA === "00000000-0000-0000-0000-000000000000"
? x.id
: x.ancestorDNA,
}));
await repoEmployeePosmaster
.createQueryBuilder()
.insert()
.into(EmployeePosMaster)
.values(_orgemployeePosMaster)
.orUpdate({
conflict_target: ['id'],
overwrite: ['ancestorDNA'],
})
.execute();
.createQueryBuilder()
.insert()
.into(EmployeePosMaster)
.values(_orgemployeePosMaster)
.orUpdate({
conflict_target: ["id"],
overwrite: ["ancestorDNA"],
})
.execute();
// }
//หา dna posmaster ถ้าไม่มีให้เอาตัวเองเป็น dna
@ -678,17 +683,17 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
}));
// await repoEmployeeTempPosmaster.save(_orgemployeeTempPosMaster);
await repoEmployeeTempPosmaster
.createQueryBuilder()
.insert()
.into(EmployeeTempPosMaster)
.values(_orgemployeeTempPosMaster)
.orUpdate({
conflict_target: ['id'],
overwrite: ['ancestorDNA'],
})
.execute();
.createQueryBuilder()
.insert()
.into(EmployeeTempPosMaster)
.values(_orgemployeeTempPosMaster)
.orUpdate({
conflict_target: ["id"],
overwrite: ["ancestorDNA"],
})
.execute();
// }
//create org
orgRoot.forEach(async (x: any) => {
var dataId = x.id;
@ -1495,7 +1500,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
});
});
// }
const employeePosMaster = await repoEmployeePosmaster.find({
where: { orgRevisionId: orgRevisionDraft.id },
relations: ["positions", "positions.posLevel", "positions.posType"],
@ -2280,7 +2285,7 @@ async function handler_org_draft(msg: amqp.ConsumeMessage): Promise<boolean> {
console.log("[AMQ] Create Draft Success");
if (user) {
await sendWebSocket(
await sendWebSocket(
"send-create-draft-org",
{
success: true,