feat(quality): priority ranking added
This commit is contained in:
1
lstV2/database/migrations/0076_stiff_champions.sql
Normal file
1
lstV2/database/migrations/0076_stiff_champions.sql
Normal file
@@ -0,0 +1 @@
|
||||
ALTER TABLE "qualityRequest" ADD COLUMN "priority" integer DEFAULT 4;
|
||||
2278
lstV2/database/migrations/meta/0076_snapshot.json
Normal file
2278
lstV2/database/migrations/meta/0076_snapshot.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -533,6 +533,13 @@
|
||||
"when": 1762983466464,
|
||||
"tag": "0075_tan_unicorn",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 76,
|
||||
"version": "7",
|
||||
"when": 1763134709763,
|
||||
"tag": "0076_stiff_champions",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,45 +1,46 @@
|
||||
import {
|
||||
text,
|
||||
pgTable,
|
||||
numeric,
|
||||
index,
|
||||
timestamp,
|
||||
boolean,
|
||||
uuid,
|
||||
uniqueIndex,
|
||||
integer,
|
||||
boolean,
|
||||
index,
|
||||
integer,
|
||||
numeric,
|
||||
pgTable,
|
||||
text,
|
||||
timestamp,
|
||||
uniqueIndex,
|
||||
uuid,
|
||||
} from "drizzle-orm/pg-core";
|
||||
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
|
||||
import { z } from "zod";
|
||||
|
||||
export const qualityRequest = pgTable(
|
||||
"qualityRequest",
|
||||
{
|
||||
request_id: uuid("request_id").defaultRandom().primaryKey(),
|
||||
article: numeric("article"),
|
||||
description: text("description"),
|
||||
runningNr: text("runningNr"),
|
||||
lotNr: numeric("lotNr"),
|
||||
warehouseAtRequest: text("warehouseAtRequest"),
|
||||
locationAtRequest: text("locationAtRequest"),
|
||||
warehouseMovedTo: text("warehouseMovedTo"),
|
||||
locationMovedTo: text("locationMovedTo"),
|
||||
durationToMove: integer("durationToMove"),
|
||||
qualityDurationToInspect: integer("qualityDurationToInspect"),
|
||||
returnDurationToInspect: integer("returnDurationToInspect"),
|
||||
locationDropOff: text("locationDropOff"),
|
||||
palletStatus: integer("palletStatus"),
|
||||
palletStatusText: text("palletStatusText"),
|
||||
palletRequest: integer("palletRequest"),
|
||||
add_date: timestamp("add_date").defaultNow(),
|
||||
add_user: text("add_user").default("LST"),
|
||||
upd_date: timestamp("upd_date").defaultNow(),
|
||||
upd_user: text("upd_user").default("LST"),
|
||||
},
|
||||
(table) => [
|
||||
// uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`),
|
||||
// uniqueIndex("role_name").on(table.name),
|
||||
]
|
||||
"qualityRequest",
|
||||
{
|
||||
request_id: uuid("request_id").defaultRandom().primaryKey(),
|
||||
article: numeric("article"),
|
||||
description: text("description"),
|
||||
runningNr: text("runningNr"),
|
||||
lotNr: numeric("lotNr"),
|
||||
warehouseAtRequest: text("warehouseAtRequest"),
|
||||
locationAtRequest: text("locationAtRequest"),
|
||||
warehouseMovedTo: text("warehouseMovedTo"),
|
||||
locationMovedTo: text("locationMovedTo"),
|
||||
durationToMove: integer("durationToMove"),
|
||||
qualityDurationToInspect: integer("qualityDurationToInspect"),
|
||||
returnDurationToInspect: integer("returnDurationToInspect"),
|
||||
locationDropOff: text("locationDropOff"),
|
||||
palletStatus: integer("palletStatus"),
|
||||
palletStatusText: text("palletStatusText"),
|
||||
palletRequest: integer("palletRequest"),
|
||||
priority: integer("priority").default(4), // 1,2,3,4
|
||||
add_date: timestamp("add_date").defaultNow(),
|
||||
add_user: text("add_user").default("LST"),
|
||||
upd_date: timestamp("upd_date").defaultNow(),
|
||||
upd_user: text("upd_user").default("LST"),
|
||||
},
|
||||
(table) => [
|
||||
// uniqueIndex('emailUniqueIndex').on(sql`lower(${table.email})`),
|
||||
// uniqueIndex("role_name").on(table.name),
|
||||
],
|
||||
);
|
||||
|
||||
// Schema for inserting a user - can be used to validate API requests
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user