import edu

This commit is contained in:
mamoss 2025-03-11 23:37:05 +07:00
parent ce5a595bc6
commit b314fe0cec
5 changed files with 58 additions and 14 deletions

17
package-lock.json generated
View file

@ -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",

View file

@ -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",

View file

@ -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));

View file

@ -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 },

View file

@ -134,6 +134,7 @@ async function handler(msg: amqp.ConsumeMessage): Promise<boolean> {
}
async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
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<boolean> {
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<boolean> {
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<boolean> {
"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<boolean> {
}
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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// 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<boolean> {
// }
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<boolean> {
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) {