Search in sources :

Example 1 with Quantite

use of me.kadarh.mecaworks.domain.user.Quantite in project mecaworks by KadarH.

the class UserCalculService method getMonthsWithQuantities.

public Quantite getMonthsWithQuantities(Chantier chantier, int month, int year) {
    log.info("calling method getListChantierWithQuantities(month,year) in UserCalculService -- ");
    LocalDate from = LocalDate.of(year, Month.of(month).getValue(), 1);
    LocalDate to = LocalDate.of(year, Month.of(month).plus(1).getValue(), 1);
    if (month == 12)
        to = LocalDate.of(year + 1, Month.of(month).plus(1).getValue(), 1);
    List<BonEngin> bonEngins = bonEnginRepo.findAllByChantier(chantier.getId(), from, to);
    List<BonLivraison> bonLivraisons = bonLivraisonRepo.findAllByChantier(chantier.getId(), from, to);
    List<BonFournisseur> bonFournisseurs = bonFournisseurRepo.findAllByChantier(chantier.getId(), from, to);
    Long quantiteTotal, quantiteLocation, chargeLocataireTotale, chargeLocataireExterne, consommationPrevue, gazoilAchetee, gazoilFlottant;
    quantiteTotal = bonEngins.stream().mapToLong(BonEngin::getQuantite).sum();
    quantiteLocation = bonEngins.stream().filter(bonEngin -> bonEngin.getEngin().getGroupe().getLocataire()).mapToLong(BonEngin::getQuantite).sum();
    chargeLocataireTotale = bonEngins.stream().mapToLong(bonEngin -> bonEngin.getChargeHoraire()).sum();
    chargeLocataireExterne = bonEngins.stream().filter(bonEngin -> bonEngin.getEngin().getGroupe().getLocataire()).mapToLong(BonEngin::getQuantite).sum();
    consommationPrevue = bonEngins.stream().mapToLong(BonEngin::getConsommationPrevu).sum();
    gazoilAchetee = bonFournisseurs.stream().mapToLong(BonFournisseur::getQuantite).sum();
    gazoilFlottant = bonLivraisons.stream().mapToLong(BonLivraison::getQuantite).sum();
    return new Quantite(month + "/" + year, quantiteTotal, quantiteLocation, chargeLocataireTotale, chargeLocataireExterne, 8.5f, consommationPrevue, gazoilAchetee, gazoilFlottant);
}
Also used : Engin(me.kadarh.mecaworks.domain.others.Engin) java.util(java.util) BonEnginRepo(me.kadarh.mecaworks.repo.bons.BonEnginRepo) Month(java.time.Month) BonFournisseur(me.kadarh.mecaworks.domain.bons.BonFournisseur) Quantite(me.kadarh.mecaworks.domain.user.Quantite) EnginService(me.kadarh.mecaworks.service.EnginService) BonEngin(me.kadarh.mecaworks.domain.bons.BonEngin) BonLivraison(me.kadarh.mecaworks.domain.bons.BonLivraison) Chantier(me.kadarh.mecaworks.domain.others.Chantier) Collectors(java.util.stream.Collectors) ResourceNotFoundException(me.kadarh.mecaworks.service.exceptions.ResourceNotFoundException) Slf4j(lombok.extern.slf4j.Slf4j) OperationFailedException(me.kadarh.mecaworks.service.exceptions.OperationFailedException) BonFournisseurRepo(me.kadarh.mecaworks.repo.bons.BonFournisseurRepo) ChronoUnit(java.time.temporal.ChronoUnit) ChantierBatch(me.kadarh.mecaworks.domain.user.ChantierBatch) StockRepo(me.kadarh.mecaworks.repo.others.StockRepo) Service(org.springframework.stereotype.Service) LocalDate(java.time.LocalDate) BonLivraisonRepo(me.kadarh.mecaworks.repo.bons.BonLivraisonRepo) Stock(me.kadarh.mecaworks.domain.others.Stock) Transactional(org.springframework.transaction.annotation.Transactional) BonLivraison(me.kadarh.mecaworks.domain.bons.BonLivraison) BonEngin(me.kadarh.mecaworks.domain.bons.BonEngin) BonFournisseur(me.kadarh.mecaworks.domain.bons.BonFournisseur) Quantite(me.kadarh.mecaworks.domain.user.Quantite) LocalDate(java.time.LocalDate)

Example 2 with Quantite

use of me.kadarh.mecaworks.domain.user.Quantite in project mecaworks by KadarH.

the class UserCalculService method getListDaysQuantities.

public List<Quantite> getListDaysQuantities(Chantier chantier, int month, int year) {
    // Declaring variables
    List<Quantite> quantites = new ArrayList<>();
    LocalDate from = LocalDate.of(year, Month.of(month).getValue(), 1);
    LocalDate to = LocalDate.of(year, Month.of(month).plus(1).getValue(), 1);
    if (month == 12)
        to = LocalDate.of(year + 1, Month.of(month).plus(1).getValue(), 1);
    List<BonEngin> bonEngins = bonEnginRepo.findAllByChantier(chantier.getId(), from, to);
    List<BonLivraison> bonLivraisons = bonLivraisonRepo.findAllByChantier(chantier.getId(), from, to);
    List<BonFournisseur> bonFournisseurs = bonFournisseurRepo.findAllByChantier(chantier.getId(), from, to);
    Long quantiteTotal, quantiteLocation, chargeLocataireTotale, chargeLocataireExterne, consommationPrevue, gazoilAchetee, gazoilFlottant;
    String date;
    long days = ChronoUnit.DAYS.between(from, to);
    for (int i = 0; i < days; i++) {
        LocalDate localDate = LocalDate.of(year, month, i + 1);
        date = (i + 1) + "-" + month + "-" + year;
        quantiteTotal = bonEngins.stream().filter(be -> be.getDate().equals(localDate)).mapToLong(BonEngin::getQuantite).sum();
        quantiteLocation = bonEngins.stream().filter(be -> be.getDate().equals(localDate)).filter(bonEngin -> bonEngin.getEngin().getGroupe().getLocataire()).mapToLong(BonEngin::getQuantite).sum();
        chargeLocataireTotale = bonEngins.stream().filter(be -> be.getDate().equals(localDate)).mapToLong(BonEngin::getNbrHeures).sum();
        chargeLocataireExterne = bonEngins.stream().filter(be -> be.getDate().equals(localDate)).mapToLong(BonEngin::getQuantite).sum();
        consommationPrevue = bonEngins.stream().filter(be -> be.getDate().equals(localDate)).mapToLong(BonEngin::getQuantite).sum();
        gazoilAchetee = bonFournisseurs.stream().filter(bf -> bf.getDate().equals(localDate)).mapToLong(BonFournisseur::getQuantite).sum();
        gazoilFlottant = bonLivraisons.stream().filter(bl -> bl.getDate().equals(localDate)).mapToLong(BonLivraison::getQuantite).sum();
        quantites.add(new Quantite(date, quantiteTotal, quantiteLocation, chargeLocataireTotale, chargeLocataireExterne, 8.5f, consommationPrevue, gazoilAchetee, gazoilFlottant));
    }
    return quantites;
}
Also used : Engin(me.kadarh.mecaworks.domain.others.Engin) java.util(java.util) BonEnginRepo(me.kadarh.mecaworks.repo.bons.BonEnginRepo) Month(java.time.Month) BonFournisseur(me.kadarh.mecaworks.domain.bons.BonFournisseur) Quantite(me.kadarh.mecaworks.domain.user.Quantite) EnginService(me.kadarh.mecaworks.service.EnginService) BonEngin(me.kadarh.mecaworks.domain.bons.BonEngin) BonLivraison(me.kadarh.mecaworks.domain.bons.BonLivraison) Chantier(me.kadarh.mecaworks.domain.others.Chantier) Collectors(java.util.stream.Collectors) ResourceNotFoundException(me.kadarh.mecaworks.service.exceptions.ResourceNotFoundException) Slf4j(lombok.extern.slf4j.Slf4j) OperationFailedException(me.kadarh.mecaworks.service.exceptions.OperationFailedException) BonFournisseurRepo(me.kadarh.mecaworks.repo.bons.BonFournisseurRepo) ChronoUnit(java.time.temporal.ChronoUnit) ChantierBatch(me.kadarh.mecaworks.domain.user.ChantierBatch) StockRepo(me.kadarh.mecaworks.repo.others.StockRepo) Service(org.springframework.stereotype.Service) LocalDate(java.time.LocalDate) BonLivraisonRepo(me.kadarh.mecaworks.repo.bons.BonLivraisonRepo) Stock(me.kadarh.mecaworks.domain.others.Stock) Transactional(org.springframework.transaction.annotation.Transactional) BonFournisseur(me.kadarh.mecaworks.domain.bons.BonFournisseur) LocalDate(java.time.LocalDate) BonLivraison(me.kadarh.mecaworks.domain.bons.BonLivraison) BonEngin(me.kadarh.mecaworks.domain.bons.BonEngin) Quantite(me.kadarh.mecaworks.domain.user.Quantite)

Example 3 with Quantite

use of me.kadarh.mecaworks.domain.user.Quantite in project mecaworks by KadarH.

the class DashbordServiceImpl method getDashbordFromBatch.

private Dashbord getDashbordFromBatch(int mois, int year) {
    log.info("calling method getDashbordFromBatch() in DashbordServiceImpl -- ");
    log.info("--> Add data for 12 last month [ one year ago ] ");
    List<Quantite> quantites = new ArrayList<>();
    List<ChantierBatch> chantierBatches;
    LocalDate d = LocalDate.of(year, mois, 1);
    for (int i = 12, month, yeaar; i >= 1; i--) {
        month = d.minusMonths(i).getMonthValue();
        yeaar = d.minusMonths(i).getYear();
        chantierBatches = chantierBatchRepo.findAllByMoisAndAnnee(month, yeaar);
        quantites.add(new Quantite(month + "/" + yeaar, chantierBatches.stream().mapToLong(ChantierBatch::getQuantite).sum(), chantierBatches.stream().mapToLong(ChantierBatch::getQuantiteLocation).sum(), chantierBatches.stream().mapToLong(ChantierBatch::getChargeLocataire).sum(), chantierBatches.stream().mapToLong(ChantierBatch::getChargeLocataireExterne).sum(), 8.5f, chantierBatches.stream().mapToLong(ChantierBatch::getConsommationPrevue).sum(), chantierBatches.stream().mapToLong(ChantierBatch::getGazoilAchete).sum(), chantierBatches.stream().mapToLong(ChantierBatch::getGazoilFlotant).sum()));
    }
    Dashbord dashbord = new Dashbord();
    dashbord.setQuantites(quantites);
    return dashbord;
}
Also used : Dashbord(me.kadarh.mecaworks.domain.user.Dashbord) ChantierBatch(me.kadarh.mecaworks.domain.user.ChantierBatch) Quantite(me.kadarh.mecaworks.domain.user.Quantite) ArrayList(java.util.ArrayList) LocalDate(java.time.LocalDate)

Example 4 with Quantite

use of me.kadarh.mecaworks.domain.user.Quantite in project mecaworks by KadarH.

the class DashbordChantierServiceImpl method getDashbordChantier.

@Override
public DashbordChantier getDashbordChantier(Long idc, int mois, int annee) {
    Long stock_c;
    Long ecartPlus;
    Long ecartMoins;
    LocalDate dateMaj;
    Optional<Stock> stock = stockRepo.findLastStockReel(idc);
    List<Quantite> quantites = new ArrayList<>();
    LocalDate d = LocalDate.of(annee, mois, 1);
    for (int i = 12, month, yeaar; i >= 0; i--) {
        month = d.minusMonths(i).getMonthValue();
        yeaar = d.minusMonths(i).getYear();
        quantites.add(userCalculService.getMonthsWithQuantities(chantierService.get(idc), month, yeaar));
    }
    if (stock.isPresent()) {
        ecartPlus = stock.get().getEcart_plus().longValue();
        ecartMoins = stock.get().getEcart_moins().longValue();
        dateMaj = stock.get().getDate();
    } else {
        ecartPlus = 0L;
        ecartMoins = 0L;
        dateMaj = LocalDate.now();
    }
    return new DashbordChantier(userCalculService.getListDaysQuantities(chantierService.get(idc), mois, annee), quantites, userCalculService.getListChantierStockDays(chantierService.get(idc), mois, annee), chantierService.get(idc).getStock().longValue(), ecartPlus, ecartMoins, dateMaj, chantierService.get(idc));
}
Also used : Quantite(me.kadarh.mecaworks.domain.user.Quantite) ArrayList(java.util.ArrayList) LocalDate(java.time.LocalDate) Stock(me.kadarh.mecaworks.domain.others.Stock) DashbordChantier(me.kadarh.mecaworks.domain.user.DashbordChantier)

Example 5 with Quantite

use of me.kadarh.mecaworks.domain.user.Quantite in project mecaworks by KadarH.

the class UserCalculService method getListChantierWithQuantities.

public List<ChantierBatch> getListChantierWithQuantities(int month, int year) {
    log.info("calling method getListChantierWithQuantities(month,year) in UserCalculService -- ");
    try {
        List<ChantierBatch> list = new ArrayList<>();
        ChantierBatch chantierBatch;
        LocalDate from = LocalDate.of(year, Month.of(month).getValue(), 1);
        LocalDate to = LocalDate.of(year + 1, Month.of(month).plus(1).getValue(), 1);
        List<BonEngin> bonEngins = bonEnginRepo.findAllBetweenDates(from, to);
        List<BonLivraison> bonLivraisons = bonLivraisonRepo.findAllBetweenDates(from, to);
        List<BonFournisseur> bonFournisseurs = bonFournisseurRepo.findAllBetweenDates(from, to);
        Map<Chantier, Long> sum = bonEngins.stream().collect(Collectors.groupingBy(BonEngin::getChantierTravail, Collectors.summingLong(BonEngin::getQuantite)));
        Map<Chantier, Long> sum2 = bonEngins.stream().filter(bonEngin -> bonEngin.getEngin().getGroupe().getLocataire() && bonEngin.getId() != null).collect(Collectors.groupingBy(BonEngin::getChantierTravail, Collectors.summingLong(BonEngin::getQuantite)));
        Map<Chantier, Long> chargeLocataire = bonEngins.stream().collect(Collectors.groupingBy(BonEngin::getChantierTravail, Collectors.summingLong(BonEngin::getChargeHoraire)));
        Map<Chantier, Long> chargeLocataireExterne = bonEngins.stream().filter(bonEngin -> bonEngin.getEngin().getGroupe().getLocataire()).collect(Collectors.groupingBy(BonEngin::getChantierTravail, Collectors.summingLong(BonEngin::getChargeHoraire)));
        Map<Chantier, Long> consommationPrevue = bonEngins.stream().collect(Collectors.groupingBy(BonEngin::getChantierTravail, Collectors.summingLong(BonEngin::getConsommationPrevu)));
        Map<Chantier, Double> prix = bonFournisseurs.stream().collect(Collectors.groupingBy(BonFournisseur::getChantier, Collectors.averagingDouble(BonFournisseur::getPrixUnitaire)));
        Map<Chantier, Long> quantiteAchetee = bonFournisseurs.stream().collect(Collectors.groupingBy(BonFournisseur::getChantier, Collectors.summingLong(BonFournisseur::getQuantite)));
        Map<Chantier, Long> quantiteFlotante = bonLivraisons.stream().collect(Collectors.groupingBy(BonLivraison::getChantierDepart, Collectors.summingLong(BonLivraison::getQuantite)));
        for (Map.Entry<Chantier, Long> entry : sum.entrySet()) {
            if (entry != null) {
                // Fix in 0 if null
                Long quantite = entry.getValue();
                Long quantiteL = sum2.get(entry.getKey()) == null ? 0L : sum2.get(entry.getKey());
                Long cl = chargeLocataire.get(entry.getKey()) == null ? 0L : chargeLocataire.get(entry.getKey());
                Long clex = chargeLocataireExterne.get(entry.getKey()) == null ? 0L : chargeLocataireExterne.get(entry.getKey());
                Long cp = consommationPrevue.get(entry.getKey()) == null ? 0L : consommationPrevue.get(entry.getKey());
                Long qa = quantiteAchetee.get(entry.getKey()) == null ? 0L : quantiteAchetee.get(entry.getKey());
                Long qf = quantiteFlotante.get(entry.getKey()) == null ? 0L : quantiteFlotante.get(entry.getKey());
                Float p = prix.get(entry.getKey()) == null ? 0f : prix.get(entry.getKey()).floatValue();
                chantierBatch = new ChantierBatch(month, year, quantite, quantiteL, cl, clex, cp, p, qa, qf, entry.getKey());
                if (chantierBatch.getQuantiteLocation() == null)
                    chantierBatch.setQuantiteLocation(0L);
                if (chantierBatch.getQuantite() == null)
                    chantierBatch.setQuantite(0L);
                if (chantierBatch.getChargeLocataireExterne() == null)
                    chantierBatch.setChargeLocataireExterne(0L);
                if (chantierBatch.getChargeLocataire() == null)
                    chantierBatch.setChargeLocataire(0L);
                if (chantierBatch.getConsommationPrevue() == null)
                    chantierBatch.setConsommationPrevue(0L);
                if (chantierBatch.getGazoilAchete() == null)
                    chantierBatch.setGazoilAchete(0L);
                if (chantierBatch.getGazoilFlotant() == null)
                    chantierBatch.setGazoilFlotant(0L);
                list.add(chantierBatch);
            }
        }
        log.info("--> List of Chantier_Batch contains " + list.size() + " elements");
        return list;
    } catch (NoSuchElementException e) {
        log.info("Operation failed : No element in ChantierBatch table -- ");
        throw new ResourceNotFoundException("Opération echouée, Il n'y a aucun element pour les mois precedents", e);
    } catch (Exception e) {
        log.info("Operation failed -- ");
        throw new OperationFailedException("Opération echouée, problème de la base", e);
    }
}
Also used : Engin(me.kadarh.mecaworks.domain.others.Engin) java.util(java.util) BonEnginRepo(me.kadarh.mecaworks.repo.bons.BonEnginRepo) Month(java.time.Month) BonFournisseur(me.kadarh.mecaworks.domain.bons.BonFournisseur) Quantite(me.kadarh.mecaworks.domain.user.Quantite) EnginService(me.kadarh.mecaworks.service.EnginService) BonEngin(me.kadarh.mecaworks.domain.bons.BonEngin) BonLivraison(me.kadarh.mecaworks.domain.bons.BonLivraison) Chantier(me.kadarh.mecaworks.domain.others.Chantier) Collectors(java.util.stream.Collectors) ResourceNotFoundException(me.kadarh.mecaworks.service.exceptions.ResourceNotFoundException) Slf4j(lombok.extern.slf4j.Slf4j) OperationFailedException(me.kadarh.mecaworks.service.exceptions.OperationFailedException) BonFournisseurRepo(me.kadarh.mecaworks.repo.bons.BonFournisseurRepo) ChronoUnit(java.time.temporal.ChronoUnit) ChantierBatch(me.kadarh.mecaworks.domain.user.ChantierBatch) StockRepo(me.kadarh.mecaworks.repo.others.StockRepo) Service(org.springframework.stereotype.Service) LocalDate(java.time.LocalDate) BonLivraisonRepo(me.kadarh.mecaworks.repo.bons.BonLivraisonRepo) Stock(me.kadarh.mecaworks.domain.others.Stock) Transactional(org.springframework.transaction.annotation.Transactional) BonFournisseur(me.kadarh.mecaworks.domain.bons.BonFournisseur) OperationFailedException(me.kadarh.mecaworks.service.exceptions.OperationFailedException) LocalDate(java.time.LocalDate) ResourceNotFoundException(me.kadarh.mecaworks.service.exceptions.ResourceNotFoundException) OperationFailedException(me.kadarh.mecaworks.service.exceptions.OperationFailedException) ChantierBatch(me.kadarh.mecaworks.domain.user.ChantierBatch) BonLivraison(me.kadarh.mecaworks.domain.bons.BonLivraison) BonEngin(me.kadarh.mecaworks.domain.bons.BonEngin) Chantier(me.kadarh.mecaworks.domain.others.Chantier) ResourceNotFoundException(me.kadarh.mecaworks.service.exceptions.ResourceNotFoundException)

Aggregations

Quantite (me.kadarh.mecaworks.domain.user.Quantite)6 LocalDate (java.time.LocalDate)5 Stock (me.kadarh.mecaworks.domain.others.Stock)4 ChantierBatch (me.kadarh.mecaworks.domain.user.ChantierBatch)4 Month (java.time.Month)3 ChronoUnit (java.time.temporal.ChronoUnit)3 java.util (java.util)3 Collectors (java.util.stream.Collectors)3 Slf4j (lombok.extern.slf4j.Slf4j)3 BonEngin (me.kadarh.mecaworks.domain.bons.BonEngin)3 BonFournisseur (me.kadarh.mecaworks.domain.bons.BonFournisseur)3 BonLivraison (me.kadarh.mecaworks.domain.bons.BonLivraison)3 Chantier (me.kadarh.mecaworks.domain.others.Chantier)3 Engin (me.kadarh.mecaworks.domain.others.Engin)3 BonEnginRepo (me.kadarh.mecaworks.repo.bons.BonEnginRepo)3 BonFournisseurRepo (me.kadarh.mecaworks.repo.bons.BonFournisseurRepo)3 BonLivraisonRepo (me.kadarh.mecaworks.repo.bons.BonLivraisonRepo)3 StockRepo (me.kadarh.mecaworks.repo.others.StockRepo)3 EnginService (me.kadarh.mecaworks.service.EnginService)3 OperationFailedException (me.kadarh.mecaworks.service.exceptions.OperationFailedException)3