示例#1
0
 public function getInputDataSet($postData, $occur_date)
 {
     $phase_type = $postData['ExtensionPhaseType'];
     $value_type = $postData['ExtensionValueType'];
     $data_source = $postData['ExtensionDataSource'];
     $objs = $this->getPostObjects($postData);
     $objdata = array();
     $objinfo = [];
     foreach ($objs as $obj) {
         if ($obj) {
             $ss = explode(":", $obj);
             $obj_id = $ss[1];
             $src = $ss[0];
             $obj_name = $ss[2];
             $pre = $src;
             $pvalue = $src;
             $ele = $this->getElement($obj_name);
             $where = ["OCCUR_DATE" => $occur_date];
             if ($src == "ENERGY_UNIT") {
                 $pre = "EU";
                 $pvalue = $pre;
                 $where['FLOW_PHASE'] = $phase_type;
             } else {
                 if ($src == "FLOW") {
                     $pvalue = "FL";
                 }
             }
             $where["{$pre}" . "_ID"] = $obj_id;
             $qlty_src_type = CodeQltySrcType::where('CODE', '=', $src)->first();
             $mdl = $this->getObjectTable($src, $data_source);
             $objectData = $mdl::where($where)->select("OBS_TEMP", "OBS_PRESS", "{$pvalue}" . "_DATA_{$value_type} as OBJ_VALUE")->orderBy('OCCUR_DATE')->first();
             $qltyData = QltyData::getTableName();
             $qltyProductElementType = QltyProductElementType::getTableName();
             $qltyDataDetail = QltyDataDetail::getTableName();
             $qlty_datas = QltyData::join($qltyDataDetail, "{$qltyData}.ID", '=', "{$qltyDataDetail}.QLTY_DATA_ID")->join($qltyProductElementType, function ($query) use($qltyDataDetail, $phase_type, $qltyProductElementType) {
                 $query->on("{$qltyDataDetail}.ELEMENT_TYPE", '=', "{$qltyProductElementType}.ID")->where("{$qltyProductElementType}.PRODUCT_TYPE", '=', $phase_type);
             })->whereHas('CodeQltySrcType', function ($query) use($src) {
                 $query->where("CODE", $src)->skip(0)->take(1);
             })->where("{$qltyData}.SRC_ID", $obj_id)->where("{$qltyData}.PRODUCT_TYPE", $phase_type)->where('EFFECTIVE_DATE', '=', $occur_date)->select("{$qltyProductElementType}.NAME", "{$qltyDataDetail}.MOLE_FACTION")->get();
             // 				foreach($workingDataSet as $objectData){
             if ($objectData) {
                 foreach ($qlty_datas as $qlty) {
                     if (array_key_exists($qlty->NAME, $ele)) {
                         $ele[$qlty->NAME] = $qlty->MOLE_FACTION ? $qlty->MOLE_FACTION : 0;
                     }
                 }
                 $ele["Pressure"] = \Helper::getRoundValue($objectData->OBS_PRESS);
                 $ele["Temperature"] = \Helper::getRoundValue($objectData->OBS_TEMP);
                 $ele["Volume"] = \Helper::getRoundValue($objectData->OBJ_VALUE);
                 $objdata["{$src}" . "_{$obj_id}"] = $ele;
                 $objinfo[] = array("src" => $src, "pre" => $pre, "obj_id" => $obj_id);
             }
             // 				}
         }
     }
     return ['data' => $objdata, 'info' => $objinfo];
 }
示例#2
0
 public function edit(Request $request)
 {
     $postData = $request->all();
     $id = $postData['id'];
     //     	$ptype= QltyData::find($id)->get('PRODUCT_TYPE');
     $dcTable = QltyData::getTableName();
     $qltyDataDetail = QltyDataDetail::getTableName();
     $qltyProductElementType = QltyProductElementType::getTableName();
     $properties = $this->getOriginProperties($qltyDataDetail);
     $dataSet = QltyProductElementType::join($dcTable, function ($query) use($dcTable, $id, $qltyProductElementType) {
         $query->on("{$dcTable}.PRODUCT_TYPE", '=', "{$qltyProductElementType}.PRODUCT_TYPE")->where("{$dcTable}.ID", '=', $id);
     })->leftJoin($qltyDataDetail, function ($join) use($qltyDataDetail, $id, $qltyProductElementType) {
         $join->on("{$qltyDataDetail}.ELEMENT_TYPE", '=', "{$qltyProductElementType}.ID")->where("{$qltyDataDetail}.QLTY_DATA_ID", '=', $id);
     })->select("{$qltyProductElementType}.ID as ID", "{$qltyProductElementType}.ID as DT_RowId", "{$qltyProductElementType}.ORDER", "{$qltyProductElementType}.NAME", "{$qltyProductElementType}.PRODUCT_TYPE", "{$qltyProductElementType}.DEFAULT_UOM", "{$qltyDataDetail}.*")->get();
     $datasetGroups = $dataSet->groupBy(function ($item, $key) {
         return $item['DEFAULT_UOM'] == 'Mole fraction' ? 'MOLE_FACTION' : 'NONE_MOLE_FACTION';
     });
     $results = [];
     if ($datasetGroups->has('NONE_MOLE_FACTION')) {
         $gasElementColumns = ['ELEMENT_TYPE', 'VALUE', 'UOM'];
         $noneMole = $properties->groupBy(function ($item, $key) use($gasElementColumns) {
             return in_array($item->name, $gasElementColumns) ? 'NONE_MOLE_FACTION' : 'MOLE_FACTION';
         });
         $results['NONE_MOLE_FACTION'] = ['properties' => $noneMole['NONE_MOLE_FACTION'], 'dataSet' => $datasetGroups['NONE_MOLE_FACTION']];
     }
     if ($datasetGroups->has('MOLE_FACTION')) {
         $oilElementColumns = ['VALUE', 'UOM'];
         $noneMole = $properties->groupBy(function ($item, $key) use($oilElementColumns) {
             return in_array($item->name, $oilElementColumns) ? 'NONE_MOLE_FACTION' : 'MOLE_FACTION';
         });
         $results['MOLE_FACTION'] = ['properties' => $noneMole['MOLE_FACTION'], 'dataSet' => $datasetGroups['MOLE_FACTION']];
     }
     return response()->json($results);
 }