feat: implement equipment order export and tracking status
This commit is contained in:
@@ -45,7 +45,7 @@ public class DotationController {
|
||||
this.categorieRepository = categorieRepository;
|
||||
}
|
||||
|
||||
private Specification<Dotation> buildSpecification(Long equipementId, Long categorieId, Boolean fourni, Saison saisonActive) {
|
||||
private Specification<Dotation> buildSpecification(Long equipementId, Long categorieId, Boolean fourni, Boolean commandee, Saison saisonActive) {
|
||||
return (root, query, cb) -> {
|
||||
if (Long.class != query.getResultType() && long.class != query.getResultType()) {
|
||||
root.fetch("equipement", jakarta.persistence.criteria.JoinType.LEFT);
|
||||
@@ -67,6 +67,9 @@ public class DotationController {
|
||||
if (fourni != null) {
|
||||
predicates.add(cb.equal(root.get("fourni"), fourni));
|
||||
}
|
||||
if (commandee != null) {
|
||||
predicates.add(cb.equal(root.get("commandee"), commandee));
|
||||
}
|
||||
return cb.and(predicates.toArray(new Predicate[0]));
|
||||
};
|
||||
}
|
||||
@@ -76,12 +79,13 @@ public class DotationController {
|
||||
@RequestParam(required = false) Long equipementId,
|
||||
@RequestParam(required = false) Long categorieId,
|
||||
@RequestParam(required = false) Boolean fourni,
|
||||
@RequestParam(required = false) Boolean commandee,
|
||||
@RequestParam(defaultValue = "0") int page,
|
||||
@RequestParam(defaultValue = "20") int size,
|
||||
Model model) {
|
||||
|
||||
Saison saisonActive = saisonRepository.findByEstActiveTrue().orElse(null);
|
||||
Specification<Dotation> spec = buildSpecification(equipementId, categorieId, fourni, saisonActive);
|
||||
Specification<Dotation> spec = buildSpecification(equipementId, categorieId, fourni, commandee, saisonActive);
|
||||
List<Dotation> allDotations = dotationRepository.findAll(spec);
|
||||
|
||||
int totalElements = allDotations.size();
|
||||
@@ -99,6 +103,7 @@ public class DotationController {
|
||||
model.addAttribute("equipementId", equipementId);
|
||||
model.addAttribute("categorieId", categorieId);
|
||||
model.addAttribute("fourni", fourni);
|
||||
model.addAttribute("commandee", commandee);
|
||||
|
||||
model.addAttribute("currentPage", page);
|
||||
model.addAttribute("totalPages", totalPages);
|
||||
@@ -112,10 +117,11 @@ public class DotationController {
|
||||
public ResponseEntity<byte[]> exportRechercheEquipements(
|
||||
@RequestParam(required = false) Long equipementId,
|
||||
@RequestParam(required = false) Long categorieId,
|
||||
@RequestParam(required = false) Boolean fourni) {
|
||||
@RequestParam(required = false) Boolean fourni,
|
||||
@RequestParam(required = false) Boolean commandee) {
|
||||
|
||||
Saison saisonActive = saisonRepository.findByEstActiveTrue().orElse(null);
|
||||
Specification<Dotation> spec = buildSpecification(equipementId, categorieId, fourni, saisonActive);
|
||||
Specification<Dotation> spec = buildSpecification(equipementId, categorieId, fourni, commandee, saisonActive);
|
||||
List<Dotation> dotations = dotationRepository.findAll(spec);
|
||||
|
||||
String csvContent = dotationService.genererCsvSearchEquipement(dotations);
|
||||
@@ -137,7 +143,7 @@ public class DotationController {
|
||||
byte[] csvBytes = csvContent.getBytes(java.nio.charset.StandardCharsets.UTF_8);
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentDispositionFormData("attachment", "commande_equipements_" + LocalDate.now() + ".csv");
|
||||
headers.setContentDispositionFormData("attachment", "commande_equipements_regroupee_" + LocalDate.now() + ".csv");
|
||||
headers.setContentType(MediaType.parseMediaType("text/csv; charset=UTF-8"));
|
||||
|
||||
return new ResponseEntity<>(csvBytes, headers, org.springframework.http.HttpStatus.OK);
|
||||
|
||||
Reference in New Issue
Block a user