diff --git a/src/app.ts b/src/app.ts index 16f0ae21..f7237f7d 100644 --- a/src/app.ts +++ b/src/app.ts @@ -4,11 +4,11 @@ import cors from "cors"; import express from "express"; import swaggerUi from "swagger-ui-express"; import swaggerDocument from "./swagger.json"; -import * as cron from 'node-cron'; +import * as cron from "node-cron"; import error from "./middlewares/error"; import { AppDataSource } from "./database/data-source"; import { RegisterRoutes } from "./routes"; - +import { OrganizationController } from "./controllers/OrganizationController"; async function main() { await AppDataSource.initialize(); @@ -30,10 +30,16 @@ async function main() { app.use(error); const APP_HOST = process.env.APP_HOST || "0.0.0.0"; const APP_PORT = +(process.env.APP_PORT || 3000); - - // cron.schedule('*/10 * * * * *', () => { - // console.log("cron job....") - // }); + + const cronTime = "0 0 * * * *"; // ตั้งเวลาทุกวันเวลา 00:00:00 + cron.schedule(cronTime, async () => { + try { + const orgController = new OrganizationController(); + await orgController.cronjobRevision(); + } catch (error) { + console.error("Error executing function from controller:", error); + } + }); // app.listen(APP_PORT, APP_HOST, () => console.log(`Listening on: http://localhost:${APP_PORT}`)); app.listen( diff --git a/src/controllers/OrganizationController.ts b/src/controllers/OrganizationController.ts index 33177b72..02d4d290 100644 --- a/src/controllers/OrganizationController.ts +++ b/src/controllers/OrganizationController.ts @@ -1320,4 +1320,39 @@ export class OrganizationController extends Controller { await this.orgRevisionRepository.save(orgRevisionDraft); return new HttpSuccess(); } + + + /** + * Cronjob + */ + async cronjobRevision() { + + const today = new Date(); + today.setHours(0, 0, 0, 0); // Set time to the beginning of the day + const orgRevisionPublish = await this.orgRevisionRepository + .createQueryBuilder("orgRevision") + .where("orgRevision.orgRevisionIsDraft = false") + .andWhere("orgRevision.orgRevisionIsCurrent = true") + .getOne(); + + const orgRevisionDraft = await this.orgRevisionRepository + .createQueryBuilder("orgRevision") + .where("orgRevision.orgRevisionIsDraft = true") + .andWhere("orgRevision.orgRevisionIsCurrent = false") + .andWhere("DATE(orgRevision.orgPublishDate) = :today", { today }) + .getOne(); + if (!orgRevisionDraft) { + return new HttpSuccess(); + } + if (orgRevisionPublish) { + orgRevisionPublish.orgRevisionIsDraft = false; + orgRevisionPublish.orgRevisionIsCurrent = false; + await this.orgRevisionRepository.save(orgRevisionPublish); + + } + orgRevisionDraft.orgRevisionIsCurrent = true; + orgRevisionDraft.orgRevisionIsDraft = false; + await this.orgRevisionRepository.save(orgRevisionDraft); + return new HttpSuccess(); + } } diff --git a/src/controllers/PositionController.ts b/src/controllers/PositionController.ts index cef27dcb..2c1857e4 100644 --- a/src/controllers/PositionController.ts +++ b/src/controllers/PositionController.ts @@ -99,14 +99,13 @@ export class PositionController extends Controller { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล PosLevelId"); } - if (requestBody.posExecutiveId == "") { - requestBody.posExecutiveId = null; + if (posDict.posExecutiveId == "") { posDict.posExecutiveId = null; } - if (requestBody.posExecutiveId != null) { + if (posDict.posExecutiveId != null) { const checkPosExecutiveId = await this.posExecutiveRepository.findOne({ - where: { id: requestBody.posExecutiveId }, + where: { id: posDict.posExecutiveId }, }); if (!checkPosExecutiveId) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล PosExecutiveId");