diff --git a/batch/pom.xml b/batch/pom.xml
index 47c5e2a4..1023f84b 100644
--- a/batch/pom.xml
+++ b/batch/pom.xml
@@ -3,7 +3,7 @@
itembackoffice
fr.abes.item
- 3.2.0
+ 3.2.1-SNAPSHOT
4.0.0
jar
diff --git a/batch/src/main/resources/log4j2.xml b/batch/src/main/resources/log4j2.xml
index d6c18ce6..e1ec43bc 100644
--- a/batch/src/main/resources/log4j2.xml
+++ b/batch/src/main/resources/log4j2.xml
@@ -5,7 +5,7 @@
+ pattern="%style{%d{ISO8601}}{white} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%C{1.}}{dark,yellow}: %msg%n%throwable" />
@@ -14,6 +14,7 @@
+
diff --git a/core/pom.xml b/core/pom.xml
index 27b96032..9ce01464 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -3,7 +3,7 @@
itembackoffice
fr.abes.item
- 3.2.0
+ 3.2.1-SNAPSHOT
4.0.0
jar
diff --git a/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java b/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java
index 919c7c97..dda7e97a 100644
--- a/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java
+++ b/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java
@@ -13,10 +13,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
+import java.io.*;
import java.nio.file.Path;
import java.util.List;
@@ -38,10 +35,11 @@ public void writePpnInFile(String ppn, Exemplaire exemplaire, String typeDoc) th
PrintWriter out = new PrintWriter(bw)) {
// création de la liste de référence pour trouver l'emplacement de chaque zone et sous-zone
List listDeReference = referenceService.constructHeaderCsv();
- listDeReference.remove(0);
- listDeReference.remove(0);
+ listDeReference.subList(0, 4).clear();
// ajout de la ligne
- out.println(typeDoc + ";" + ppn + ";" + gererZones(listDeReference, exemplaire));
+ String rcr = exemplaire.findZone("930", 0).findSubLabel("$b");
+ String epn = exemplaire.findZone("A99", 0).getValeur();
+ out.println(typeDoc + ";" + ppn + ";" + rcr + ";" + epn + ";" + gererZones(listDeReference, exemplaire));
} catch (IOException ex) {
throw new StorageException("Impossible d'écrire dans le fichier de sauvegarde csv");
}
@@ -110,13 +108,25 @@ public void checkFileContent(Demande d) throws FileCheckingException, IOExceptio
}
public void writeHeader() {
- try (FileWriter fw = new FileWriter(this.getPath().resolve(this.getFilename()).toString(), true);
- BufferedWriter bw = new BufferedWriter(fw);
- PrintWriter out = new PrintWriter(bw)) {
- // ajout de la ligne
- out.println(String.join(";", this.referenceService.constructHeaderCsv()));
+ if (!isHeaderExist()) {
+ try (FileWriter fw = new FileWriter(this.getPath().resolve(this.getFilename()).toString(), true);
+ BufferedWriter bw = new BufferedWriter(fw);
+ PrintWriter out = new PrintWriter(bw)) {
+ // ajout de la ligne
+ out.println(String.join(";", this.referenceService.constructHeaderCsv()));
+ } catch (IOException ex) {
+ throw new StorageException(Constant.ERR_FILE_WRITING + "de sauvegarde csv");
+ }
+ }
+ }
+
+ private boolean isHeaderExist() {
+ try (FileReader fr = new FileReader(this.getPath().resolve(this.getFilename()).toString());
+ BufferedReader br = new BufferedReader(fr)) {
+ String line = br.readLine();
+ return line != null && line.startsWith("TYPE (008);PPN;");
} catch (IOException ex) {
- throw new StorageException("Impossible d'écrire dans le fichier de sauvegarde csv");
+ throw new StorageException(Constant.ERR_FILE_READING + " de sauvegarde csv");
}
}
}
diff --git a/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppTxt.java b/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppTxt.java
index ee008613..60e05090 100644
--- a/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppTxt.java
+++ b/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppTxt.java
@@ -27,7 +27,7 @@ public void writePpnInFile(String ppn, Exemplaire exemplaire) throws StorageExce
try (FileWriter fw = new FileWriter(this.getPath().resolve(this.getFilename()).toString(), true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw)) {
- out.println(ppn);
+ out.println("PPN " + ppn);
out.print("\n");
out.println(exemplaire);
out.println("\n");
diff --git a/core/src/main/java/fr/abes/item/core/constant/Constant.java b/core/src/main/java/fr/abes/item/core/constant/Constant.java
index 381db2e0..b811a14b 100644
--- a/core/src/main/java/fr/abes/item/core/constant/Constant.java
+++ b/core/src/main/java/fr/abes/item/core/constant/Constant.java
@@ -142,6 +142,7 @@ public class Constant implements Serializable {
public static final String ERR_FILE_STORAGE_FILE = "Echec de stockage du fichier suivant : ";
public static final String ERR_FILE_STORAGE_FILE_UNREADABLE = "Fichier illisible, verifier que le format du fichier est bien un fichier texte.";
public static final String ERR_FILE_READING = "Ne peut pas lire le fichier : ";
+ public static final String ERR_FILE_WRITING = "Echec de l'écriture dans le fichier ";
/**Specific errors on file checking*/
public static final String ERR_FILE_LIGNE_ANORNALE = "L'en-tête du fichier est non conforme : il contient des caractères parasites. Merci de consulter la documentation utilisateur à cette adresse : http://documentation.abes.fr/aideitem/index.html";
diff --git a/core/src/main/java/fr/abes/item/core/service/ReferenceService.java b/core/src/main/java/fr/abes/item/core/service/ReferenceService.java
index b9148726..859ba6eb 100644
--- a/core/src/main/java/fr/abes/item/core/service/ReferenceService.java
+++ b/core/src/main/java/fr/abes/item/core/service/ReferenceService.java
@@ -72,6 +72,8 @@ public List constructHeaderCsv() {
List headerCsv = new ArrayList<>();
headerCsv.add("TYPE (008)");
headerCsv.add("PPN");
+ headerCsv.add("RCR");
+ headerCsv.add("EPN");
for (ZonesAutorisees zonesAutorisees: listZonesAutorisees) {
if(!zonesAutorisees.getLabelZone().startsWith("L")){
headerCsv.add(zonesAutorisees.getLabelZone()+zonesAutorisees.getSousZonesAutorisees().remove(0).getLibelle());
diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java
index 8601980d..3e4c4f33 100644
--- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java
+++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java
@@ -355,7 +355,7 @@ public String[] getNoticeExemplaireAvantApres(Demande demande, LigneFichier lign
DemandeSupp demandeSupp = (DemandeSupp) demande;
try {
traitementService.authenticate("M" + demandeSupp.getRcr());
- List exemplairesExistants = getExemplairesExistants(ligneFichierSupp);
+ List exemplairesExistants = getExemplairesExistants(ligneFichierSupp.getPpn());
//On ne conserve que les EPN de son RCR
exemplairesExistants = exemplairesExistants.stream().filter(exemplaire -> exemplaire.findZone("930", 0).findSubLabel("$b").equals(demandeSupp.getRcr())).toList();
if (exemplairesExistants.isEmpty()) {
@@ -393,15 +393,7 @@ public String getTypeDocumentFromPpn(String ppn) throws CBSException, IOExceptio
};
}
- public List getExemplairesExistants(LigneFichierSupp ligneFichierSupp) throws IOException, QueryToSudocException, CBSException, ZoneException {
- return getExemplairesExistants(ligneFichierSupp.getPpn());
- }
-
public List getExemplairesExistants(String ppn) throws IOException, QueryToSudocException, CBSException, ZoneException {
- return getExemplairesExistantsInternal(ppn);
- }
-
- private List getExemplairesExistantsInternal(String ppn) throws IOException, QueryToSudocException, CBSException, ZoneException {
String query = "che ppn " + ppn;
traitementService.getCbs().search(query);
int nbReponses = traitementService.getCbs().getNbNotices();
diff --git a/core/src/test/java/fr/abes/item/core/service/ReferenceServiceTest.java b/core/src/test/java/fr/abes/item/core/service/ReferenceServiceTest.java
index 9dc79223..c919cab1 100644
--- a/core/src/test/java/fr/abes/item/core/service/ReferenceServiceTest.java
+++ b/core/src/test/java/fr/abes/item/core/service/ReferenceServiceTest.java
@@ -1,10 +1,7 @@
package fr.abes.item.core.service;
-import fr.abes.cbs.exception.CBSException;
-import fr.abes.cbs.exception.ZoneException;
import fr.abes.item.core.entities.item.SousZonesAutorisees;
import fr.abes.item.core.entities.item.ZonesAutorisees;
-import fr.abes.item.core.exception.QueryToSudocException;
import fr.abes.item.core.repository.item.IEtatDemandeDao;
import fr.abes.item.core.repository.item.ITraitementDao;
import fr.abes.item.core.repository.item.ITypeExempDao;
@@ -15,7 +12,6 @@
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -65,7 +61,7 @@ void constructHeaderCsv() {
Mockito.when(iZonesAutoriseesDao.findAll()).thenReturn(zonesAutoriseesList);
List test = referenceService.constructHeaderCsv();
- List reference = List.of("TYPE (008);PPN;917$a;930$c;$d;".split(";"));
+ List reference = List.of("TYPE (008);PPN;RCR;EPN;917$a;930$c;$d;".split(";"));
assertEquals(reference,test);
diff --git a/pom.xml b/pom.xml
index fddf3226..8212a06d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
fr.abes.item
itembackoffice
- 3.2.0
+ 3.2.1-SNAPSHOT
core
web
@@ -77,7 +77,7 @@
fr.abes.api-communes
AccesCbs
- 2.5.74
+ 2.5.76
diff --git a/web/pom.xml b/web/pom.xml
index 794af9b3..ca19dd83 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -3,7 +3,7 @@
itembackoffice
fr.abes.item
- 3.2.0
+ 3.2.1-SNAPSHOT
4.0.0
jar