create checkIndexSN auto

This commit is contained in:
joseph le 2023-09-26 10:04:47 +07:00
parent 2069222261
commit 7fc9ce5ae0
4 changed files with 200 additions and 29 deletions

View File

@ -164,7 +164,8 @@ export default class ErpsController {
if (arrayLine[i].search("Serial Number") !== -1) {
let PCB_SN = arrayLine[i]
?.split("Serial Number")[1].split(":")[1]
?.split("Serial Number")[1]
.split(":")[1]
?.replace("\r", "")
.trim()
.replace(/[!@#$%^&*()_+{}\[\]:;<>,.?~\\/]/g, "");
@ -222,9 +223,7 @@ export default class ErpsController {
}
});
} else {
if (
PBID?.length >= 8
) {
if (PBID?.length >= 8) {
let fName = urls[index]
?.split("/")
[urls[index]?.split("/")?.length - 1]?.trim();
@ -262,7 +261,9 @@ export default class ErpsController {
}
);
// console.log(report);
return report.filter((i) => i.SN !== "" && /^[A-Z0-9-]{5,}$/.test(i.SN)===true);
return report.filter(
(i) => i.SN !== "" && /^[A-Z0-9-]{5,}$/.test(i.SN) === true
);
// }, 15000);
} catch (error) {
response
@ -285,9 +286,11 @@ export default class ErpsController {
const { fileName, line, range } = request.all();
try {
const res = await axios.get("http://192.168.5.7:8080/" + fileName);
let fName =
fileName.search("AUTO") !== -1 ? "AUTOlog/" + fileName : fileName;
const res = await axios.get("http://192.168.5.7:8080/" + fName);
const arrayLine = res?.data?.split("\n");
// console.log(arrayLine)
if (range >= line) {
response.status(200).json({
content: arrayLine?.slice(0, line + range)?.join("\n"),
@ -305,9 +308,7 @@ export default class ErpsController {
}
}
public async store({request, response}: HttpContextContract) {
}
public async store({ request, response }: HttpContextContract) {}
public async show({}: HttpContextContract) {}

168
app/utils/checkIndexSN.ts Normal file
View File

@ -0,0 +1,168 @@
// const axios = require("axios");
// import fs from "fs";
export const checkIndexSN = async (content, beginLine, nameF) => {
try {
const arrayLine = content.slice(beginLine);
let output = [];
if (arrayLine !== undefined) {
for (let i = 0; i < arrayLine.length; i++) {
let SN = arrayLine[i]
?.split("SN:")[1]
?.trim()
.replace(/[!@#$%^&*()_+{}\[\]:;<>,.?~\\/]/g, "");
if (
arrayLine[i].search("PID:") !== -1 &&
arrayLine[i].search("SN:") !== -1 &&
arrayLine[i].search("%") === -1 &&
arrayLine[i]
?.split(",")[2]
?.split(":")[1]
?.replace("\r", "")
.trim() !== "" &&
SN !== "N/A"
) {
if (output.some((u) => u.SN === SN)) {
output.map((u, index) => {
if (u.SN === SN) {
output[index].PID =
arrayLine[i]?.split("VID:")[0] !== undefined
? arrayLine[i]
?.split("VID:")[0]
?.slice(arrayLine[i]?.split("VID:")[0]?.search("PID"))
?.split(":")[1]
?.split(",")[0]
?.trim()
: "";
(output[index].VID =
arrayLine[i]?.split("SN:")[0] !== undefined
? arrayLine[i]
?.split("SN:")[0]
?.split("VID:")[1]
?.split(",")[0]
?.trim()
: ""),
(output[index].line = output[index].line.concat([i + 1]));
}
});
} else {
output.push({
PID:
arrayLine[i]?.split("VID:")[0] !== undefined
? arrayLine[i]
?.split("VID:")[0]
?.slice(arrayLine[i]?.split("VID:")[0]?.search("PID"))
?.split(":")[1]
?.split(",")[0]
?.trim()
: "",
VID:
arrayLine[i]?.split("SN:")[0] !== undefined
? arrayLine[i]
?.split("SN:")[0]
?.split("VID:")[1]
?.split(",")[0]
?.trim()
: "",
SN:
arrayLine[i].split("SN:")[1] !== undefined
? SN.search(" ") !== -1
? SN?.split(" ")[0]
: SN
: "",
line: [i + 1],
fileName: nameF,
warehouse:
(nameF.search("-US") !== -1 ||
nameF.search(".US") !== -1 ||
nameF.search("US-") !== -1) &&
nameF.search("AUS") === -1
? "US"
: "AU",
});
}
}
if (arrayLine[i].search("Serial Number") !== -1) {
let PCB_SN = arrayLine[i]
?.split("Serial Number")[1]
.split(":")[1]
?.replace("\r", "")
.trim()
.replace(/[!@#$%^&*()_+{}\[\]:;<>,.?~\\/]/g, "");
if (
//Neu SN da nam trong output
output.some((u) => u.SN === PCB_SN)
) {
output.map((u, index) => {
if (u.SN === PCB_SN) {
output[index].line = output[index].line.concat([i + 1]);
}
});
} else {
// if (
// /^[A-Z0-9-]{5,}$/.test(
// PCB_SN
// )
// ) {
output.push({
PID: "",
VID: "",
SN: PCB_SN?.search(" ") !== -1 ? PCB_SN?.split(" ")[0] : PCB_SN,
line: [i + 1],
fileName: nameF,
warehouse:
(nameF.search("-US") !== -1 ||
nameF.search(".US") !== -1 ||
nameF.search("US-") !== -1) &&
nameF.search("AUS") === -1
? "US"
: "AU",
});
// }
}
}
if (arrayLine[i].search("Processor board ID") !== -1) {
let PBID = arrayLine[i]
?.split(" ")
[arrayLine[i]?.split(" ").length - 1]?.replace("\r", "")
.trim()
.replace(/[!@#$%^&*()_+{}\[\]:;<>,.?~\\/]/g, "");
if (
//Neu SN da nam trong output
output.some((u) => u.SN === PBID)
) {
output.map((u, index) => {
if (u.SN === PBID) {
output[index].line = output[index].line.concat([i + 1]);
}
});
} else {
if (PBID?.length >= 8) {
output.push({
PID: "",
VID: "",
SN: PBID?.search(" ") !== -1 ? PBID?.split(" ")[0] : PBID,
line: [i + 1],
fileName: nameF,
warehouse:
(nameF.search("-US") !== -1 ||
nameF.search(".US") !== -1 ||
nameF.search("US-") !== -1) &&
nameF.search("AUS") === -1
? "US"
: "AU",
});
}
}
}
}
console.log(output);
}
} catch (error) {
console.log("Can't connect to log server", error);
}
};

View File

@ -8,6 +8,7 @@ import KeyValue from "App/Models/KeyValue";
import Database from "@ioc:Adonis/Lucid/Database";
import { sendMessToZulip } from "./sendMessToZulip";
import { getListLineByItem } from "./getListLineByItem";
import { checkIndexSN } from './checkIndexSN';
export async function runtimeCheckLogs(folderPath) {
try {
@ -127,8 +128,9 @@ export async function runtimeCheckLogs(folderPath) {
.toString()
?.split("\n");
//get all values to check
//get index SN and send to ERP
checkIndexSN(contentFile, lastLine, fileName)
//get list item to check
let listKeyValues = allValue.filter(

View File

@ -39,6 +39,6 @@ export const uploadFileToZulip = async (filename) => {
}
} catch (error) {
console.error("Error uploading file:", error.message);
console.log("Error uploading file:", error.message);
}
};