annotate src/main/java/de/intevation/lada/importer/laf/LafObjectMapper.java @ 1339:3f6a77c9efc9

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