120 lines
3.7 KiB
TypeScript
120 lines
3.7 KiB
TypeScript
import { OpenAPIHono } from "@hono/zod-openapi";
|
|
|
|
// routes
|
|
import manualLabelLog from "./routes/labeling/manualPrintLog.js";
|
|
import getPrinters from "./routes/printers/getPritners.js";
|
|
import { db } from "../../../database/dbclient.js";
|
|
import { settings } from "../../../database/schema/settings.js";
|
|
import updateprinters from "./routes/printers/updatePrinters.js";
|
|
import { updatePrinters } from "./controller/printers/updatePrinters.js";
|
|
import getLots from "./routes/lots/getLots.js";
|
|
import getLabels from "./routes/labeling/getLabels.js";
|
|
import { dycoConnect } from "./controller/specialProcesses/dyco/plcConnection.js";
|
|
import dycoCon from "./routes/specialProcesses/dyco/connection.js";
|
|
import dycoClose from "./routes/specialProcesses/dyco/closeConnection.js";
|
|
import manualprint from "./routes/labeling/manualPrint.js";
|
|
import { assignedPrinters } from "./utils/checkAssignments.js";
|
|
import { printerCycle } from "./controller/printers/printerCycle.js";
|
|
import stopPrinterCycle from "./routes/printers/stopCycle.js";
|
|
import startPrinterCycle from "./routes/printers/startCycle.js";
|
|
import { printerCycleAutoLabelers } from "./controller/printers/printerCycleAutoLabelers.js";
|
|
import AutostartPrinterCycle from "./routes/printers/autoLabelerStart.js";
|
|
import AutostopPrinterCycle from "./routes/printers/autoLabelerStop.js";
|
|
import { deleteLabels } from "../../globalUtils/dbCleanUp/labelCleanUp.js";
|
|
import bookInLabel from "./routes/labeling/bookIn.js";
|
|
import labelRatio from "./routes/labeling/getLabelRatio.js";
|
|
import resetRatio from "./routes/labeling/resetLabelRatio.js";
|
|
import materialTransferLot from "./routes/materials/lotTransfer.js";
|
|
import pendingTransfers from "./routes/materials/currentPending.js";
|
|
import { zechitti1Connect } from "./controller/specialProcesses/zechettis/zechetti1.js";
|
|
|
|
const app = new OpenAPIHono();
|
|
|
|
const routes = [
|
|
manualLabelLog,
|
|
//printer
|
|
getPrinters,
|
|
updateprinters,
|
|
startPrinterCycle,
|
|
stopPrinterCycle,
|
|
AutostartPrinterCycle,
|
|
AutostopPrinterCycle,
|
|
// lots
|
|
getLots,
|
|
// labeling
|
|
getLabels,
|
|
manualprint,
|
|
bookInLabel,
|
|
labelRatio,
|
|
resetRatio,
|
|
//dyco
|
|
dycoCon,
|
|
dycoClose,
|
|
// materials
|
|
materialTransferLot,
|
|
pendingTransfers,
|
|
] as const;
|
|
const setting = await db.select().from(settings);
|
|
|
|
const appRoutes = routes.forEach((route) => {
|
|
app.route("/ocp", route);
|
|
});
|
|
|
|
app.all("/ocp/*", (c) => {
|
|
return c.json({
|
|
success: false,
|
|
message: "You have encounters a ocp route that dose not exist.",
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Get the settings so we only run items when they are truly active
|
|
*/
|
|
const dycoActive = setting.filter((n) => n.name == "dycoConnect");
|
|
const ocpActive = setting.filter((n) => n.name === "ocpActive");
|
|
const zechetti = setting.filter((n) => n.name == "zechetti");
|
|
// run the printer update on restart just to keep everything good
|
|
|
|
// do the intnal connection to the dyco
|
|
setTimeout(() => {
|
|
if (dycoActive[0]?.value === "1") {
|
|
dycoConnect();
|
|
}
|
|
}, 3 * 1000);
|
|
|
|
// if zechetti plc is wanted we will connect
|
|
setTimeout(() => {
|
|
if (zechetti[0]?.value === "1") {
|
|
zechitti1Connect();
|
|
}
|
|
}, 3 * 1000);
|
|
|
|
// check for printers being assigned
|
|
setInterval(() => {
|
|
if (ocpActive[0]?.value === "1") {
|
|
assignedPrinters();
|
|
}
|
|
}, 60 * 1000);
|
|
|
|
// start the printer process after everything else is up ad running
|
|
setTimeout(async () => {
|
|
if (ocpActive[0]?.value === "1") {
|
|
await updatePrinters();
|
|
await assignedPrinters();
|
|
printerCycle();
|
|
// printerCycleAutoLabelers();
|
|
}
|
|
}, 10 * 1000);
|
|
|
|
// labelcleanup
|
|
deleteLabels();
|
|
setInterval(() => {
|
|
deleteLabels();
|
|
}, 60 * 60 * 24 * 1000);
|
|
|
|
setInterval(() => {
|
|
updatePrinters();
|
|
}, 1000 * 60 * 60 * 24);
|
|
|
|
export default app;
|