annotate src/main/java/de/intevation/lada/importer/laf/LafObjectMapper.java @ 1146:5eb9d35aa47a

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