Skip to content

Commit

Permalink
Merge pull request #67
Browse files Browse the repository at this point in the history
develop to main
  • Loading branch information
jvk88511334 authored Oct 21, 2024
2 parents 69c54c0 + 52d1c00 commit 7556faa
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ protected void checkRcr(String rcrFichier, String rcr, int ligneCourante) throws
* @throws FileCheckingException : erreur de format de fichier
*/
protected void checkPpn(String ppn, int ligneCourante) throws FileCheckingException {
if (!ppn.matches("^\\d{8}[0-9X]$")){
if (!ppn.matches("^(\\d{8}[0-9X])?$")){
throw new FileCheckingException(Constant.ERR_FILE_ERRLINE + ligneCourante + Constant.ERR_FILE_WRONGPPN);
}
}
Expand All @@ -110,7 +110,7 @@ protected void checkPpn(String ppn, int ligneCourante) throws FileCheckingExcept
* @throws FileCheckingException: erreur de format de l'epn
*/
protected void checkEpn(String epn, int ligneCourante) throws FileCheckingException {
if (!epn.matches("^\\d{8}[0-9X]$")) {
if (!epn.matches("^(\\d{8}[0-9X])?$")) {
throw new FileCheckingException(Constant.ERR_FILE_ERRLINE + ligneCourante + Constant.ERR_FILE_WRONGEPN);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public void checkFileContent(Demande d) throws FileCheckingException, IOExceptio
* @throws FileCheckingException : erreur dans le format de la ligne
*/
private void check3Cols(String ligne) throws FileCheckingException {
if (ligne.split(";").length < 3) {
if (ligne.split(";").length != 3) {
throw new FileCheckingException(Constant.ERR_FILE_3COL_SUPP);
}
if (ligne.length() < 11) {
Expand All @@ -84,12 +84,17 @@ private void check3Cols(String ligne) throws FileCheckingException {
*/
private void checkBodyLine(String ligne, DemandeSupp demandeSupp) throws FileCheckingException {
try {
// contrôle de la longueur de la ligne
if (ligne.split(";").length > 3) {
throw new FileCheckingException(Constant.ERR_FILE_ERRLINE + " \"" + ligne + "\" " + Constant.ERR_FILE_3COL_SUPP_ANY_LINE);
}
String[] tabligne = ligne.split(";");
// contrôle du ppn
if (demandeSupp.getTypeSuppression().equals(TYPE_SUPPRESSION.EPN) && tabligne[0] != null) {
checkPpn(tabligne[0], ligneCourante);
}
checkRcr(tabligne[1], demandeSupp.getRcr(), ligneCourante);
//cas ou l'epn est renseigné
// contrôle de l'epn s'il est renseigné
if (tabligne.length > 2)
checkEpn(tabligne[2], ligneCourante);
} catch (IndexOutOfBoundsException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

@Slf4j
Expand All @@ -40,13 +39,14 @@ public int getType() {
return Constant.ETATDEM_PREPAREE;
}


@Override
public TYPE_DEMANDE getDemandeType() {return TYPE_DEMANDE.MODIF; }
public TYPE_DEMANDE getDemandeType() {
return TYPE_DEMANDE.MODIF;
}

@Override
public void checkFileContent(Demande demandeModif) {
//nothing to do
//nothing to do
}

@Override
Expand Down Expand Up @@ -98,8 +98,8 @@ public void alimenterEpn(String input, String listeppn, String rcr) {
*/
public void alimenterPpn(String input, String listeEpn, String rcr) {
try (FileWriter fw = new FileWriter(path.resolve(filename).toString(), true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw)) {
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw)) {
String[] tabEpn = listeEpn.split(",");
Multimap<String, String> resJson = Utilitaires.parseJson(input, true);
for (String epn : tabEpn) {
Expand All @@ -125,9 +125,10 @@ public void trierLignesDeCorrespondances() throws IOException {

List<String> correspondanceSortList = new ArrayList<>();
String header = reader.readLine();//cette ligne enleve le header et le stock
correspondanceSortList.add(header + "\n");
correspondanceSortList.add(header);
reader.lines().sorted().forEach(line -> {
correspondanceSortList.add(line+"\n");
correspondanceSortList.add("\n");
correspondanceSortList.add(line);
});
reader.close();
fileReader.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ public class Constant implements Serializable {
public static final String ERR_FILE_TOOMUCH_SUPP = Constant.ERR_FILE_TOOMUCH_START + Constant.MAX_LIGNE_FICHIER_INIT_SUPP + Constant.ERR_FILE_TOOMUCH_END;
public static final String ERR_FILE_3COL_MODIF = "La première ligne du fichier doit contenir 4 colonnes (ppn;rcr;epn;zone).";
public static final String ERR_FILE_3COL_SUPP = "La première ligne du fichier doit contenir 3 colonnes (ppn;rcr;epn)";
public static final String ERR_FILE_3COL_SUPP_ANY_LINE = "La ligne doit contenir trois colones";
public static final String ERR_FILE_ERRLINE = "Erreur ligne ";
public static final String ERR_FILE_ONLYONEPPN = "la ligne ne doit contenir qu'un ppn (sur 9 caractères).";
public static final String ERR_FILE_HEAD4TH = "La valeur en-tête de la quatrieme colonne n'est pas valide.";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ private void stockerFichierOnDisk(MultipartFile file, Fichier fichier, DemandeSu
}
}

private void checkEtatDemande(DemandeSupp demande) throws DemandeCheckingException, IOException, FileTypeException {
private void checkEtatDemande(DemandeSupp demande) throws DemandeCheckingException, IOException, FileTypeException, FileCheckingException {
int etat = demande.getEtatDemande().getNumEtat();
switch (etat) {
case Constant.ETATDEM_PREPARATION -> preparerFichierEnPrep(demande);
Expand All @@ -177,16 +177,16 @@ private void checkEtatDemande(DemandeSupp demande) throws DemandeCheckingExcepti
}
}

private void preparerFichierEnPrep(DemandeSupp demande) throws IOException, DemandeCheckingException, FileTypeException {
private void preparerFichierEnPrep(DemandeSupp demande) throws IOException, DemandeCheckingException, FileTypeException, FileCheckingException {
if (demande.getTypeSuppression() != null) {
//Suppression d'un éventuel fichier existant sur le disque
storageService.delete(fichierPrepare.getFilename());
//Ecriture ligne d'en-tête dans FichierApresWS
fichierPrepare.ecrireEnTete();
//Alimentation du fichier par appel à la procédure Oracle ppntoepn
appelProcStockee(demande.getRcr(), demande.getTypeSuppression());
demande.setEtatDemande(new EtatDemande(Constant.ETATDEM_PREPAREE));
fichierPrepare.trierLignesDeCorrespondances();
demande.setEtatDemande(new EtatDemande(Constant.ETATDEM_PREPAREE));
save(demande);
checkEtatDemande(demande);
}
Expand Down

0 comments on commit 7556faa

Please sign in to comment.