use of me.kadarh.mecaworks.domain.bons.BonLivraison in project mecaworks by KadarH.
the class BonLivraisonServiceImpl method insertBonLivraison.
@Override
public void insertBonLivraison(BonEngin bonEngin) {
BonLivraison bonLivraison = new BonLivraison();
bonLivraison.setDate(bonEngin.getDate());
bonLivraison.setChantierDepart(bonEngin.getChantierGazoil());
bonLivraison.setChantierArrivee(bonEngin.getChantierTravail());
bonLivraison.setCode(bonEngin.getCode() + "X" + bonEngin.getId());
bonLivraison.setPompiste(bonEngin.getPompiste());
bonLivraison.setTransporteur(bonEngin.getChauffeur());
bonLivraison.setQuantite(bonEngin.getQuantite());
add(bonLivraison);
}
use of me.kadarh.mecaworks.domain.bons.BonLivraison in project mecaworks by KadarH.
the class BonLivraisonServiceImpl method bonList.
/**
* Search by any attribute of BonLivraison if possible
*
* @param pageable
* @param search keyword
* @return Page of results
*/
@Override
public Page<BonLivraison> bonList(Pageable pageable, String search) {
try {
if (search.isEmpty()) {
log.debug("fetching bonLivraison page");
return bonLivraisonRepo.findAll(pageable);
} else {
log.debug("Searching by :" + search);
// creating example
// Searching by code, date, quantité, nom chantier, nom employe
BonLivraison bonLivraison = new BonLivraison();
Chantier chantier = new Chantier();
chantier.setNom(search);
bonLivraison.setChantierDepart(chantier);
bonLivraison.setChantierArrivee(chantier);
Employe employe = new Employe();
employe.setNom(search);
bonLivraison.setPompiste(employe);
bonLivraison.setTransporteur(employe);
bonLivraison.setCode(search);
try {
bonLivraison.setDate(LocalDate.parse(search, DateTimeFormatter.ofPattern("yyyy-MM-dd")));
} catch (Exception e) {
log.debug("Cannot search by date : keyword doesn't match date pattern");
}
try {
bonLivraison.setQuantite(Integer.valueOf(search));
} catch (Exception e) {
log.debug("Cannot search by quantité : keyword is not a number");
}
// creating matcher
ExampleMatcher matcher = ExampleMatcher.matchingAny().withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING).withIgnoreCase().withIgnoreNullValues();
Example<BonLivraison> example = Example.of(bonLivraison, matcher);
Pageable pageable1 = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(Sort.Direction.DESC, "date"));
log.debug("getting search results");
return bonLivraisonRepo.findAll(example, pageable1);
}
} catch (Exception e) {
log.debug("Failed retrieving list of bons de Lisvraison");
throw new OperationFailedException("Operation échouée", e);
}
}
use of me.kadarh.mecaworks.domain.bons.BonLivraison 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);
}
}
Aggregations