add machine and calibration data

This commit is contained in:
2023-05-26 08:26:00 +02:00
parent 91412f7169
commit b30286387d
7 changed files with 319 additions and 40 deletions

View File

@@ -1,7 +1,10 @@
from .calibration import *
from .citt import *
from .components import *
from .data import *
from .enumeration import *
from .infrastructure import *
from .machines import *
from .material import *
from .metrics import *
from .norm_documents import *

View File

@@ -0,0 +1,91 @@
import datetime
from mongoengine import *
from paveit.datamodels.components import Components
from paveit.helper import fetch_recursive, mongo_to_dict
from .usermanagement import Organisation
class Calibrarion(Document):
""" Durchführung von Kalibrierungen der Prüfmittel, externer Dienst """
company = StringField(required=True)
name = StringField(required=True)
department = StringField(required=False)
room = StringField(required=False)
serialnumber = StringField(required=False)
extrainfo = StringField(required=False)
component = LazyReferenceField(Components, required=True)
date = DateTimeField(default=datetime.datetime.now,
wtf_options={"render_kw": {
"step": "60"
}})
org_id = LazyReferenceField(Organisation,
required=True,
reverse_delete_rule=CASCADE)
tags = ListField(StringField())
def to_dict(self):
# convert data to dict
data = fetch_recursive(self)
data = mongo_to_dict(data)
return data
meta = {
'allow_inheritance': True,
'index_opts': {},
'index_background': True,
'index_cls': False,
'auto_create_index': True,
'collection': 'calibration',
"db_alias": 'dblabtests',
'indexes': [
[("name", 1)],
]
}
#####################
class Monitoring(Document):
""" Eigenüberwachung der Prüfmittel, interne Durchführung """
date = DateTimeField(default=datetime.datetime.now,
wtf_options={"render_kw": {
"step": "60"
}})
component = LazyReferenceField(Components, required=True)
org_id = LazyReferenceField(Organisation,
required=True,
reverse_delete_rule=CASCADE)
tags = ListField(StringField())
def to_dict(self):
# convert data to dict
data = fetch_recursive(self)
data = mongo_to_dict(data)
return data
meta = {
'allow_inheritance': True,
'index_opts': {},
'index_background': True,
'index_cls': False,
'auto_create_index': True,
'collection': 'calibration',
"db_alias": 'dblabtests',
'indexes': [
[("name", 1)],
]
}

View File

@@ -0,0 +1,66 @@
import datetime
from mongoengine import *
from paveit.helper import fetch_recursive, mongo_to_dict
from .usermanagement import Organisation
class Components(Document):
company = StringField(required=True)
name = StringField(required=True)
department = StringField(required=False)
room = StringField(required=False)
serialnumber = StringField(required=True) # Seriennummer
internalnumber = StringField(required=False) # Interne Bezeichnung
extrainfo = StringField(required=False)
date = DateTimeField(default=datetime.datetime.now,
wtf_options={"render_kw": {
"step": "60"
}})
org_id = LazyReferenceField(Organisation,
required=True,
reverse_delete_rule=CASCADE)
tags = ListField(StringField())
def to_dict(self):
# convert data to dict
data = fetch_recursive(self)
data = mongo_to_dict(data)
return data
meta = {
'allow_inheritance': True,
'index_opts': {},
'index_background': True,
'index_cls': False,
'auto_create_index': True,
'collection': 'components',
"db_alias": 'dblabtests',
'indexes': [
[("name", 1)],
]
}
# Servohydraulik
class ComponentsServoHydraulicMachineTemperatureControl(Components):
""" Kraftmessdosen """
pass
class ComponentsServoHydraulicMachineKMD(Components):
""" Kraftmessdosen """
pass
class ComponentsServoHydraulicMachineLVDT(Components):
""" Wegaufnehmer """
pass

View File

@@ -1,9 +1,9 @@
import datetime
from enum import Enum
from mongoengine import *
class LabtestsEnum(Enum):
CITTStiffness = 'CITTStiffness'
SHEARStiffness = 'SheartestStiffness'
from .usermanagement import Organisation
class ProcessStatusEnum(Enum):
@@ -37,3 +37,63 @@ class BitumenCategoryEnum(Enum):
class AsphaltCategoryEnum(Enum):
ATS = "Asphalttragschichtmischgut"
class LabtestsEnum(Enum):
# Performance
CITTStiffness = 'CITTStiffness'
SHEARStiffness = 'SheartestStiffness'
class Config(Document):
date = DateTimeField(default=datetime.datetime.now,
wtf_options={"render_kw": {
"step": "60"
}})
tags = ListField(StringField())
def to_dict(self):
# convert data to dict
data = fetch_recursive(self)
data = mongo_to_dict(data)
return data
meta = {
'allow_inheritance': True,
'index_opts': {},
'index_background': True,
'index_cls': False,
'auto_create_index': True,
'collection': 'enumeration',
"db_alias": 'dblabtests',
'indexes': [
[("material", 1)],
[("name", 1)],
]
}
class Labtest(Config):
""" Speicherung der Zuordnung zwischen Firma und Labortest. Die hier
definierten Tests können die Kunden verwenden. Somit muss erstmal jeder
Einzeltest für jeden Kunden neu angelegt werden, jedoch ermöglicht dies auch
eine Steuerung der verfügbaren Module. Die Versuche werden nachfolgend in
Klasse/Kategorien eingeteil, um eine Trennung in Module zu ermöglichen."""
org_id = LazyReferenceField(Organisation,
required=True,
reverse_delete_rule=CASCADE)
test = EnumField(LabtestsEnum, required=True)
enabled = BooleanField(required=True, default=False)
class LabtestPerformAsphalt(Labtest):
""" Performanceprüfung Asphalt """
pass
class LabtestPerformBitumen(Labtest):
""" Performanceprüfung Bitumen """
pass

View File

@@ -0,0 +1,73 @@
import datetime
from mongoengine import *
from paveit.datamodels import (
ComponentsServoHydraulicMachineKMD,
ComponentsServoHydraulicMachineLVDT,
ComponentsServoHydraulicMachineTemperatureControl,
Labtest,
)
from paveit.helper import fetch_recursive, mongo_to_dict
from .usermanagement import Organisation
# ??? Labtest: Ist das richtig hier?
class Experiment(EmbeddedDocument):
test = LazyReferenceField(Labtest, required=True)
config = ListField(StringField(), required=True)
class Machine(Document):
company = StringField(required=True)
name = StringField(required=True)
department = StringField(required=False)
room = StringField(required=False)
serialnumber = StringField(required=True)
extrainfo = StringField(required=False)
tests = ListField(EmbeddedDocumentField(Experiment), required=True)
# Standartkomponenten festlegen: wenn ortsveränderlich, dann leer lassen
component_temperature = LazyReferenceField(ComponentsServoHydraulicMachineTemperatureControl, required=True)
component_kmd = LazyReferenceField(ComponentsServoHydraulicMachineKMD, required=False)
component_lvdt = ListField(LazyReferenceField(ComponentsServoHydraulicMachineLVDT), required=False)
date = DateTimeField(default=datetime.datetime.now,
wtf_options={"render_kw": {
"step": "60"
}})
org_id = LazyReferenceField(Organisation,
required=True,
reverse_delete_rule=CASCADE)
tags = ListField(StringField())
def to_dict(self):
# convert data to dict
data = fetch_recursive(self)
data = mongo_to_dict(data)
return data
meta = {
'allow_inheritance': True,
'index_opts': {},
'index_background': True,
'index_cls': False,
'auto_create_index': True,
'collection': 'machines',
"db_alias": 'dblabtests',
'indexes': [
[("name", 1)],
]
}
class ServoHydraulicMachine(Machine):
pass

View File

@@ -19,6 +19,10 @@ from .usermanagement import Organisation, User
class Material(Document):
name = StringField(required=True)
producer = StringField(required=True)
date = DateTimeField(default=datetime.datetime.now,
wtf_options={"render_kw": {
"step": "60"
@@ -63,67 +67,49 @@ class Material(Document):
class Asphalt(Material):
name = StringField()
producer = StringField()
batch_number = StringField()
norm = LazyReferenceField(NormDocumentAsphalt, required=True)
limits = LazyReferenceField(EnumerateBase)
ce_marking = StringField(required=False) #CE Kennzeichen
# Bitumen
class Bitumen(Material):
name = StringField()
producer = StringField()
batch_number = StringField()
category = EnumField(BitumenCategoryEnum, required=True)
norm = LazyReferenceField(NormDocumentBitumen, required=True)
parameter = ReferenceField(Material)
limits = LazyReferenceField(EnumerateBase)
ce_marking = StringField(required=False) #CE Kennzeichen
class Bitumenemulsion(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
material = StringField()
young_modulus = DictField()
limits = LazyReferenceField(EnumerateBase)
ce_marking = StringField(required=False) #CE Kennzeichen
class Epoxy(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
limits = LazyReferenceField(EnumerateBase)
ce_marking = StringField(required=False) #CE Kennzeichen
material = StringField()
young_modulus = DictField()
class Kompaktasphalt(Material):
norm = StringField(required=False, default='TP Asphalt Teil 24')
name = StringField()
ce_marking = StringField(required=False) #CE Kennzeichen
class Aggregate(Material):
norm = LazyReferenceField(NormDocumentAggregate, required=True)
name = StringField(required=True)
producer = StringField(required=True)
supply_source = StringField(required=True) #Bezugsquelle
batch_number = StringField()
ce_marking = StringField(required=True) #CE Kennzeichen
delivery_grain = LazyReferenceField(DeliveryGrain,
required=True,
limits = LazyReferenceField(DeliveryGrain, required=True,
reverse_delete_rule=CASCADE) #Lieferkörnung
ce_marking = StringField(required=False) #CE Kennzeichen
class Dummy(Material):

View File

@@ -70,7 +70,7 @@ def mongo_get_results(resultsmodel, results: DataFrame, datamodel,
return True
def fetch_recursive(data, fetch_parameter=['norm']):
def fetch_recursive(data, fetch_parameter=['norm', 'limits']):
fields = data._fields