Initial commit
This commit is contained in:
@@ -0,0 +1,297 @@
|
||||
|
||||
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8">
|
||||
<?php
|
||||
error_reporting(E_ALL);
|
||||
echo 'starting ...<br>';
|
||||
require_once("soap.php");
|
||||
$cl = new SyndisConnector("http://172.21.11.101/SyndisSpm.wsdl"); //zmienić URL na inny - ten kieruje na moj komputer
|
||||
//$cl->__setLocation('http://172.20.43.10:3615/');
|
||||
$cl->__setLocation('http://172.21.11.101:3615/');
|
||||
echo 'connected ...<br>';
|
||||
echo 'Start: '.date("Y-m-d H:i:s").'<br/><br/>';
|
||||
|
||||
$scriptDate = date("Y-m-d H:i:s");
|
||||
|
||||
date_default_timezone_set('Europe/Warsaw');
|
||||
require_once("func.php");
|
||||
require_once("dbaccess.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 convertData($insertDate)
|
||||
{
|
||||
unset($res);
|
||||
//re-contruct to format
|
||||
$res = date('Y-m-d H:i:s', strtotime($insertDate));
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
function convertDateToUTC($insertDate)
|
||||
{
|
||||
unset($utcDate);
|
||||
|
||||
$getCurMonth = (int) date('m');
|
||||
|
||||
if ($getCurMonth>3 && $getCurMonth<11)
|
||||
$offset = 2 * 60 * 60;
|
||||
else
|
||||
$offset = 60 * 60;
|
||||
// =========================================
|
||||
$utcDate = date('Y-m-d\TH:i:s\Z', strtotime($insertDate)- $offset);
|
||||
|
||||
return $utcDate;
|
||||
}
|
||||
|
||||
function reqSyndisForUTCdate($insertDate)
|
||||
{
|
||||
unset($utcDate);
|
||||
|
||||
$getCurMonth = (int) date('m');
|
||||
|
||||
if ($getCurMonth>3 && $getCurMonth<11)
|
||||
$offset = 3 * 60 * 60;
|
||||
else
|
||||
$offset = 2 * 60 * 60;
|
||||
// =========================================
|
||||
$utcDate = date('Y-m-d\TH:i:s\Z', strtotime($insertDate)- $offset);
|
||||
|
||||
return $utcDate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
function time_to_int($inParam)
|
||||
{
|
||||
unset($outParam);
|
||||
$outParam = (float) str_replace(array(' ','-',':'), array('','',''), $inParam);
|
||||
|
||||
return $outParam;
|
||||
}
|
||||
|
||||
function objectToArray($d) {
|
||||
if (is_object($d)) {
|
||||
// Gets the properties of the given object
|
||||
// with get_object_vars function
|
||||
$d = get_object_vars($d);
|
||||
}
|
||||
|
||||
if (is_array($d)) {
|
||||
/*
|
||||
* Return array converted to object
|
||||
* Using __FUNCTION__ (Magic constant)
|
||||
* for recursive call
|
||||
*/
|
||||
return array_map(__FUNCTION__, $d);
|
||||
}
|
||||
else {
|
||||
// Return array
|
||||
return $d;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function split_to_array($inArray)
|
||||
{
|
||||
unset($outArray); unset($newArray);
|
||||
$newArray = objectToArray($inArray);
|
||||
|
||||
echo'split_to_array: '.count($newArray['probes']).'<br>';
|
||||
|
||||
|
||||
if (count($newArray['probes'])==1 || count($newArray['probes'])==4)
|
||||
{
|
||||
echo'Wszedł w pierwszy warunek <br/><br/>';
|
||||
|
||||
unset($tmpStat); $tmpStat = (int) $newArray['probes']['value'];
|
||||
if ($tmpStat==1) $tmpStat="ON"; else $tmpStat="OFF";
|
||||
|
||||
$outArray[] = array(
|
||||
'value' => $tmpStat,
|
||||
'date' => convertData($newArray['probes']['date']),
|
||||
'reason' => $newArray['probes']['reason']
|
||||
);
|
||||
}
|
||||
elseif (count($newArray['probes'])!=1 && count($newArray['probes'])!=4)
|
||||
{
|
||||
echo'Wszedł w drugi warunek <br/><br/>';
|
||||
|
||||
$tmpArray = $newArray['probes'];
|
||||
foreach ($tmpArray as $tb)
|
||||
{
|
||||
unset($tmpStat); $tmpStat = (int) $tb['value'];
|
||||
if ($tmpStat==1) $tmpStat="ON"; else $tmpStat="OFF";
|
||||
|
||||
$outArray[] = array(
|
||||
'value' => $tmpStat,
|
||||
'date' => convertData($tb['date']),
|
||||
'reason' => $tb['reason']
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$outArray = null;
|
||||
}
|
||||
|
||||
return $outArray;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// pobieramy tablice studni
|
||||
$ile_zmian=0;
|
||||
$well_array=null;
|
||||
$wynik = mysql_query("select WLL_NAME from seg_wells,seg_well_pump_eng_rel where RWL_WLL_ID=WLL_ID and WLL_CAT_DIC_ID in (18,19)");
|
||||
if($wynik)while ($r = mysql_fetch_array($wynik))
|
||||
{
|
||||
$well_array[] = $r["WLL_NAME"];
|
||||
}
|
||||
$wl = $cl->GetWellsDataAsArray($well_array);
|
||||
|
||||
//pobiera informacje o statusie pompy (załączniku - czy się zmianił oraz o łącznoiści)
|
||||
// ============================================================================================ //
|
||||
for($i=0; $i<count($wl['wells']); $i++)
|
||||
{
|
||||
unset($syndisStatus);
|
||||
// IF 01 =============================================================================== //
|
||||
if ($wl['wells'][$i]['pumpOnOff']['value']==0) $syndisStatus = "OFF";
|
||||
elseif ($wl['wells'][$i]['pumpOnOff']['value']==1) $syndisStatus = "ON";
|
||||
// ENDIF 01 =============================================================================== //
|
||||
|
||||
// sprawdza, czy nie ma błędnego statusu w historii
|
||||
$ilePowtorzen_01 = 20;
|
||||
$ilePowtorzen_02 = $ilePowtorzen_01-7;
|
||||
unset($isNotrealiableSaved);
|
||||
$isNotrealiableSaved = sqlGetResAsArray("select * from rep_soap_syndis_notrealiable_onoff where NOT_ID=(select max(NOT_ID) from rep_soap_syndis_notrealiable_onoff where NOT_WELL_NAME='".$wl['wells'][$i]['well']['id']."' and NOT_AUDIT_END_DATE is null)");
|
||||
|
||||
|
||||
|
||||
// jeśli jest wszystko OK - normalna praca
|
||||
// IF 02 =============================================================================== //
|
||||
if ($wl['wells'][$i]['transmissionState']['value']==1 && count($isNotrealiableSaved)==0)
|
||||
{
|
||||
unset($wellLastStatusArray);
|
||||
$wellLastStatusArray = sqlGetResAsArray("select * from seg_dev_resources_det where DRD_ID=(select max(DRD_ID) from seg_dev_resources_det where DRD_RESOURCES_DETAIL=507 and DRD_AUDIT_USR='SYNDIS' and DRD_DRS_ID=(select DRS_ID from seg_dev_resources,seg_wells where DRS_DEV_TYPE=12 and DRS_DEV_ID=WLL_ID and WLL_NAME='".$wl['wells'][$i]['well']['id']."'))");
|
||||
|
||||
// jeśli nie zwraca żadnych wyników - sprawdza w tabeli historycznej
|
||||
if (count($wellLastStatusArray)<=0)
|
||||
{
|
||||
unset($wellLastStatusArray);
|
||||
$wellLastStatusArray = sqlGetResAsArray("select * from seg_dev_resources_det_his where DRD_ID=(select max(DRD_ID) from seg_dev_resources_det_his where DRD_RESOURCES_DETAIL=507 and DRD_AUDIT_USR='SYNDIS' and DRD_DRS_ID=(select DRS_ID from seg_dev_resources,seg_wells where DRS_DEV_TYPE=12 and DRS_DEV_ID=WLL_ID and WLL_NAME='".$wl['wells'][$i]['well']['id']."'))");
|
||||
}
|
||||
|
||||
|
||||
// sprawdza datę oraz status ostatniego pomiaru i porównuje ją z ostatnią z pomiarów w bazie
|
||||
if(
|
||||
time_to_int(convertData($wl['wells'][$i]['pumpOnOff']['date'])) != time_to_int($wellLastStatusArray[0]['DRD_AUDIT_DATE'])
|
||||
||
|
||||
$syndisStatus != $wellLastStatusArray[0]['DRD_VALUE']
|
||||
|
||||
)
|
||||
{
|
||||
unset($syndisDate); unset($sqlDate);
|
||||
//którą datę bierzemy pod uwagę
|
||||
if (time_to_int(convertData($wl['wells'][$i]['pumpOnOff']['date'])) < time_to_int($wellLastStatusArray[0]['DRD_AUDIT_DATE']))
|
||||
{
|
||||
// $syndisDate = $wl['wells'][$i]['pumpOnOff']['date'];
|
||||
$syndisDate = reqSyndisForUTCdate(convertData($wl['wells'][$i]['pumpOnOff']['date']));
|
||||
$sqlDate = convertData($wl['wells'][$i]['pumpOnOff']['date']);
|
||||
}
|
||||
else
|
||||
{
|
||||
//$syndisDate = convertDateToUTC($wellLastStatusArray[0]['DRD_AUDIT_DATE']);
|
||||
$syndisDate = reqSyndisForUTCdate($wellLastStatusArray[0]['DRD_AUDIT_DATE']);
|
||||
$sqlDate = $wellLastStatusArray[0]['DRD_AUDIT_DATE'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
echo'syndisDate: '.$syndisDate.'<br/>';
|
||||
echo'sqlDate: '.$sqlDate.'<br/>';
|
||||
|
||||
//pobiera historię z SYNDIS
|
||||
unset($hisOnOffArray);
|
||||
$hisOnOffArray = split_to_array($cl->GetPumpSwitchAndReasonsHistory($wl['wells'][$i]['well']['id'],$syndisDate));
|
||||
|
||||
print_r($hisOnOffArray);
|
||||
echo'<br/>';
|
||||
echo 'Ile: '.count($hisOnOffArray);
|
||||
echo'<br/>';
|
||||
|
||||
|
||||
|
||||
if (count($hisOnOffArray)>0 && $wellLastStatusArray[0]['DRD_DRS_ID']>0)
|
||||
{
|
||||
echo("DELETE FROM seg_dev_resources_det where DRD_RESOURCES_DETAIL=507 and DRD_AUDIT_USR='SYNDIS' and DRD_DRS_ID=".$wellLastStatusArray[0]['DRD_DRS_ID']." and DRD_AUDIT_DATE > '".$sqlDate."'");
|
||||
echo'<br/>';
|
||||
|
||||
// if( time_to_int($hisOnOffArray[0]['date']) > time_to_int($sqlDate) )
|
||||
// sprawdza czy jest jeden pomiar czy więcej
|
||||
if (count($hisOnOffArray)==1)
|
||||
{
|
||||
if (time_to_int($hisOnOffArray[0]['date']) > time_to_int($sqlDate))
|
||||
{
|
||||
// jeśli załączona
|
||||
if ($hisOnOffArray[0]['value']=="ON")
|
||||
echo("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID='".$wellLastStatusArray[0]['DRD_DRS_ID']."',DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$hisOnOffArray[0]['value']."',DRD_EXPORT_SEGAP='1',DRD_AUDIT_USR='SYNDIS',DRD_AUDIT_DATE='".$hisOnOffArray[0]['date']."'");
|
||||
else
|
||||
echo("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID='".$wellLastStatusArray[0]['DRD_DRS_ID']."',DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$hisOnOffArray[0]['value']."',DRD_EXPORT_SEGAP='1',DRD_DESCRIPTION='".$hisOnOffArray[0]['reason']."',DRD_AUDIT_USR='SYNDIS',DRD_AUDIT_DATE='".$hisOnOffArray[0]['date']."'");
|
||||
|
||||
echo'<br/>';
|
||||
$ile_zmian++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$ile_zmian++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
// =============================================================================== //
|
||||
else
|
||||
{
|
||||
echo 'niestabilna: '.$wl['wells'][$i]['well']['id'].'<br/>';
|
||||
}
|
||||
// =============================================================================== //
|
||||
|
||||
// ENDIF 02 =============================================================================== //
|
||||
|
||||
|
||||
echo'<br/>';
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
// ============================================================================================ //
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
mysql_close($polacz);
|
||||
|
||||
echo 'Zmieniono <b>'.$ile_zmian.'</b> stanów załączenia/wyłączenia dla studni.<br/><br/>';
|
||||
echo 'Finish: '.date("Y-m-d H:i:s").'<br>';
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user