Files
2026-09-03 11:24:19 +02:00

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);
?>