Files
lstV2/server/services/ocp/controller/specialProcesses/dualPrinting/dualPrinting.ts

148 lines
4.7 KiB
TypeScript

import { createLog } from "../../../../logger/logger.js";
import { query } from "../../../../sqlServer/prodSqlServer.js";
export const dualPrintingProcess = async (lotInfo: any) => {
// currently we will only allow for 2 printers to be linked only crazy people want more than 2
createLog(
"info",
"ocp",
"ocp",
"Dual printing running logic here to see what to print"
);
// each check
let lastPrinted;
let firstLine;
let secondLine;
// this query checks the last line to print a label
const printedQuery = `SELECT TOP(1) IdProdPlanung,
IdArtikelvarianten,
IdMaschine,
LfdNr,
ArtikelVariantenBez,
Add_User,
Add_Date,
Upd_User,
Upd_Date,
IdProdBereich
FROM AlplaPROD_test1.dbo.T_EtikettenGedruckt (nolock)
where IdMaschine in (${lotInfo[0].machineID},${lotInfo[1].machineID}) order by Add_Date desc`;
const fisrtLineDT = `SELECT top(1) IdMaschine,
case when Endzeit ='1900-01-01 00:00:00.000' and DATEDIFF(MINUTE, Startzeit, GETDATE()) >= 3 Then 1 else 0 end as 'LineCheck'
FROM AlplaPROD_test1.dbo.T_HistoryStillstandsereignis (nolock) where IdMaschine = ${lotInfo[0].machineID} order by Add_Date desc`;
const secondLineDT = `SELECT top(1) IdMaschine,
case when Endzeit ='1900-01-01 00:00:00.000' and DATEDIFF(MINUTE, Startzeit, GETDATE()) >= 3 Then 1 else 0 end as 'LineCheck'
FROM AlplaPROD_test1.dbo.T_HistoryStillstandsereignis (nolock) where IdMaschine = ${lotInfo[1].machineID} order by Add_Date desc`;
try {
// get what was last printed
const result = await query(printedQuery, "Last Printed Query");
lastPrinted = result[0].IdMaschine;
} catch (err) {
createLog(
"error",
"ocp",
"ocp",
`Error: getting last printed querty: ${err}`
);
}
try {
// get if if running or down
const first = await query(fisrtLineDT, "First line DT Check");
firstLine = first[0].LineCheck;
} catch (err) {
createLog(
"error",
"ocp",
"ocp",
`Error: with getting ${lotInfo[0].machineID} data query: ${err}`
);
}
try {
const second = await query(secondLineDT, "Second line DT Check");
secondLine = second[0].LineCheck;
} catch (err) {
createLog(
"error",
"ocp",
"ocp",
`Error: with getting ${lotInfo[1].machineID} data query: ${err}`
);
}
// first check if both are up and running
if (firstLine === 0 && secondLine === 0) {
createLog("info", "ocp", "ocp", "Both lines are up");
// what line last printed
if (lastPrinted === lotInfo[0].machineID) {
// IE 7 then print 8, usslc was the main example for all of this
let whatToPrint = lotInfo.filter(
(m: any) => m.machineID === lotInfo[1].machineID
);
// send to label
createLog(
"info",
"ocp",
"ocp",
`Printing label for ${whatToPrint[0].MachineDescription}`
);
return whatToPrint;
}
if (lastPrinted === lotInfo[1].machineID) {
// IE 8 then print 7, usslc was the main example for all of this
let whatToPrint = lotInfo.filter(
(m: any) => m.machineID === lotInfo[0].machineID
);
// send to label
createLog(
"info",
"ocp",
"ocp",
`Printing label for ${whatToPrint[0].MachineDescription}`
);
return whatToPrint;
}
}
// as we are only allowing 2 lines if one is down the other must be up... still going to conditional it to be sure
createLog(
"info",
"ocp",
"ocp",
"Looking at what line is down and printing the other one!"
);
if (firstLine === 1 && secondLine === 0) {
// print the other line
let whatToPrint = lotInfo.filter(
(m: any) => m.machineID === lotInfo[1].machineID
);
// send to label
createLog(
"info",
"ocp",
"ocp",
`Printing label for ${whatToPrint.MachineDescription}`
);
return whatToPrint;
} else if (firstLine === 0 && secondLine === 1) {
// print the other line
let whatToPrint = lotInfo.filter(
(m: any) => m.machineID === lotInfo[0].machineID
);
// send to label
createLog(
"info",
"ocp",
"ocp",
`Printing label for ${whatToPrint.MachineDescription}`
);
return whatToPrint;
}
};