107 lines
3.7 KiB
TypeScript
107 lines
3.7 KiB
TypeScript
import { eq, inArray } from "drizzle-orm";
|
|
import { db } from "../../../../database/dbclient.js";
|
|
import { qualityRequest } from "../../../../database/schema/qualityRequest.js";
|
|
import { tryCatch } from "../../../globalUtils/tryCatch.js";
|
|
import { createLog } from "../../logger/logger.js";
|
|
import { qrequestQuery } from "../../sqlServer/querys/quality/request.js";
|
|
import { query } from "../../sqlServer/prodSqlServer.js";
|
|
import { differenceInMinutes } from "date-fns";
|
|
import { timeZoneFix } from "../../../globalUtils/timeZoneFix.js";
|
|
|
|
export const qualityCycle = async () => {
|
|
/**
|
|
* Cycles the pallets in the quality request to see whats been moved or changed.
|
|
*/
|
|
|
|
// pallet request check interval 5min check to start
|
|
//setInterval(async () => {
|
|
// create the date stuff
|
|
const currentTime = new Date(Date.now());
|
|
|
|
// pull in all current pallets from our db
|
|
const { data, error } = await tryCatch(
|
|
db
|
|
.select()
|
|
.from(qualityRequest)
|
|
.where(inArray(qualityRequest.palletStatus, [1, 4, 5]))
|
|
);
|
|
|
|
if (error) {
|
|
createLog(
|
|
"error",
|
|
"lst",
|
|
"quality",
|
|
`There was an error getting quality request data: ${error}`
|
|
);
|
|
return {
|
|
success: false,
|
|
message: "There was an error getting quality request data",
|
|
};
|
|
}
|
|
const lstQData: any = data;
|
|
// get the pallets that currentStat is moved
|
|
// const res = await runQuery(palletMoveCheck, "palletCheck");
|
|
|
|
if (lstQData.length != 0) {
|
|
for (let i = 0; i < lstQData.length; i++) {
|
|
// run the pallet query we will compare the data.
|
|
// console.log(lstQData[i]);
|
|
//update query with plant token
|
|
|
|
// change the update the pallet number
|
|
const qPalletNumber = qrequestQuery.replaceAll(
|
|
"[runningNumber]",
|
|
lstQData[i].runningNr
|
|
);
|
|
let prodData: any = [];
|
|
|
|
prodData = await query(qPalletNumber, "Quality update check");
|
|
|
|
if (
|
|
lstQData[i]?.locationAtRequest != prodData[0]?.locationAtRequest
|
|
) {
|
|
// time to do the pallet update stuff
|
|
const qDataPost = {
|
|
warehouseMovedTo: prodData[0]?.warehouseAtRequest,
|
|
locationMovedTo: prodData[0]?.locationAtRequest,
|
|
durationToMove: differenceInMinutes(
|
|
timeZoneFix(),
|
|
lstQData[i].upd_date
|
|
),
|
|
palletStatus: 2,
|
|
palletStatusText: "moved",
|
|
upd_date: new Date(timeZoneFix()),
|
|
upd_user: "LST_System",
|
|
};
|
|
|
|
const updatePallet = await db
|
|
.update(qualityRequest)
|
|
.set(qDataPost)
|
|
.where(eq(qualityRequest.runningNr, lstQData[i].runningNr));
|
|
|
|
createLog(
|
|
"info",
|
|
"lst",
|
|
"quality",
|
|
`Pallet ${lstQData[i].runningNr} was updated`
|
|
);
|
|
} else {
|
|
createLog(
|
|
"debug",
|
|
"lst",
|
|
"quality",
|
|
`Pallet ${
|
|
lstQData[i].runningNr
|
|
} has not been moved yet it has been pending for ${differenceInMinutes(
|
|
timeZoneFix(),
|
|
lstQData[i].upd_date
|
|
)} min(s)`
|
|
);
|
|
}
|
|
}
|
|
} else {
|
|
createLog("debug", "lst", "quality", "nothing to update");
|
|
}
|
|
//}, 5 * 60 * 1000); // every 5 min
|
|
};
|