From b314fe0cec9c686c931e0ef5656bd07e96a2c754 Mon Sep 17 00:00:00 2001 From: mamoss <> Date: Tue, 11 Mar 2025 23:37:05 +0700 Subject: [PATCH] import edu --- package-lock.json | 17 ++++++++++++++ package.json | 1 + src/app.ts | 2 +- src/controllers/OrgRootController.ts | 18 +++++++++++++++ src/services/rabbitmq.ts | 34 +++++++++++++++++----------- 5 files changed, 58 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index ae0f1399..4bec754c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@elastic/elasticsearch": "^8.14.0", "@nestjs/platform-express": "^10.3.9", "@tsoa/runtime": "^6.0.0", + "act": "^0.0.6", "amqplib": "^0.10.4", "axios": "^1.7.9", "cors": "^2.8.5", @@ -618,6 +619,14 @@ "node": ">=0.4.0" } }, + "node_modules/act": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/act/-/act-0.0.6.tgz", + "integrity": "sha512-ZtxoGxWmoq6bF1lGASkepxfeLED9TNVt8cQjEMFNUlaVxXMr/XfpO7iAKF3ElBgVquxyntne4u4iBqg12sSBiA==", + "dependencies": { + "underscore": "~1.3.3" + } + }, "node_modules/align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -5145,6 +5154,14 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, + "node_modules/underscore": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.3.3.tgz", + "integrity": "sha512-ddgUaY7xyrznJ0tbSUZgvNdv5qbiF6XcUBTrHgdCOVUrxJYWozD5KyiRjtIwds1reZ7O1iPLv5rIyqnVAcS6gg==", + "engines": { + "node": "*" + } + }, "node_modules/undici": { "version": "6.19.5", "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.5.tgz", diff --git a/package.json b/package.json index 424b45ba..d689a9c3 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "@elastic/elasticsearch": "^8.14.0", "@nestjs/platform-express": "^10.3.9", "@tsoa/runtime": "^6.0.0", + "act": "^0.0.6", "amqplib": "^0.10.4", "axios": "^1.7.9", "cors": "^2.8.5", diff --git a/src/app.ts b/src/app.ts index b0652ce4..ce725fc9 100644 --- a/src/app.ts +++ b/src/app.ts @@ -30,7 +30,7 @@ async function main() { ); app.use(express.json()); app.use(express.urlencoded({ extended: true })); - app.use(logMiddleware); + // app.use(logMiddleware); app.use("/", express.static("static")); app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument)); diff --git a/src/controllers/OrgRootController.ts b/src/controllers/OrgRootController.ts index 48789287..4e9e4f29 100644 --- a/src/controllers/OrgRootController.ts +++ b/src/controllers/OrgRootController.ts @@ -493,6 +493,24 @@ export class OrgRootController extends Controller { .getOne(); try { if (orgRevisionPublish != null) { + const _orgRevisions = await repoOrgRevision.find({ + where: [{ orgRevisionIsDraft: true, id: Not(orgRevisionPublish.id) }], + }); + const _employeePosMasters = await repoEmployeePosmaster.find({ + where: [{ orgRevisionId: In(_orgRevisions.map((x) => x.id)) }], + }); + const _employeeTempPosMasters = await repoEmployeeTempPosmaster.find({ + where: [{ orgRevisionId: In(_orgRevisions.map((x) => x.id)) }], + }); + await employeePositionRepository.delete({ + posMasterId: In(_employeePosMasters.map((x) => x.id)), + }); + await employeePositionRepository.delete({ + posMasterTempId: In(_employeeTempPosMasters.map((x) => x.id)), + }); + await repoEmployeePosmaster.remove(_employeePosMasters); + await repoEmployeeTempPosmaster.remove(_employeeTempPosMasters); + //หา dna tree const orgRoot = await orgRootRepository.find({ where: { orgRevisionId: orgRevisionPublish.id }, diff --git a/src/services/rabbitmq.ts b/src/services/rabbitmq.ts index 6492dfb4..83f39d7e 100644 --- a/src/services/rabbitmq.ts +++ b/src/services/rabbitmq.ts @@ -134,6 +134,7 @@ async function handler(msg: amqp.ConsumeMessage): Promise { } async function handler_org(msg: amqp.ConsumeMessage): Promise { + console.log("zzzzzzzzzzzzzzzz"); //----> condition before process consume const repoPosmaster = AppDataSource.getRepository(PosMaster); const repoEmployeePosmaster = AppDataSource.getRepository(EmployeePosMaster); @@ -148,11 +149,13 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { const child3Repository = AppDataSource.getRepository(OrgChild3); const child4Repository = AppDataSource.getRepository(OrgChild4); + console.log("zzzzzzzzzzzzzzzz"); const orgRevisionPublish = await repoOrgRevision .createQueryBuilder("orgRevision") .where("orgRevision.orgRevisionIsDraft = false") .andWhere("orgRevision.orgRevisionIsCurrent = true") .getOne(); + console.log("zzzzzzzzzzzzzzzz"); const orgRevisionDraft = await repoOrgRevision .createQueryBuilder("orgRevision") @@ -164,14 +167,17 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { orgRevisionPublish.orgRevisionIsCurrent = false; await repoOrgRevision.save(orgRevisionPublish); } + console.log("zzzzzzzzzzzzzzzz"); if (orgRevisionDraft) { orgRevisionDraft.orgRevisionIsCurrent = true; orgRevisionDraft.orgRevisionIsDraft = false; await repoOrgRevision.save(orgRevisionDraft); } + console.log("zzzzzzzzzzzzzzzz"); const { data, token, user } = JSON.parse(msg.content.toString()); const { id, status, lastUpdateUserId, lastUpdateFullName, lastUpdatedAt } = data; + console.log("zzzzzzzzzzzzzzzz"); try { const posMaster = await repoPosmaster.find({ where: { orgRevisionId: id }, @@ -187,7 +193,9 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { "positions.posExecutive", ], }); + console.log("zzzzzzzzzzzzzzzz"); for (const item of posMaster) { + console.log("zzzzzzzzzzzzzzzz"); if (item.next_holderId != null && status == "NOW") { const profile = await repoProfile.findOne({ where: { id: item.next_holderId == null ? "" : item.next_holderId }, @@ -210,7 +218,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { } console.log(orgRevisionPublish); console.log("zzzzzzzzzzzzzzzz"); - if (orgRevisionPublish != null) { + if (orgRevisionPublish != null && orgRevisionDraft !=null) { console.log("cccccccccccccccccccccc"); //new main revision const before = null; @@ -333,7 +341,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeePosMaster.authRoleId = null; // } // employeePosMaster.current_holderId = null; - employeePosMaster.orgRevisionId = orgRevisionPublish.id; + employeePosMaster.orgRevisionId = orgRevisionDraft.id; employeePosMaster.orgRootId = dataId; employeePosMaster.createdUserId = ""; employeePosMaster.createdFullName = "System Administrator"; @@ -393,7 +401,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeeTempPosMaster.authRoleId = null; // } // employeeTempPosMaster.current_holderId = null; - employeeTempPosMaster.orgRevisionId = orgRevisionPublish.id; + employeeTempPosMaster.orgRevisionId = orgRevisionDraft.id; employeeTempPosMaster.orgRootId = dataId; employeeTempPosMaster.createdUserId = ""; employeeTempPosMaster.createdFullName = "System Administrator"; @@ -466,7 +474,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeePosMaster.authRoleId = null; // } // employeePosMaster.current_holderId = null; - employeePosMaster.orgRevisionId = orgRevisionPublish.id; + employeePosMaster.orgRevisionId = orgRevisionDraft.id; employeePosMaster.orgRootId = dataId; employeePosMaster.orgChild1Id = data1Id; employeePosMaster.createdUserId = ""; @@ -529,7 +537,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeeTempPosMaster.authRoleId = null; // } // employeeTempPosMaster.current_holderId = null; - employeeTempPosMaster.orgRevisionId = orgRevisionPublish.id; + employeeTempPosMaster.orgRevisionId = orgRevisionDraft.id; employeeTempPosMaster.orgRootId = dataId; employeeTempPosMaster.orgChild1Id = data1Id; employeeTempPosMaster.createdUserId = ""; @@ -605,7 +613,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeePosMaster.authRoleId = null; // } // employeePosMaster.current_holderId = null; - employeePosMaster.orgRevisionId = orgRevisionPublish.id; + employeePosMaster.orgRevisionId = orgRevisionDraft.id; employeePosMaster.orgRootId = dataId; employeePosMaster.orgChild1Id = data1Id; employeePosMaster.orgChild2Id = data2Id; @@ -673,7 +681,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeeTempPosMaster.authRoleId = null; // } // employeeTempPosMaster.current_holderId = null; - employeeTempPosMaster.orgRevisionId = orgRevisionPublish.id; + employeeTempPosMaster.orgRevisionId = orgRevisionDraft.id; employeeTempPosMaster.orgRootId = dataId; employeeTempPosMaster.orgChild1Id = data1Id; employeeTempPosMaster.orgChild2Id = data2Id; @@ -751,7 +759,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeePosMaster.authRoleId = null; // } // employeePosMaster.current_holderId = null; - employeePosMaster.orgRevisionId = orgRevisionPublish.id; + employeePosMaster.orgRevisionId = orgRevisionDraft.id; employeePosMaster.orgRootId = dataId; employeePosMaster.orgChild1Id = data1Id; employeePosMaster.orgChild2Id = data2Id; @@ -820,7 +828,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeeTempPosMaster.authRoleId = null; // } // employeeTempPosMaster.current_holderId = null; - employeeTempPosMaster.orgRevisionId = orgRevisionPublish.id; + employeeTempPosMaster.orgRevisionId = orgRevisionDraft.id; employeeTempPosMaster.orgRootId = dataId; employeeTempPosMaster.orgChild1Id = data1Id; employeeTempPosMaster.orgChild2Id = data2Id; @@ -899,7 +907,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeePosMaster.authRoleId = null; // } // employeePosMaster.current_holderId = null; - employeePosMaster.orgRevisionId = orgRevisionPublish.id; + employeePosMaster.orgRevisionId = orgRevisionDraft.id; employeePosMaster.orgRootId = dataId; employeePosMaster.orgChild1Id = data1Id; employeePosMaster.orgChild2Id = data2Id; @@ -966,7 +974,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // employeeTempPosMaster.authRoleId = null; // } // employeeTempPosMaster.current_holderId = null; - employeeTempPosMaster.orgRevisionId = orgRevisionPublish.id; + employeeTempPosMaster.orgRevisionId = orgRevisionDraft.id; employeeTempPosMaster.orgRootId = dataId; employeeTempPosMaster.orgChild1Id = data1Id; employeeTempPosMaster.orgChild2Id = data2Id; @@ -1013,7 +1021,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { // } const employeePosMaster = await repoEmployeePosmaster.find({ - where: { orgRevisionId: orgRevisionPublish.id }, + where: { orgRevisionId: orgRevisionDraft.id }, relations: ["positions", "positions.posLevel", "positions.posType"], }); for (const item of employeePosMaster) { @@ -1038,7 +1046,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise { await repoEmployeePosmaster.save(item).catch((e) => console.log(e)); } const employeeTempPosMaster = await repoEmployeeTempPosmaster.find({ - where: { orgRevisionId: orgRevisionPublish.id }, + where: { orgRevisionId: orgRevisionDraft.id }, relations: ["positions", "positions.posLevel", "positions.posType"], }); for (const item of employeeTempPosMaster) {