annotate src/main/java/de/intevation/lada/importer/laf/LafObjectMapper.java @ 1229:1965e26ef8b5

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