You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

199 lines
5.3 KiB

const { Sequelize, DataTypes, Op, literal } = require("sequelize");
const sequelize = new Sequelize(
"postgres://postgres:postgres@localhost:5432/drink-water-unit"
);
const data = require("./data.json");
//----------------------- MODELS
const waterSample = sequelize.define("waterSample", {
pid: {
type: DataTypes.INTEGER,
allowNull: true,
},
ord: {
type: DataTypes.INTEGER,
allowNull: true,
},
type: {
type: DataTypes.STRING,
allowNull: false,
desc: `:نوع نمونه
1.آب آشامیدنی
2. آب سامانه نمک زدایی
3.آب معدنی طبیعی
4.آب بسته بندی
5.آب استخر
6.آب شناگاه های طبیعی
7.فاضلاب/پساب
8.یخ`,
},
mainGroupTest: {
type: DataTypes.STRING,
allowNull: false,
desc: `:گروه اصلی آزمایش
1.رادیو اکتیو
2.شیمیایی
3.فیزیکی
4.کلرسنجی
5.میکروبی`,
},
subGroupTest: {
type: DataTypes.STRING(128),
allowNull: false,
desc: `گروه فرعی آزمایش`,
},
latinName: {
type: DataTypes.STRING(128),
allowNull: true,
desc: `نام لاتینِ پارامتر`,
},
name: {
type: DataTypes.STRING(128),
allowNull: true,
desc: `نام فارسی پارامتر`,
},
symbol: {
type: DataTypes.STRING(10),
allowNull: true,
desc: `علامت اختصاری`,
},
measureUnit: {
type: DataTypes.STRING(32),
allowNull: true,
desc: "واحد اندازه گیری",
},
paramCode: {
type: DataTypes.STRING(8),
allowNull: true,
desc: "کد پارامتر",
},
minValid: {
type: DataTypes.STRING(128),
allowNull: true,
desc: "حداقل مجاز",
},
maxValid: {
type: DataTypes.STRING(128),
allowNull: true,
desc: "حداکثر مجاز",
},
minOptimal: {
type: DataTypes.STRING(128),
allowNull: true,
desc: "حداقل مطلوب",
},
maxOptimal: {
type: DataTypes.STRING(128),
allowNull: true,
desc: "حداکثر مطلوب",
},
maxTransportTime: {
type: DataTypes.STRING,
allowNull: true,
desc: "حداکثر زمان انتقال نمونه به آزمایشگاه",
},
maxWriteInTime: {
type: DataTypes.STRING(8),
allowNull: true,
desc: "حداکثر زمان ثبت نتیجه نمونه برداری",
sample: `
null => در محل
30 mi => سی دقیقه
1 h => یک ساعت
1 d => یک روز
1 mo => یک ماه
1 y => یک سال
`,
},
containerProperty: {
type: DataTypes.STRING,
allowNull: true,
desc: "ویژگی ظرف نگهداری",
},
keepCondition: {
type: DataTypes.STRING,
allowNull: true,
desc: "شرایط نگهداری",
},
minSampleAmount: {
type: DataTypes.STRING,
allowNull: true,
desc: "حداقل حجم نمونه مورد نیاز ",
},
examinMethod: {
type: DataTypes.TEXT,
allowNull: true,
desc: "روش انجام آزمایش",
},
standardNum: {
type: DataTypes.STRING(64),
allowNull: true,
desc: "شماره استاندارد",
},
workflowId: {
type: DataTypes.INTEGER,
allowNull: false,
desc: "شناسه روند کار",
},
});
const workflowMap = new Map([
["آب آشامیدنی عمومی", 11],
["آب سامانه نمک زدایی", 14],
["آب معدنی طبیعی", 11],
["آب بسته بندی", 11],
["آب استخر", 15],
["آب شناگاه های طبیعی", 17],
["فاضلاب/پساب", 16],
["یخ", 13],
]);
sequelize
.authenticate()
.then(async () => {
console.log("Connection has been established successfully.");
let result;
await sequelize.sync({ force: true });
const arrayToBulk = [];
for (const item of data.array) {
let workflowId;
const typePeaces = item.type.split(" ");
if (typePeaces.includes("آشامیدنی")) workflowId = 11;
else if (typePeaces.includes("سامانه")) workflowId = 14;
else if (typePeaces.includes("معدنی")) workflowId = 11;
else if (typePeaces.includes("بسته")) workflowId = 11;
else if (typePeaces.includes("استخر")) workflowId = 15;
else if (typePeaces.includes("شناگاه")) workflowId = 17;
else if (typePeaces.includes("یخ")) workflowId = 13;
else workflowId = 16;
arrayToBulk.push({
type: item.type,
mainGroupTest: item.mainGroupTest,
subGroupTest: item.subGroupTest,
latinName: item.latinName,
name: item.name,
symbol: item.symbol,
measureUnit: item.measureUnit,
paramCode: item.paramCode,
minValid: item.minValid,
maxValid: item.maxValid,
minOptimal: item.minOptimal,
maxOptimal: item.maxOptimal,
maxTransportTime: item.maxTransportTime,
maxWriteInTime: item.maxWriteInTime,
containerProperty: item.containerProperty,
keepCondition: item.keepCondition,
minSampleAmount: item.minSampleAmount,
examinMethod: item.examinMethod,
standardNum: item.standardNum,
workflowId,
});
}
await waterSample.bulkCreate(arrayToBulk);
sequelize.close();
})
.catch((err) => {
console.error("Unable to connect to the database:", err);
});