add Classes for Bitumen, Asphat, Aggregates, Additives and Properties of them

This commit is contained in:
2023-09-11 17:35:41 +02:00
parent 4b263f461a
commit 394d86c111
3 changed files with 134 additions and 27 deletions

View File

@@ -12,7 +12,7 @@ from .norm_documents import (
NormDocumentAsphalt,
NormDocumentBitumen,
)
from .norm_specification import DeliveryGrain, EnumerateBase
from .norm_specification import DeliveryGrain, EnumerateBase, AdditiveEnum
from .project import Project
from .usermanagement import Organisation, User
@@ -102,7 +102,7 @@ class Aggregate(Material):
class Additive(Material):
typ = StringField(required=True)
category = LazyReferenceField(AdditiveEnum, required=True)

View File

@@ -6,7 +6,7 @@ from paveit.helper import fetch_recursive, mongo_to_dict
from enum import Enum
from .material import Material, Additive
from .material import Material, Additive, Bitumen, Aggregate
from .usermanagement import Organisation, User
from .enumeration import AsphaltCategoryEnum, BitumenCategoryEnum
@@ -17,10 +17,12 @@ from .norm_documents import (
)
from .norm_specification import (
AsphaltParameterLimitsBaseEnum,
BitumenParameterLimitsBaseEnum
BitumenParameterLimitsBaseEnum,
AdditiveEnum,
AdditiveSubEnum,
DeliveryGrain
)
class ProcessParameters(Enum):
"""
Typ der Wert:
@@ -41,14 +43,6 @@ class Address(EmbeddedDocument):
postal_code = IntField()
country = StringField()
class Additive(EmbeddedDocument):
additive_id = LazyReferenceField(Additive, required=True)
quantity = IntField()
class Propertie(Document):
@@ -63,6 +57,7 @@ class Propertie(Document):
"step": "60"
}})
def to_dict(self):
# convert data to dict
data = fetch_recursive(self)
@@ -86,10 +81,10 @@ class Propertie(Document):
# Additives
class PropertieAdditives(Propertie):
class PropertieAdditive(Propertie):
pass
class PropertieAdditivesMeta(PropertieAdditives):
class PropertieAdditiveMeta(PropertieAdditive):
name = StringField()
productnumber = StringField()
@@ -99,7 +94,7 @@ class PropertieAdditivesMeta(PropertieAdditives):
address = EmbeddedDocumentField(Address)
#category = LazyReferenceField(BitumenParameterLimitsBaseEnum, required=False)
subcategory = LazyReferenceField(AdditiveSubEnum, required=True)
# Aggregates
@@ -118,7 +113,7 @@ class PropertieAggregateMeta(PropertieAggregate):
mine = StringField()
address = EmbeddedDocumentField(Address)
category = LazyReferenceField(BitumenParameterLimitsBaseEnum, required=False)
category = LazyReferenceField(DeliveryGrain, required=False)
# Bitumen
@@ -151,22 +146,130 @@ class PropertieAsphaltMeta(PropertieAsphalt):
certificate_number = StringField()
certificate_date = IntField()
mixing_plant = StringField()
mixingplant = StringField()
address = EmbeddedDocumentField(Address)
category = LazyReferenceField(AsphaltParameterLimitsBaseEnum, required=True)
class PropertieAsphaltBitumenContent(PropertieAsphalt):
class Additive(EmbeddedDocument):
process_parameter = EnumField(ProcessParameters, required=True) # Ist- oder Sollwert
additive_id = LazyReferenceField(Additive, required=True)
quantity_bitumen = IntField()
quantity_additive_bitumen = IntField()
quantity_bitumen_total = IntField()
total_bituem_content = IntField()
elastic_recovery = IntField()
equistiffness_temperature = IntField()
phase_angle = IntField()
A = FloatField()
B = FloatField()
C = FloatField()
min = FloatField()
max = FloatField()
class BitumenInfo(EmbeddedDocument):
added_binder_A = FloatField(required=False)
added_binder_B = FloatField(required=False)
added_binder_C = FloatField(required=False)
added_binder_min = FloatField(required=False)
added_binder_max = FloatField(required=False)
binder_from_additives_A = FloatField(required=False)
binder_from_additives_B = FloatField(required=False)
binder_from_additives_C = FloatField(required=False)
binder_from_additives_min = FloatField(required=False)
binder_from_additives_max = FloatField(required=False)
total_binder_A = FloatField(required=False)
total_binder_B = FloatField(required=False)
total_binder_C = FloatField(required=False)
total_binder_min = FloatField(required=False)
total_binder_max = FloatField(required=False)
total_binder_vol_A = FloatField(required=False)
total_binder_vol_B = FloatField(required=False)
total_binder_vol_C = FloatField(required=False)
total_binder_vol_min = FloatField(required=False)
total_binder_vol_max = FloatField(required=False)
elastic_recovery_A = FloatField(required=False)
elastic_recovery_B = FloatField(required=False)
elastic_recovery_C = FloatField(required=False)
elastic_recovery_min = FloatField(required=False)
elastic_recovery_max = FloatField(required=False)
equi_stiffness_A = FloatField(required=False)
equi_stiffness_B = FloatField(required=False)
equi_stiffness_C = FloatField(required=False)
equi_stiffness_min = FloatField(required=False)
equi_stiffness_max = FloatField(required=False)
phase_angle_A = FloatField(required=False)
phase_angle_B = FloatField(required=False)
phase_angle_C = FloatField(required=False)
phase_angle_min = FloatField(required=False)
phase_angle_max = FloatField(required=False)
class PropertieAsphaltBitumenParameters(PropertieAsphalt):
bitumen_id = LazyReferenceField(Bitumen, required=True)
bitumen = EmbeddedDocumentField(BitumenInfo)
additives = ListField(EmbeddedDocumentField(Additive))
class AggregateInfo(EmbeddedDocument):
id = LazyReferenceField(Aggregate, required=False)
size_45x0 = FloatField(required=False)
size_31x5 = FloatField(required=False)
size_22x4 = FloatField(required=False)
size_16x0 = FloatField(required=False)
size_11x2 = FloatField(required=False)
size_8x0 = FloatField(required=False)
size_5x6 = FloatField(required=False)
size_2x0 = FloatField(required=False)
size_1x0 = FloatField(required=False)
size_0x25 = FloatField(required=False)
size_0x125 = FloatField(required=False)
size_0x063 = FloatField(required=False)
size_less_0x063 = FloatField(required=False)
oversize = FloatField(required=False)
normal_grain = FloatField(required=False)
bulk_density = FloatField(required=False)
flow_coefficient = FloatField(required=False)
aggregates_bulk_density = FloatField(required=False)
class PropertieAsphaltAggregates(PropertieAsphalt):
aggregates = ListField(EmbeddedDocumentField(AggregateInfo), required=True)
class MineralMixtureInfo(EmbeddedDocument):
size_45x0 = FloatField(required=False)
size_31x5 = FloatField(required=False)
size_22x4 = FloatField(required=False)
size_16x0 = FloatField(required=False)
size_11x2 = FloatField(required=False)
size_8x0 = FloatField(required=False)
size_5x6 = FloatField(required=False)
size_2x0 = FloatField(required=False)
size_1x0 = FloatField(required=False)
size_0x25 = FloatField(required=False)
size_0x125 = FloatField(required=False)
size_0x063 = FloatField(required=False)
size_less_0x063 = FloatField(required=False)
class PropertieAsphaltMineralMixture(PropertieAsphalt):
trailing = EmbeddedDocumentField(MineralMixtureInfo, required=False)
passage = EmbeddedDocumentField(MineralMixtureInfo, required=False)
class PropertyMetrics(EmbeddedDocument):
A = FloatField(required=False)
B = FloatField(required=False)
C = FloatField(required=False)
min = FloatField(required=False)
max = FloatField(required=False)
class PropertiesAsphaltMixingParameters(PropertieAsphalt):
bulk_density = EmbeddedDocumentField(PropertyMetrics)
asphalt_density = EmbeddedDocumentField(PropertyMetrics)
marshall_density = EmbeddedDocumentField(PropertyMetrics)
cavity_content = EmbeddedDocumentField(PropertyMetrics)
cavity_filling_level = EmbeddedDocumentField(PropertyMetrics)
marshall_compression_temperature = EmbeddedDocumentField(PropertyMetrics)
expired_binder_quantity = EmbeddedDocumentField(PropertyMetrics)
water_sensitivity_ITSR = EmbeddedDocumentField(PropertyMetrics)
swelling_DIN1996 = EmbeddedDocumentField(PropertyMetrics)

View File

@@ -29,6 +29,10 @@ class EnumerateBase(Document):
class AdditiveEnum(EnumerateBase):
name = StringField()
class AdditiveSubEnum(EnumerateBase):
categoryId = LazyReferenceField(AdditiveEnum, required=True)
name = StringField()
# Gesteine
class DeliveryGrain(EnumerateBase):
name = StringField()