comparison src/main/java/de/intevation/lada/rest/StatusService.java @ 778:574391f1d88f

Fixed status and messung services.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 13 Nov 2015 13:40:25 +0100
parents e3f4f3585cce
children 7033810468d9
comparison
equal deleted inserted replaced
777:e3f4f3585cce 778:574391f1d88f
194 return new Response(false, 699, null); 194 return new Response(false, 699, null);
195 } 195 }
196 UserInfo userInfo = authorization.getInfo(request); 196 UserInfo userInfo = authorization.getInfo(request);
197 LMessung messung = defaultRepo.getByIdPlain( 197 LMessung messung = defaultRepo.getByIdPlain(
198 LMessung.class, status.getMessungsId(), "land"); 198 LMessung.class, status.getMessungsId(), "land");
199 LStatusProtokoll currentStatus = defaultRepo.getByIdPlain(
200 LStatusProtokoll.class, messung.getStatus(), "land");
201 boolean next = false; 199 boolean next = false;
202 boolean change = false; 200 boolean change = false;
203 for (int i = 0; i < userInfo.getFunktionen().size(); i++) { 201 if (messung.getStatus() == null) {
204 if (userInfo.getFunktionen().get(i) > currentStatus.getStatusStufe()) {
205 next = true;
206 change = false;
207 break;
208 }
209 else if (userInfo.getFunktionen().get(i) == currentStatus.getStatusStufe()) {
210 change = true;
211 }
212 }
213 if ((change || next) && status.getStatusWert() == 4) {
214 status.setStatusStufe(1); 202 status.setStatusStufe(1);
215 } 203 }
216 else if (change) {
217 status.setStatusStufe(currentStatus.getStatusStufe());
218 }
219 else if (next) {
220 status.setStatusStufe(currentStatus.getStatusStufe() + 1);
221 }
222 else { 204 else {
223 return new Response(false, 699, null); 205 LStatusProtokoll currentStatus = defaultRepo.getByIdPlain(
206 LStatusProtokoll.class, messung.getStatus(), "land");
207 for (int i = 0; i < userInfo.getFunktionen().size(); i++) {
208 if (userInfo.getFunktionen().get(i) > currentStatus.getStatusStufe()) {
209 next = true;
210 change = false;
211 break;
212 }
213 else if (userInfo.getFunktionen().get(i) == currentStatus.getStatusStufe()) {
214 change = true;
215 }
216 }
217 if ((change || next) && status.getStatusWert() == 4) {
218 status.setStatusStufe(1);
219 }
220 else if (change) {
221 status.setStatusStufe(currentStatus.getStatusStufe());
222 }
223 else if (next) {
224 status.setStatusStufe(currentStatus.getStatusStufe() + 1);
225 }
226 else {
227 return new Response(false, 699, null);
228 }
224 } 229 }
225 Response response = defaultRepo.create(status, "land"); 230 Response response = defaultRepo.create(status, "land");
226 LStatusProtokoll created = (LStatusProtokoll)response.getData(); 231 LStatusProtokoll created = (LStatusProtokoll)response.getData();
227 messung.setStatus(created.getId()); 232 messung.setStatus(created.getId());
228 defaultRepo.update(messung, "land"); 233 defaultRepo.update(messung, "land");
261 public Response update( 266 public Response update(
262 @Context HttpHeaders headers, 267 @Context HttpHeaders headers,
263 @Context HttpServletRequest request, 268 @Context HttpServletRequest request,
264 LStatusProtokoll status 269 LStatusProtokoll status
265 ) { 270 ) {
266 if (!authorization.isAuthorized(
267 request,
268 status,
269 RequestMethod.PUT,
270 LStatusProtokoll.class)
271 ) {
272 return new Response(false, 699, null);
273 }
274 if (lock.isLocked(status)) { 271 if (lock.isLocked(status)) {
275 return new Response(false, 697, null); 272 return new Response(false, 697, null);
276 }
277 if (status.getStatusWert() == 0) {
278 return new Response(false, 699, null);
279 } 273 }
280 274
281 UserInfo userInfo = authorization.getInfo(request); 275 UserInfo userInfo = authorization.getInfo(request);
282 if (!userInfo.getMessstellen().contains(status.getErzeuger())) { 276 if (!userInfo.getMessstellen().contains(status.getErzeuger())) {
283 return new Response(false, 699, null); 277 return new Response(false, 699, null);
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)