Search in sources :

Example 1 with IMonitor

use of eu.ggnet.saft.api.progress.IMonitor in project dwoss by gg-net.

the class RedTapeCloserOperation method closeStock.

/**
 * Rolling out the units from the stocks. For this, a {@link StockTransaction} with {@link StockTransactionType#ROLL_OUT} is created,
 * all {@link StockUnit}<code>s</code> which are on a {@link LogicTransaction} with matching dossierId are added to this {@link StockTransaction} and
 * it gets {@link StockTransactionStatusType#COMPLETED}.
 * <p/>
 * @param dossierIds the dossierId as reference.
 * @param msg        a msg for the stocktransaction.
 * @param arranger   the arranger.
 * @param monitor    a optional monitor.
 * @return the amount of rolled out units.
 */
private int closeStock(Set<Long> dossierIds, String msg, String arranger, IMonitor monitor) {
    SubMonitor m = SubMonitor.convert(monitor, 100);
    final String h = "Stock:";
    m.message(h + "lade logische Transaktionen");
    // Rolling out
    List<LogicTransaction> lts = ltEao.findByDossierIds(dossierIds);
    m.worked(3, h + "sortiere Geräte nach Lager");
    stockEao.findAll();
    Map<Stock, List<StockUnit>> unitsByStock = lts.stream().flatMap((t) -> t.getUnits().stream()).collect(Collectors.groupingBy(StockUnit::getStock));
    validateStockUnits(unitsByStock);
    m.setWorkRemaining((int) unitsByStock.values().stream().count());
    List<StockTransaction> stockTransactions = new ArrayList<>();
    for (Entry<Stock, List<StockUnit>> entry : unitsByStock.entrySet()) {
        StockTransaction st = stEmo.requestRollOutPrepared(entry.getKey().getId(), arranger, msg);
        for (StockUnit stockUnit : entry.getValue()) {
            m.worked(1, h + "verbuche (refurbishId=" + stockUnit.getRefurbishId() + ",uniqueUnitId=" + stockUnit.getUniqueUnitId() + ")");
            st.addUnit(stockUnit);
            history.fire(new UnitHistory(stockUnit.getUniqueUnitId(), msg, arranger));
        }
        stockTransactions.add(st);
    }
    m.message(h + "auslagern");
    if (!stockTransactions.isEmpty())
        stEmo.completeRollOut(arranger, stockTransactions);
    m.finish();
    return (int) unitsByStock.values().stream().count();
}
Also used : CustomerServiceBean(eu.ggnet.dwoss.customer.ee.CustomerServiceBean) UnitHistory(eu.ggnet.dwoss.event.UnitHistory) UniqueUnitEao(eu.ggnet.dwoss.uniqueunit.ee.eao.UniqueUnitEao) RedTapeWorkflow(eu.ggnet.dwoss.redtapext.ee.workflow.RedTapeWorkflow) SubMonitor(eu.ggnet.dwoss.progress.SubMonitor) LoggerFactory(org.slf4j.LoggerFactory) BLOCK(eu.ggnet.dwoss.rules.DocumentType.BLOCK) StringUtils(org.apache.commons.lang3.StringUtils) ReceiptCustomers(eu.ggnet.dwoss.mandator.api.value.ReceiptCustomers) CONTRACTOR_REFERENCE(eu.ggnet.dwoss.uniqueunit.ee.entity.PriceType.CONTRACTOR_REFERENCE) Directive(eu.ggnet.dwoss.redtape.ee.entity.Document.Directive) ProductEao(eu.ggnet.dwoss.uniqueunit.ee.eao.ProductEao) RedTapes(eu.ggnet.dwoss.redtape.ee.assist.RedTapes) Schedule(javax.ejb.Schedule) Reports(eu.ggnet.dwoss.report.ee.assist.Reports) Dossier(eu.ggnet.dwoss.redtape.ee.entity.Dossier) Instance(javax.enterprise.inject.Instance) COMMENT(eu.ggnet.dwoss.rules.PositionType.COMMENT) DateFormats(eu.ggnet.dwoss.util.DateFormats) PositionType(eu.ggnet.dwoss.rules.PositionType) Ledger(eu.ggnet.dwoss.mandator.api.value.Ledger) PaymentMethod(eu.ggnet.dwoss.rules.PaymentMethod) Collectors(java.util.stream.Collectors) MANUFACTURER_COST(eu.ggnet.dwoss.uniqueunit.ee.entity.PriceType.MANUFACTURER_COST) ReportLine(eu.ggnet.dwoss.report.ee.entity.ReportLine) Singleton(javax.ejb.Singleton) MonitorFactory(eu.ggnet.dwoss.progress.MonitorFactory) Entry(java.util.Map.Entry) Product(eu.ggnet.dwoss.uniqueunit.ee.entity.Product) Position(eu.ggnet.dwoss.redtape.ee.entity.Position) WarrantyService(eu.ggnet.dwoss.mandator.api.service.WarrantyService) java.util(java.util) ReportLineEao(eu.ggnet.dwoss.report.ee.eao.ReportLineEao) StockTransactionEmo(eu.ggnet.dwoss.stock.ee.emo.StockTransactionEmo) StockTransaction(eu.ggnet.dwoss.stock.ee.entity.StockTransaction) StockEao(eu.ggnet.dwoss.stock.ee.eao.StockEao) UniqueUnit(eu.ggnet.dwoss.uniqueunit.ee.entity.UniqueUnit) Inject(javax.inject.Inject) Stock(eu.ggnet.dwoss.stock.ee.entity.Stock) DocumentType(eu.ggnet.dwoss.rules.DocumentType) WARRANTY(eu.ggnet.dwoss.report.ee.entity.ReportLine.SingleReferenceType.WARRANTY) LogicTransactionEao(eu.ggnet.dwoss.stock.ee.eao.LogicTransactionEao) UniqueUnits(eu.ggnet.dwoss.uniqueunit.ee.assist.UniqueUnits) Event(javax.enterprise.event.Event) Logger(org.slf4j.Logger) IMonitor(eu.ggnet.saft.api.progress.IMonitor) UiCustomer(eu.ggnet.dwoss.customer.opi.UiCustomer) StockUnit(eu.ggnet.dwoss.stock.ee.entity.StockUnit) EntityManager(javax.persistence.EntityManager) Type(eu.ggnet.statemachine.State.Type) DateUtils(org.apache.commons.lang3.time.DateUtils) DossierEao(eu.ggnet.dwoss.redtape.ee.eao.DossierEao) Condition(eu.ggnet.dwoss.redtape.ee.entity.Document.Condition) StockUnitEao(eu.ggnet.dwoss.stock.ee.eao.StockUnitEao) Document(eu.ggnet.dwoss.redtape.ee.entity.Document) UNIT(eu.ggnet.dwoss.rules.PositionType.UNIT) LogicTransaction(eu.ggnet.dwoss.stock.ee.entity.LogicTransaction) StringUtils.normalizeSpace(org.apache.commons.lang3.StringUtils.normalizeSpace) javax.validation(javax.validation) UnitHistory(eu.ggnet.dwoss.event.UnitHistory) SubMonitor(eu.ggnet.dwoss.progress.SubMonitor) LogicTransaction(eu.ggnet.dwoss.stock.ee.entity.LogicTransaction) StockUnit(eu.ggnet.dwoss.stock.ee.entity.StockUnit) Stock(eu.ggnet.dwoss.stock.ee.entity.Stock) StockTransaction(eu.ggnet.dwoss.stock.ee.entity.StockTransaction)

Aggregations

CustomerServiceBean (eu.ggnet.dwoss.customer.ee.CustomerServiceBean)1 UiCustomer (eu.ggnet.dwoss.customer.opi.UiCustomer)1 UnitHistory (eu.ggnet.dwoss.event.UnitHistory)1 WarrantyService (eu.ggnet.dwoss.mandator.api.service.WarrantyService)1 Ledger (eu.ggnet.dwoss.mandator.api.value.Ledger)1 ReceiptCustomers (eu.ggnet.dwoss.mandator.api.value.ReceiptCustomers)1 MonitorFactory (eu.ggnet.dwoss.progress.MonitorFactory)1 SubMonitor (eu.ggnet.dwoss.progress.SubMonitor)1 RedTapes (eu.ggnet.dwoss.redtape.ee.assist.RedTapes)1 DossierEao (eu.ggnet.dwoss.redtape.ee.eao.DossierEao)1 Document (eu.ggnet.dwoss.redtape.ee.entity.Document)1 Condition (eu.ggnet.dwoss.redtape.ee.entity.Document.Condition)1 Directive (eu.ggnet.dwoss.redtape.ee.entity.Document.Directive)1 Dossier (eu.ggnet.dwoss.redtape.ee.entity.Dossier)1 Position (eu.ggnet.dwoss.redtape.ee.entity.Position)1 RedTapeWorkflow (eu.ggnet.dwoss.redtapext.ee.workflow.RedTapeWorkflow)1 Reports (eu.ggnet.dwoss.report.ee.assist.Reports)1 ReportLineEao (eu.ggnet.dwoss.report.ee.eao.ReportLineEao)1 ReportLine (eu.ggnet.dwoss.report.ee.entity.ReportLine)1 WARRANTY (eu.ggnet.dwoss.report.ee.entity.ReportLine.SingleReferenceType.WARRANTY)1