434 lines
23 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Сервис интеграции ПП Парус 8 с WEB API
Дополнительный модуль: Интеграция с ГАР (GAR) - парсеры
*/
//------------------------------
// Подключаем внешние библиотеки
//------------------------------
const oracledb = require("oracledb"); //Работа с СУБД Oracle
//--------------------------
// Глобальные идентификаторы
//--------------------------
//Модели (привязка парсера к файлу данных)
const MODELS = [
{ fileNameMask: /AS_ADDR_OBJ_PARAMS_(\d{8})_(.*)/i, parser: "PARAMS" },
{ fileNameMask: /AS_ADDR_OBJ_(\d{8})_(.*)/i, parser: "ADDR_OBJ" },
{ fileNameMask: /AS_ADM_HIERARCHY_(\d{8})_(.*)/i, parser: "ADM_HIERARCHY" },
{ fileNameMask: /AS_CHANGE_HISTORY_(\d{8})_(.*)/i, parser: "CHANGE_HISTORY" },
{ fileNameMask: /AS_HOUSES_PARAMS_(\d{8})_(.*)/i, parser: "PARAMS", insertProcedureName: "PKG_EXS_EXT_GAR.HOUSES_PARAMS_INSERT" },
{ fileNameMask: /AS_HOUSES_(\d{8})_(.*)/i, parser: "HOUSES" },
{ fileNameMask: /AS_MUN_HIERARCHY_(\d{8})_(.*)/i, parser: "MUN_HIERARCHY" },
{ fileNameMask: /AS_REESTR_OBJECTS_(\d{8})_(.*)/i, parser: "REESTR_OBJECTS" },
{ fileNameMask: /AS_STEADS_PARAMS_(\d{8})_(.*)/i, parser: "PARAMS", insertProcedureName: "PKG_EXS_EXT_GAR.STEADS_PARAMS_INSERT" },
{ fileNameMask: /AS_STEADS_(\d{8})_(.*)/i, parser: "STEADS" },
{ fileNameMask: /AS_HOUSE_TYPES_(\d{8})_(.*)/i, parser: "HOUSE_TYPES" },
{ fileNameMask: /AS_ADDHOUSE_TYPES_(\d{8})_(.*)/i, parser: "HOUSE_TYPES", insertProcedureName: "PKG_EXS_EXT_GAR.ADDHOUSE_TYPES_INSERT" },
{ fileNameMask: /AS_ADDR_OBJ_TYPES_(\d{8})_(.*)/i, parser: "ADDR_OBJ_TYPES" }
];
//Парсеры
const PARSERS = {
ADDR_OBJ_TYPES: {
element: "ADDRESSOBJECTTYPE",
async save(connection, ident, items) {
const binds = items.map(item => ({
NIDENT: ident,
NTYPE_ID: Number(item.attributes.ID),
STYPE_LEVEL: item.attributes.LEVEL,
SSHORTNAME: item.attributes.SHORTNAME,
STYPE_NAME: item.attributes.NAME,
STYPE_DESC: item.attributes.DESC,
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE),
NISACTIVE: item.attributes.ISACTIVE == "true" ? 1 : 0
}));
const sql = `begin PKG_EXS_EXT_GAR.ADDR_OBJ_TYPES_INSERT(:NIDENT, :NTYPE_ID, :STYPE_LEVEL, :SSHORTNAME, :STYPE_NAME, :STYPE_DESC, :DUPDATEDATE, :DSTARTDATE, :DENDDATE, :NISACTIVE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NTYPE_ID: { type: oracledb.NUMBER },
STYPE_LEVEL: { type: oracledb.STRING, maxSize: 10 },
SSHORTNAME: { type: oracledb.STRING, maxSize: 50 },
STYPE_NAME: { type: oracledb.STRING, maxSize: 250 },
STYPE_DESC: { type: oracledb.STRING, maxSize: 250 },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE },
NISACTIVE: { type: oracledb.NUMBER }
}
});
}
},
HOUSE_TYPES: {
element: "HOUSETYPE",
async save(connection, ident, items, insertProcedureName) {
const binds = items.map(item => ({
NIDENT: ident,
NTYPE_ID: Number(item.attributes.ID),
STYPE_NAME: item.attributes.NAME,
SSHORTNAME: item.attributes.SHORTNAME,
STYPE_DESC: item.attributes.DESC,
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE),
NISACTIVE: item.attributes.ISACTIVE == "true" ? 1 : 0
}));
const sql = `begin ${
insertProcedureName ? insertProcedureName : "PKG_EXS_EXT_GAR.HOUSE_TYPES_INSERT"
}(:NIDENT, :NTYPE_ID, :STYPE_NAME, :SSHORTNAME, :STYPE_DESC, :DUPDATEDATE, :DSTARTDATE, :DENDDATE, :NISACTIVE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NTYPE_ID: { type: oracledb.NUMBER },
STYPE_NAME: { type: oracledb.STRING, maxSize: 250 },
SSHORTNAME: { type: oracledb.STRING, maxSize: 50 },
STYPE_DESC: { type: oracledb.STRING, maxSize: 250 },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE },
NISACTIVE: { type: oracledb.NUMBER }
}
});
}
},
PARAMS: {
element: "PARAM",
async save(connection, ident, items, insertProcedureName) {
const binds = items.map(item => ({
NIDENT: ident,
NPARAM_ID: Number(item.attributes.ID),
NOBJECTID: Number(item.attributes.OBJECTID),
NCHANGEID: item.attributes.CHANGEID == undefined || item.attributes.CHANGEID == null ? null : Number(item.attributes.CHANGEID),
NCHANGEIDEND:
item.attributes.CHANGEIDEND == undefined || item.attributes.CHANGEIDEND == null ? null : Number(item.attributes.CHANGEIDEND),
NPARAM_TYPEID: Number(item.attributes.TYPEID),
SPARAM_VALUE: item.attributes.VALUE.substring(0, 4000),
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE)
}));
const sql = `begin ${
insertProcedureName ? insertProcedureName : "PKG_EXS_EXT_GAR.ADDR_OBJ_PARAMS_INSERT"
}(:NIDENT, :NPARAM_ID, :NOBJECTID, :NCHANGEID, :NCHANGEIDEND, :NPARAM_TYPEID, :SPARAM_VALUE, :DUPDATEDATE, :DSTARTDATE, :DENDDATE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NPARAM_ID: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
NCHANGEID: { type: oracledb.NUMBER },
NCHANGEIDEND: { type: oracledb.NUMBER },
NPARAM_TYPEID: { type: oracledb.NUMBER },
SPARAM_VALUE: { type: oracledb.STRING, maxSize: 4000 },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE }
}
});
}
},
MUN_HIERARCHY: {
element: "ITEM",
async save(connection, ident, items) {
const binds = items.map(item => ({
NIDENT: ident,
NMUN_ID: Number(item.attributes.ID),
NOBJECTID: Number(item.attributes.OBJECTID),
NPARENTOBJID:
item.attributes.PARENTOBJID == undefined || item.attributes.PARENTOBJID == null ? null : Number(item.attributes.PARENTOBJID),
NCHANGEID: Number(item.attributes.CHANGEID),
SOKTMO: item.attributes.OKTMO,
NPREVID: item.attributes.PREVID == undefined || item.attributes.PREVID == null ? null : Number(item.attributes.PREVID),
NNEXTID: item.attributes.NEXTID == undefined || item.attributes.NEXTID == null ? null : Number(item.attributes.NEXTID),
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE),
NISACTIVE: Number(item.attributes.ISACTIVE)
}));
const sql = `begin PKG_EXS_EXT_GAR.MUN_HIERARCHY_INSERT(:NIDENT, :NMUN_ID, :NOBJECTID, :NPARENTOBJID, :NCHANGEID, :SOKTMO, :NPREVID, :NNEXTID, :DUPDATEDATE, :DSTARTDATE, :DENDDATE, :NISACTIVE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NMUN_ID: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
NPARENTOBJID: { type: oracledb.NUMBER },
NCHANGEID: { type: oracledb.NUMBER },
SOKTMO: { type: oracledb.STRING, maxSize: 11 },
NPREVID: { type: oracledb.NUMBER },
NNEXTID: { type: oracledb.NUMBER },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE },
NISACTIVE: { type: oracledb.NUMBER }
}
});
}
},
ADM_HIERARCHY: {
element: "ITEM",
async save(connection, ident, items) {
const binds = items.map(item => ({
NIDENT: ident,
NADM_ID: Number(item.attributes.ID),
NOBJECTID: Number(item.attributes.OBJECTID),
NPARENTOBJID:
item.attributes.PARENTOBJID == undefined || item.attributes.PARENTOBJID == null ? null : Number(item.attributes.PARENTOBJID),
NCHANGEID: Number(item.attributes.CHANGEID),
SREGIONCODE: item.attributes.REGIONCODE,
SAREACODE: item.attributes.AREACODE,
SCITYCODE: item.attributes.CITYCODE,
SPLACECODE: item.attributes.PLACECODE,
SPLANCODE: item.attributes.PLANCODE,
SSTREETCODE: item.attributes.STREETCODE,
NPREVID: item.attributes.PREVID == undefined || item.attributes.PREVID == null ? null : Number(item.attributes.PREVID),
NNEXTID: item.attributes.NEXTID == undefined || item.attributes.NEXTID == null ? null : Number(item.attributes.NEXTID),
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE),
NISACTIVE: Number(item.attributes.ISACTIVE)
}));
const sql = `begin PKG_EXS_EXT_GAR.ADM_HIERARCHY_INSERT(:NIDENT, :NADM_ID, :NOBJECTID, :NPARENTOBJID, :NCHANGEID, :SREGIONCODE, :SAREACODE, :SCITYCODE, :SPLACECODE, :SPLANCODE, :SSTREETCODE, :NPREVID, :NNEXTID, :DUPDATEDATE, :DSTARTDATE, :DENDDATE, :NISACTIVE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NADM_ID: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
NPARENTOBJID: { type: oracledb.NUMBER },
NCHANGEID: { type: oracledb.NUMBER },
SREGIONCODE: { type: oracledb.STRING, maxSize: 4 },
SAREACODE: { type: oracledb.STRING, maxSize: 4 },
SCITYCODE: { type: oracledb.STRING, maxSize: 4 },
SPLACECODE: { type: oracledb.STRING, maxSize: 4 },
SPLANCODE: { type: oracledb.STRING, maxSize: 4 },
SSTREETCODE: { type: oracledb.STRING, maxSize: 4 },
NPREVID: { type: oracledb.NUMBER },
NNEXTID: { type: oracledb.NUMBER },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE },
NISACTIVE: { type: oracledb.NUMBER }
}
});
}
},
CHANGE_HISTORY: {
element: "ITEM",
async save(connection, ident, items) {
const binds = items.map(item => ({
NIDENT: ident,
NCHANGEID: Number(item.attributes.CHANGEID),
NOBJECTID: Number(item.attributes.OBJECTID),
SADROBJECTID: item.attributes.ADROBJECTID,
NOPERTYPEID: Number(item.attributes.OPERTYPEID),
NNDOCID: item.attributes.NDOCID == undefined || item.attributes.NDOCID == null ? null : Number(item.attributes.NDOCID),
DCHANGEDATE: new Date(item.attributes.CHANGEDATE)
}));
const sql = `begin PKG_EXS_EXT_GAR.CHANGE_HISTORY_INSERT(:NIDENT, :NCHANGEID, :NOBJECTID, :SADROBJECTID, :NOPERTYPEID, :NNDOCID, :DCHANGEDATE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NCHANGEID: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
SADROBJECTID: { type: oracledb.STRING, maxSize: 36 },
NOPERTYPEID: { type: oracledb.NUMBER },
NNDOCID: { type: oracledb.NUMBER },
DCHANGEDATE: { type: oracledb.DATE }
}
});
}
},
REESTR_OBJECTS: {
element: "OBJECT",
async save(connection, ident, items) {
const binds = items.map(item => ({
NIDENT: ident,
NOBJECTID: Number(item.attributes.OBJECTID),
SOBJECTGUID: item.attributes.OBJECTGUID,
NCHANGEID: Number(item.attributes.CHANGEID),
NISACTIVE: Number(item.attributes.ISACTIVE),
NLEVELID: Number(item.attributes.LEVELID),
DCREATEDATE: new Date(item.attributes.CREATEDATE),
DUPDATEDATE: new Date(item.attributes.UPDATEDATE)
}));
const sql = `begin PKG_EXS_EXT_GAR.REESTR_OBJECTS_INSERT(:NIDENT, :NOBJECTID, :SOBJECTGUID, :NCHANGEID, :NISACTIVE, :NLEVELID, :DCREATEDATE, :DUPDATEDATE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
SOBJECTGUID: { type: oracledb.STRING, maxSize: 36 },
NCHANGEID: { type: oracledb.NUMBER },
NISACTIVE: { type: oracledb.NUMBER },
NLEVELID: { type: oracledb.NUMBER },
DCREATEDATE: { type: oracledb.DATE },
DUPDATEDATE: { type: oracledb.DATE }
}
});
}
},
ADDR_OBJ: {
element: "OBJECT",
async save(connection, ident, items, insertProcedureName, region) {
const binds = items.map(item => ({
NIDENT: ident,
SREGIONCODE: region,
NADDR_OBJ_ID: Number(item.attributes.ID),
NOBJECTID: Number(item.attributes.OBJECTID),
SOBJECTGUID: item.attributes.OBJECTGUID,
NCHANGEID: Number(item.attributes.CHANGEID),
SADDR_OBJ_NAME: item.attributes.NAME,
STYPENAME: item.attributes.TYPENAME,
NADDR_OBJ_LEVEL: Number(item.attributes.LEVEL),
SOPERTYPEID: item.attributes.OPERTYPEID,
NPREVID: item.attributes.PREVID == undefined || item.attributes.PREVID == null ? null : Number(item.attributes.PREVID),
NNEXTID: item.attributes.NEXTID == undefined || item.attributes.NEXTID == null ? null : Number(item.attributes.NEXTID),
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE),
NISACTUAL: Number(item.attributes.ISACTUAL),
NISACTIVE: Number(item.attributes.ISACTIVE)
}));
const sql = `begin PKG_EXS_EXT_GAR.ADDR_OBJ_INSERT(:NIDENT, :SREGIONCODE, :NADDR_OBJ_ID, :NOBJECTID, :SOBJECTGUID, :NCHANGEID, :SADDR_OBJ_NAME, :STYPENAME, :NADDR_OBJ_LEVEL, :SOPERTYPEID, :NPREVID, :NNEXTID, :DUPDATEDATE, :DSTARTDATE, :DENDDATE, :NISACTUAL, :NISACTIVE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
SREGIONCODE: { type: oracledb.STRING, maxSize: 2 },
NADDR_OBJ_ID: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
SOBJECTGUID: { type: oracledb.STRING, maxSize: 36 },
NCHANGEID: { type: oracledb.NUMBER },
SADDR_OBJ_NAME: { type: oracledb.STRING, maxSize: 250 },
STYPENAME: { type: oracledb.STRING, maxSize: 50 },
NADDR_OBJ_LEVEL: { type: oracledb.NUMBER },
SOPERTYPEID: { type: oracledb.STRING, maxSize: 2 },
NPREVID: { type: oracledb.NUMBER },
NNEXTID: { type: oracledb.NUMBER },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE },
NISACTUAL: { type: oracledb.NUMBER },
NISACTIVE: { type: oracledb.NUMBER }
}
});
}
},
HOUSES: {
element: "HOUSE",
async save(connection, ident, items) {
const binds = items.map(item => ({
NIDENT: ident,
NHOUSES_ID: Number(item.attributes.ID),
NOBJECTID: Number(item.attributes.OBJECTID),
SOBJECTGUID: item.attributes.OBJECTGUID,
NCHANGEID: Number(item.attributes.CHANGEID),
SHOUSENUM: item.attributes.HOUSENUM,
SADDNUM1: item.attributes.ADDNUM1,
SADDNUM2: item.attributes.ADDNUM2,
NHOUSETYPE: item.attributes.HOUSETYPE == undefined || item.attributes.HOUSETYPE == null ? null : Number(item.attributes.HOUSETYPE),
NADDTYPE1: item.attributes.ADDTYPE1 == undefined || item.attributes.ADDTYPE1 == null ? null : Number(item.attributes.ADDTYPE1),
NADDTYPE2: item.attributes.ADDTYPE2 == undefined || item.attributes.ADDTYPE2 == null ? null : Number(item.attributes.ADDTYPE2),
NOPERTYPEID: Number(item.attributes.OPERTYPEID),
NPREVID: item.attributes.PREVID == undefined || item.attributes.PREVID == null ? null : Number(item.attributes.PREVID),
NNEXTID: item.attributes.NEXTID == undefined || item.attributes.NEXTID == null ? null : Number(item.attributes.NEXTID),
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE),
NISACTUAL: Number(item.attributes.ISACTUAL),
NISACTIVE: Number(item.attributes.ISACTIVE)
}));
const sql = `begin PKG_EXS_EXT_GAR.HOUSES_INSERT(:NIDENT, :NHOUSES_ID, :NOBJECTID, :SOBJECTGUID, :NCHANGEID, :SHOUSENUM, :SADDNUM1, :SADDNUM2, :NHOUSETYPE, :NADDTYPE1, :NADDTYPE2, :NOPERTYPEID, :NPREVID, :NNEXTID, :DUPDATEDATE, :DSTARTDATE, :DENDDATE, :NISACTUAL, :NISACTIVE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NHOUSES_ID: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
SOBJECTGUID: { type: oracledb.STRING, maxSize: 36 },
NCHANGEID: { type: oracledb.NUMBER },
SHOUSENUM: { type: oracledb.STRING, maxSize: 50 },
SADDNUM1: { type: oracledb.STRING, maxSize: 50 },
SADDNUM2: { type: oracledb.STRING, maxSize: 50 },
NHOUSETYPE: { type: oracledb.NUMBER },
NADDTYPE1: { type: oracledb.NUMBER },
NADDTYPE2: { type: oracledb.NUMBER },
NOPERTYPEID: { type: oracledb.NUMBER },
NPREVID: { type: oracledb.NUMBER },
NNEXTID: { type: oracledb.NUMBER },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE },
NISACTUAL: { type: oracledb.NUMBER },
NISACTIVE: { type: oracledb.NUMBER }
}
});
}
},
STEADS: {
element: "STEAD",
async save(connection, ident, items) {
const binds = items.map(item => ({
NIDENT: ident,
NSTEADS_ID: Number(item.attributes.ID),
NOBJECTID: Number(item.attributes.OBJECTID),
SOBJECTGUID: item.attributes.OBJECTGUID,
NCHANGEID: Number(item.attributes.CHANGEID),
SSTEADS_NUMBER: item.attributes.NUMBER,
NOPERTYPEID: Number(item.attributes.OPERTYPEID),
NPREVID: item.attributes.PREVID == undefined || item.attributes.PREVID == null ? null : Number(item.attributes.PREVID),
NNEXTID: item.attributes.NEXTID == undefined || item.attributes.NEXTID == null ? null : Number(item.attributes.NEXTID),
DUPDATEDATE: new Date(item.attributes.UPDATEDATE),
DSTARTDATE: new Date(item.attributes.STARTDATE),
DENDDATE: new Date(item.attributes.ENDDATE),
NISACTUAL: Number(item.attributes.ISACTUAL),
NISACTIVE: Number(item.attributes.ISACTIVE)
}));
const sql = `begin PKG_EXS_EXT_GAR.STEADS_INSERT(:NIDENT, :NSTEADS_ID, :NOBJECTID, :SOBJECTGUID, :NCHANGEID, :SSTEADS_NUMBER, :NOPERTYPEID, :NPREVID, :NNEXTID, :DUPDATEDATE, :DSTARTDATE, :DENDDATE, :NISACTUAL, :NISACTIVE); end;`;
await connection.executeMany(sql, binds, {
autoCommit: true,
bindDefs: {
NIDENT: { type: oracledb.NUMBER },
NSTEADS_ID: { type: oracledb.NUMBER },
NOBJECTID: { type: oracledb.NUMBER },
SOBJECTGUID: { type: oracledb.STRING, maxSize: 36 },
NCHANGEID: { type: oracledb.NUMBER },
SSTEADS_NUMBER: { type: oracledb.STRING, maxSize: 250 },
NOPERTYPEID: { type: oracledb.NUMBER },
NPREVID: { type: oracledb.NUMBER },
NNEXTID: { type: oracledb.NUMBER },
DUPDATEDATE: { type: oracledb.DATE },
DSTARTDATE: { type: oracledb.DATE },
DENDDATE: { type: oracledb.DATE },
NISACTUAL: { type: oracledb.NUMBER },
NISACTIVE: { type: oracledb.NUMBER }
}
});
}
}
};
//------------
// Тело модуля
//------------
//Поиск модели по имени файла
const findModelByFileName = fileName => MODELS.find(item => (fileName.match(item.fileNameMask) ? true : false));
//-----------------
// Интерфейс модуля
//-----------------
exports.MODELS = MODELS;
exports.PARSERS = PARSERS;
exports.findModelByFileName = findModelByFileName;