Class ImportService
java.lang.Object
ru.bgcrm.dao.CommonDAO
org.bgerp.plugin.inventoru.sync1c.service.ImportService
Imports stock data from 1C into BGERP inventory tables.
For each
EngineerWarehouse:
1. Calls Api1cClient.getStocks(warehouseName, locationName)
2. Upserts inventoru_item (by ext_id param = product_id)
3. Upserts inventoru_store (by ext_id param = warehouse_id), links to engineer_warehouse.store_id
4. Writes to inventoru_sync1c_import_pending (NOT directly to inventoru_balance).
The warehouse owner must confirm in user UI to apply balances.
5. Zeroes out items previously known at this store that are absent from the batch — per the
1C API contract, an exhausted (qty=0) item is omitted from the response entirely rather
than sent with quantity=0 (see ImportPendingDAO.getKnownItemIds(int, int)).-
Nested Class Summary
Nested classes/interfaces inherited from class CommonDAO
CommonDAO.ObjectExtractor<T>, CommonDAO.RecordUpdater<T> -
Field Summary
Fields inherited from class CommonDAO
con, SQL_AND, SQL_DELETE, SQL_DELETE_FROM, SQL_DESC, SQL_DISTINCT, SQL_FROM, SQL_GROUP_BY, SQL_INNER_JOIN, SQL_INSERT_IGNORE_INTO, SQL_INSERT_INTO, SQL_LEFT_JOIN, SQL_LIMIT, SQL_ON_DUP_KEY_UPDATE, SQL_ORDER_BY, SQL_REPLACE, SQL_SELECT, SQL_SELECT_ALL_FROM, SQL_SELECT_COUNT_ROWS, SQL_SET, SQL_UNION_ALL, SQL_UPDATE, SQL_VALUES, SQL_VALUES_1, SQL_VALUES_2, SQL_VALUES_3, SQL_VALUES_4, SQL_VALUES_5, SQL_WHERE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintimportBarcodes(Sync1cConnector instance) Imports the nomenclature barcode register from an OData connector into inventoru_item_barcode.intimportFromRows(Sync1cConnector instance, EngineerWarehouse ew, List<Api1cStock> stocks) Applies a list of stock rows (already fetched, protocol-agnostic — same shape regardless of whether they came from the HS API, a parsed CSV file, or (in the future) an inbound EPF push) for one engineer warehouse mapping: upserts item/store, writes to inventoru_sync1c_import_pending, logs to inventoru_sync1c_import_log.intsyncEngineerWarehouse(Sync1cConnector instance, EngineerWarehouse ew) Runs import for one engineer warehouse mapping over the connector's protocol: HS — Api1cClient.getStocks(warehouseName, locationName); OData — ODataClient with the mapping's warehouseId as the 1C warehouse GUID filter; mappings without a real GUID (e.g.Methods inherited from class CommonDAO
deleteById, foundRows, getById, getGroupedIds, getGroupedIds, getIds, getIds, getPageLimit, getPeriodSql, lastInsertId, setPeriodParamValue, setRecordCount, update, updateColumn, updateIds, updateIds, updateOrInsert
-
Constructor Details
-
ImportService
-
-
Method Details
-
syncEngineerWarehouse
Runs import for one engineer warehouse mapping over the connector's protocol: HS — Api1cClient.getStocks(warehouseName, locationName); OData — ODataClient with the mapping's warehouseId as the 1C warehouse GUID filter; mappings without a real GUID (e.g. manual ones) are skipped. Logs progress to inventoru_sync1c_import_log.- Returns:
- number of items synced; -1 on API error
-
importFromRows
Applies a list of stock rows (already fetched, protocol-agnostic — same shape regardless of whether they came from the HS API, a parsed CSV file, or (in the future) an inbound EPF push) for one engineer warehouse mapping: upserts item/store, writes to inventoru_sync1c_import_pending, logs to inventoru_sync1c_import_log.- Returns:
- number of items synced; -1 on error
-
importBarcodes
Imports the nomenclature barcode register from an OData connector into inventoru_item_barcode. Only barcodes whose item GUID resolves to an existing ERP item via the connector's ext_id parameter are stored — unknown items are skipped (they'll resolve on a later run, after the stock import has created them).- Returns:
- number of barcodes upserted; -1 on error
-