181 lines
6.8 KiB
PHP
181 lines
6.8 KiB
PHP
<?php
|
|
require_once("../func.php");
|
|
require_once("../dbaccess.php");
|
|
require_once('../polynomial/math.php');
|
|
$polacz = mysql_connect($db_host, $db_user, $db_user_pass) or die ('cannot connect to db');
|
|
mysql_select_db($db_name);
|
|
mysql_query("SET NAMES utf8");
|
|
mysql_query("SET CHARACTER_SET utf8_general_ci");
|
|
|
|
|
|
function getPolyHp($dataArray,$inParam)
|
|
{
|
|
unset($resVal);unset($tbArray);
|
|
for($i=0; $i<count($dataArray); $i++)
|
|
$tbArray[] = array($dataArray[$i]['q'],$dataArray[$i]['h']);
|
|
|
|
if (count($tbArray)>1)
|
|
{
|
|
$polynomial = new zc_math_polynomial($tbArray);
|
|
$polynomial->calculate_coefficients();
|
|
$resVal = $polynomial->get_y($inParam);
|
|
}
|
|
else
|
|
$resVal=0;
|
|
|
|
return round($resVal,2);
|
|
}
|
|
function getPolyPe($dataArray,$inParam)
|
|
{
|
|
unset($resVal);unset($tbArray);
|
|
for($i=0; $i<count($dataArray); $i++)
|
|
$tbArray[] = array($dataArray[$i]['q'],$dataArray[$i]['p']);
|
|
|
|
if (count($tbArray)>1)
|
|
{
|
|
$polynomial = new zc_math_polynomial($tbArray);
|
|
$polynomial->calculate_coefficients();
|
|
$resVal = $polynomial->get_y($inParam);
|
|
}
|
|
else
|
|
$resVal=0;
|
|
|
|
return round($resVal,2);
|
|
}
|
|
|
|
|
|
|
|
echo"START: ".date('Y-m-d H:i:m')."<br/>";
|
|
|
|
$listWellArray = sqlGetResAsArray("select DRS_ID,WLL_ID,WLL_NAME,getLastValue(507,DRS_ID) W_STAT,WLL_CAT_DIC_ID,RWL_PUP_DRS_ID,RWL_ENG_DRS_ID from seg_dev_resources,seg_well_pump_eng_rel left join seg_wells on RWL_WLL_ID=WLL_ID where DRS_DEV_ID=RWL_WLL_ID and DRS_DEV_TYPE=12");
|
|
|
|
|
|
for ($i=0; $i<count($listWellArray); $i++)
|
|
{
|
|
unset($roundArray); unset($ocena); unset($tstID);
|
|
$roundArray = sqlGetResAsArray("select RHD_HD_VAL,RHD_Q_VAL,RHD_P1_VAL,RHD_P2_VAL,RHD_PE_VAL,RHD_PP_VAL,RHD_HH_VAL from rep_his_data_everyday where RHD_ID=(select max(RHD_ID) from rep_his_data_everyday where RHD_DRS_ID=".$listWellArray[$i]['DRS_ID'].")");
|
|
|
|
unset($HHparam);unset($PPparam);unset($PEparam);unset($P2param);unset($P1param);unset($qParam);unset($resHD);
|
|
|
|
$resHD = (float) $roundArray[0]['RHD_HD_VAL'];
|
|
$qParam = (float) $roundArray[0]['RHD_Q_VAL'];
|
|
$P1param = (float) $roundArray[0]['RHD_P1_VAL'];
|
|
$P2param = (float) $roundArray[0]['RHD_P2_VAL'];
|
|
$PEparam = (float) $roundArray[0]['RHD_PE_VAL'];
|
|
$PPparam = (float) $roundArray[0]['RHD_PP_VAL'];
|
|
$HHparam = (float) $roundArray[0]['RHD_HH_VAL'];
|
|
|
|
|
|
//jeśli włączona
|
|
if ($listWellArray[$i]['W_STAT']=='ON')
|
|
{
|
|
//jeśli OPT lub BASE
|
|
if ($listWellArray[$i]['WLL_CAT_DIC_ID']<20)
|
|
{
|
|
//sprawdza jakość danych z SYNDIS
|
|
unset($qualDataArray); unset($pupArray); unset($engArray); unset($probaArray); unset($podSP); unset($mocSP);
|
|
$qualDataArray = sqlGetResAsArray("select * from rep_soap_syndis_quality_data where SQD_DRS_ID=".$listWellArray[$i]['DRS_ID']);
|
|
|
|
//pobiera dane do porównania ze stacji prób
|
|
$pupArray = sqlGetResAsArray("select PUP_ID,PUP_NAME,PUP_Q_N,DRS_SN_NUMBER from seg_dev_resources,seg_pumps where PUP_ID=DRS_DEV_ID and DRS_DEV_TYPE=10 and DRS_ID=".$listWellArray[$i]['RWL_PUP_DRS_ID']);
|
|
$engArray = sqlGetResAsArray("select ENG_ID,ENG_NAME,DRS_SN_NUMBER from seg_dev_resources,seg_engines where ENG_ID=DRS_DEV_ID and DRS_DEV_TYPE=11 and DRS_ID=".$listWellArray[$i]['RWL_ENG_DRS_ID']);
|
|
|
|
//pobiera numer próby
|
|
$tstID = sqlValue("select TST_ID from tst_tests where TST_PUP_ID=".$pupArray[0]['PUP_ID']." and TST_PUP_SN_NO='".$pupArray[0]['DRS_SN_NUMBER']."' and TST_ENG_SN_NO='".$engArray[0]['DRS_SN_NUMBER']."'");
|
|
if (empty($tstID)) $tstID = sqlValue("select TST_ID from tst_tests where TST_PUP_ID=".$pupArray[0]['PUP_ID']." and TST_PUP_SN_NO='".$pupArray[0]['DRS_SN_NUMBER']."'");
|
|
|
|
if ($tstID>0)
|
|
{
|
|
$wynik = mysql_query("select TSD_VAL_04,TSD_VAL_08,TSD_VAL_14 from tst_tests left join tst_test_details on TSD_TST_ID=TST_ID where TST_ID=".$tstID." order by TSD_MSR_STEP");
|
|
if($wynik)while ($r = mysql_fetch_array($wynik))
|
|
{
|
|
$probaArray[] = array(
|
|
'q' => (float) $r["TSD_VAL_04"],
|
|
'h' => (float) $r["TSD_VAL_08"],
|
|
'p' => (float) $r["TSD_VAL_14"]
|
|
);
|
|
}
|
|
|
|
$podSP = (float) getPolyHp($probaArray,$qualDataArray[0]['SQD_VAL_Q']);
|
|
$mocSP = (float) getPolyPe($probaArray,$qualDataArray[0]['SQD_VAL_Q']);
|
|
}
|
|
|
|
if (!empty($qualDataArray) && (
|
|
$qualDataArray[0]['SQD_FLG_Q']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_P1']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_P2']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_PP']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_HH']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_HD']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_I']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_U']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_CF']!='CORRECT'
|
|
// || $qualDataArray[0]['SQD_FLG_PE']!='CORRECT'
|
|
|
|
|| $qualDataArray[0]['SQD_VAL_Q']<=0
|
|
// || (($qualDataArray[0]['SQD_VAL_P2']-1.5)>$qualDataArray[0]['SQD_VAL_P1'])
|
|
// || $qualDataArray[0]['SQD_VAL_PP']<=0
|
|
// || $qualDataArray[0]['SQD_VAL_HH']<=0
|
|
// || $qualDataArray[0]['SQD_VAL_HD']<=0
|
|
// || $qualDataArray[0]['SQD_VAL_I']<=0
|
|
// || $qualDataArray[0]['SQD_VAL_U']<=0
|
|
// || $qualDataArray[0]['SQD_VAL_CF']<=0
|
|
// || $qualDataArray[0]['SQD_VAL_CF']>=1
|
|
// || $qualDataArray[0]['SQD_VAL_PE']<=0
|
|
))
|
|
{
|
|
$ocena = "NN";
|
|
}
|
|
// elseif ($tstID>0 && $podSP>0 && $mocSP>0 && ($qualDataArray[0]['SQD_VAL_PE'] < (0.83*$mocSP) || $qualDataArray[0]['SQD_VAL_PE'] > (1.25*$mocSP) || ($qualDataArray[0]['SQD_VAL_PP'] - $qualDataArray[0]['SQD_VAL_HH']) > (1.08*$podSP)))
|
|
// {
|
|
// $ocena = "NN";
|
|
// }
|
|
else {
|
|
if ($qParam>0 && $PEparam>0)
|
|
{
|
|
$resETA = ($qParam*($resHD+$P2param))/(367*$PEparam);
|
|
$RedYellowParam = setRedYellowLimes($pupArray[0]['PUP_Q_N']);
|
|
$YellowGreenParam = setYellowGreenLimes($pupArray[0]['PUP_Q_N']);
|
|
|
|
if ($resETA<=$RedYellowParam)
|
|
$ocena = "R";
|
|
elseif ($RedYellowParam<$resETA && $resETA<=$YellowGreenParam)
|
|
$ocena = "Y";
|
|
elseif ($resETA>$YellowGreenParam)
|
|
$ocena = "G";
|
|
}
|
|
else
|
|
$ocena = "NN";
|
|
}
|
|
}
|
|
else
|
|
$ocena = "NN";
|
|
|
|
}
|
|
else
|
|
$ocena = "NN";
|
|
|
|
|
|
|
|
//jeśli istnieje - aktualizuje
|
|
if (sqlValue("select count(*) from rep_soap_well_energy where SWE_DRS_ID=".$listWellArray[$i]['DRS_ID'])>0)
|
|
{
|
|
mysql_query("UPDATE rep_soap_well_energy SET SWE_VALUE='".$ocena."',SWE_WORK_STATUS='".$listWellArray[$i]['W_STAT']."',SWE_AUDIT_USR='cron',SWE_AUDIT_DATE=now() WHERE SWE_DRS_ID=".$listWellArray[$i]['DRS_ID']);
|
|
}
|
|
//dodaje nowy
|
|
else
|
|
{
|
|
mysql_query("insert into rep_soap_well_energy SET SWE_DRS_ID=".$listWellArray[$i]['DRS_ID'].",SWE_WELL_ID=".$listWellArray[$i]['WLL_ID'].",SWE_NAME='".$listWellArray[$i]['WLL_NAME']."',SWE_VALUE='".$ocena."',SWE_WORK_STATUS='".$listWellArray[$i]['W_STAT']."',SWE_AUDIT_USR='cron',SWE_AUDIT_DATE=now()");
|
|
}
|
|
|
|
}
|
|
|
|
echo"Zaktualizowano: ".count($listWellArray)."<br/>";
|
|
echo"STOP: ".date('Y-m-d H:i:m')."<br/>";
|
|
|
|
unset($listWellArray);
|
|
//rep_soap_well_energy
|
|
|
|
|
|
mysql_close($polacz);
|
|
?>
|