101 lines
3.5 KiB
Python
101 lines
3.5 KiB
Python
import base64
|
|
import enum
|
|
import hashlib
|
|
import hmac
|
|
import json
|
|
import logging
|
|
import os
|
|
import pickle
|
|
import re
|
|
import time
|
|
from json import JSONDecodeError
|
|
|
|
from sqlalchemy import func
|
|
from sqlalchemy.dialects.postgresql import JSONB
|
|
|
|
from configs import dify_config
|
|
from core.rag.retrieval.retrieval_methods import RetrievalMethod
|
|
from extensions.ext_database import db
|
|
from extensions.ext_storage import storage
|
|
|
|
from .account import Account
|
|
from .model import App, Tag, TagBinding, UploadFile
|
|
from .types import StringUUID
|
|
|
|
|
|
class ComponentFailure(db.Model):
|
|
__tablename__ = "component_failure"
|
|
__table_args__ = (
|
|
db.UniqueConstraint('Date', 'Component', 'FailureMode', 'Cause', 'Technician', name='unique_failure_entry'),
|
|
)
|
|
|
|
FailureID = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
Date = db.Column(db.Date, nullable=False)
|
|
Component = db.Column(db.String(255), nullable=False)
|
|
FailureMode = db.Column(db.String(255), nullable=False)
|
|
Cause = db.Column(db.String(255), nullable=False)
|
|
RepairAction = db.Column(db.Text, nullable=True)
|
|
Technician = db.Column(db.String(255), nullable=False)
|
|
|
|
|
|
class Maintenance(db.Model):
|
|
__tablename__ = "maintenance"
|
|
|
|
MaintenanceID = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
MaintenanceType = db.Column(db.String(255), nullable=False)
|
|
MaintenanceDate = db.Column(db.Date, nullable=False)
|
|
ServiceDescription = db.Column(db.Text, nullable=True)
|
|
PartsReplaced = db.Column(db.Text, nullable=True)
|
|
Technician = db.Column(db.String(255), nullable=False)
|
|
|
|
|
|
class OperationalData(db.Model):
|
|
__tablename__ = "operational_data"
|
|
|
|
OperationID = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
CraneUsage = db.Column(db.Integer, nullable=False)
|
|
LoadWeight = db.Column(db.Float, nullable=False)
|
|
LoadFrequency = db.Column(db.Integer, nullable=False)
|
|
EnvironmentalConditions = db.Column(db.Text, nullable=True)
|
|
|
|
|
|
class IncidentData(db.Model):
|
|
__tablename__ = "incident_data"
|
|
|
|
IncidentID = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
IncidentDescription = db.Column(db.Text, nullable=False)
|
|
IncidentDate = db.Column(db.Date, nullable=False)
|
|
Consequences = db.Column(db.Text, nullable=True)
|
|
ResponseActions = db.Column(db.Text, nullable=True)
|
|
|
|
|
|
class ReliabilityData(db.Model):
|
|
__tablename__ = "reliability_data"
|
|
|
|
ComponentID = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
ComponentName = db.Column(db.String(255), nullable=False)
|
|
MTBF = db.Column(db.Float, nullable=False)
|
|
FailureRate = db.Column(db.Float, nullable=False)
|
|
|
|
|
|
class SafetyData(db.Model):
|
|
__tablename__ = "safety_data"
|
|
|
|
SafetyID = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
SafetyInspectionDate = db.Column(db.Date, nullable=False)
|
|
SafetyFindings = db.Column(db.Text, nullable=True)
|
|
SafetyIncidentDescription = db.Column(db.Text, nullable=True)
|
|
ComplianceStatus = db.Column(db.String(50), nullable=False)
|
|
|
|
|
|
class ComponentFailureStats(db.Model):
|
|
__tablename__ = "component_failure_stats"
|
|
|
|
StatID = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
Component = db.Column(db.String(255), nullable=False)
|
|
FailureMode = db.Column(db.String(255), nullable=False)
|
|
Cause = db.Column(db.String(255), nullable=False)
|
|
PossibleAction = db.Column(db.Text, nullable=True)
|
|
Probability = db.Column(db.Float, nullable=False)
|
|
MTBF = db.Column(db.Float, nullable=False)
|