Exemplo n.º 1
0
def on_message(client, obj, msg):
	# humi = str(msg.payload)
    print(msg.topic + " || " + str(msg.qos) + " || " + str(msg.payload))
    # print(humi)
    comp_id = msg.topic.split('/')[0]
    assess = msg.topic.split('/')[1]
    topic = msg.topic.split('/')[2]
    temp = str(msg.payload)
    length = len(temp) - 1
    rw_equipment = {}
    if topic == "assessment":
        comp = models.ComponentMaster.objects.get(componentid= int(comp_id))
        facility_id = models.EquipmentMaster.objects.get(equipmentid=comp.equipmentid_id).facilityid_id
        target = models.FacilityRiskTarget.objects.get(facilityid=facility_id)
        faci = models.Facility.objects.get(facilityid=facility_id)
        # print(temp[2:length])
        # temp1 = json.dumps(temp[2:length], sort_keys=True)
        # temp2 = temp1.replace("'", "")
        json_assess = eval(temp[2:length])
        print(json_assess)
        # Sensor_ID = json_assess["Sensor_ID"]
        # print(str(Sensor_ID))
        # Date_n_Time = json_assess["Date"]
        # print(Date_n_Time)
        # Temperature = json_assess["Temperature"]
        # print(Temperature)
        # new Component Master
        # comp_num = ["ComponentNumber"]
        # eq_id = ["EquipmentID"]
        # comp_type_id = ["ComponentTypeID"]
        # comp_name = ["ComponentName"]
        # comp_desc = ["ComponentDesc"]
        # is_eq_linked = ["IsEquipmentLinked"]
        # api_comp_type_id = 
        # ["Create"]
        # Assessment - rw_component
        json_assess["APIComponentTypeID"] = models.ApiComponentType.objects.get(apicomponenttypeid=comp.apicomponenttypeid).apicomponenttypename
        json_assess['equipmentType'] = models.EquipmentType.objects.get(equipmenttypeid=models.EquipmentMaster.objects.get(equipmentid=comp.equipmentid_id).equipmenttypeid_id).equipmenttypename
        json_assess['AssessmentDate'] = datetime.now()
        rw_assessment = models.RwAssessment(equipmentid_id=comp.equipmentid_id, componentid_id=comp.componentid, assessmentdate=json_assess['AssessmentDate'],
                                            riskanalysisperiod=json_assess['RiskAnalystPeriod'], isequipmentlinked= comp.isequipmentlinked,
                                            proposalname=assess)
        rw_assessment.save()

    if topic == "equipment":
        json_eq = eval(temp[2:length])
        rw_equipment = models.RwEquipment(id=rwassessment, commissiondate=models.EquipmentMaster.objects.get(equipmentid= comp.equipmentid_id).commissiondate,
                            adminupsetmanagement=json_eq["AdminControlUpset"], containsdeadlegs=json_eq["ContainsDeadlegs"],
                            cyclicoperation=json_eq["CylicOper"], highlydeadleginsp=json_eq["Highly"],
                            downtimeprotectionused=json_eq["Downtime"], externalenvironment=json_eq['ExternalEnvironment'],
                            heattraced=json_eq["HeatTraced"], interfacesoilwater=json_eq["InterfaceSoilWater"],
                            lineronlinemonitoring=json_eq["LOM"], materialexposedtoclext=json_eq["MFTF"],
                            minreqtemperaturepressurisation=json_eq["minTemp"],
                            onlinemonitoring=json_eq['OnlineMonitoring'], presencesulphideso2=json_eq["PresenceofSulphides"],
                            presencesulphideso2shutdown=json_eq["PresenceofSulphidesShutdown"],
                            pressurisationcontrolled=json_eq["PressurisationControlled"], pwht=json_eq["PWHT"], steamoutwaterflush=json_eq["SteamedOut"],
                            managementfactor= faci.managementfactor, thermalhistory=json_eq['ThermalHistory'],
                            yearlowestexptemp=json_eq["EquOper"], volume=json_eq["EquipmentVolumn"])
        rw_equipment.save()
    if topic == "component":
        json_comp = eval(temp[2:length])
        rwcomponent = models.RwComponent(id=rwassessment, nominaldiameter=json_comp["NorminalDiameter"],
                            nominalthickness=json_comp['NorminalThickness'], currentthickness=json_comp['CurrentThickness'],
                            minreqthickness=json_comp['MinReqThickness'], currentcorrosionrate=json_comp['CurrentCorrosionRate'],
                            branchdiameter=json_comp['BranchDiameter'], branchjointtype=json_comp['BranchJointType'],
                            brinnelhardness=json_comp['MaxBrinell']
                            , deltafatt=json_comp['DeltaFATT'], chemicalinjection=json_comp["ChemicalInjection"],
                            highlyinjectioninsp=json_comp["HFICI"], complexityprotrusion=json_comp['complex'],
                            correctiveaction=json_comp['CorrectiveAction'], crackspresent=json_comp["PresenceCracks"],
                            cyclicloadingwitin15_25m=json_comp['CylicLoad'],
                            damagefoundinspection=json_comp["DFDI"], numberpipefittings=json_comp['NumberPipeFittings'],
                            pipecondition=json_comp['PipeCondition'],
                            previousfailures=json_comp['PreviousFailures'], shakingamount=json_comp['ShakingAmount'],
                            shakingdetected=json_comp["VASD"], shakingtime=json_comp['timeShakingPipe'],
                            trampelements=json_comp["TrampElement"])
        rwcomponent.save()
    if topic == "rw_stream":
        json_stream = eval(temp[2:length])
        rwstream = models.RwStream(id=rwassessment, aminesolution=json_stream['AminSolution'], aqueousoperation=json_stream["AqueOp"],
                            aqueousshutdown=json_stream["AqueShutdown"], toxicconstituent=json_stream["ToxicConstituents"],
                            caustic=json_stream["EnvCaustic"],
                            chloride=json_stream['ChlorideIon'], co3concentration=json_stream['CO3'], cyanide=json_stream["PresenceCyanides"],
                            exposedtogasamine=json_stream["exposureAcid"], exposedtosulphur=json_stream["ExposedSulfur"],
                            exposuretoamine=json_stream['ExposureAmine'],
                            h2s=json_stream["EnvCH2S"], h2sinwater=json_stream['"H2SInWater"'], hydrogen=json_stream["ProcessHydrogen"],
                            hydrofluoric=json_stream["HydrogenFluoric"], materialexposedtoclint=json_stream["materialExposedFluid"],
                            maxoperatingpressure=json_stream['maxOP'],
                            maxoperatingtemperature=float(json_stream['maxOT']), minoperatingpressure=float(json_stream['minOP']),
                            minoperatingtemperature=json_stream['minOT'], criticalexposuretemperature=json_stream['criticalTemp'],
                            naohconcentration=json_stream['NaOHConcentration'],
                            releasefluidpercenttoxic=float(json_stream['ReleasePercentToxic']),
                            waterph=float(json_stream['PHWater']), h2spartialpressure=float(json_stream['OpHydroPressure']))
        rwstream.save()
    if topic == "rw_excor":
        json_excor = eval(temp[2:length])
        rwexcor = models.RwExtcorTemperature(id=rwassessment, minus12tominus8=json_excor['OP1'], minus8toplus6=json_excor['OP2'],
                            plus6toplus32=json_excor['OP3'], plus32toplus71=json_excor['OP4'],
                            plus71toplus107=json_excor['OP5'],
                            plus107toplus121=json_excor['OP6'], plus121toplus135=json_excor['OP7'],
                            plus135toplus162=json_excor['OP8'], plus162toplus176=json_excor['OP9'],
                            morethanplus176=json_excor['OP10'])
        rwexcor.save()
    if topic == "rw_coat":
        json_coat = eval(temp[2:length])
        rwcoat = models.RwCoating(id=rwassessment, externalcoating=json_coat["ExternalCoating"], externalinsulation=json_coat["ExternalInsulationType"],
                               internalcladding=json_coat["InternalCladding"], internalcoating=json_coat["InternalCoating"],
                               internallining=json_coat["InternalLining"],
                               externalcoatingdate=json_coat["ExternalCoatingDate"],
                               externalcoatingquality=json_coat['ExternalCoatingQuality'],
                               externalinsulationtype=json_coat["ExternalInsulationType"],
                               insulationcondition=json_coat['InsulationCondition'],
                               insulationcontainschloride=json_coat["InsulationCholride"],
                               internallinercondition=json_coat['InternalLinerCondition'],
                               internallinertype=json_coat['InternalLinerType'],
                               claddingcorrosionrate=json_coat["CladdingCorrosionRate"],
                               supportconfignotallowcoatingmaint=json_coat["supportMaterial"])
        rwcoat.save()
    if topic == "rwmaterial":
        json_material = eval(temp[2:length])
        rwmaterial = models.RwMaterial(id=rwassessment, corrosionallowance=json_material["CorrosionAllowance"], materialname=json_material['Material'],
                                designpressure=json_material['DesignPressure'], designtemperature=json_material['MaxDesignTemp'],
                                mindesigntemperature=json_material['MinDesignTemp'],
                                brittlefracturethickness=json_material['BrittleFacture'], sigmaphase=json_material['SigmaPhase'],
                                sulfurcontent=json_material["SulfurContent"], heattreatment=json_material['heatTreatment'],
                                referencetemperature=json_material["tempRef"],
                                ptamaterialcode=json_material['PTAMaterialGrade'],
                                hthamaterialcode=json_material['HTHAMaterialGrade'], ispta=json_material["MaterialPTA"], ishtha=json_material["MaterialHTHA"],
                                austenitic=json_material["AusteniticSteel"], temper=json_material["SusceptibleTemper"], carbonlowalloy=json_material["CarbonAlloySteel"],
                                nickelbased=json_material["NickelAlloy"], chromemoreequal12=json_material["Chromium"],
                                allowablestress=json_material['allowStress'], costfactor=json_material['MaterialCostFactor'])
        rwmaterial.save()
    if topic == 'rw_inputca':
        json_inputca = eval(temp[2:length])
        rwinputca = models.RwInputCaLevel1(id=rwassessment, api_fluid=json_inputca['APIFluid'], system=json_inputca['System'],
                                        release_duration=json_inputca['ReleaseDuration'], detection_type=json_inputca['DetectionType'],
                                        isulation_type=json_inputca['IsulationType'],
                                        mitigation_system=json_inputca['MitigationSystem'],
                                        equipment_cost=json_inputca['EquipmentCost'], injure_cost=json_inputca['InjureCost'],
                                        evironment_cost=json_inputca['EnvironmentCost'], toxic_percent=json_inputca['ToxicPercent'],
                                        personal_density=json_inputca['PersonDensity'],
                                        material_cost=json_inputca['MaterialCostFactor'],
                                        production_cost=json_inputca['ProductionCost'], mass_inventory=json_inputca['MassInventory'],
                                        mass_component=json_inputca['MassComponent'],
                                        stored_pressure=float(json_inputca['minOP']) * 6.895, stored_temp=json_inputca['minOT'])
        rwinputca.save()
Exemplo n.º 2
0
    def saveData(self, data, ComponentID):
        try:
            AdminControlUpset = data["AdminControlUpset"]
        except:
            AdminControlUpset = False
        try:
            ContainsDeadlegs = data['ContainsDeadlegs']
        except:
            ContainsDeadlegs = False
        try:
            CylicOper = data['CylicOper']
        except:
            CylicOper = False
        try:
            Highly = data['Highly']
        except:
            Highly = False
        try:
            Downtime = data['Downtime']
        except:
            Downtime = False
        try:
            ExternalEnvironment = data['ExternalEnvironment']
        except:
            ExternalEnvironment = ""
        try:
            HeatTraced = data['HeatTraced']
        except:
            HeatTraced = False
        try:
            InterfaceSoilWater = data['InterfaceSoilWater']
        except:
            InterfaceSoilWater = False
        try:
            LOM = data['LOM']
        except:
            LOM = False
        try:
            MFTF = data['MFTF']
        except:
            MFTF = False
        try:
            minTemp = data['minTemp']
        except:
            obj = Newton(ComponentID, "minTemp")
            minTemp = obj.calculate()
        try:
            OnlineMonitoring = data['OnlineMonitoring']
        except:
            OnlineMonitoring = "Amine high velocity corrosion - Corrosion coupons"
        try:
            PresenceofSulphides = data['PresenceofSulphides']
        except:
            PresenceofSulphides = False
        try:
            PresenceofSulphidesShutdown = data['PresenceofSulphidesShutdown']
        except:
            PresenceofSulphidesShutdown = False
        try:
            PressurisationControlled = data['PressurisationControlled']
        except:
            PressurisationControlled = False
        try:
            PWHT = data['PWHT']
        except:
            PWHT = False
        try:
            SteamedOut = data['SteamedOut']
        except:
            SteamedOut = False
        try:
            ThermalHistory = data['ThermalHistory']
        except:
            ThermalHistory = "None"
        try:
            EquOper = data['EquOper']
        except:
            EquOper = False
        try:
            EquipmentVolumn = data['EquipmentVolumn']
        except Exception as e:
            obj = Newton(ComponentID, "EquipmentVolumn")
            EquipmentVolumn = obj.calculate()
        #component
        try:
            NorminalDiameter = data['NorminalDiameter']
        except:
            obj = Newton(ComponentID, "NorminalDiameter")
            NorminalDiameter = obj.calculate()
        # print(NorminalDiameter)
        try:
            NorminalThickness = data['NorminalThickness']
        except:
            obj = Newton(ComponentID, "NorminalThickness")
            NorminalThickness = obj.calculate()

        ##
        try:
            CurrentThickness = data['CurrentThickness']
        except:
            obj = Newton(ComponentID, "CurrentThickness")
            CurrentThickness = obj.calculate()
        try:
            MinReqThickness = data['MinReqThickness']
        except:
            obj = Newton(ComponentID, "MinReqThickness")
            MinReqThickness = obj.calculate()
        try:
            CurrentCorrosionRate = data['CurrentCorrosionRate']
        except:
            obj = Newton(ComponentID, "CurrentCorrosionRate")
            CurrentCorrosionRate = obj.calculate()
        # print("aa1.3")
        try:
            BranchDiameter = data['BranchDiameter']
        except:
            BranchDiameter = 'Any branch less than or equal to 2" Nominal OD'
        # print(BranchDiameter)
        try:
            BranchJointType = data['BranchDiameter']
        except:
            BranchJointType = 'None'
        # print("tt1.4")
        try:
            MaxBrinell = data['MaxBrinell']
        except:
            MaxBrinell = 'Below 200'
        try:
            DeltaFATT = data['DeltaFATT']
        except:
            obj = Newton(ComponentID, "DeltaFATT")
            DeltaFATT = obj.calculate()
        try:
            ChemicalInjection = data['ChemicalInjection']
        except:
            ChemicalInjection = False
        try:
            HFICI = data['HFICI']
        except:
            HFICI = False
        try:
            complex = data['complex']
        except:
            complex = "Above average"
        # print("tt1.44")
        try:
            CorrectiveAction = data['CorrectiveAction']
        except:
            CorrectiveAction = "None"
        try:
            PresenceCracks = data['PresenceCracks']
        except:
            PresenceCracks = False
        try:
            CylicLoad = data['CylicLoad']
        except:
            CylicLoad = "None"
        try:
            DFDI = data['DFDI']
        except:
            DFDI = False
        # print("tt.124")
        try:
            NumberPipeFittings = data['NumberPipeFittings']
        except:
            NumberPipeFittings = "More than 10"
        try:
            PipeCondition = data['PipeCondition']
        except:
            PipeCondition = "Broken gussets or gussets welded directly to pipe"
        try:
            PreviousFailures = data['PreviousFailures']
        except:
            PreviousFailures = "None"
        try:
            ShakingAmount = data['ShakingAmount']
        except:
            ShakingAmount = "Minor"
        try:
            VASD = data['VASD']
        except:
            VASD = False
        try:
            timeShakingPipe = data['timeShakingPipe']
        except:
            timeShakingPipe = "13 to 52 weeks"
        # print("aa99")
        try:
            weldjointeff = data['weldjointeff']
        except:
            obj = Newton(ComponentID, "weldjointeff")
            weldjointeff = obj.calculate()
        # print("mm1")
        try:
            allowablestresss = data['allowablestresss']
        except:
            obj = Newton(ComponentID, "allowablestresss")
            allowablestresss = obj.calculate()
        # print("tt1,5")
        try:
            structuralthickness = data['structuralthickness']
        except:
            obj = Newton(ComponentID, "structuralthickness")
            structuralthickness = obj.calculate()
        # print("11010")
        try:
            compvolume = data['compvolume']
        except:
            obj = Newton(ComponentID, "compvolume")
            compvolume = obj.calculate()
        try:
            HthaDamage = data['HthaDamage']
        except:
            HthaDamage = False
        try:
            MinStructuralThickness = data['MinStructuralThickness']
        except:
            MinStructuralThickness = False
        try:
            Fabricatedsteel = data['Fabricatedsteel']
        except:
            Fabricatedsteel = False
        try:
            EquipmentSatisfied = data['EquipmentSatisfied']
        except:
            EquipmentSatisfied = False
        try:
            NominalOperating = data['NominalOperating']
        except:
            NominalOperating = False
        try:
            Cetgreaterorequal = data['Cetgreaterorequal']
        except:
            Cetgreaterorequal = False
        try:
            Cyclicservice = data['Cyclicservice']
        except:
            Cyclicservice = False
        try:
            equipmentCircuit = data['equipmentCircuit']
        except:
            equipmentCircuit = False
        try:
            confidencecr = data['confidencecr']
        except:
            confidencecr = "Low"
        # print("10t")
        ##
        try:
            AminSolution = data['AminSolution']
        except:
            AminSolution = "Diethanolamine DEA"
        try:
            AqueOp = data['AqueOp']
        except:
            AqueOp = False
        try:
            AqueShutdown = data['AqueShutdown']
        except:
            AqueShutdown = False
        try:
            ToxicConstituents = data['ToxicConstituents']
        except:
            ToxicConstituents = False
        try:
            EnvCaustic = data['EnvCaustic']
        except:
            EnvCaustic = False
        try:
            ChlorideIon = data['ChlorideIon']
        except:
            obj = Newton(ComponentID, "ChlorideIon")
            ChlorideIon = obj.calculate()
        try:
            CO3 = data['CO3']
        except:
            obj = Newton(ComponentID, "CO3")
            CO3 = obj.calculate()
        try:
            PresenceCyanides = data['PresenceCyanides']
        except:
            PresenceCyanides = False
        try:
            exposureAcid = data['exposureAcid']
        except:
            exposureAcid = False
        try:
            ExposedSulfur = data['ExposedSulfur']
        except:
            ExposedSulfur = False
        try:
            ExposureAmine = data['ExposureAmine']
        except:
            ExposureAmine = "High Rich Amine"
        try:
            EnvCH2S = data['EnvCH2S']
        except:
            EnvCH2S = False
        try:
            H2SInWater = data['H2SInWater']
        except:
            obj = Newton(ComponentID, "H2SInWater")
            H2SInWater = obj.calculate()
        try:
            hydrogen = data['hydrogen']
        except:
            hydrogen = False
        try:
            HydrogenFluoric = data['HydrogenFluoric']
        except:
            HydrogenFluoric = False
        try:
            materialExposedFluid = data['materialExposedFluid']
        except:
            materialExposedFluid = False
        try:
            maxOP = data['maxOP']
        except:
            obj = Newton(ComponentID, "maxOP")
            maxOP = obj.calculate()
        try:
            maxOT = data['maxOT']
        except:
            obj = Newton(ComponentID, "maxOT")
            maxOT = obj.calculate()
        try:
            minOP = data['minOP']
        except:
            obj = Newton(ComponentID, "minOP")
            minOP = obj.calculate()
        try:
            minOT = data['minOT']
        except:
            obj = Newton(ComponentID, "minOT")
            minOT = obj.calculate()
        try:
            CriticalTemp = data['CriticalTemp']
        except:
            obj = Newton(ComponentID, "CriticalTemp")
            CriticalTemp = obj.calculate()
        try:
            NaOHConcentration = data['NaOHConcentration']
        except:
            obj = Newton(ComponentID, "NaOHConcentration")
            NaOHConcentration = obj.calculate()
        try:
            ReleasePercentToxic = data['ReleasePercentToxic']
        except:
            obj = Newton(ComponentID, "ReleasePercentToxic")
            ReleasePercentToxic = obj.calculate()
        try:
            PHWater = data['PHWater']
        except:
            obj = Newton(ComponentID, "PHWater")
            PHWater = obj.calculate()
        try:
            PHWater = data['OpHydroPressure']
        except:
            obj = Newton(ComponentID, "OpHydroPressure")
            OpHydroPressure = obj.calculate()
        try:
            flowrate = data['flowrate']
        except:
            obj = Newton(ComponentID, "flowrate")
            flowrate = obj.calculate()

        ##
        try:
            OP1 = data['OP1']
        except:
            obj = Newton(ComponentID, "OP1")
            OP1 = obj.calculate()
        try:
            OP2 = data['OP2']
        except:
            obj = Newton(ComponentID, "OP2")
            OP2 = obj.calculate()
        try:
            OP3 = data['OP3']
        except:
            obj = Newton(ComponentID, "OP3")
            OP3 = obj.calculate()
        try:
            OP4 = data['OP4']
        except:
            obj = Newton(ComponentID, "OP4")
            OP4 = obj.calculate()
        try:
            OP5 = data['OP5']
        except:
            obj = Newton(ComponentID, "OP5")
            OP5 = obj.calculate()
        try:
            OP6 = data['OP6']
        except:
            obj = Newton(ComponentID, "OP6")
            OP6 = obj.calculate()
        try:
            OP7 = data['OP7']
        except:
            obj = Newton(ComponentID, "OP7")
            OP7 = obj.calculate()
        try:
            OP8 = data['OP8']
        except:
            obj = Newton(ComponentID, "OP8")
            OP8 = obj.calculate()
        try:
            OP9 = data['OP9']
        except:
            obj = Newton(ComponentID, "OP9")
            OP9 = obj.calculate()
        try:
            OP10 = data['OP10']
        except:
            obj = Newton(ComponentID, "OP10")
            OP10 = obj.calculate()

        ##
        try:
            ExternalCoating = data['ExternalCoating']
        except:
            ExternalCoating = False
        try:
            ExternalInsulation = data['ExternalInsulation']
        except:
            ExternalInsulation = False
        try:
            InternalCladding = data['InternalCladding']
        except:
            InternalCladding = False
        try:
            InternalCoating = data['InternalCoating']
        except:
            InternalCoating = False
        try:
            InternalLining = data['InternalLining']
        except:
            InternalLining = False
        try:
            ExternalCoatingDate = data['ExternalCoatingDate']
        except:
            ExternalCoatingDate = datetime.datetime.now()
        try:
            ExternalCoatingQuality = data['ExternalCoatingQuality']
        except:
            ExternalCoatingQuality = "High coating quality"
        try:
            ExternalInsulationType = data['ExternalInsulationType']
        except:
            ExternalInsulationType = ""
        try:
            InsulationCondition = data['InsulationCondition']
        except:
            InsulationCondition = ""
        try:
            InsulationCholride = data['InsulationCholride']
        except:
            InsulationCholride = False
        try:
            InternalLinerCondition = data['InternalLinerCondition']
        except:
            InternalLinerCondition = ""
        try:
            InternalLinerType = data['InternalLinerType']
        except:
            InternalLinerType = ""
        try:
            CladdingCorrosionRate = data['CladdingCorrosionRate']
        except:
            obj = Newton(ComponentID, "CladdingCorrosionRate")
            CladdingCorrosionRate = obj.calculate()
        try:
            supportMaterial = data['supportMaterial']
        except:
            supportMaterial = False
        try:
            claddingthickness = data['claddingthickness']
        except:
            obj = Newton(ComponentID, "claddingthickness")
            claddingthickness = obj.calculate()

        ## input stream
        try:
            CorrosionAllowance = data['CorrosionAllowance']
        except:
            CorrosionAllowance = False
        try:
            Material = data['Material']
        except:
            Material = ""
        try:
            DesignPressure = data['DesignPressure']
        except:
            obj = Newton(ComponentID, "DesignPressure")
            DesignPressure = obj.calculate()
        try:
            MaxDesignTemp = data['MaxDesignTemp']
        except:
            obj = Newton(ComponentID, "MaxDesignTemp")
            MaxDesignTemp = obj.calculate()
        try:
            MinDesignTemp = data['MinDesignTemp']
        except:
            obj = Newton(ComponentID, "MinDesignTemp")
            MinDesignTemp = obj.calculate()
        try:
            BrittleFacture = data['BrittleFacture']
        except:
            BrittleFacture = False
        try:
            SigmaPhase = data['SigmaPhase']
        except:
            obj = Newton(ComponentID, "SigmaPhase")
            SigmaPhase = obj.calculate()
        try:
            SulfurContent = data['SulfurContent']
        except:
            SulfurContent = ""
        try:
            heatTreatment = data['heatTreatment']
        except:
            heatTreatment = ""
        try:
            tempRef = data['tempRef']
        except:
            obj = Newton(ComponentID, "tempRef")
            tempRef = obj.calculate()
        try:
            PTAMaterialGrade = data['PTAMaterialGrade']
        except:
            PTAMaterialGrade = ""
        try:
            HTHAMaterialGrade = data['HTHAMaterialGrade']
        except:
            HTHAMaterialGrade = ""
        try:
            MaterialPTA = data['MaterialPTA']
        except:
            MaterialPTA = False
        try:
            MaterialHTHA = data['MaterialHTHA']
        except:
            MaterialHTHA = False
        try:
            AusteniticSteel = data['AusteniticSteel']
        except:
            AusteniticSteel = False
        try:
            SusceptibleTemper = data['SusceptibleTemper']
        except:
            SusceptibleTemper = False
        try:
            CarbonAlloySteel = data['CarbonAlloySteel']
        except:
            obj = Newton(ComponentID, "CarbonAlloySteel")
            CarbonAlloySteel = obj.calculate()
        try:
            NickelAlloy = data['NickelAlloy']
        except:
            NickelAlloy = False
        try:
            Chromium = data['Chromium']
        except:
            Chromium = False
        try:
            MaterialCostFactor = data['MaterialCostFactor']
        except:
            obj = Newton(ComponentID, "MaterialCostFactor")
            MaterialCostFactor = obj.calculate()
        try:
            yieldstrength = data['yieldstrength']
        except:
            obj = Newton(ComponentID, "yieldstrength")
            yieldstrength = obj.calculate()
        try:
            tensilestrength = data['tensilestrength']
        except:
            obj = Newton(ComponentID, "tensilestrength")
            tensilestrength = obj.calculate()
        # print("ooooo")
        ## input CA
        try:
            APIFluid = data['APIFluid']
        except:
            APIFluid = ""
        try:
            Systerm = data['Systerm']
        except:
            Systerm = ""
        try:
            ReleaseDuration = data['ReleaseDuration']
        except:
            ReleaseDuration = ""
        try:
            DetectionType = data['DetectionType']
        except:
            DetectionType = ""
        try:
            IsulationType = data['IsulationType']
        except:
            IsulationType = ""
        try:
            MittigationSysterm = data['MittigationSysterm']
        except:
            MittigationSysterm = ""
        try:
            EquipmentCost = data['EquipmentCost']
        except:
            EquipmentCost = 0
        try:
            InjureCost = data['InjureCost']
        except:
            InjureCost = 0
        try:
            EnvironmentCost = data['EnvironmentCost']
        except:
            EnvironmentCost = 0
        try:
            ToxicPercent = data['ToxicPercent']
        except:
            ToxicPercent = 0
        try:
            PersonDensity = data['PersonDensity']
        except:
            PersonDensity = 0
        try:
            ProductionCost = data['ProductionCost']
        except:
            ProductionCost = 0
        try:
            MassInventory = data['MassInventory']
        except:
            MassInventory = 0
        try:
            MassComponent = data['MassComponent']
        except:
            MassComponent = 0

        ### input tank CA
        try:
            fluidHeight = data['fluidHeight']
        except:
            fluidHeight = 0
        try:
            tankDiameter = data['tankDiameter']
        except:
            tankDiameter = 0
        try:
            preventBarrier = data['preventBarrier']
        except:
            preventBarrier = 0
        try:
            envsensitivity = data['envsensitivity']
        except:
            envsensitivity = "High"
        try:
            fluidLeaveDike = data['fluidLeaveDike']
        except:
            fluidLeaveDike = 0
        try:
            fluidOffsite = data['fluidOffsite']
        except:
            fluidOffsite = 0
        try:
            fluidOnsite = data['fluidOnsite']
        except:
            fluidOnsite = 0
        try:
            fluid = data['fluid']
        except:
            fluid = "Gasoline"

        ### input Equiment Tank
        try:
            componentWelded = data['componentWelded']
        except:
            componentWelded = False
        try:
            tankIsMaintain = data['tankIsMaintain']
        except:
            tankIsMaintain = False
        try:
            adjustSettlement = data['adjustSettlement']
        except:
            adjustSettlement = ""
        try:
            EnvSensitivity = data['EnvSensitivity']
        except:
            EnvSensitivity = ""
        try:
            distance = data['distance']
        except:
            obj = Newton(ComponentID, "distance")
            distance = obj.calculate()
        try:
            soiltype = data['soiltype']
        except:
            soiltype = ""

        ## input component Tank
        try:
            shellHieght = data['shellHieght']
        except:
            obj = Newton(ComponentID, "shellHieght")
            shellHieght = obj.calculate()
        try:
            concreteFoundation = data['concreteFoundation']
        except:
            concreteFoundation = False
        try:
            severityVibration = data['severityVibration']
        except:
            severityVibration = ""

        print("Get data ok")

        checktank = 0
        comp = models.ComponentMaster.objects.get(componentid=ComponentID)
        if comp.componenttypeid_id == 8 or comp.componenttypeid_id == 12 or comp.componenttypeid_id == 14 or comp.componenttypeid_id == 15:
            checktank = 1
        else:
            checktank = 0
        Proposalname = "proposal" + str(
            models.RwAssessment.objects.filter(
                componentid=comp.componentid).count())
        if (checktank == 0):
            rwassessment = models.RwAssessment(
                equipmentid_id=comp.equipmentid_id,
                componentid_id=comp.componentid,
                assessmentdate=datetime.datetime.now(),
                riskanalysisperiod=36,
                isequipmentlinked=comp.isequipmentlinked,
                assessmentmethod="",
                proposalname=Proposalname)

            # rwassessment.save()
            eq = models.EquipmentMaster.objects.get(
                equipmentid=comp.equipmentid_id)
            faci = models.Facility.objects.get(
                facilityid=models.EquipmentMaster.objects.get(
                    equipmentid=comp.equipmentid_id).facilityid_id)
            rwequipment = models.RwEquipment(
                id=rwassessment,
                commissiondate=eq.commissiondate,
                adminupsetmanagement=AdminControlUpset,
                containsdeadlegs=ContainsDeadlegs,
                cyclicoperation=CylicOper,
                highlydeadleginsp=Highly,
                downtimeprotectionused=Downtime,
                externalenvironment=ExternalEnvironment,
                heattraced=HeatTraced,
                interfacesoilwater=InterfaceSoilWater,
                lineronlinemonitoring=LOM,
                materialexposedtoclext=MFTF,
                minreqtemperaturepressurisation=minTemp,
                onlinemonitoring=OnlineMonitoring,
                presencesulphideso2=PresenceofSulphides,
                presencesulphideso2shutdown=PresenceofSulphidesShutdown,
                pressurisationcontrolled=PressurisationControlled,
                pwht=PWHT,
                steamoutwaterflush=SteamedOut,
                managementfactor=faci.managementfactor,
                thermalhistory=ThermalHistory,
                yearlowestexptemp=EquOper,
                volume=EquipmentVolumn)
            # rwequipment.save()
            rwcomponent = models.RwComponent(
                id=rwassessment,
                nominaldiameter=NorminalDiameter,
                nominalthickness=NorminalThickness,
                currentthickness=CurrentThickness,
                minreqthickness=MinReqThickness,
                currentcorrosionrate=CurrentCorrosionRate,
                branchdiameter=BranchDiameter,
                branchjointtype=BranchJointType,
                brinnelhardness=MaxBrinell,
                deltafatt=DeltaFATT,
                chemicalinjection=ChemicalInjection,
                highlyinjectioninsp=HFICI,
                complexityprotrusion=complex,
                correctiveaction=CorrectiveAction,
                crackspresent=PresenceCracks,
                cyclicloadingwitin15_25m=CylicLoad,
                damagefoundinspection=DFDI,
                numberpipefittings=NumberPipeFittings,
                pipecondition=PipeCondition,
                previousfailures=PreviousFailures,
                shakingamount=ShakingAmount,
                shakingdetected=VASD,
                shakingtime=timeShakingPipe,
                weldjointefficiency=weldjointeff,
                allowablestress=allowablestresss,
                structuralthickness=structuralthickness,
                componentvolume=compvolume,
                hthadamage=HthaDamage,
                minstructuralthickness=MinStructuralThickness,
                fabricatedsteel=Fabricatedsteel,
                equipmentsatisfied=EquipmentSatisfied,
                nominaloperatingconditions=NominalOperating,
                cetgreaterorequal=Cetgreaterorequal,
                cyclicservice=Cyclicservice,
                equipmentcircuitshock=equipmentCircuit,
                brittlefracturethickness=BrittleFacture,
                confidencecorrosionrate=confidencecr)
            # rwcomponent.save()
            try:
                rwstream = models.RwStream(
                    id=rwassessment,
                    aminesolution=AminSolution,
                    aqueousoperation=AqueOp,
                    aqueousshutdown=AqueShutdown,
                    toxicconstituent=ToxicConstituents,
                    caustic=EnvCaustic,
                    chloride=ChlorideIon,
                    co3concentration=CO3,
                    cyanide=PresenceCyanides,
                    exposedtogasamine=exposureAcid,
                    exposedtosulphur=ExposedSulfur,
                    exposuretoamine=ExposureAmine,
                    h2s=EnvCH2S,
                    h2sinwater=H2SInWater,
                    hydrogen=hydrogen,
                    hydrofluoric=HydrogenFluoric,
                    materialexposedtoclint=materialExposedFluid,
                    maxoperatingpressure=maxOP,
                    maxoperatingtemperature=float(maxOT),
                    minoperatingpressure=float(minOP),
                    minoperatingtemperature=minOT,
                    criticalexposuretemperature=CriticalTemp,
                    naohconcentration=NaOHConcentration,
                    releasefluidpercenttoxic=float(ReleasePercentToxic),
                    waterph=float(PHWater),
                    h2spartialpressure=float(OpHydroPressure),
                    flowrate=float(flowrate))
                # rwstream.save()
            except Exception as e:
                print(e)
            rwexcor = models.RwExtcorTemperature(id=rwassessment,
                                                 minus12tominus8=OP1,
                                                 minus8toplus6=OP2,
                                                 plus6toplus32=OP3,
                                                 plus32toplus71=OP4,
                                                 plus71toplus107=OP5,
                                                 plus107toplus121=OP6,
                                                 plus121toplus135=OP7,
                                                 plus135toplus162=OP8,
                                                 plus162toplus176=OP9,
                                                 morethanplus176=OP10)
            # rwexcor.save()

            rwcoat = models.RwCoating(
                id=rwassessment,
                externalcoating=ExternalCoating,
                externalinsulation=ExternalInsulation,
                internalcladding=InternalCladding,
                internalcoating=InternalCoating,
                internallining=InternalLining,
                externalcoatingdate=ExternalCoatingDate,
                externalcoatingquality=ExternalCoatingQuality,
                externalinsulationtype=ExternalInsulationType,
                insulationcondition=InsulationCondition,
                insulationcontainschloride=InsulationCholride,
                internallinercondition=InternalLinerCondition,
                internallinertype=InternalLinerType,
                claddingcorrosionrate=CladdingCorrosionRate,
                supportconfignotallowcoatingmaint=supportMaterial,
                claddingthickness=claddingthickness)
            # rwcoat.save()

            rwmaterial = models.RwMaterial(
                id=rwassessment,
                corrosionallowance=CorrosionAllowance,
                materialname=Material,
                designpressure=DesignPressure,
                designtemperature=MaxDesignTemp,
                mindesigntemperature=MinDesignTemp,
                brittlefracturethickness=BrittleFacture,
                sigmaphase=SigmaPhase,
                sulfurcontent=SulfurContent,
                heattreatment=heatTreatment,
                referencetemperature=tempRef,
                ptamaterialcode=PTAMaterialGrade,
                hthamaterialcode=HTHAMaterialGrade,
                ispta=MaterialPTA,
                ishtha=MaterialHTHA,
                austenitic=AusteniticSteel,
                temper=SusceptibleTemper,
                carbonlowalloy=CarbonAlloySteel,
                nickelbased=NickelAlloy,
                chromemoreequal12=Chromium,
                costfactor=MaterialCostFactor,
                yieldstrength=yieldstrength,
                tensilestrength=tensilestrength)
            # rwmaterial.save()

            rwinputca = models.RwInputCaLevel1(
                id=rwassessment,
                api_fluid=APIFluid,
                system=Systerm,
                release_duration=ReleaseDuration,
                detection_type=DetectionType,
                isulation_type=IsulationType,
                mitigation_system=MittigationSysterm,
                equipment_cost=EquipmentCost,
                injure_cost=InjureCost,
                evironment_cost=EnvironmentCost,
                toxic_percent=ToxicPercent,
                personal_density=PersonDensity,
                material_cost=MaterialCostFactor,
                production_cost=ProductionCost,
                mass_inventory=MassInventory,
                mass_component=MassComponent,
                stored_pressure=float(minOP) * 6.895,
                stored_temp=minOT)
            # rwinputca.save()
            # ReCalculate.ReCalculate(rwassessment.id)
        else:
            rwassessment = models.RwAssessment(
                equipmentid_id=comp.equipmentid_id,
                componentid_id=comp.componentid,
                assessmentdate=datetime.datetime.now(),
                riskanalysisperiod=36,
                isequipmentlinked=comp.isequipmentlinked,
                assessmentmethod="",
                proposalname=Proposalname)
            # rwassessment.save()
            eq = models.EquipmentMaster.objects.get(
                equipmentid=comp.equipmentid_id)
            faci = models.Facility.objects.get(
                facilityid=models.EquipmentMaster.objects.get(
                    equipmentid=comp.equipmentid_id).facilityid_id)

            rwequipment = models.RwEquipment(
                id=rwassessment,
                commissiondate=eq.commissiondate,
                adminupsetmanagement=AdminControlUpset,
                cyclicoperation=CylicOper,
                highlydeadleginsp=Highly,
                downtimeprotectionused=Downtime,
                steamoutwaterflush=SteamedOut,
                pwht=PWHT,
                heattraced=HeatTraced,
                distancetogroundwater=distance,
                interfacesoilwater=InterfaceSoilWater,
                typeofsoil=soiltype,
                pressurisationcontrolled=PressurisationControlled,
                minreqtemperaturepressurisation=minTemp,
                yearlowestexptemp=EquOper,
                materialexposedtoclext=MFTF,
                lineronlinemonitoring=LOM,
                presencesulphideso2=PresenceofSulphides,
                presencesulphideso2shutdown=PresenceofSulphidesShutdown,
                componentiswelded=componentWelded,
                tankismaintained=tankIsMaintain,
                adjustmentsettle=adjustSettlement,
                externalenvironment=ExternalEnvironment,
                environmentsensitivity=EnvSensitivity,
                onlinemonitoring=OnlineMonitoring,
                thermalhistory=ThermalHistory,
                managementfactor=faci.managementfactor,
                volume=EquipmentVolumn)
            # rwequipment.save()

            rwcomponent = models.RwComponent(
                id=rwassessment,
                nominaldiameter=NorminalDiameter,
                allowablestress=allowablestresss,
                nominalthickness=NorminalThickness,
                currentthickness=CurrentThickness,
                minreqthickness=MinReqThickness,
                currentcorrosionrate=CurrentCorrosionRate,
                shellheight=shellHieght,
                damagefoundinspection=DFDI,
                crackspresent=PresenceCracks,
                # trampelements=trampElements,
                releasepreventionbarrier=preventBarrier,
                concretefoundation=concreteFoundation,
                brinnelhardness=MaxBrinell,
                structuralthickness=structuralthickness,
                complexityprotrusion=complex,
                minstructuralthickness=MinStructuralThickness,
                severityofvibration=severityVibration,
                brittlefracturethickness=BrittleFacture,
                confidencecorrosionrate=confidencecr)
            # rwcomponent.save()
            rwstream = models.RwStream(
                id=rwassessment,
                maxoperatingtemperature=maxOT,
                maxoperatingpressure=maxOP,
                minoperatingtemperature=minOT,
                minoperatingpressure=minOP,
                h2spartialpressure=float(OpHydroPressure),
                criticalexposuretemperature=CriticalTemp,
                tankfluidname=fluid,
                fluidheight=fluidHeight,
                fluidleavedikepercent=fluidLeaveDike,
                fluidleavedikeremainonsitepercent=fluidOnsite,
                fluidgooffsitepercent=fluidOffsite,
                naohconcentration=NaOHConcentration,
                releasefluidpercenttoxic=float(ReleasePercentToxic),
                chloride=ChlorideIon,
                co3concentration=CO3,
                h2sinwater=H2SInWater,
                waterph=float(PHWater),
                exposedtogasamine=exposureAcid,
                aminesolution=AminSolution,
                exposuretoamine=ExposureAmine,
                aqueousoperation=AqueOp,
                h2s=EnvCH2S,
                aqueousshutdown=AqueShutdown,
                cyanide=PresenceCyanides,
                hydrofluoric=HydrogenFluoric,
                caustic=EnvCaustic,
                hydrogen=hydrogen,
                materialexposedtoclint=materialExposedFluid,
                exposedtosulphur=ExposedSulfur)
            # rwstream.save()
            rwexcor = models.RwExtcorTemperature(id=rwassessment,
                                                 minus12tominus8=OP1,
                                                 minus8toplus6=OP2,
                                                 plus6toplus32=OP3,
                                                 plus32toplus71=OP4,
                                                 plus71toplus107=OP5,
                                                 plus107toplus121=OP6,
                                                 plus121toplus135=OP7,
                                                 plus135toplus162=OP8,
                                                 plus162toplus176=OP9,
                                                 morethanplus176=OP10)
            # rwexcor.save()
            rwcoat = models.RwCoating(
                id=rwassessment,
                internalcoating=InternalCoating,
                externalcoating=ExternalCoating,
                externalcoatingdate=ExternalCoatingDate,
                externalcoatingquality=ExternalCoatingQuality,
                supportconfignotallowcoatingmaint=supportMaterial,
                internalcladding=InternalCladding,
                claddingcorrosionrate=CladdingCorrosionRate,
                internallining=InternalLining,
                internallinertype=InternalLinerType,
                internallinercondition=InternalLinerCondition,
                externalinsulation=ExternalInsulation,
                insulationcontainschloride=InsulationCholride,
                externalinsulationtype=ExternalInsulationType,
                insulationcondition=InsulationCondition,
                claddingthickness=claddingthickness)
            # rwcoat.save()
            rwmaterial = models.RwMaterial(
                id=rwassessment,
                materialname=Material,
                designtemperature=MaxDesignTemp,
                mindesigntemperature=MinDesignTemp,
                designpressure=DesignPressure,
                referencetemperature=tempRef,
                # allowablestress=data['allowStress'],
                brittlefracturethickness=BrittleFacture,
                corrosionallowance=CorrosionAllowance,
                carbonlowalloy=CarbonAlloySteel,
                austenitic=AusteniticSteel,
                nickelbased=NickelAlloy,
                chromemoreequal12=Chromium,
                sulfurcontent=SulfurContent,
                heattreatment=heatTreatment,
                ispta=MaterialPTA,
                ptamaterialcode=PTAMaterialGrade,
                costfactor=MaterialCostFactor)
            # rwmaterial.save()

            rwinputca = models.RwInputCaTank(
                id=rwassessment,
                fluid_height=fluidHeight,
                shell_course_height=shellHieght,
                tank_diametter=tankDiameter,
                prevention_barrier=preventBarrier,
                environ_sensitivity=envsensitivity,
                p_lvdike=fluidLeaveDike,
                p_offsite=fluidOffsite,
                p_onsite=fluidOnsite,
                soil_type=soiltype,
                tank_fluid=fluid,
                api_fluid=APIFluid,
                sw=distance,
                productioncost=ProductionCost)
            # rwinputca.save()
            # Customize Caculate Here
            print("Save tank")
            # ReCalculate.ReCalculate(rwassessment.id)
        # return redirect('damgeFactor', proposalID=rwassessment.id)
        print("okok")
Exemplo n.º 3
0
def on_message(client, userdata, msg):
    split_arr = msg.topic.split('/')
    comp_id = split_arr[0]
    assess = split_arr[1]
    payload = msg.payload.decode()
    data = json.loads(payload)
    comp = models.ComponentMaster.objects.get(componentid=int(comp_id))
    facility_id = models.EquipmentMaster.objects.get(
        equipmentid=comp.equipmentid_id).facilityid_id
    target = models.FacilityRiskTarget.objects.get(facilityid=facility_id)
    faci = models.Facility.objects.get(facilityid=facility_id)
    data["APIComponentTypeID"] = models.ApiComponentType.objects.get(
        apicomponenttypeid=comp.apicomponenttypeid).apicomponenttypename
    data['equipmentType'] = models.EquipmentType.objects.get(
        equipmenttypeid=models.EquipmentMaster.objects.get(
            equipmentid=comp.equipmentid_id).equipmenttypeid_id
    ).equipmenttypename
    data['AssessmentDate'] = datetime.now()
    rw_assessment = models.RwAssessment(
        equipmentid_id=comp.equipmentid_id,
        componentid_id=comp.componentid,
        assessmentdate=data['AssessmentDate'],
        riskanalysisperiod=data['RiskAnalystPeriod'],
        isequipmentlinked=comp.isequipmentlinked,
        proposalname=assess)
    rw_assessment.save()
    rw_equipment = models.RwEquipment(
        id=rw_assessment,
        commissiondate=models.EquipmentMaster.objects.get(
            equipmentid=comp.equipmentid_id).commissiondate,
        adminupsetmanagement=data["AdminControlUpset"],
        containsdeadlegs=data["ContainsDeadlegs"],
        cyclicoperation=data["CylicOper"],
        highlydeadleginsp=data["Highly"],
        downtimeprotectionused=data["Downtime"],
        externalenvironment=data['ExternalEnvironment'],
        heattraced=data["HeatTraced"],
        interfacesoilwater=data["InterfaceSoilWater"],
        lineronlinemonitoring=data["LOM"],
        materialexposedtoclext=data["MFTF"],
        minreqtemperaturepressurisation=data["minTemp"],
        onlinemonitoring=data['OnlineMonitoring'],
        presencesulphideso2=data["PresenceofSulphides"],
        presencesulphideso2shutdown=data["PresenceofSulphidesShutdown"],
        pressurisationcontrolled=data["PressurisationControlled"],
        pwht=data["PWHT"],
        steamoutwaterflush=data["SteamedOut"],
        managementfactor=faci.managementfactor,
        thermalhistory=data['ThermalHistory'],
        yearlowestexptemp=data["EquOper"],
        volume=data["EquipmentVolumn"])
    rw_equipment.save()
    rwcomponent = models.RwComponent(
        id=rw_assessment,
        nominaldiameter=data["NorminalDiameter"],
        nominalthickness=data['NorminalThickness'],
        currentthickness=data['CurrentThickness'],
        minreqthickness=data['MinReqThickness'],
        currentcorrosionrate=data['CurrentCorrosionRate'],
        branchdiameter=data['BranchDiameter'],
        branchjointtype=data['BranchJointType'],
        brinnelhardness=data['MaxBrinell'],
        deltafatt=data['DeltaFATT'],
        chemicalinjection=data["ChemicalInjection"],
        highlyinjectioninsp=data["HFICI"],
        complexityprotrusion=data['complex'],
        correctiveaction=data['CorrectiveAction'],
        crackspresent=data["PresenceCracks"],
        cyclicloadingwitin15_25m=data['CylicLoad'],
        damagefoundinspection=data["DFDI"],
        numberpipefittings=data['NumberPipeFittings'],
        pipecondition=data['PipeCondition'],
        previousfailures=data['PreviousFailures'],
        shakingamount=data['ShakingAmount'],
        shakingdetected=data["VASD"],
        shakingtime=data['timeShakingPipe'],
        trampelements=data["TrampElements"])
    rwcomponent.save()
    rwstream = models.RwStream(
        id=rw_assessment,
        aminesolution=data['AminSolution'],
        aqueousoperation=data["AqueOp"],
        aqueousshutdown=data["AqueShutdown"],
        toxicconstituent=data["ToxicConstituents"],
        caustic=data["EnvCaustic"],
        chloride=data['ChlorideIon'],
        co3concentration=data['CO3'],
        cyanide=data["PresenceCyanides"],
        exposedtogasamine=data["exposureAcid"],
        exposedtosulphur=data["ExposedSulfur"],
        exposuretoamine=data['ExposureAmine'],
        h2s=data["EnvCH2S"],
        h2sinwater=data["H2SInWater"],
        hydrogen=data["hydrogen"],
        hydrofluoric=data["HydrogenFluoric"],
        materialexposedtoclint=data["materialExposedFluid"],
        maxoperatingpressure=data['maxOP'],
        maxoperatingtemperature=float(data['maxOT']),
        minoperatingpressure=float(data['minOP']),
        minoperatingtemperature=data['minOT'],
        criticalexposuretemperature=data['CriticalTemp'],
        naohconcentration=data['NaOHConcentration'],
        releasefluidpercenttoxic=float(data['ReleasePercentToxic']),
        waterph=float(data['PHWater']),
        h2spartialpressure=float(data['OpHydrogenPressure']))
    rwstream.save()
    rwexcor = models.RwExtcorTemperature(id=rw_assessment,
                                         minus12tominus8=data['Op1'],
                                         minus8toplus6=data['Op2'],
                                         plus6toplus32=data['Op3'],
                                         plus32toplus71=data['Op4'],
                                         plus71toplus107=data['Op5'],
                                         plus107toplus121=data['Op6'],
                                         plus121toplus135=data['Op7'],
                                         plus135toplus162=data['Op8'],
                                         plus162toplus176=data['Op9'],
                                         morethanplus176=data['Op10'])
    rwexcor.save()
    rwcoat = models.RwCoating(
        id=rw_assessment,
        externalcoating=data["ExternalCoating"],
        externalinsulation=data["ExternalInsulation"],
        internalcladding=data["InternalCladding"],
        internalcoating=data["InternalCoating"],
        internallining=data["InternalLining"],
        externalcoatingdate=data["ExternalCoatingDate"],
        externalcoatingquality=data['ExternalCoatingQuality'],
        externalinsulationtype=data["ExternalInsulationType"],
        insulationcondition=data['InsulationCondition'],
        insulationcontainschloride=data["InsulationCholride"],
        internallinercondition=data['InternalLinerCondition'],
        internallinertype=data['InternalLinerType'],
        claddingcorrosionrate=data["CladdingCorrosionRate"],
        supportconfignotallowcoatingmaint=data["supportMaterial"])
    rwcoat.save()
    rwmaterial = models.RwMaterial(
        id=rw_assessment,
        corrosionallowance=data["CorrosionAllowance"],
        materialname=data['Material'],
        designpressure=data['DesignPressure'],
        designtemperature=data['MaxDesignTemp'],
        ishtha=data["MaterialHTHA"],
        mindesigntemperature=data['MinDesignTemp'],
        brittlefracturethickness=data['BrittleFacture'],
        sigmaphase=data['SigmaPhase'],
        sulfurcontent=data["SulfurContent"],
        heattreatment=data['heatTreatment'],
        referencetemperature=data["tempRef"],
        ptamaterialcode=data['PTAMaterialGrade'],
        hthamaterialcode=data['HTHAMaterialGrade'],
        ispta=data["MaterialPTA"],
        austenitic=data["AusteniticSteel"],
        temper=data["SusceptibleTemper"],
        carbonlowalloy=data["CarbonAlloySteel"],
        nickelbased=data["NickelAlloy"],
        chromemoreequal12=data["Chromium"],
        allowablestress=data['allowStress'],
        costfactor=data['MaterialCostFactor'])
    rwmaterial.save()
    rwinputca = models.RwInputCaLevel1(
        id=rw_assessment,
        api_fluid=data['APIFluid'],
        system=data['System'],
        release_duration=data['ReleaseDuration'],
        detection_type=data['DetectionType'],
        isulation_type=data['InsulationType'],
        mitigation_system=data['MitigationSystem'],
        equipment_cost=data['EquipmentCost'],
        injure_cost=data['InjureCost'],
        evironment_cost=data['EnvironmentCost'],
        toxic_percent=data['ToxicPercent'],
        personal_density=data['PersonDensity'],
        material_cost=data['MaterialCostFactor'],
        production_cost=data['ProductionCost'],
        mass_inventory=data['MassInventory'],
        mass_component=data['MassComponent'],
        stored_pressure=float(data['minOP']) * 6.895,
        stored_temp=data['minOT'])
    rwinputca.save()
    print("Calculating...")
    ReCalculate.ReCalculate(rw_assessment.id)
    print("Finished!")
Exemplo n.º 4
0
def on_message(client, obj, msg):
	# humi = str(msg.payload)
    print(msg.topic + " || " + str(msg.qos) + " || " + str(msg.payload))
    # print(humi)
    comp_id = msg.topic.split('/')[0]
    assess = msg.topic.split('/')[1]
    topic = msg.topic.split('/')[2]
    temp = str(msg.payload)
    rw_assessment = {}
    rw_equipment = {}
    if topic == "assessment":
        comp = models.ComponentMaster.objects.get(componentid= int(comp_id))
        facility_id = models.EquipmentMaster.objects.get(equipmentid=comp.equipmentid_id).facilityid_id
        target = models.FacilityRiskTarget.objects.get(facilityid=facility_id)
        faci = models.Facility.objects.get(facilityid=facility_id)
        length = len(temp) - 1
        # print(temp[2:length])
        # temp1 = json.dumps(temp[2:length], sort_keys=True)
        # temp2 = temp1.replace("'", "")
        json_assess = eval(temp[2:length])
        print(json_assess)
        # Sensor_ID = json_assess["Sensor_ID"]
        # print(str(Sensor_ID))
        # Date_n_Time = json_assess["Date"]
        # print(Date_n_Time)
        # Temperature = json_assess["Temperature"]
        # print(Temperature)
        # new Component Master
        # comp_num = ["ComponentNumber"]
        # eq_id = ["EquipmentID"]
        # comp_type_id = ["ComponentTypeID"]
        # comp_name = ["ComponentName"]
        # comp_desc = ["ComponentDesc"]
        # is_eq_linked = ["IsEquipmentLinked"]
        # api_comp_type_id = 
        # ["Create"]
        # Assessment - rw_component
        json_assess["APIComponentTypeID"] = models.ApiComponentType.objects.get(apicomponenttypeid=comp.apicomponenttypeid).apicomponenttypename
        json_assess['equipmentType'] = models.EquipmentType.objects.get(equipmenttypeid=models.EquipmentMaster.objects.get(equipmentid=comp.equipmentid_id).equipmenttypeid_id).equipmenttypename
        json_assess['AssessmentDate'] = datetime.now()
        rw_assessment = models.RwAssessment(equipmentid_id=comp.equipmentid_id, componentid_id=comp.componentid, assessmentdate=json_assess['AssessmentDate'],
                                            riskanalysisperiod=json_assess['RiskAnalystPeriod'], isequipmentlinked= comp.isequipmentlinked,
                                            proposalname=assess)
        rw_assessment.save()

    if topic == "equipment":
        json_eq = eval(temp[2:length])
        rw_equipment = models.RwEquipment(id=rwassessment, commissiondate=models.EquipmentMaster.objects.get(equipmentid= comp.equipmentid_id).commissiondate,
                                      adminupsetmanagement=json_eq["AdminControlUpset"], containsdeadlegs=json_eq["ContainsDeadlegs"],
                                      cyclicoperation=json_eq["CylicOper"], highlydeadleginsp=json_eq["Highly"],
                                      downtimeprotectionused=json_eq["Downtime"], externalenvironment=json_eq['ExternalEnvironment'],
                                      heattraced=json_eq["HeatTraced"], interfacesoilwater=json_eq["InterfaceSoilWater"],
                                      lineronlinemonitoring=json_eq["LOM"], materialexposedtoclext=json_eq["MFTF"],
                                      minreqtemperaturepressurisation=json_eq["minTemp"],
                                      onlinemonitoring=json_eq['OnlineMonitoring'], presencesulphideso2=json_eq["PresenceofSulphides"],
                                      presencesulphideso2shutdown=json_eq["PresenceofSulphidesShutdown"],
                                      pressurisationcontrolled=json_eq["PressurisationControlled"], pwht=json_eq["PWHT"], steamoutwaterflush=json_eq["SteamedOut"],
                                      managementfactor= faci.managementfactor, thermalhistory=json_eq['ThermalHistory'],
                                      yearlowestexptemp=json_eq["EquOper"], volume=json_eq["EquipmentVolumn"])
        rw_equipment.save()
    if topic == "component":
        json_comp = eval(temp[2:length])
        rwcomponent = models.RwComponent(id=rwassessment, nominaldiameter=json_comp["NorminalDiameter"],
                                      nominalthickness=json_comp['NorminalThickness'], currentthickness=json_comp['CurrentThickness'],
                                      minreqthickness=json_comp['MinReqThickness'], currentcorrosionrate=json_comp['CurrentCorrosionRate'],
                                      branchdiameter=json_comp['BranchDiameter'], branchjointtype=json_comp['BranchJointType'],
                                      brinnelhardness=json_comp['MaxBrinell']
                                      , deltafatt=json_comp['DeltaFATT'], chemicalinjection=json_comp["ChemicalInjection"],
                                      highlyinjectioninsp=json_comp["HFICI"], complexityprotrusion=json_comp['complex'],
                                      correctiveaction=json_comp['CorrectiveAction'], crackspresent=json_comp["PresenceCracks"],
                                      cyclicloadingwitin15_25m=json_comp['CylicLoad'],
                                      damagefoundinspection=json_comp["DFDI"], numberpipefittings=json_comp['NumberPipeFittings'],
                                      pipecondition=json_comp['PipeCondition'],
                                      previousfailures=json_comp['PreviousFailures'], shakingamount=json_comp['ShakingAmount'],
                                      shakingdetected=json_comp["VASD"], shakingtime=json_comp['timeShakingPipe'],
                                      trampelements=json_comp["TrampElement"])
        rwcomponent.save()
    if topic == "rw_stream":
        json_stream = eval(temp[2:length])
        rwstream = models.RwStream(id=rwassessment, aminesolution=json_stream['AminSolution'], aqueousoperation=json_stream["AqueOp"],
                                aqueousshutdown=json_stream["AqueShutdown"], toxicconstituent=json_stream["ToxicConstituents"],
                                caustic=json_stream["EnvCaustic"],
                                chloride=json_stream['ChlorideIon'], co3concentration=json_stream['CO3'], cyanide=json_stream["PresenceCyanides"],
                                exposedtogasamine=json_stream["exposureAcid"], exposedtosulphur=json_stream["ExposedSulfur"],
                                exposuretoamine=json_stream['ExposureAmine'],
                                h2s=json_stream["EnvCH2S"], h2sinwater=json_stream['"H2SInWater"'], hydrogen=json_stream["ProcesHydrogen"],
                                hydrofluoric=json_stream["HydrogenFluoric"], materialexposedtoclint=json_stream["materialExposedFluid"],
                                maxoperatingpressure=json_stream['maxOP'],
                                maxoperatingtemperature=float(json_stream['maxOT']), minoperatingpressure=float(json_stream['minOP']),
                                minoperatingtemperature=json_stream['minOT'], criticalexposuretemperature=json_stream['criticalTemp'],
                                naohconcentration=json_stream['NaOHConcentration'],
                                releasefluidpercenttoxic=float(json_stream['ReleasePercentToxic']),
                                waterph=float(json_stream['PHWater']), h2spartialpressure=float(json_stream['OpHydroPressure']))
            rwstream.save()