Skip to content

Commit

Permalink
Toon hoogste klantafgiftenummer en maak het mogelijk om hoogste/laags…
Browse files Browse the repository at this point in the history
…te klantafgiftenummer als criterium op te geven
  • Loading branch information
mprins committed Sep 26, 2019
1 parent 64f5ed7 commit 1ddbc8e
Show file tree
Hide file tree
Showing 6 changed files with 101 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -697,6 +697,7 @@ public void loadBr(InputStream stream, String type, String fileName, Date d, Pro
}
} else {
if (!brmoXMLReader.hasNext()) {
updateLaadProcesStatus(lp, LaadProces.STATUS.STAGING_OK, "Leeg bestand, geen berichten gevonden in " + fileName);
throw new BrmoLeegBestandException("Leeg bestand, geen berichten gevonden in " + fileName);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import nl.b3p.brmo.loader.entity.Bericht;
import nl.b3p.brmo.loader.entity.LaadProces;
import org.apache.commons.dbutils.BasicRowProcessor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
* creates laadproces or bericht bean from database row.
Expand Down Expand Up @@ -71,6 +69,30 @@ public Object toBean(ResultSet rs, Class type) throws SQLException {
if (namesList.contains("contact_email")) {
lp.setContactEmail(rs.getString("contact_email"));
}
if (namesList.contains("klantafgiftenummer") && rs.getBigDecimal("klantafgiftenummer") != null) {
lp.setKlantafgiftenummer((rs.getBigDecimal("klantafgiftenummer").toBigInteger()));
}
if (namesList.contains("contractafgiftenummer") && rs.getBigDecimal("contractafgiftenummer") != null) {
lp.setContractafgiftenummer((rs.getBigDecimal("contractafgiftenummer").toBigInteger()));
}
if (namesList.contains("artikelnummer")) {
lp.setArtikelnummer(rs.getString("artikelnummer"));
}
if (namesList.contains("contractnummer")) {
lp.setContractnummer(rs.getString("contractnummer"));
}
if (namesList.contains("afgifteid")) {
lp.setAfgifteid(rs.getString("afgifteid"));
}
if (namesList.contains("afgiftereferentie")) {
lp.setAfgiftereferentie(rs.getString("afgiftereferentie"));
}
if (namesList.contains("bestandsreferentie")) {
lp.setBestandsreferentie(rs.getString("bestandsreferentie"));
}
if (namesList.contains("beschikbaar_tot")) {
lp.setBeschikbaar_tot(rs.getDate("beschikbaar_tot"));
}

return lp;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.math.BigInteger;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
Expand Down Expand Up @@ -73,6 +74,7 @@
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.CloseShieldInputStream;
import org.apache.commons.io.input.TeeInputStream;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Expand Down Expand Up @@ -186,11 +188,22 @@ public void execute(ProgressUpdateListener listener) {
vanaf = getDatumTijd(sVanaf);
}

// TODO instellen laagste en hoogste afgiftenummer voor dit verzoek
KlantAfgiftenummerReeksType afgiftenummers = new KlantAfgiftenummerReeksType();
// afgiftenummers.setKlantAfgiftenummerVanaf(BigInteger.ONE);
// afgiftenummers.setKlantAfgiftenummerTotmet(BigInteger.valueOf(10000));
// criteria.setKlantAfgiftenummerReeks(afgiftenummers);
if (vanaf == null && tot == null) {
// instellen laagste en hoogste afgiftenummer voor dit verzoek, mag alleen als er geen periode is gedefinieerd
KlantAfgiftenummerReeksType afgiftenummers = new KlantAfgiftenummerReeksType();
String nr = ClobElement.nullSafeGet(this.config.getConfig().get("klantafgiftenummer_vanaf"));
if (StringUtils.isNotBlank(nr)) {
BigInteger afgifteNrVanaf = new BigInteger(nr);
afgiftenummers.setKlantAfgiftenummerVanaf(afgifteNrVanaf);

nr = ClobElement.nullSafeGet(this.config.getConfig().get("klantafgiftenummer_totenmet"));
if (StringUtils.isNotBlank(nr)) {
BigInteger afgifteNrTM = new BigInteger(nr);
afgiftenummers.setKlantAfgiftenummerTotmet(afgifteNrTM);
}
criteria.setKlantAfgiftenummerReeks(afgiftenummers);
}
}

GregorianCalendar currentMoment = null;
boolean parseblePeriod = false;
Expand All @@ -207,6 +220,7 @@ public void execute(ProgressUpdateListener listener) {

List<AfgifteType> afgiftes = new ArrayList<>();
BestandenlijstOpvragenResponse response = null;
int hoogsteKlantAfgifteNummer = -1;

Gds2AfgifteServiceV20170401 gds2 = initGDS2();
l.updateStatus("Uitvoeren SOAP request naar Kadaster...");
Expand Down Expand Up @@ -297,6 +311,7 @@ public void execute(ProgressUpdateListener listener) {

verzoek.setAfgifteSelectieCriteria(criteria);
response = retryBestandenLijstOpvragen(gds2, request, BESTANDENLIJST_ATTEMPTS, BESTANDENLIJST_RETRY_WAIT);
hoogsteKlantAfgifteNummer = response.getAntwoord().getKlantAfgiftenummerMax();

int aantalInAntwoord = response.getAntwoord().getAfgifteAantalInLijst();
l.addLog("Aantal in antwoord: " + aantalInAntwoord);
Expand Down Expand Up @@ -325,7 +340,9 @@ public void execute(ProgressUpdateListener listener) {
}
}

afgiftes.addAll(response.getAntwoord().getBestandenLijst().getAfgifte());
if (aantalInAntwoord > 0) {
afgiftes.addAll(response.getAntwoord().getBestandenLijst().getAfgifte());
}

/*
* Indicatie nog niet gerapporteerd: Met deze indicatie wordt
Expand All @@ -345,6 +362,7 @@ public void execute(ProgressUpdateListener listener) {
l.updateStatus("Uitvoeren SOAP request naar Kadaster voor meer afgiftes..." + moreCount++);
criteria.setNogNietGerapporteerd(true);
response = retryBestandenLijstOpvragen(gds2, request, BESTANDENLIJST_ATTEMPTS, BESTANDENLIJST_RETRY_WAIT);
hoogsteKlantAfgifteNummer = response.getAntwoord().getKlantAfgiftenummerMax();

List<AfgifteType> afgifteLijst = response.getAntwoord().getBestandenLijst().getAfgifte();
for (AfgifteType t : afgiftes) {
Expand All @@ -368,13 +386,21 @@ public void execute(ProgressUpdateListener listener) {

l.total(afgiftes.size());
l.addLog("Totaal aantal op te halen berichten: " + afgiftes.size());

if (criteria.getBestandKenmerken().getContractnummer() == null) {
// bag
verwerkAfgiftes(afgiftes, getAnoniemBaseURL(response.getAntwoord()));
} else {
// brk
verwerkAfgiftes(afgiftes, getCertificaatBaseURL(response.getAntwoord()));
l.addLog("Hoogste klant afgifte nummer: " + hoogsteKlantAfgifteNummer);

this.config.getConfig().put("hoogste_afgiftenummer", new ClobElement("" + hoogsteKlantAfgifteNummer));

final String soort = this.config.getConfig().getOrDefault("gds2_br_soort", new ClobElement("brk")).getValue();
switch (soort) {
case "brk":
verwerkAfgiftes(afgiftes, getCertificaatBaseURL(response.getAntwoord()));
break;
case "bag":
// bag heeft geen contractnummer
verwerkAfgiftes(afgiftes, getAnoniemBaseURL(response.getAntwoord()));
break;
default:
throw new BrmoException("Onbekende basisregistratie soort: " + soort);
}

} catch (Exception e) {
Expand Down Expand Up @@ -474,20 +500,31 @@ private void laadBagAfgifte(AfgifteType a, String url) throws Exception {
// alleen mutaties oppakken
ZipInputStream innerzip = new ZipInputStream(zip);
ZipEntry innerentry = innerzip.getNextEntry();
String localLpName = "";
while (innerentry != null && innerentry.getName().toLowerCase().endsWith(".xml")) {
msg = "Verwerken " + entry.getName() + "/" + innerentry.getName() + " uit " + getLaadprocesBestandsnaam(a);
l.updateStatus(msg);
l.addLog(msg);
log.debug(msg);
try {
String localLpName = getLaadprocesBestandsnaam(a) + "/" + entry.getName() + "/" + innerentry.getName();
localLpName = getLaadprocesBestandsnaam(a) + "/" + entry.getName() + "/" + innerentry.getName();
brmo.loadFromStream(
BrmoFramework.BR_BAG,
new CloseShieldInputStream(innerzip),
localLpName,
config.getId()
);

} catch (BrmoDuplicaatLaadprocesException d) {
msg = "Duplicaat laadproces. " + d.getLocalizedMessage();
l.updateStatus(msg);
l.addLog(msg);
log.warn(msg);
} catch (BrmoLeegBestandException e) {
msg = "Leeg bestand voor laadproces. " + e.getLocalizedMessage();
l.updateStatus(msg);
l.addLog(msg);
log.info(msg);
} finally {
brmo.updateLaadProcesMeta(
brmo.getLaadProcesIdByFileName(localLpName),
a.getKlantAfgiftenummer(),
Expand All @@ -499,17 +536,6 @@ private void laadBagAfgifte(AfgifteType a, String url) throws Exception {
a.getBestand().getBestandsreferentie(),
a.getBeschikbaarTot().toGregorianCalendar().getTime()
);

} catch (BrmoDuplicaatLaadprocesException d) {
msg = "Duplicaat laadproces. " + d.getLocalizedMessage();
l.updateStatus(msg);
l.addLog(msg);
log.warn(msg);
} catch (BrmoLeegBestandException e) {
msg = "Leeg bestand voor laadproces. " + e.getLocalizedMessage();
l.updateStatus(msg);
l.addLog(msg);
log.info(msg);
}
innerentry = innerzip.getNextEntry();
}
Expand Down Expand Up @@ -775,8 +801,11 @@ private void verwerkAfgiftes(List<AfgifteType> afgiftes, BaseURLType baseUrl) th
String.format("Het GDS2 ophalen proces, gestart op %tc, is afgerond op %tc. " + LOG_NEWLINE
+ "Aantal afgiftes die al waren verwerkt: %d" + LOG_NEWLINE
+ "Aantal afgiftes geladen: %d" + LOG_NEWLINE
+ "Aantal afgiftes doorgestuurd: %d",
this.config.getLastrun(), Calendar.getInstance(), filterAlVerwerkt, aantalGeladen, aantalDoorgestuurd));
+ "Aantal afgiftes doorgestuurd: %d" + LOG_NEWLINE
+ "Hoogste klantafgiftenummer: %s",
this.config.getLastrun(), Calendar.getInstance(), filterAlVerwerkt, aantalGeladen, aantalDoorgestuurd,
ClobElement.nullSafeGet(this.config.getConfig().get("hoogste_afgiftenummer")))
);

this.config.setStatus(AutomatischProces.ProcessingStatus.WAITING);
this.config.setLastrun(new Date());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ private JSONObject laadProces2Json(LaadProces lp) {
JSONObject json = new JSONObject();

json.put("id", lp.getId());
json.put("ka_nr", lp.getKlantafgiftenummer());
json.put("bestand_naam", lp.getBestandNaam());
json.put("bestand_datum", lp.getBestandDatum());
json.put("soort", lp.getSoort());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<%@include file="/WEB-INF/taglibs.jsp" %>
<table>
<tr><td>Label:</td><td><stripes:text name="config['label']"/></td></tr>
<tr><td>Label:</td><td><stripes:text name="config['label']" size="80"/></td></tr>
<tr><td>Afleveringsendpoint:</td><td><stripes:text name="config['delivery_endpoint']" size="80"/></td></tr>
<%--tr><td>GDS2 endpoint (leeg is standaard):</td><td><stripes:text name="config['gds2_endpoint']" size="80"/></td></tr--%>
<%--tr><td>GDS2 HTTP BASIC username:</td><td><stripes:text name="config['gds2_username']"/> (optioneel)</td></tr--%>
Expand All @@ -22,6 +22,8 @@
<tr><td>Contractnummer:</td><td><stripes:text name="config['gds2_contractnummer']" size="10"/></td></tr>
<!-- 2516 dagelijks bag extract, 2508? maandelijks bag extract -->
<tr><td>Artikelnummer:</td><td><stripes:text name="config['gds2_artikelnummer']" size="10"/></td></tr>
<%-- hidden field onderaan de pagina zodat deze niet wordt weggegooid bij opslaan --%>
<tr><td>Hoogste klantafgiftenummer:</td><td><c:out value="${actionBean.config['hoogste_afgiftenummer']}"/></td></tr>
<tr>
<td>Bericht soort:</td>
<td><stripes:select name="config['gds2_br_soort']" value="brk">
Expand All @@ -48,4 +50,11 @@
<tr>
<td>datum tot (dd-MM-yyyy formaat of "nu")</td><td><stripes:text name="config['totdatum']"/></td>
</tr>
<tr>
<td>klantafgiftenummer vanaf</td><td><stripes:text name="config['klantafgiftenummer_vanaf']"/></td>
</tr>
<tr>
<td>klantafgiftenummer tot-en-met</td><td><stripes:text name="config['klantafgiftenummer_totenmet']"/></td>
</tr>
</table>
<stripes:hidden name="config['hoogste_afgiftenummer']" />
12 changes: 8 additions & 4 deletions brmo-service/src/main/webapp/scripts/laadprocessen.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,16 @@ Ext.define('B3P.brmo.LaadProces', {
var gridSelection = Ext.create('B3P.common.GridSelection', {
fields: [
{name: 'id', type: 'int'},
{name: 'ka_nr', type: 'int'},
{name: 'bestand_naam', type: 'string'},
{name: 'bestand_datum', type: 'string'},
{name: 'soort', type: 'string'},
{name: 'status', type: 'string'}
],
columns: [
{text: "id", dataIndex: 'id'},
{text: "bestand_naam", dataIndex: 'bestand_naam', flex: 1},
{text: "id", dataIndex: 'id', tooltip: "database rij nummer"},
{text: "klant afgifte nr", dataIndex: 'ka_nr', tooltip: "klant afgifte nummer"},
{text: "bestand_naam", dataIndex: 'bestand_naam', flex: 2},
{text: "bestand_datum", dataIndex: 'bestand_datum'},
{text: "soort", dataIndex: 'soort', filter: 'string'},
{text: "status", dataIndex: 'status', filter: 'string',
Expand All @@ -43,10 +45,12 @@ Ext.define('B3P.brmo.LaadProces', {
{
text: "log",
dataIndex: 'id',
flex: 1,
flex: -1,
renderer: function (value) {
return Ext.String.format('<a href="#" onclick="return openLog({0});" title="Open opmerkingen"><img src="images/page_text.gif"/></a>', value);
}
},
tooltip: "opmerkingen",
sortable: false
}
],
gridUrl: config.gridurl,
Expand Down

0 comments on commit 1ddbc8e

Please sign in to comment.