11 |
11 |
|
12 |
12 |
import java.io.IOException;
|
13 |
13 |
import java.util.ArrayList;
|
|
14 |
import java.util.Arrays;
|
14 |
15 |
import java.util.Collection;
|
15 |
16 |
import java.util.HashMap;
|
16 |
17 |
import java.util.HashSet;
|
... | ... | |
85 |
86 |
import eu.etaxonomy.cdm.persistence.dao.name.INomenclaturalStatusDao;
|
86 |
87 |
import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;
|
87 |
88 |
import eu.etaxonomy.cdm.persistence.dao.name.ITypeDesignationDao;
|
88 |
|
import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;
|
89 |
89 |
import eu.etaxonomy.cdm.persistence.dao.term.IOrderedTermVocabularyDao;
|
90 |
90 |
import eu.etaxonomy.cdm.persistence.dao.term.ITermVocabularyDao;
|
91 |
91 |
import eu.etaxonomy.cdm.persistence.dto.TaxonNameParts;
|
... | ... | |
111 |
111 |
@Autowired
|
112 |
112 |
protected IOccurrenceService occurrenceService;
|
113 |
113 |
@Autowired
|
|
114 |
protected ICollectionService collectionService;
|
|
115 |
@Autowired
|
114 |
116 |
@Qualifier("refEntDao")
|
115 |
117 |
protected IReferencedEntityDao<ReferencedEntityBase> referencedEntityDao;
|
116 |
118 |
@Autowired
|
... | ... | |
205 |
207 |
|
206 |
208 |
@Override
|
207 |
209 |
@Transactional(readOnly = false)
|
208 |
|
public UpdateResult cloneTypeDesignation(TaxonName name, SpecimenTypeDesignation baseDesignation,
|
209 |
|
String accessionNumber, eu.etaxonomy.cdm.model.occurrence.Collection collection, SpecimenTypeDesignationStatus typeStatus){
|
|
210 |
public UpdateResult cloneTypeDesignation(UUID nameUuid, SpecimenTypeDesignation baseDesignation,
|
|
211 |
String accessionNumber, UUID collectionUuid, SpecimenTypeDesignationStatus typeStatus){
|
210 |
212 |
UpdateResult result = new UpdateResult();
|
211 |
213 |
|
212 |
|
DerivedUnit baseSpecimen = (DerivedUnit) occurrenceService.load(baseDesignation.getTypeSpecimen().getUuid());
|
|
214 |
DerivedUnit baseSpecimen = HibernateProxyHelper.deproxy(occurrenceService.load(baseDesignation.getTypeSpecimen().getUuid(), Arrays.asList("collection")), DerivedUnit.class);
|
213 |
215 |
DerivedUnit duplicate = DerivedUnit.NewInstance(baseSpecimen.getRecordBasis());
|
214 |
216 |
DerivationEvent derivedFrom = baseSpecimen.getDerivedFrom();
|
215 |
217 |
Collection<FieldUnit> fieldUnits = occurrenceService.findFieldUnits(baseSpecimen.getUuid(), null);
|
... | ... | |
222 |
224 |
DerivationEvent.NewSimpleInstance(original, duplicate, derivedFrom.getType());
|
223 |
225 |
}
|
224 |
226 |
duplicate.setAccessionNumber(accessionNumber);
|
225 |
|
duplicate.setCollection(collection);
|
|
227 |
duplicate.setCollection(collectionService.load(collectionUuid));
|
226 |
228 |
SpecimenTypeDesignation typeDesignation = SpecimenTypeDesignation.NewInstance();
|
227 |
229 |
typeDesignation.setTypeSpecimen(duplicate);
|
228 |
230 |
typeDesignation.setTypeStatus(typeStatus);
|
|
231 |
|
|
232 |
TaxonName name = load(nameUuid);
|
229 |
233 |
name.getTypeDesignations().add(typeDesignation);
|
230 |
234 |
|
231 |
235 |
result.setCdmEntity(typeDesignation);
|
ref #6413 Replace service method parameters with UUIDs