annotate src/main/java/de/intevation/lada/importer/laf/LafObjectMapper.java @ 1220:faa6a2117d1e

Do not try to create a new Ort if coordinate transformation failed.
author Tom Gottfried <tom@intevation.de>
date Fri, 09 Dec 2016 12:26:10 +0100
parents 6e393b614edf
children 59b0e54426d4
rev   line source
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.importer.laf;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
2
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
3 import java.sql.Timestamp;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
4 import java.text.DateFormat;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
5 import java.text.ParseException;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
6 import java.text.SimpleDateFormat;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
7 import java.util.ArrayList;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
8 import java.util.Date;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
9 import java.util.HashMap;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
10 import java.util.List;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
11 import java.util.Map;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
12 import java.util.Map.Entry;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
13
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
14 import javax.inject.Inject;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
15 import javax.management.modelmbean.InvalidTargetObjectTypeException;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
16
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
17 import org.apache.commons.lang.StringUtils;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
18 import org.apache.log4j.Logger;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
19
1195
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
20 import de.intevation.lada.factory.OrtFactory;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
21 import de.intevation.lada.factory.ProbeFactory;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
22 import de.intevation.lada.importer.Identified;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
23 import de.intevation.lada.importer.Identifier;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
24 import de.intevation.lada.importer.IdentifierConfig;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
25 import de.intevation.lada.importer.ObjectMerger;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
26 import de.intevation.lada.importer.ReportItem;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
27 import de.intevation.lada.model.land.KommentarM;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
28 import de.intevation.lada.model.land.KommentarP;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
29 import de.intevation.lada.model.land.Messung;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
30 import de.intevation.lada.model.land.Messwert;
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
31 import de.intevation.lada.model.land.Ortszuordnung;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
32 import de.intevation.lada.model.land.Probe;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
33 import de.intevation.lada.model.land.StatusProtokoll;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
34 import de.intevation.lada.model.land.ZusatzWert;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
35 import de.intevation.lada.model.stammdaten.Datenbasis;
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
36 import de.intevation.lada.model.stammdaten.KoordinatenArt;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
37 import de.intevation.lada.model.stammdaten.MessEinheit;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
38 import de.intevation.lada.model.stammdaten.MessStelle;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
39 import de.intevation.lada.model.stammdaten.Messgroesse;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
40 import de.intevation.lada.model.stammdaten.MessprogrammKategorie;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
41 import de.intevation.lada.model.stammdaten.MessprogrammTransfer;
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
42 import de.intevation.lada.model.stammdaten.Ort;
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
43 import de.intevation.lada.model.stammdaten.Ortszusatz;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
44 import de.intevation.lada.model.stammdaten.ProbenZusatz;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
45 import de.intevation.lada.model.stammdaten.Probenart;
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
46 import de.intevation.lada.model.stammdaten.Staat;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
47 import de.intevation.lada.model.stammdaten.StatusKombi;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
48 import de.intevation.lada.model.stammdaten.Umwelt;
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
49 import de.intevation.lada.model.stammdaten.Verwaltungseinheit;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
50 import de.intevation.lada.util.annotation.AuthorizationConfig;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
51 import de.intevation.lada.util.annotation.RepositoryConfig;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
52 import de.intevation.lada.util.auth.Authorization;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
53 import de.intevation.lada.util.auth.AuthorizationType;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
54 import de.intevation.lada.util.auth.UserInfo;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
55 import de.intevation.lada.util.data.QueryBuilder;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
56 import de.intevation.lada.util.data.Repository;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
57 import de.intevation.lada.util.data.RepositoryType;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
58 import de.intevation.lada.util.rest.Response;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
59 import de.intevation.lada.validation.Validator;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
60 import de.intevation.lada.validation.Violation;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
61 import de.intevation.lada.validation.annotation.ValidationConfig;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
62
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
63 public class LafObjectMapper {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
64
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
65 @Inject
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
66 private Logger logger;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
67
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
68 @Inject
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
69 @AuthorizationConfig(type=AuthorizationType.HEADER)
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
70 private Authorization authorizer;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
71
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
72 @Inject
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
73 @ValidationConfig(type="Probe")
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
74 private Validator probeValidator;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
75
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
76 @Inject
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
77 @ValidationConfig(type="Messung")
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
78 private Validator messungValidator;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
79
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
80 @Inject
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
81 @IdentifierConfig(type="Probe")
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
82 private Identifier probeIdentifier;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
83
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
84 @Inject
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
85 @IdentifierConfig(type="Messung")
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
86 private Identifier messungIdentifier;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
87
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
88 @Inject
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
89 private ObjectMerger merger;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
90
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
91 @Inject
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
92 @RepositoryConfig(type=RepositoryType.RW)
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
93 private Repository repository;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
94
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
95 @Inject
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
96 private ProbeFactory factory;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
97
1195
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
98 @Inject OrtFactory ortFactory;
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
99
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
100 private Map<String, List<ReportItem>> errors;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
101 private Map<String, List<ReportItem>> warnings;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
102 private List<ReportItem> currentErrors;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
103 private List<ReportItem> currentWarnings;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
104
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
105
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
106 private UserInfo userInfo;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
107
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
108 public void mapObjects(LafRawData data) {
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
109 errors = new HashMap<String, List<ReportItem>>();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
110 warnings = new HashMap<String, List<ReportItem>>();
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
111 for (int i = 0; i < data.getProben().size(); i++) {
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
112 create(data.getProben().get(i));
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
113 }
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
114 }
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
115
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
116 private void create(LafRawData.Probe object) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
117 currentWarnings = new ArrayList<ReportItem>();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
118 currentErrors = new ArrayList<ReportItem>();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
119 Probe probe = new Probe();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
120
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
121 // Fill the object with data
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
122 for (Entry<String, String> attribute : object.getAttributes().entrySet()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
123 addProbeAttribute(attribute, probe);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
124 }
1154
7c3d022a899f Set labor_mst_id to mst_id if missing in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1151
diff changeset
125 if (probe.getLaborMstId() == null) {
7c3d022a899f Set labor_mst_id to mst_id if missing in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1151
diff changeset
126 probe.setLaborMstId(probe.getMstId());
7c3d022a899f Set labor_mst_id to mst_id if missing in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1151
diff changeset
127 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
128 // Use the deskriptor string to find the medium
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
129 probe = factory.findMediaDesk(probe);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
130 //logProbe(probe);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
131
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
132 // Check if the user is authorized to create the probe
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
133 boolean isAuthorized = authorizer.isAuthorized(userInfo, probe, Probe.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
134 if (!isAuthorized) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
135 ReportItem err = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
136 err.setCode(699);
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
137 err.setKey(userInfo.getName());
1131
9964210da156 Tell the user its a Messstelle.
Tom Gottfried <tom@intevation.de>
parents: 1127
diff changeset
138 err.setValue("Messstelle " + probe.getMstId());
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
139 currentErrors.add(err);
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
140 errors.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
141 new ArrayList<ReportItem>(currentErrors));
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
142
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
143 if (currentWarnings.size() > 0) {
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
144 warnings.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
145 new ArrayList<ReportItem>(currentWarnings));
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
146 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
147 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
148 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
149
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
150 // Check for errors and warnings
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
151
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
152 // Compare the probe with objects in the db
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
153 Probe newProbe = null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
154 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
155 Identified i = probeIdentifier.find(probe);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
156 Probe old = (Probe)probeIdentifier.getExisting();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
157 // Matching probe was found in the db. Update it!
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
158 if(i == Identified.UPDATE) {
1178
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
159 merger.merge(old, probe);
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
160 newProbe = old;
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
161 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
162 // Probe was found but some data does not match
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
163 else if(i == Identified.REJECT){
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
164 ReportItem err = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
165 err.setCode(631);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
166 err.setKey("duplicate");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
167 err.setValue("");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
168 currentErrors.add(err);
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
169 if (currentErrors.size() > 0) {
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
170 errors.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
171 new ArrayList<ReportItem>(currentErrors));
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
172 }
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
173 if (currentWarnings.size() > 0) {
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
174 warnings.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
175 new ArrayList<ReportItem>(currentWarnings));
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
176 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
177 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
178 // It is a brand new probe!
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
179 else if(i == Identified.NEW){
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
180 Violation violation = probeValidator.validate(probe);
1178
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
181 if (!violation.hasErrors()) {
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
182 Response created = repository.create(probe, "land");
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
183 newProbe = ((Probe)created.getData());
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
184 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
185 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
186 } catch (InvalidTargetObjectTypeException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
187 ReportItem err = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
188 err.setCode(604);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
189 err.setKey("not known");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
190 err.setValue("No valid Probe Object");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
191 currentErrors.add(err);
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
192 if (currentErrors.size() > 0) {
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
193 errors.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
194 new ArrayList<ReportItem>(currentErrors));
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
195 }
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
196 if (currentWarnings.size() > 0) {
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
197 warnings.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
198 new ArrayList<ReportItem>(currentWarnings));
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
199 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
200 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
201 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
202
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
203 if (newProbe != null) {
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
204 // Create kommentar objects
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
205 List<KommentarP> kommentare = new ArrayList<KommentarP>();
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
206 for (int i = 0; i < object.getKommentare().size(); i++) {
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
207 KommentarP tmp = createProbeKommentar(object.getKommentare().get(i), newProbe.getId());
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
208 if (tmp != null) {
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
209 kommentare.add(tmp);
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
210 }
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
211 }
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
212 // Persist kommentar objects
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
213 merger.mergeKommentare(newProbe, kommentare);
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
214
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
215 // Create zusatzwert objects
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
216 List<ZusatzWert> zusatzwerte = new ArrayList<ZusatzWert>();
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
217 for (int i = 0; i < object.getZusatzwerte().size(); i++) {
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
218 ZusatzWert tmp = createZusatzwert(object.getZusatzwerte().get(i), newProbe.getId());
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
219 if (tmp != null) {
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
220 zusatzwerte.add(tmp);
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
221 }
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
222 }
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
223 // Persist zusatzwert objects
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
224 merger.mergeZusatzwerte(newProbe, zusatzwerte);
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
225
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
226 // Merge entnahmeOrt
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
227 createEntnahmeOrt(object.getEntnahmeOrt(), newProbe);
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
228
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
229 // Create ursprungsOrte
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
230 List<Ortszuordnung> uOrte = new ArrayList<Ortszuordnung>();
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
231 for (int i = 0; i < object.getUrsprungsOrte().size(); i++) {
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
232 Ortszuordnung tmp = createUrsprungsOrt(object.getUrsprungsOrte().get(i), newProbe);
1155
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
233 if (tmp != null) {
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
234 uOrte.add(tmp);
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
235 }
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
236 }
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
237 // Persist ursprungsOrte
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
238 merger.mergeUrsprungsOrte(newProbe.getId(), uOrte);
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
239
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
240 // Create messung objects
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
241 for (int i = 0; i < object.getMessungen().size(); i++) {
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
242 create(object.getMessungen().get(i), newProbe.getId(), newProbe.getMstId());
fec7ba34cd1b Check for errors in probe objects and cancel import writing out the errors.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1154
diff changeset
243 }
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
244 }
1151
7a9bc3fe0efd Moved probe validation to have all subobject available during validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1146
diff changeset
245 Violation violation = probeValidator.validate(newProbe);
1178
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
246 for (Entry<String, List<Integer>> err : violation.getErrors().entrySet()) {
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
247 for (Integer code : err.getValue()) {
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
248 currentErrors.add(new ReportItem("validation", err.getKey(), code));
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
249 }
047a27138af6 Fixed validation workflow in laf importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1177
diff changeset
250 }
1151
7a9bc3fe0efd Moved probe validation to have all subobject available during validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1146
diff changeset
251 for (Entry<String, List<Integer>> warn : violation.getWarnings().entrySet()) {
7a9bc3fe0efd Moved probe validation to have all subobject available during validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1146
diff changeset
252 for (Integer code : warn.getValue()) {
7a9bc3fe0efd Moved probe validation to have all subobject available during validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1146
diff changeset
253 currentWarnings.add(new ReportItem("validation", warn.getKey(), code));
7a9bc3fe0efd Moved probe validation to have all subobject available during validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1146
diff changeset
254 }
7a9bc3fe0efd Moved probe validation to have all subobject available during validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1146
diff changeset
255 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
256 if (currentErrors.size() > 0) {
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
257 errors.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
258 new ArrayList<ReportItem>(currentErrors));
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
259 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
260 if (currentWarnings.size() > 0) {
1134
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
261 warnings.put(object.getIdentifier(),
c1713b7fbfa0 Use any identifier because idAlt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1131
diff changeset
262 new ArrayList<ReportItem>(currentWarnings));
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
263 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
264 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
265
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
266 private void create(LafRawData.Messung object, int probeId, String mstId) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
267 Messung messung = new Messung();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
268 messung.setProbeId(probeId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
269
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
270 // Fill the new messung with data
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
271 for (Entry<String, String> attribute : object.getAttributes().entrySet()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
272 addMessungAttribute(attribute, messung);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
273 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
274
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
275 // Check if the user is authorized to create the object
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
276 if (!authorizer.isAuthorizedOnNew(userInfo, messung, Messung.class)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
277 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
278 warn.setCode(699);
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
279 warn.setKey(userInfo.getName());
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
280 warn.setValue("Messung: " + messung.getNebenprobenNr());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
281 currentErrors.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
282 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
283 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
284
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
285 // Compare with messung objects in the db
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
286 Messung newMessung = null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
287 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
288 Identified i = messungIdentifier.find(messung);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
289 Messung old = (Messung)messungIdentifier.getExisting();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
290 if (i == Identified.UPDATE) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
291 merger.mergeMessung(old, messung);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
292 newMessung = old;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
293 // We do not import the status. Doing this can cause an
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
294 // inconsistent status protocol.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
295 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
296 else if (i == Identified.REJECT) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
297 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
298 warn.setCode(631);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
299 warn.setKey("duplicate");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
300 warn.setValue("Messung: " + messung.getNebenprobenNr());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
301 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
302 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
303 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
304 else if (i == Identified.NEW) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
305 // Create a new messung and the first status
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
306 Response created = repository.create(messung, "land");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
307 newMessung = ((Messung)created.getData());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
308 created = repository.getById(Messung.class, newMessung.getId(), "land");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
309 newMessung = ((Messung)created.getData());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
310 if (object.getAttributes().containsKey("BEARBEITUNGSSTATUS")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
311 createStatusProtokoll(object.getAttributes().get("BEARBEITUNGSSTATUS"), newMessung, mstId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
312 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
313 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
314 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
315 catch(InvalidTargetObjectTypeException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
316 ReportItem err = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
317 err.setCode(604);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
318 err.setKey("not valid");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
319 err.setValue("Messung: " + messung.getNebenprobenNr());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
320 currentErrors.add(err);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
321 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
322 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
323 List<KommentarM> kommentare = new ArrayList<KommentarM>();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
324 for (int i = 0; i < object.getKommentare().size(); i++) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
325 KommentarM tmp = createMessungKommentar(object.getKommentare().get(i), newMessung.getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
326 if (tmp != null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
327 kommentare.add(tmp);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
328 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
329 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
330 merger.mergeMessungKommentare(newMessung, kommentare);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
331 List<Messwert> messwerte = new ArrayList<Messwert>();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
332 for (int i = 0; i < object.getMesswerte().size(); i++) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
333 Messwert tmp = createMesswert(object.getMesswerte().get(i), newMessung.getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
334 if (tmp != null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
335 messwerte.add(tmp);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
336 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
337 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
338 merger.mergeMesswerte(newMessung, messwerte);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
339 // Check for warnings and errors
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
340 Violation violation = messungValidator.validate(newMessung);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
341 for (Entry<String, List<Integer>> err : violation.getErrors().entrySet()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
342 for (Integer code : err.getValue()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
343 currentErrors.add(new ReportItem("validation", err.getKey(), code));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
344 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
345 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
346 for (Entry<String, List<Integer>> warn : violation.getWarnings().entrySet()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
347 for (Integer code : warn.getValue()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
348 currentWarnings.add(new ReportItem("validation", warn.getKey(), code));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
349 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
350 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
351 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
352
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
353 private KommentarP createProbeKommentar(Map<String, String> attributes, int probeId) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
354 KommentarP kommentar = new KommentarP();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
355 kommentar.setProbeId(probeId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
356 kommentar.setMstId(attributes.get("MST_ID"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
357 kommentar.setText(attributes.get("TEXT"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
358 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
359 String date = attributes.get("DATE") + " " + attributes.get("TIME");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
360 Date d;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
361 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
362 d = format.parse(date);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
363 kommentar.setDatum(new Timestamp(d.getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
364 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
365 catch (ParseException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
366 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
367 warn.setCode(674);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
368 warn.setKey("not valid");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
369 warn.setValue("Date: " + date);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
370 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
371 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
372 if (!userInfo.getMessstellen().contains(kommentar.getMstId())) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
373 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
374 warn.setCode(699);
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
375 warn.setKey(userInfo.getName());
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
376 warn.setValue("Kommentar: " + kommentar.getMstId());
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
377 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
378 return null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
379 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
380 return kommentar;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
381 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
382
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
383 private ZusatzWert createZusatzwert(Map<String, String> attributes, int probeId) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
384 ZusatzWert zusatzwert = new ZusatzWert();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
385 zusatzwert.setProbeId(probeId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
386 zusatzwert.setMessfehler(Float.valueOf(attributes.get("MESSFEHLER")));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
387 zusatzwert.setMesswertPzs(Double.valueOf(attributes.get("MESSWERT_PZS")));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
388 QueryBuilder<ProbenZusatz> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
389 new QueryBuilder<ProbenZusatz>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
390 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
391 ProbenZusatz.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
392 builder.and("zusatzwert", attributes.get("PZS"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
393 List<ProbenZusatz> zusatz =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
394 (List<ProbenZusatz>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
395 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
396 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
397
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
398 if (zusatz == null || zusatz.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
399 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
400 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
401 warn.setKey("zusatzwert");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
402 warn.setValue(attributes.get("PZS"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
403 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
404 return null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
405 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
406 zusatzwert.setPzsId(zusatz.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
407 return zusatzwert;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
408 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
409
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
410 private Messwert createMesswert(Map<String, String> attributes, int messungsId) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
411 Messwert messwert = new Messwert();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
412 messwert.setMessungsId(messungsId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
413 if (attributes.containsKey("MESSGROESSE_ID")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
414 messwert.setMessgroesseId(Integer.valueOf(attributes.get("MESSGROESSE_ID")));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
415 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
416 else if (attributes.containsKey("MESSGROESSE")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
417 QueryBuilder<Messgroesse> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
418 new QueryBuilder<Messgroesse>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
419 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
420 Messgroesse.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
421 builder.and("messgroesse", attributes.get("MESSGROESSE"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
422 List<Messgroesse> groesse =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
423 (List<Messgroesse>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
424 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
425 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
426
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
427 if (groesse == null || groesse.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
428 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
429 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
430 warn.setKey("messwert");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
431 warn.setValue(attributes.get("MESSGROESSE"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
432 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
433 return null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
434 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
435 messwert.setMessgroesseId(groesse.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
436 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
437 if (attributes.containsKey("MEH_ID")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
438 messwert.setMehId(Integer.valueOf(attributes.get("MEH_ID")));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
439 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
440 else if (attributes.containsKey("MEH")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
441 QueryBuilder<MessEinheit> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
442 new QueryBuilder<MessEinheit>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
443 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
444 MessEinheit.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
445 builder.and("einheit", attributes.get("MEH"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
446 List<MessEinheit> einheit =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
447 (List<MessEinheit>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
448 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
449 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
450
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
451 if (einheit == null || einheit.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
452 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
453 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
454 warn.setKey("messwert");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
455 warn.setValue(attributes.get("MEH"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
456 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
457 return null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
458 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
459 messwert.setMehId(einheit.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
460 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
461
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
462 String wert = attributes.get("MESSWERT");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
463 if (wert.startsWith("<")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
464 wert = wert.substring(1);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
465 messwert.setMesswertNwg("<");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
466 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
467 messwert.setMesswert(Double.valueOf(wert));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
468 messwert.setMessfehler(Double.valueOf(attributes.get("MESSFEHLER")).floatValue());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
469 if (attributes.containsKey("NWG")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
470 messwert.setNwgZuMesswert(Double.valueOf(attributes.get("NWG")));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
471 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
472 if (attributes.containsKey("GRENZWERT")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
473 messwert.setGrenzwertueberschreitung(attributes.get("GRENZWERT").toUpperCase() == "J" ? true : false);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
474 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
475 return messwert;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
476 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
477
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
478 private KommentarM createMessungKommentar(Map<String, String> attributes, int messungsId) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
479 KommentarM kommentar = new KommentarM();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
480 kommentar.setMessungsId(messungsId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
481 kommentar.setMstId(attributes.get("MST_ID"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
482 kommentar.setText(attributes.get("TEXT"));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
483 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
484 String date = attributes.get("DATE") + " " + attributes.get("TIME");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
485 Date d;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
486 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
487 d = format.parse(date);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
488 kommentar.setDatum(new Timestamp(d.getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
489 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
490 catch (ParseException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
491 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
492 warn.setCode(674);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
493 warn.setKey("kommentar");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
494 warn.setValue("Date: " + date);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
495 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
496 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
497 if (!userInfo.getMessstellen().contains(kommentar.getMstId())) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
498 return null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
499 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
500 return kommentar;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
501 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
502
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
503 private void createStatusProtokoll(String status, Messung messung, String mstId) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
504 int mst = Integer.valueOf(status.substring(0, 1));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
505 int land = Integer.valueOf(status.substring(1, 2));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
506 int lst = Integer.valueOf(status.substring(2, 3));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
507
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
508 boolean hasMst = false;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
509 boolean hasLand = false;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
510
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
511 StatusProtokoll last = null;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
512 if (userInfo.getFunktionenForMst(mstId).contains(1)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
513 QueryBuilder<StatusKombi> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
514 new QueryBuilder<StatusKombi>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
515 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
516 StatusKombi.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
517 builder.and("statusWert", mst);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
518 builder.and("statusStufe", 1);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
519 List<StatusKombi> kombi =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
520 (List<StatusKombi>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
521 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
522 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
523 if (kombi != null && !kombi.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
524 StatusProtokoll statusMst = new StatusProtokoll();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
525 statusMst.setDatum(new Timestamp(new Date().getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
526 statusMst.setMessungsId(messung.getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
527 statusMst.setMstId(mstId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
528 statusMst.setStatusKombi(kombi.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
529 Response r = repository.create(statusMst, "land");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
530 last = (StatusProtokoll)r.getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
531 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
532 hasMst = true;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
533 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
534 MessStelle messStelle = repository.getByIdPlain(MessStelle.class, mstId, "stamm");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
535 if (userInfo.getNetzbetreiber().contains(messStelle.getNetzbetreiberId()) &&
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
536 userInfo.getFunktionenForNetzbetreiber(messStelle.getNetzbetreiberId()).contains(2) &&
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
537 hasMst) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
538 // Set status for stufe land.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
539 QueryBuilder<StatusKombi> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
540 new QueryBuilder<StatusKombi>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
541 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
542 StatusKombi.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
543 builder.and("statusWert", land);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
544 builder.and("statusStufe", 2);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
545 List<StatusKombi> kombi =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
546 (List<StatusKombi>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
547 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
548 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
549 if (kombi != null && !kombi.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
550 StatusProtokoll statusLand = new StatusProtokoll();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
551 statusLand.setDatum(new Timestamp(new Date().getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
552 statusLand.setMessungsId(messung.getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
553 statusLand.setMstId(mstId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
554 statusLand.setStatusKombi(kombi.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
555 Response r = repository.create(statusLand, "land");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
556 last = (StatusProtokoll)r.getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
557 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
558 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
559 if (userInfo.getFunktionen().contains(3) &&
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
560 hasLand) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
561 // Set status for stufe lst.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
562 QueryBuilder<StatusKombi> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
563 new QueryBuilder<StatusKombi>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
564 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
565 StatusKombi.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
566 builder.and("statusWert", lst);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
567 builder.and("statusStufe", 3);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
568 List<StatusKombi> kombi =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
569 (List<StatusKombi>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
570 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
571 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
572 if (kombi != null && !kombi.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
573 StatusProtokoll statusLst = new StatusProtokoll();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
574 statusLst.setDatum(new Timestamp(new Date().getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
575 statusLst.setMessungsId(messung.getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
576 statusLst.setMstId(mstId);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
577 statusLst.setStatusKombi(kombi.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
578 Response r = repository.create(statusLst, "land");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
579 last = (StatusProtokoll)r.getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
580 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
581 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
582 if (last != null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
583 messung.setStatus(last.getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
584 repository.update(messung, "land");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
585 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
586 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
587
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
588 private Ortszuordnung createUrsprungsOrt(
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
589 Map<String, String> ursprungsOrt,
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
590 Probe probe
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
591 ) {
1180
87b55cdb1cad Check for data in ort attributes in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1178
diff changeset
592 if (ursprungsOrt.isEmpty()) {
87b55cdb1cad Check for data in ort attributes in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1178
diff changeset
593 return null;
87b55cdb1cad Check for data in ort attributes in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1178
diff changeset
594 }
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
595 Ortszuordnung ort = new Ortszuordnung();
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
596 ort.setOrtszuordnungTyp("U");
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
597 ort.setProbeId(probe.getId());
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
598
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
599 Ort o = findOrCreateOrt(ursprungsOrt, "U_", probe);
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
600 if (o == null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
601 return null;
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
602 }
1215
6e393b614edf The referencing column does not need to be wider than what it refereces.
Tom Gottfried <tom@intevation.de>
parents: 1195
diff changeset
603 ort.setOrtId(o.getId());
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
604 if (ursprungsOrt.containsKey("U_ORTS_ZUSATZTEXT")) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
605 ort.setOrtszusatztext(ursprungsOrt.get("U_ORTS_ZUSATZTEXT"));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
606 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
607 return ort;
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
608 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
609
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
610 private void createEntnahmeOrt(
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
611 Map<String, String> entnahmeOrt,
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
612 Probe probe
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
613 ) {
1180
87b55cdb1cad Check for data in ort attributes in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1178
diff changeset
614 if (entnahmeOrt.isEmpty()) {
87b55cdb1cad Check for data in ort attributes in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1178
diff changeset
615 return;
87b55cdb1cad Check for data in ort attributes in laf import.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1178
diff changeset
616 }
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
617 Ortszuordnung ort = new Ortszuordnung();
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
618 ort.setOrtszuordnungTyp("E");
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
619 ort.setProbeId(probe.getId());
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
620
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
621 Ort o = findOrCreateOrt(entnahmeOrt, "P_", probe);
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
622 if (o == null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
623 return;
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
624 }
1215
6e393b614edf The referencing column does not need to be wider than what it refereces.
Tom Gottfried <tom@intevation.de>
parents: 1195
diff changeset
625 ort.setOrtId(o.getId());
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
626 if (entnahmeOrt.containsKey("P_ORTS_ZUSATZTEXT")) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
627 ort.setOrtszusatztext(entnahmeOrt.get("P_ORTS_ZUSATZTEXT"));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
628 }
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
629 merger.mergeEntnahmeOrt(probe.getId(), ort);
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
630 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
631
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
632 private Ort findOrCreateOrt(Map<String, String> attributes, String type, Probe probe) {
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
633 // If laf contains coordinates, find a ort with matching coordinates or
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
634 // create one.
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
635 if ((attributes.get(type + "KOORDINATEN_ART") != null ||
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
636 attributes.get(type + "KOORDINATEN_ART_S") != null) &&
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
637 attributes.get(type + "KOORDINATEN_X") != null &&
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
638 attributes.get(type + "KOORDINATEN_Y") != null
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
639 ) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
640 QueryBuilder<Ort> builder =
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
641 new QueryBuilder<Ort>(
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
642 repository.entityManager("stamm"),
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
643 Ort.class);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
644 if (attributes.get(type + "KOORDINATEN_ART_S") != null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
645 builder.and("kdaId", Integer.valueOf(attributes.get(type + "KOORDINATEN_ART_S")));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
646 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
647 else {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
648 QueryBuilder<KoordinatenArt> kdaBuilder =
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
649 new QueryBuilder<KoordinatenArt>(
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
650 repository.entityManager("stamm"),
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
651 KoordinatenArt.class);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
652 kdaBuilder.and("koordinatenart", attributes.get(type + "KOORDINATEN_ART"));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
653 List<KoordinatenArt> arten = repository.filterPlain(kdaBuilder.getQuery(), "stamm");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
654 if (arten == null || arten.isEmpty()) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
655 ReportItem err = new ReportItem();
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
656 err.setCode(632);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
657 err.setKey("KoordinatenArt");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
658 err.setValue("Not found");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
659 currentErrors.add(err);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
660 return null;
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
661 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
662 builder.and("kdaId", arten.get(0).getId());
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
663 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
664 builder.and("koordXExtern", attributes.get(type + "KOORDINATEN_X"));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
665 builder.and("koordYExtern", attributes.get(type + "KOORDINATEN_Y"));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
666 List<Ort> orte = repository.filterPlain(builder.getQuery(), "stamm");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
667 if (orte != null && orte.size() > 0) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
668 return orte.get(0);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
669 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
670 else {
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
671 return createNewOrt(attributes, type, probe);
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
672 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
673 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
674 // If laf contains gemeinde attributes, find a ort with matching gemId
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
675 // or create one.
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
676 String gemId = null;
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
677 if (attributes.get(type + "GEMEINDENAME") != null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
678 QueryBuilder<Verwaltungseinheit> builder =
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
679 new QueryBuilder<Verwaltungseinheit>(
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
680 repository.entityManager("stamm"),
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
681 Verwaltungseinheit.class);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
682 builder.and("bezeichnung", attributes.get(type + "GEMEINDENAME"));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
683 List<Verwaltungseinheit> ves =
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
684 repository.filterPlain(builder.getQuery(), "stamm");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
685 if (ves != null && ves.size() > 0) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
686 gemId = ves.get(0).getId();
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
687 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
688 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
689 else if (attributes.get(type + "GEMEINDESCHLUESSEL") != null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
690 gemId = attributes.get(type + "GEMEINDESCHLUESSEL");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
691 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
692 if (gemId != null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
693 QueryBuilder<Ort> builder =
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
694 new QueryBuilder<Ort>(
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
695 repository.entityManager("stamm"),
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
696 Ort.class);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
697 builder.and("gemId", gemId);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
698 List<Ort> orte = repository.filterPlain(builder.getQuery(), "stamm");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
699 if (orte != null && orte.size() > 0) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
700 return orte.get(0);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
701 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
702 }
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
703 return createNewOrt(attributes, type, probe);
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
704 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
705
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
706 private Ort createNewOrt(Map<String, String> attributes, String type, Probe probe) {
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
707 Ort ort = new Ort();
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
708 ort.setOrtTyp(1);
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
709 String gemId = null;
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
710 MessStelle mst = repository.getByIdPlain(MessStelle.class, probe.getMstId(), "stamm");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
711 ort.setNetzbetreiberId(mst.getNetzbetreiberId());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
712 boolean hasKoord = false;
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
713 boolean hasGem = false;
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
714 boolean hasStaat = false;
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
715
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
716 if ((attributes.get(type + "KOORDINATEN_ART") != null ||
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
717 attributes.get(type + "KOORDINATEN_ART_S") != null) &&
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
718 attributes.get(type + "KOORDINATEN_X") != null &&
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
719 attributes.get(type + "KOORDINATEN_Y") != null
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
720 ) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
721 if (attributes.get(type + "KOORDINATEN_ART_S") != null) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
722 ort.setKdaId(Integer.valueOf(attributes.get(type + "KOORDINATEN_ART_S")));
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
723 }
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
724 else {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
725 QueryBuilder<KoordinatenArt> builder =
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
726 new QueryBuilder<KoordinatenArt>(
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
727 repository.entityManager("stamm"),
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
728 KoordinatenArt.class);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
729 builder.and("koordinatenart", attributes.get(type + "KOORDINATEN_ART"));
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
730 List<KoordinatenArt> art = repository.filterPlain(builder.getQuery(), "stamm");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
731 if (art == null || art.isEmpty()) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
732
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
733 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
734 else {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
735 ort.setKdaId(art.get(0).getId());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
736 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
737 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
738 ort.setKoordXExtern(attributes.get(type + "KOORDINATEN_X"));
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
739 ort.setKoordYExtern(attributes.get(type + "KOORDINATEN_Y"));
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
740 ort.setMpArt("D");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
741 hasKoord = true;
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
742 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
743
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
744 if (attributes.get(type + "GEMEINDENAME") != null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
745 QueryBuilder<Verwaltungseinheit> builder =
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
746 new QueryBuilder<Verwaltungseinheit>(
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
747 repository.entityManager("stamm"),
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
748 Verwaltungseinheit.class);
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
749 builder.and("bezeichnung", attributes.get(type + "GEMEINDENAME"));
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
750 List<Verwaltungseinheit> ves =
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
751 repository.filterPlain(builder.getQuery(), "stamm");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
752 if (ves != null && ves.size() > 0) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
753 gemId = ves.get(0).getId();
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
754 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
755 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
756 else if (attributes.get(type + "GEMEINDESCHLUESSEL") != null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
757 gemId = attributes.get(type + "GEMEINDESCHLUESSEL");
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
758 }
1195
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
759
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
760 if (gemId != null) {
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
761 ort.setGemId(gemId);
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
762 hasGem = true;
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
763 Verwaltungseinheit v = repository.getByIdPlain(Verwaltungseinheit.class, gemId, "stamm");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
764 if (v == null) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
765 ReportItem err = new ReportItem();
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
766 err.setCode(673);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
767 err.setKey("ort");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
768 err.setValue(gemId);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
769 currentErrors.add(err);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
770 return null;
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
771 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
772 if (!hasKoord) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
773 ort.setMpArt("V");
1195
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
774 ort.setKdaId(4);
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
775 ort.setKoordYExtern(String.valueOf(v.getMittelpunkt().getY()));
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
776 ort.setKoordXExtern(String.valueOf(v.getMittelpunkt().getX()));
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
777 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
778 ort.setKurztext(v.getBezeichnung());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
779 ort.setLangtext(v.getBezeichnung());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
780 ort.setOrtId(gemId);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
781 ort.setBerichtstext(v.getBezeichnung());
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
782 }
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
783
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
784 String hLand = "";
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
785 String staatFilter = "";
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
786 if (attributes.get(type + "HERKUNFTSLAND_S") != null) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
787 staatFilter = "id";
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
788 hLand = attributes.get(type + "HERKUNFTSLAND_S");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
789 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
790 else if (attributes.get(type + "HERKUNFTSLAND_KURZ") != null) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
791 staatFilter = "staatKurz";
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
792 hLand = attributes.get(type + "HERKUNFTSLAND_KURZ");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
793 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
794 else if (attributes.get(type + "HERKUNFTSLAND_LANG") != null) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
795 staatFilter = "staat";
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
796 hLand = attributes.get(type + "HERKUNFTSLAND_LANG");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
797 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
798
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
799 if (staatFilter.length() > 0) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
800 QueryBuilder<Staat> builderStaat =
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
801 new QueryBuilder<Staat>(
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
802 repository.entityManager("stamm"),
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
803 Staat.class);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
804 builderStaat.and(staatFilter, hLand);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
805 List<Staat> staat =
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
806 repository.filterPlain(builderStaat.getQuery(), "stamm");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
807 if (staat != null && staat.size() > 0) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
808 ort.setStaatId(staat.get(0).getId());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
809 hasStaat = true;
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
810 Staat s = staat.get(0);
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
811 if (!hasGem && !hasKoord) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
812 ort.setMpArt("S");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
813 ort.setKdaId(s.getKdaId());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
814 ort.setKoordYExtern(s.getKoordYExtern());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
815 ort.setKoordXExtern(s.getKoordXExtern());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
816 }
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
817 if (hasKoord && !hasGem) {
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
818 ort.setKurztext(s.getStaat());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
819 ort.setLangtext(s.getStaat());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
820 ort.setOrtId("Staat_" + s.getStaatIso());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
821 ort.setBerichtstext(s.getStaat());
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
822 }
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
823 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
824 }
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
825
1185
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
826 if (attributes.containsKey(type + "HOEHE_NN")) {
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
827 ort.setHoeheUeberNn(Float.valueOf(attributes.get(type + "HOEHE_NN")));
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
828 }
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
829 if (attributes.containsKey(type + "ORTS_ZUSATZCODE")) {
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
830 Ortszusatz zusatz = repository.getByIdPlain(
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
831 Ortszusatz.class,
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
832 attributes.get(type + "ORTS_ZUSATZCODE"),
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
833 "stamm");
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
834 if (zusatz != null) {
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
835 ort.setOzId(zusatz.getOzsId());
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
836 }
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
837 }
1195
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
838 ortFactory.transformCoordinates(ort);
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
839 if (hasKoord && !hasGem) {
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
840 logger.debug("find Verwaltungseinheit");
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
841 ortFactory.findVerwaltungseinheit(ort);
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
842 }
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
843 if (ortFactory.hasErrors()) {
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
844 currentErrors.addAll(ortFactory.getErrors());
1220
faa6a2117d1e Do not try to create a new Ort if coordinate transformation failed.
Tom Gottfried <tom@intevation.de>
parents: 1215
diff changeset
845 return null;
1195
768a4c957a18 Added ort factory to generate and find attributes, updated model.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1185
diff changeset
846 }
1185
dc303c65c486 Import HOEHE_NN and ORTS_ZUSATZCODE for new ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1180
diff changeset
847
1177
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
848 repository.create(ort, "stamm");
312aaa5d069d Create a new ort object on demand while importing LAF data.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1164
diff changeset
849 return ort;
1146
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
850 }
5eb9d35aa47a Parse, map and merge orte.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1134
diff changeset
851
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
852 private void logProbe(Probe probe) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
853 logger.debug("%PROBE%");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
854 logger.debug("datenbasis: " + probe.getDatenbasisId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
855 logger.debug("betriebsart: " + probe.getBaId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
856 logger.debug("erzeuger: " + probe.getErzeugerId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
857 logger.debug("hauptprobennummer: " + probe.getHauptprobenNr());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
858 logger.debug("idalt: " + probe.getIdAlt());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
859 logger.debug("labor: " + probe.getLaborMstId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
860 logger.debug("deskriptoren: " + probe.getMediaDesk());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
861 logger.debug("media: " + probe.getMedia());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
862 logger.debug("mittelung: " + probe.getMittelungsdauer());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
863 logger.debug("mpl: " + probe.getMplId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
864 logger.debug("mpr: " + probe.getMprId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
865 logger.debug("mst: " + probe.getMstId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
866 logger.debug("pnbeginn: " + probe.getProbeentnahmeBeginn());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
867 logger.debug("pnende: " + probe.getProbeentnahmeEnde());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
868 logger.debug("probenart: " + probe.getProbenartId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
869 logger.debug("probenehmer: " + probe.getProbeNehmerId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
870 logger.debug("sbeginn: " + probe.getSolldatumBeginn());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
871 logger.debug("sende: " + probe.getSolldatumEnde());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
872 logger.debug("test: " + probe.getTest());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
873 logger.debug("umw: " + probe.getUmwId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
874 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
875
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
876 private void addProbeAttribute(Entry<String, String> attribute, Probe probe) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
877 String key = attribute.getKey();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
878 String value = attribute.getValue();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
879
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
880 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
881 if ("DATENBASIS_S".equals(key) && probe.getDatenbasisId() == null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
882 Integer v = Integer.valueOf(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
883 probe.setDatenbasisId(v);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
884 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
885 else if ("DATENBASIS_S".equals(key) && probe.getDatenbasisId() != null){
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
886 currentWarnings.add(new ReportItem(key, value.toString(), 672));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
887 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
888
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
889
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
890 if ("DATENBASIS".equals(key) && probe.getDatenbasisId() == null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
891 QueryBuilder<Datenbasis> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
892 new QueryBuilder<Datenbasis>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
893 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
894 Datenbasis.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
895 builder.and("datenbasis", value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
896 List<Datenbasis> datenbasis =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
897 (List<Datenbasis>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
898 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
899 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
900 if (datenbasis == null || datenbasis.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
901 ReportItem err = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
902 err.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
903 err.setKey("datenbasis");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
904 err.setValue(key);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
905 currentErrors.add(err);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
906 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
907 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
908 Integer v = datenbasis.get(0).getId();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
909 probe.setDatenbasisId(v);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
910 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
911 else if ("DATENBASIS".equals(key) && probe.getDatenbasisId() != null){
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
912 currentWarnings.add(new ReportItem(key, value.toString(), 672));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
913 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
914
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
915 if ("PROBE_ID".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
916 probe.setIdAlt(value);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
917 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
918
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
919 if ("HAUPTPROBENNUMMER".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
920 probe.setHauptprobenNr(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
921 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
922
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
923 if ("MPR_ID".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
924 Integer v = Integer.valueOf(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
925 probe.setMprId(v);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
926 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
927
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
928 if ("MESSSTELLE".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
929 probe.setMstId(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
930 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
931
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
932 if ("MESSLABOR".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
933 probe.setLaborMstId(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
934 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
935
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
936 if ("MESSPROGRAMM_S".equals(key) && probe.getBaId() == null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
937 QueryBuilder<MessprogrammTransfer> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
938 new QueryBuilder<MessprogrammTransfer>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
939 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
940 MessprogrammTransfer.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
941 builder.and("messprogrammS", value);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
942 List<MessprogrammTransfer> transfer=
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
943 (List<MessprogrammTransfer>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
944 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
945 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
946 if (transfer == null || transfer.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
947 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
948 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
949 warn.setKey("messprogramm");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
950 warn.setValue(key);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
951 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
952 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
953 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
954 probe.setBaId(transfer.get(0).getBaId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
955 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
956 if ("MESSPROGRAMM_C".equals(key)){
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
957 QueryBuilder<MessprogrammTransfer> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
958 new QueryBuilder<MessprogrammTransfer>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
959 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
960 MessprogrammTransfer.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
961 builder.and("messprogrammC", value);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
962 List<MessprogrammTransfer> transfer=
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
963 (List<MessprogrammTransfer>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
964 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
965 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
966 if (transfer == null || transfer.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
967 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
968 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
969 warn.setKey("messprogramm");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
970 warn.setValue(key);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
971 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
972 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
973 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
974 probe.setBaId(transfer.get(0).getBaId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
975 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
976
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
977 if ("MESSPROGRAMM_LAND".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
978 QueryBuilder<MessprogrammKategorie> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
979 new QueryBuilder<MessprogrammKategorie>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
980 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
981 MessprogrammKategorie.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
982 builder.or("netzbetreiberId", userInfo.getNetzbetreiber());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
983 builder.and("code", value);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
984 List<MessprogrammKategorie> kategorie =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
985 (List<MessprogrammKategorie>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
986 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
987 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
988 if (kategorie == null || kategorie.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
989 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
990 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
991 warn.setKey("messprogramm_land");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
992 warn.setValue(key);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
993 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
994 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
995 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
996 probe.setMplId(kategorie.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
997 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
998
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
999 if ("SOLL_DATUM_UHRZEIT_A".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1000 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1001 Date d = format.parse(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1002 probe.setSolldatumBeginn(new Timestamp(d.getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1003 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1004 catch (ParseException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1005 currentWarnings.add(new ReportItem(key, value.toString(), 674));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1006 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1007 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1008 if ("SOLL_DATUM_UHRZEIT_E".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1009 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1010 Date d = format.parse(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1011 probe.setSolldatumEnde(new Timestamp(d.getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1012 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1013 catch (ParseException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1014 currentWarnings.add(new ReportItem(key, value.toString(), 674));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1015 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1016 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1017 if ("PROBENAHME_DATUM_UHRZEIT_A".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1018 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1019 Date d = format.parse(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1020 probe.setProbeentnahmeBeginn(new Timestamp(d.getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1021 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1022 catch (ParseException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1023 currentWarnings.add(new ReportItem(key, value.toString(), 674));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1024 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1025 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1026 if ("PROBENAHME_DATUM_UHRZEIT_E".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1027 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1028 Date d = format.parse(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1029 probe.setProbeentnahmeEnde(new Timestamp(d.getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1030 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1031 catch (ParseException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1032 currentWarnings.add(new ReportItem(key, value.toString(), 674));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1033 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1034 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1035
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1036 if ("UMWELTBEREICH_S".equals(key) && probe.getUmwId() == null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1037 probe.setUmwId(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1038 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1039 else if ("UMWELTBEREICH_S".equals(key) && probe.getUmwId() != null){
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1040 currentWarnings.add(new ReportItem(key, value.toString(), 672));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1041 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1042 if ("UMWELTBEREICH_C".equals(key) && probe.getUmwId() == null) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1043 QueryBuilder<Umwelt> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1044 new QueryBuilder<Umwelt>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1045 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1046 Umwelt.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1047 int length = value.toString().length() > 80 ? 80 : value.toString().length();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1048 builder.and("umweltBereich", value.toString().substring(0, length));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1049 List<Umwelt> umwelt =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1050 (List<Umwelt>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1051 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1052 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1053 if (umwelt == null || umwelt.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1054 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1055 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1056 warn.setKey("umwelt");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1057 warn.setValue(key);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1058 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1059 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1060 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1061 probe.setUmwId(umwelt.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1062 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1063 else if ("UMWELTBEREICH_C".equals(key) && probe.getUmwId() != null){
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1064 currentWarnings.add(new ReportItem(key, value.toString(), 672));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1065 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1066
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1067 if ("DESKRIPTOREN".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1068 value = value.replace(" ", "0");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1069 List<String> tmp = new ArrayList<String>();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1070 tmp.add("D:");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1071 for (int i = 0; i < value.length() - 2; i += 2) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1072 tmp.add(value.substring(i, i+2));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1073 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1074 probe.setMediaDesk(StringUtils.join(tmp.toArray(), " "));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1075 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1076
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1077 if ("TESTDATEN".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1078 if (!value.toString().equals("0")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1079 probe.setTest(true);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1080 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1081 else {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1082 probe.setTest(false);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1083 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1084 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1085
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1086 if ("MEDIUM".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1087 probe.setMedia(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1088 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1089
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1090 if ("PROBENART".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1091 QueryBuilder<Probenart> builder =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1092 new QueryBuilder<Probenart>(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1093 repository.entityManager("stamm"),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1094 Probenart.class);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1095 builder.and("probenart", value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1096 List<Probenart> probenart =
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1097 (List<Probenart>)repository.filter(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1098 builder.getQuery(),
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1099 "stamm").getData();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1100 if (probenart == null || probenart.isEmpty()) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1101 ReportItem warn = new ReportItem();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1102 warn.setCode(673);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1103 warn.setKey("probenart");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1104 warn.setValue(key);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1105 currentWarnings.add(warn);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1106 return;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1107 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1108 probe.setProbenartId(probenart.get(0).getId());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1109 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1110 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1111 /**
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1112 * Add an attribute to the given LMessung object.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1113 *
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1114 * @param key The key mapping to a object member.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1115 * @param value The value to set.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1116 * @param messung The entity object.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1117 * @return The updated entity object.
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1118 */
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1119 public Messung addMessungAttribute(
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1120 Entry<String, String> attribute,
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1121 Messung messung
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1122 ) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1123 String key = attribute.getKey();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1124 String value = attribute.getValue();
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1125 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm");
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1126 if ("MESSUNGS_ID".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1127 messung.setIdAlt(Integer.valueOf(value));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1128 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1129 if ("NEBENPROBENNUMMER".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1130 messung.setNebenprobenNr(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1131 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1132 else if ("MESS_DATUM_UHRZEIT".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1133 try {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1134 Date d = format.parse(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1135 messung.setMesszeitpunkt(new Timestamp(d.getTime()));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1136 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1137 catch (ParseException e) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1138 currentWarnings.add(new ReportItem(key, value.toString(), 674));
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1139 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1140 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1141 else if ("MESSZEIT_SEKUNDEN".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1142 Integer i = Integer.valueOf(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1143 messung.setMessdauer(i);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1144 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1145 else if ("MESSMETHODE_S".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1146 messung.setMmtId(value.toString());
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1147 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1148 else if ("ERFASSUNG_ABGESCHLOSSEN".equals(key)) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1149 if(!value.toString().equals("0")) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1150 messung.setFertig(true);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1151 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1152 else {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1153 messung.setFertig(false);
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1154 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1155 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1156 return messung;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1157 }
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1158
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1159 /**
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1160 * @return the errors
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1161 */
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1162 public Map<String, List<ReportItem>> getErrors() {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1163 return errors;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1164 }
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1165
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1166 /**
1105
d9d57a107478 Fixed error handling for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1100
diff changeset
1167 * @return the errors
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1168 */
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1169 public Map<String, List<ReportItem>> getWarnings() {
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1170 return warnings;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1171 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1172
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1173 /**
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1174 * @return the userInfo
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1175 */
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1176 public UserInfo getUserInfo() {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1177 return userInfo;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1178 }
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1179
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1180 /**
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1181 * @param userInfo the userInfo to set
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1182 */
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1183 public void setUserInfo(UserInfo userInfo) {
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1184 this.userInfo = userInfo;
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1185 }
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1186 }
1100
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1187
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1188
7683c4162746 Updated importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
1189
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)