Initial commit

This commit is contained in:
2026-09-03 11:24:19 +02:00
commit 6ed3153f36
1897 changed files with 538007 additions and 0 deletions
+228
View File
@@ -0,0 +1,228 @@
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8">
<?php
error_reporting(E_ALL);
echo 'starting MANUAL + HistoryBACK...<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 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;
}
}
// 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);
for($i=0; $i<count($wl["wells"]); $i++)
{
// sprawdza, czy w pomiarze nie mamy znacznika MANUAL - wyłącznik wprowadzony z reki
// ============================== ============================== ============================== ============================== ============================== ==============================
if ($wl['wells'][$i]['pumpOnOff']['flag']=="MANUAL")
{
// = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = //
unset($deviceInfoArray);
$deviceInfoArray = sqlGetResAsArray("select * 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']."'");
// = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = //
// = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = //
unset($syndisStatus);
if ($wl['wells'][$i]['pumpOnOff']['value']==0) $syndisStatus = "OFF";
elseif ($wl['wells'][$i]['pumpOnOff']['value']==1) $syndisStatus = "ON";
// = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = //
// sprawdza, czy było coś w tablicy niewiarygodnych
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)");
if (count($isNotrealiableSaved)>0)
{
mysql_query("UPDATE rep_soap_syndis_notrealiable_onoff SET NOT_END_DATE=now(),NOT_AUDIT_END_DATE=now(),NOT_END_FLAG='MANUAL',NOT_LICZ=100 WHERE NOT_ID=".$isNotrealiableSaved[0]['NOT_ID']);
unset($isNotrealiableSaved);
}
// usuwa wszystkie pomiary starsze nić podany MANUAL
mysql_query("delete from seg_dev_resources_det where DRD_RESOURCES_DETAIL=507 and DRD_DRS_ID=".$deviceInfoArray[0]['DRS_ID']." and DRD_AUDIT_USR='SYNDIS' and DRD_AUDIT_DATE>='".convertData($wl['wells'][$i]['pumpOnOff']['date'])."'");
//pobiera historię
unset($hisOnOffArray);
$hisOnOffArray = objectToArray($cl->GetPumpSwitchAndReasonsHistory($wl['wells'][$i]['well']['id'],$wl['wells'][$i]['pumpOnOff']['date']));
for ($ile=0; $ile<count($hisOnOffArray['probes']); $ile++)
{
if ( time_to_int(convertData($hisOnOffArray['probes'][$ile]['date'])) >= time_to_int(convertData($wl['wells'][$i]['pumpOnOff']['date'])) )
{
unset($newOnOffStatus);
$newOnOffStatus = (int) $hisOnOffArray['probes'][$ile]['value'];
if ($newOnOffStatus==1)
{
$newOnOffStatus='ON';
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$newOnOffStatus."',DRD_EXPORT_SEGAP='1',DRD_AUDIT_USR='SYNDIS',DRD_AUDIT_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
mysql_query("INSERT INTO softspm_rep.rep_002_avg_pump_working SET WST_STATUS_VAL='".$newOnOffStatus."',WST_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',WST_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
}
else
{
$newOnOffStatus = 'OFF';
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$newOnOffStatus."',DRD_EXPORT_SEGAP='1',DRD_AUDIT_USR='SYNDIS',DRD_DESCRIPTION='".$hisOnOffArray['probes'][$ile]['reason']."',DRD_AUDIT_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
mysql_query("INSERT INTO softspm_rep.rep_002_avg_pump_working SET WST_STATUS_VAL='".$newOnOffStatus."',WST_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',WST_DESCRIPTION='".$hisOnOffArray['probes'][$ile]['reason']."',WST_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
}
$ile_zmian++;
}
}
}
// ============================== ============================== ============================== ============================== ============================== ==============================
// sprawdza, data wyłącznika nie cofnęła się
// ============================== ============================== ============================== ============================== ============================== ==============================
unset($deviceInfoArray);
$deviceInfoArray = sqlGetResAsArray("select * 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']."'");
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_AUDIT_END_DATE is null and NOT_DRS_ID=".$deviceInfoArray[0]['DRS_ID'].")");
if ($wl['wells'][$i]['pumpEfficiency']['flag']=="CORRECT" && count($isNotrealiableSaved)==0)
{
// pobiera informacje o ostatnim wyłączniku dla pompy
unset($oNoFFstatusArray);
$oNoFFstatusArray = 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=".$deviceInfoArray[0]['DRS_ID'].")");
// jeśli data wyłącznika z SYNDIS jest wcześniejsza niż aktualnie zarejestrowana w SoftSPM, to starsze kasuje z SoftSPM
if( time_to_int(convertData($wl['wells'][$i]['pumpOnOff']['date']))>20150101000000 && time_to_int(convertData($wl['wells'][$i]['pumpOnOff']['date'])) < time_to_int($oNoFFstatusArray[0]['DRD_AUDIT_DATE']))
{
// usuwa nadmiarowe pomiary
mysql_query("delete from seg_dev_resources_det where DRD_RESOURCES_DETAIL=507 and DRD_AUDIT_USR='SYNDIS' and DRD_AUDIT_DATE>='".convertData($wl['wells'][$i]['pumpOnOff']['date'])."' and DRD_DRS_ID=".$deviceInfoArray[0]['DRS_ID']);
// pobiera informacje o ostatnim wyłączniku dla pompy
unset($oNoFFstatusArray);
$oNoFFstatusArray = 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=".$deviceInfoArray[0]['DRS_ID'].")");
//konwertuje date na UTC
// =========================================
$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($oNoFFstatusArray[0]['DRD_AUDIT_DATE'])- $offset);
//pobiera historię
unset($hisOnOffArray);
$hisOnOffArray = objectToArray($cl->GetPumpSwitchAndReasonsHistory($wl['wells'][$i]['well']['id'],$utcDate));
for ($ile=0; $ile<count($hisOnOffArray['probes']); $ile++)
{
// jeśli aktualna data jest większa od ostatnio zapisanej - wpisuje do bazy
if ( time_to_int(convertData($hisOnOffArray['probes'][$ile]['date'])) > time_to_int($oNoFFstatusArray[0]['DRD_AUDIT_DATE']) )
{
unset($newOnOffStatus);
$newOnOffStatus = (int) $hisOnOffArray['probes'][$ile]['value'];
if ($newOnOffStatus==1)
{
$newOnOffStatus='ON';
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$newOnOffStatus."',DRD_EXPORT_SEGAP='1',DRD_AUDIT_USR='SYNDIS',DRD_AUDIT_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
mysql_query("INSERT INTO softspm_rep.rep_002_avg_pump_working SET WST_STATUS_VAL='".$newOnOffStatus."',WST_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',WST_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
}
else
{
$newOnOffStatus = 'OFF';
mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$newOnOffStatus."',DRD_EXPORT_SEGAP='1',DRD_AUDIT_USR='SYNDIS',DRD_DESCRIPTION='".$hisOnOffArray['probes'][$ile]['reason']."',DRD_AUDIT_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
mysql_query("INSERT INTO softspm_rep.rep_002_avg_pump_working SET WST_STATUS_VAL='".$newOnOffStatus."',WST_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',WST_DESCRIPTION='".$hisOnOffArray['probes'][$ile]['reason']."',WST_DATE='".convertData($hisOnOffArray['probes'][$ile]['date'])."'");
}
//wpisuje do tabeli inforację, że trzeba przebudować tabele softspm_rep.rep_002_avg_pump_working
mysql_query("INSERT INTO softspm_rep.rep_002_is_set_new_onoff_signals SET ISN_STATUS_VAL='".$newOnOffStatus."',ISN_DRS_ID='".$deviceInfoArray[0]['DRS_ID']."',ISN_DATE=now()");
$ile_zmian++;
}
}
}
}
// ============================== ============================== ============================== ============================== ============================== ==============================
}
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>';
?>