Class ImportService

java.lang.Object
ru.bgcrm.dao.CommonDAO
org.bgerp.plugin.inventory.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 inventory_item (by ext_id param = product_id) 3. Upserts inventory_store (by ext_id param = warehouse_id), links to engineer_warehouse.store_id 4. Writes to inventory_sync1c_import_pending (NOT directly to inventory_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 HS protocol (calls Api1cClient). Logs progress to inventory_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 inventory_sync1c_import_pending, logs to inventory_sync1c_import_log.
      Returns:
      number of items synced; -1 on error