feat(quality): priority ranking added

This commit is contained in:
2025-11-14 11:49:57 -06:00
parent c509c7fe28
commit c777395b03
18 changed files with 3137 additions and 103 deletions

View File

@@ -1,5 +1,6 @@
import { differenceInMinutes } from "date-fns";
import { eq, sql } from "drizzle-orm";
import { priority } from "st-ethernet-ip/dist/enip/cip/connection-manager/index.js";
import { db } from "../../../../database/dbclient.js";
import { qualityRequest } from "../../../../database/schema/qualityRequest.js";
import { timeZoneFix } from "../../../globalUtils/timeZoneFix.js";
@@ -39,11 +40,13 @@ export const addNewPallet = async (data: any) => {
const palletData: any = c;
// if the pallet exist then tell the user to check on it
const pStatus = [1, 4, 6];
if (palletData && pStatus.includes(palletData[0]?.palletStatus)) {
return {
success: false,
message: `Running number ${data.runningNr} is already pending or reactivated please follow up with the warehouse team on status to be moved.`,
};
if (!data.priority) {
if (palletData && pStatus.includes(palletData[0]?.palletStatus)) {
return {
success: false,
message: `Running number ${data.runningNr} is already pending or reactivated please follow up with the warehouse team on status to be moved.`,
};
}
}
// update the existing pallet if already in the system
@@ -61,25 +64,36 @@ export const addNewPallet = async (data: any) => {
data: pe,
};
}
const pData = {
warehouseAtRequest: p[0].warehouseAtRequest,
locationAtRequest: p[0].locationAtRequest,
warehouseMovedTo: null,
locationMovedTo: null,
palletStatus: data.palletStatusText === "return" ? 6 : 4,
//durationToMove: 0,
palletStatusText:
data.palletStatusText === "return" ? "return" : "reactivated",
qualityDurationToInspect:
data.palletStatusText === "return"
? differenceInMinutes(new Date(Date.now()), p[0].lastMove)
: 0,
locationDropOff:
data.palletStatusText === "return" ? "Return to warhouse" : "",
palletRequest: palletData[0].palletStatus + 1,
upd_user: data.user,
upd_date: sql`NOW()`,
};
let pData = {};
if (data.priority) {
pData = {
priority: data.priority,
upd_user: data.user,
upd_date: sql`NOW()`,
};
} else {
pData = {
warehouseAtRequest: p[0].warehouseAtRequest,
locationAtRequest: p[0].locationAtRequest,
warehouseMovedTo: null,
locationMovedTo: null,
palletStatus: data.palletStatusText === "return" ? 6 : 4,
//durationToMove: 0,
palletStatusText:
data.palletStatusText === "return" ? "return" : "reactivated",
qualityDurationToInspect:
data.palletStatusText === "return"
? differenceInMinutes(new Date(Date.now()), p[0].lastMove)
: 0,
locationDropOff:
data.palletStatusText === "return" ? "Return to warhouse" : "",
palletRequest: palletData[0].palletStatus + 1,
upd_user: data.user,
upd_date: sql`NOW()`,
};
}
const { data: u, error } = await tryCatch(
db

View File

@@ -1,25 +1,28 @@
import { desc } from "drizzle-orm";
import { asc, desc } from "drizzle-orm";
import { db } from "../../../../database/dbclient.js";
import { qualityRequest } from "../../../../database/schema/qualityRequest.js";
import { tryCatch } from "../../../globalUtils/tryCatch.js";
import qualityBlockingMonitor from "../../notifications/controller/notifications/qualityBlocking.js";
export const getRequest = async () => {
const { data, error } = await tryCatch(
db.select().from(qualityRequest).orderBy(desc(qualityRequest.add_date))
);
const { data, error } = await tryCatch(
db
.select()
.from(qualityRequest)
.orderBy(asc(qualityRequest.priority), asc(qualityRequest.add_date)),
);
if (error) {
return {
success: false,
message: "There was an error getting the quality request",
data: error,
};
}
if (error) {
return {
success: false,
message: "There was an error getting the quality request",
data: error,
};
}
return {
success: true,
message: "Quality request pallets.",
data,
};
return {
success: true,
message: "Quality request pallets.",
data,
};
};

View File

@@ -105,7 +105,7 @@ export const qualityCycle = async () => {
);
} else {
createLog(
"info",
"debug",
"lst",
"quality",
`Pallet ${
@@ -119,7 +119,7 @@ export const qualityCycle = async () => {
}
await delay(150);
} else {
createLog("info", "lst", "quality", "nothing to update");
//createLog("info", "lst", "quality", "nothing to update");
}
},
5 * 60 * 1000,