handle error when import blueprint description template not found

This commit is contained in:
CITE\amentis 2024-07-29 18:13:00 +03:00
parent dc3e26e581
commit 76c29f8b79
3 changed files with 32 additions and 6 deletions

View File

@ -11,6 +11,8 @@ import java.util.UUID;
public class BlueprintDescriptionTemplateImportExport {
@XmlElement(name = "descriptionTemplateGroupId")
private UUID descriptionTemplateGroupId;
@XmlElement(name = "descriptionTemplateCode")
private String descriptionTemplateCode;
@XmlElement(name = "label")
private String label;
@XmlAttribute(name = "minMultiplicity")
@ -26,6 +28,14 @@ public class BlueprintDescriptionTemplateImportExport {
this.descriptionTemplateGroupId = descriptionTemplateGroupId;
}
public String getDescriptionTemplateCode() {
return descriptionTemplateCode;
}
public void setDescriptionTemplateCode(String descriptionTemplateCode) {
this.descriptionTemplateCode = descriptionTemplateCode;
}
public String getLabel() {
return this.label;
}

View File

@ -20,6 +20,10 @@ public class DescriptionTemplatePersist {
public static final String _descriptionTemplateGroupId = "descriptionTemplateGroupId";
private String descriptionTemplateCode;
public static final String _descriptionTemplateCode = "descriptionTemplateCode";
private String label;
public static final String _label = "label";

View File

@ -581,7 +581,7 @@ public class PlanBlueprintServiceImpl implements PlanBlueprintService {
List<BlueprintDescriptionTemplateImportExport> planBlueprintDescriptionTemplates = new LinkedList<>();
if (!this.conventionService.isListNullOrEmpty(entity.getDescriptionTemplates())) {
for (DescriptionTemplateEntity descriptionTemplate : entity.getDescriptionTemplates()) {
planBlueprintDescriptionTemplates.add(this.prefillingSourceXmlToExport(descriptionTemplate));
planBlueprintDescriptionTemplates.add(this.blueprintDescriptionTemplateXmlToExport(descriptionTemplate));
}
}
xml.setDescriptionTemplates(planBlueprintDescriptionTemplates);
@ -596,8 +596,11 @@ public class PlanBlueprintServiceImpl implements PlanBlueprintService {
return xml;
}
private BlueprintDescriptionTemplateImportExport prefillingSourceXmlToExport(DescriptionTemplateEntity entity) {
private BlueprintDescriptionTemplateImportExport blueprintDescriptionTemplateXmlToExport(DescriptionTemplateEntity entity) {
BlueprintDescriptionTemplateImportExport xml = new BlueprintDescriptionTemplateImportExport();
org.opencdmp.data.DescriptionTemplateEntity data = this.queryFactory.query(DescriptionTemplateQuery.class).disableTracking().groupIds(entity.getDescriptionTemplateGroupId()).disableTracking().firstAs(new BaseFieldSet().ensure(org.opencdmp.data.DescriptionTemplateEntity._code));
if (data != null) xml.setDescriptionTemplateCode(data.getCode());
xml.setDescriptionTemplateGroupId(entity.getDescriptionTemplateGroupId());
xml.setLabel(entity.getLabel());
if (entity.getMinMultiplicity() != null ) xml.setMinMultiplicity(entity.getMinMultiplicity());
@ -797,11 +800,20 @@ public class PlanBlueprintServiceImpl implements PlanBlueprintService {
}
private DescriptionTemplatePersist xmlDescriptionTemplateToPersist(BlueprintDescriptionTemplateImportExport importXml) {
org.opencdmp.data.DescriptionTemplateEntity data = importXml.getDescriptionTemplateGroupId() != null ? this.queryFactory.query(DescriptionTemplateQuery.class).disableTracking().groupIds(importXml.getDescriptionTemplateGroupId()).disableTracking().firstAs(new BaseFieldSet().ensure(DescriptionTemplate._groupId)) : null;
if (data == null) throw new MyNotFoundException(this.messageSource.getMessage("General_ItemNotFound", new Object[]{importXml.getDescriptionTemplateGroupId(), DescriptionTemplate.class.getSimpleName()}, LocaleContextHolder.getLocale()));
DescriptionTemplatePersist persist = new DescriptionTemplatePersist();
org.opencdmp.data.DescriptionTemplateEntity data = importXml.getDescriptionTemplateGroupId() != null ? this.queryFactory.query(DescriptionTemplateQuery.class).disableTracking().groupIds(importXml.getDescriptionTemplateGroupId()).disableTracking().firstAs(new BaseFieldSet().ensure(DescriptionTemplate._groupId)) : null;
if (data != null ) {
persist.setDescriptionTemplateGroupId(importXml.getDescriptionTemplateGroupId());
} else {
if (!this.conventionService.isNullOrEmpty(importXml.getDescriptionTemplateCode())) {
data = this.queryFactory.query(DescriptionTemplateQuery.class).disableTracking().codes(importXml.getDescriptionTemplateCode()).disableTracking().firstAs(new BaseFieldSet().ensure(DescriptionTemplate._code).ensure(DescriptionTemplate._groupId));
if (data != null) persist.setDescriptionTemplateGroupId(data.getGroupId());
}
}
if (data == null) throw new MyValidationException(this.errors.getDescriptionTemplateImportNotFound().getCode(), !this.conventionService.isNullOrEmpty(importXml.getDescriptionTemplateCode()) ? importXml.getDescriptionTemplateCode() : importXml.getDescriptionTemplateGroupId().toString());
persist.setLabel(importXml.getLabel());
persist.setMinMultiplicity(importXml.getMinMultiplicity());
persist.setMaxMultiplicity(importXml.getMaxMultiplicity());