Class ImportService

java.lang.Object
ru.bgcrm.dao.CommonDAO
org.bgerp.plugin.inventoru.sync1c.service.ImportService

public class ImportService extends CommonDAO
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)).
  • Constructor Details

    • ImportService

      public ImportService(Connection con)
  • Method Details

    • syncEngineerWarehouse

      public int syncEngineerWarehouse(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. manual ones) are skipped. Logs progress to inventoru_sync1c_import_log.
      Returns:
      number of items synced; -1 on API error
    • importFromRows

      public int importFromRows(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.
      Returns:
      number of items synced; -1 on error
    • importBarcodes

      public int importBarcodes(Sync1cConnector instance)
      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