diff --git a/.gitignore b/.gitignore index ef17a3c..3496b6c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ downloads .scriptCreds node-v24.14.0-x64.msi postgresql-17.9-2-windows-x64.exe -VSCodeUserSetup-x64-1.112.0.exe +VSCodeSetup-x64-1.120.0.exe nssm.exe frontend/.tanstack diff --git a/backend/notification/notification.SqlJobCleanUp.ts b/backend/notification/notification.SqlJobCleanUp.ts new file mode 100644 index 0000000..0ca82a8 --- /dev/null +++ b/backend/notification/notification.SqlJobCleanUp.ts @@ -0,0 +1,80 @@ +import { prodQuery } from "../prodSql/prodSqlQuery.controller.js"; +import { + type SqlQuery, + sqlQuerySelector, +} from "../prodSql/prodSqlQuerySelector.utils.js"; +import { tryCatch } from "../utils/trycatch.utils.js"; + +// disable the jobs +const jobNames: string[] = [ + "monitor_$_lots", + "monitor_$_lots_2", + "monitor$lots", + "Monitor_APO", //listen for people to cry this is no longer a thing + "Monitor_APO2", + "Monitor_AutoConsumeMaterials", // TODO: migrate to lst + "Monitor_AutoConsumeMaterials_iow1", + "Monitor_AutoConsumeMaterials_iow2", + "Monitor_BlockedINV_Loc", + "monitor_inv_cycle", + "monitor_inv_cycle_1", + "monitor_inv_cycle_2", + "monitor_edi_import", // TODO: migrate to lst -- for the query select count(*) from AlplaPROD_test3.dbo.T_EDIDokumente (nolock) where /* IdLieferant > 1 and */ add_date > DATEADD(MINUTE, -30, getdate()) + "Monitor_Lot_Progression", + "Monitor_Lots", // TODO: migrate to lst -- this should be the one where we monitor the when a lot is assigned if its missing some data. + "Monitor_MinMax", // TODO:Migrate to lst + "Monitor_MinMax_iow2", + "Monitor_PM", + "Monitor_Purity", + "monitor_wastebookings", // TODO: Migrate + "LastPriceUpdate", // not even sure what this is + "GETLabelsCount", // seems like an old jc job + "jobforpuritycount", // was not even working correctly + "Monitor_EmptyAutoConsumLocations", // not sure who uses this one + "monitor_labelreprint", // Migrated but need to find out who really wants this + "test", // not even sure why this is active + "UpdateLastMoldUsed", // old jc inserts data into a table but not sure what its used for not linked to any other alert + "UpdateWhsePositions3", // old jc inserts data into a table but not sure what its used for not linked to any other alert + "UpdateWhsePositions4", + "delete_print", // i think this was in here for when we was having lag prints in iowa1 + "INV_WHSE_1", // something random i wrote long time ago looks like an inv thing to see aged stuff + "INV_WHSE_2", + "laneAgeCheck", // another strange one thats been since moved to lst + "monitor_blocking_2", + "monitor_blocking", // already in lst + "monitor_min_inv", // do we still want this one? it has a description of: this checks m-f the min inventory of materials based on the min level set in stock + "Monitor_MixedLocations", + "Monitor_PM", + "Monitor_PM2", + "wrong_lots_1", + "wrong_lots_2", + "invenotry check", // spelling error one of my stupids + "monitor_hold_monitor", + "Monitor_Silo_adjustments", + "monitor_qualityLocMonitor", // validating with lima this is still needed + "Monitor_Stock_Change", +]; + +export const sqlJobCleanUp = async () => { + // running a query to disable jobs that are moved to lst to be better maintained + const sqlQuery = sqlQuerySelector("disableJob") as SqlQuery; + + if (!sqlQuery.success) { + console.error("Failed to load the query: ", sqlQuery.message); + return; + } + for (const job of jobNames) { + const { error } = await tryCatch( + prodQuery( + sqlQuery.query.replace("[jobName]", `${job}`), + `Disabling job: ${job}`, + ), + ); + + if (error) { + console.error(error); + } + + //console.log(data); + } +}; diff --git a/backend/prodSql/queries/disableJob.sql b/backend/prodSql/queries/disableJob.sql new file mode 100644 index 0000000..17d412e --- /dev/null +++ b/backend/prodSql/queries/disableJob.sql @@ -0,0 +1,8 @@ +/* +disables sql jobs. +*/ +EXEC msdb.dbo.sp_update_job @job_name = N'[jobName]', @enabled = 0; +-- DECLARE @JobName varchar(max) = '[jobName]' +-- UPDATE msdb.dbo.sysjobs +-- SET enabled = 0 +-- WHERE name = @JobName; \ No newline at end of file diff --git a/backend/server.ts b/backend/server.ts index e5d9b0d..9afab50 100644 --- a/backend/server.ts +++ b/backend/server.ts @@ -8,6 +8,7 @@ import { connectGPSql } from "./gpSql/gpSqlConnection.controller.js"; import { createLogger } from "./logger/logger.controller.js"; import { historicalSchedule } from "./logistics/logistics.historicalInv.js"; import { startNotifications } from "./notification/notification.controller.js"; +import { sqlJobCleanUp } from "./notification/notification.SqlJobCleanUp.js"; import { createNotifications } from "./notification/notifications.master.js"; import { printerSync } from "./ocp/ocp.printer.manage.js"; import { monitorReleaseChanges } from "./opendock/openDockRreleaseMonitor.utils.js"; @@ -83,6 +84,9 @@ const start = async () => { startNotifications(); serversChecks(); aggregateRouteHitsForBusinessDay(); + + // can be removed at a later date + sqlJobCleanUp(); }, 5 * 1000); process.on("uncaughtException", async (err) => {