5151@ Service
5252public class ObservationUnitService {
5353 private final ObservationUnitRepository observationUnitRepository ;
54+
5455 private final GermplasmService germplasmService ;
5556 private final ObservationService observationService ;
5657 private final StudyService studyService ;
@@ -62,6 +63,7 @@ public ObservationUnitService(ObservationUnitRepository observationUnitRepositor
6263 ObservationService observationService , GermplasmService germplasmService , SeedLotService seedLotService ,
6364 ObservationVariableService observationVariableService ) {
6465 this .observationUnitRepository = observationUnitRepository ;
66+
6567 this .studyService = studyService ;
6668 this .germplasmService = germplasmService ;
6769 this .observationService = observationService ;
@@ -178,13 +180,13 @@ public List<ObservationUnit> findObservationUnits(@Valid ObservationUnitSearchRe
178180 Page <ObservationUnitEntity > page = observationUnitRepository .findAllBySearch (searchQuery , pageReq );
179181 List <ObservationUnit > observationUnits = page .map (this ::convertFromEntity ).getContent ();
180182 PagingUtility .calculateMetaData (metadata , page );
181-
182- if (!request .isIncludeObservations ()) {
183- for (ObservationUnit ou : observationUnits ) {
183+
184+ if (!request .isIncludeObservations ()) {
185+ for (ObservationUnit ou : observationUnits ) {
184186 ou .setObservations (null );
185187 }
186188 }
187-
189+
188190 return observationUnits ;
189191 }
190192
@@ -196,7 +198,8 @@ public ObservationUnitEntity getObservationUnitEntity(String observationUnitDbId
196198 return getObservationUnitEntity (observationUnitDbId , HttpStatus .BAD_REQUEST );
197199 }
198200
199- public ObservationUnitEntity getObservationUnitEntity (String observationUnitDbId , HttpStatus errorStatus ) throws BrAPIServerException {
201+ public ObservationUnitEntity getObservationUnitEntity (String observationUnitDbId , HttpStatus errorStatus )
202+ throws BrAPIServerException {
200203 ObservationUnitEntity observationUnit = null ;
201204 Optional <ObservationUnitEntity > entityOpt = observationUnitRepository .findById (observationUnitDbId );
202205 if (entityOpt .isPresent ()) {
@@ -243,7 +246,8 @@ public ObservationUnit updateObservationUnit(String observationUnitDbId, @Valid
243246
244247 savedEntity = observationUnitRepository .save (entity );
245248 } else {
246- throw new BrAPIServerException (HttpStatus .NOT_FOUND , "observationUnitDbId not found: " + observationUnitDbId );
249+ throw new BrAPIServerException (HttpStatus .NOT_FOUND ,
250+ "observationUnitDbId not found: " + observationUnitDbId );
247251 }
248252
249253 return convertFromEntity (savedEntity );
@@ -369,7 +373,10 @@ private ObservationUnitEntity updateEntity(ObservationUnitEntity entity, Observa
369373 if (unit .getObservationUnitPosition () != null ) {
370374 if (entity .getPosition () == null )
371375 entity .setPosition (new ObservationUnitPositionEntity ());
372- updateEntity (entity .getPosition (), unit .getObservationUnitPosition ());
376+ ObservationUnitPositionEntity position = entity .getPosition ();
377+ updateEntity (position , unit .getObservationUnitPosition ());
378+ position .setObservationUnit (entity );
379+ entity .setPosition (position );
373380 }
374381 if (unit .getSeedLotDbId () != null ) {
375382 SeedLotEntity seedLot = seedLotService .getSeedLotEntity (unit .getSeedLotDbId ());
@@ -383,7 +390,8 @@ private ObservationUnitEntity updateEntity(ObservationUnitEntity entity, Observa
383390 entity .setTreatments (unit .getTreatments ().stream ().map (t -> {
384391 TreatmentEntity e = new TreatmentEntity ();
385392 e .setFactor (t .getFactor ());
386- e .setModality (t .getFactor ());
393+ e .setModality (t .getModality ());
394+ e .setObservationUnit (entity );
387395 return e ;
388396 }).collect (Collectors .toList ()));
389397
@@ -405,7 +413,14 @@ private void updateEntity(ObservationUnitPositionEntity entity, ObservationUnitP
405413 }
406414 if (position .getObservationLevelRelationships () != null )
407415 entity .setObservationLevelRelationships (position .getObservationLevelRelationships ().stream ()
408- .map (this ::convertToEntity ).collect (Collectors .toList ()));
416+ .map (level -> {
417+ ObservationUnitLevelRelationshipEntity relationshipEntity = new ObservationUnitLevelRelationshipEntity ();
418+ relationshipEntity .setLevelCode (level .getLevelCode ());
419+ relationshipEntity .setLevelName (level .getLevelName ());
420+ relationshipEntity .setLevelOrder (level .getLevelOrder ());
421+ relationshipEntity .setPosition (entity );
422+ return relationshipEntity ;
423+ }).collect (Collectors .toList ()));
409424 if (position .getPositionCoordinateX () != null )
410425 entity .setPositionCoordinateX (position .getPositionCoordinateX ());
411426 if (position .getPositionCoordinateXType () != null )
@@ -416,14 +431,6 @@ private void updateEntity(ObservationUnitPositionEntity entity, ObservationUnitP
416431 entity .setPositionCoordinateYType (position .getPositionCoordinateYType ());
417432 }
418433
419- private ObservationUnitLevelRelationshipEntity convertToEntity (ObservationUnitLevelRelationship level ) {
420- ObservationUnitLevelRelationshipEntity entity = new ObservationUnitLevelRelationshipEntity ();
421- entity .setLevelCode (level .getLevelCode ());
422- entity .setLevelName (level .getLevelName ());
423- entity .setLevelOrder (level .getLevelOrder ());
424- return entity ;
425- }
426-
427434 private List <List <String >> buildDataMatrix (List <ObservationUnit > observationUnits ,
428435 List <ObservationVariable > variables ) {
429436 List <List <String >> data = new ArrayList <>();
0 commit comments