diff --git a/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java b/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java index a4927d50b208c483eebb43d375118b87e58b22a0..a80f7455469d3cd06cdb300e925275d5b8f0948b 100644 --- a/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java +++ b/web-designschema/src/main/java/com/inspur/edp/web/designschema/generator/FieldBuilder.java @@ -21,6 +21,7 @@ import com.inspur.edp.bef.bizentity.GspBizEntityObject; import com.inspur.edp.bef.bizentity.GspBusinessEntity; import com.inspur.edp.cef.api.RefObject; import com.inspur.edp.cef.designtime.api.IGspCommonField; +import com.inspur.edp.cef.designtime.api.collection.GspAssociationCollection; import com.inspur.edp.cef.designtime.api.element.GspAssociation; import com.inspur.edp.cef.designtime.api.element.GspElementObjectType; import com.inspur.edp.formserver.viewmodel.GspViewModelElement; @@ -42,6 +43,7 @@ import com.inspur.edp.web.designschema.elements.type.FieldType; import com.inspur.edp.web.designschema.elements.type.ObjectType; import com.inspur.edp.web.designschema.udtextensiondef.FormUdtExtension; import io.iec.edp.caf.commons.exception.CAFRuntimeException; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; import org.springframework.util.StringUtils; import java.util.*; @@ -560,12 +562,10 @@ public class FieldBuilder { // 找到业务字段 // IBusinessFieldService businessFieldService = SpringBeanUtils.getBean(IBusinessFieldService.class); // BusinessField businessField = businessFieldService.getBusinessField(elementContext.getBusinessFieldId()); - BusinessField businessField = elementContext.getBusinessFieldInstance(); + BusinessField businessField = getBusinessField(elementContext); // 找到be - // GspAssociationCollection associations = (GspAssociationCollection) businessField.getUnifiedDataTypeDef().getPropertys().getPropertyName("ChildAssociations").getPropertyValue(); - // String bizFieldBeId = associations.get(0).getRefModelID(); - - String bizFieldBeId = businessField.getAssoInfo().getRefModelID(); + GspAssociationCollection associations = (GspAssociationCollection) businessField.getUnifiedDataTypeDef().getPropertys().getPropertyName("ChildAssociations").getPropertyValue(); + String bizFieldBeId = associations.get(0).getRefModelID(); GspMetadata beMeta = getMetadata(bizFieldBeId, elementContext.isRuntime()); GspBusinessEntity be = (GspBusinessEntity) beMeta.getContent(); // 找到be上的字段 @@ -662,4 +662,12 @@ public class FieldBuilder { return MetadataUtility.getInstance().getMetadataWithDesign(metadataGetterParameter); } } + + private BusinessField getBusinessField(TypeBuildingContext context) { + if (context.getBusinessFieldInstance() != null) { + return context.getBusinessFieldInstance(); + } + IBusinessFieldService businessFieldService = SpringBeanUtils.getBean(IBusinessFieldService.class); + return businessFieldService.getBusinessField(context.getBusinessFieldId()); + } }