Преглед на файлове

Wstrzymanie wyzwalania kolejnych badań jeżeli istnieje aktywne badanie

Mariusz Muszyński преди 6 месеца
родител
ревизия
7de42dce06
променени са 1 файла, в които са добавени 27 реда и са изтрити 21 реда
  1. 27 21
      SE/se-lib/Route/UrlAction/BiAuditGenerate.php

+ 27 - 21
SE/se-lib/Route/UrlAction/BiAuditGenerate.php

@@ -2267,25 +2267,29 @@ Router::getRoute("UrlAction_BiAuditGenerate")->' . $function . ';
 
 			### Generowanie powiązań
 			if ($doGenerate) {
-				$query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where FILE_STATUS = 'TO_GENERATE'"; //TODO TEST: and ID = 1
-				$result = DB::getPDO()->fetchAll($query);
-				foreach ($result as $row) {
-					$sqlArr = [
-						'ID' => $row['ID'],
-						'FILE_STATUS' => 'IN_PROGRESS',
-						'FILE_STATUS_info' => 'Zadanie wyzwolone',
-					];
-					DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlArr);
-					self::deleteResultsFromDB($row['ID']);
-
-					$generatePowiazaniaResultFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.result";
-					$generatePowiazaniaPhpFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.php";
-					$generatePowiazaniaLogFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.log";
-					$generatePowiazaniaProgressFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.progress";
-					if (file_exists($generatePowiazaniaResultFile)) unlink ($generatePowiazaniaResultFile);
-					if (file_exists($generatePowiazaniaProgressFile)) unlink ($generatePowiazaniaProgressFile);
-					file_put_contents($generatePowiazaniaPhpFile, $generatePhpScript("doGeneratePowiazania({$row['ID']})"));
-					shell_exec('su - root -c "php ' . $generatePowiazaniaPhpFile . ' > ' . $generatePowiazaniaLogFile. ' 2>&1 &"');
+				$query = "select count(*) from `BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA` where `FILE_STATUS` = 'IN_PROGRESS'";
+				$activeTasks = DB::getPDO()->fetchValue($query);
+				if (!$activeTasks) {
+					$query = "select ID from BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA where FILE_STATUS = 'TO_GENERATE' order by ID limit 1"; //TODO TEST: and ID = 1
+					$result = DB::getPDO()->fetchAll($query);
+					foreach ($result as $row) {
+						$sqlArr = [
+							'ID' => $row['ID'],
+							'FILE_STATUS' => 'IN_PROGRESS',
+							'FILE_STATUS_info' => 'Zadanie wyzwolone',
+						];
+						DB::getDB()->UPDATE_OBJ('BI_audit_ENERGA_RUM_KONTRAHENCI_POWIAZANIA', $sqlArr);
+						self::deleteResultsFromDB($row['ID']);
+	
+						$generatePowiazaniaResultFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.result";
+						$generatePowiazaniaPhpFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.php";
+						$generatePowiazaniaLogFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.log";
+						$generatePowiazaniaProgressFile = "{$tasksDirLocation}/generatePowiazania-{$row['ID']}.progress";
+						if (file_exists($generatePowiazaniaResultFile)) unlink ($generatePowiazaniaResultFile);
+						if (file_exists($generatePowiazaniaProgressFile)) unlink ($generatePowiazaniaProgressFile);
+						file_put_contents($generatePowiazaniaPhpFile, $generatePhpScript("doGeneratePowiazania({$row['ID']})"));
+						shell_exec('su - root -c "php ' . $generatePowiazaniaPhpFile . ' > ' . $generatePowiazaniaLogFile. ' 2>&1 &"');
+					}
 				}
 			}
 
@@ -3810,6 +3814,7 @@ class BiAuditPowiazania {
 			$where = $relation ? "and ({$relation} & ref.RELATION_ID) = 0" : "";
 			$query = "{$this->query} = {$ID} {$where}";
 			$this->nodes[$ID][$relation] = DB::getPDO()->fetchAll($query);
+	//		self::saveToLog("SQL: " . $query);
 		}
 		$nodes = array_values(array_filter($this->nodes[$ID][$relation], function ($node) {
 			if (isset($this->path[$node['ID']])) return false;
@@ -4059,7 +4064,8 @@ class BiAuditPowiazania {
 				if ($row['REMOTE_TABLE'] == "BI_audit_ENERGA_RUM_KONTRAHENCI" && (!in_array($row['REMOTE_ID'], $kontrahenci))) {
 					$kontrahenci[] = $row['REMOTE_ID'];
 
-					$query = "select faktury.* from BI_audit_ENERGA_FAKTURY faktury join `{$refFakturyToKontrahenci}` ref on faktury.ID = ref.PRIMARY_KEY where ref.REMOTE_PRIMARY_KEY = '{$row['REMOTE_ID']}'";
+					$faktury = []; // Wyłączono w dniu 2021-04-28 z uwagi na problemy z generowaniem raportów
+/*					$query = "select faktury.* from BI_audit_ENERGA_FAKTURY faktury join `{$refFakturyToKontrahenci}` ref on faktury.ID = ref.PRIMARY_KEY where ref.REMOTE_PRIMARY_KEY = '{$row['REMOTE_ID']}'";
 					$res = DB::query($query);
 					$faktury = [];
 					if (mysql_num_rows($res)) {
@@ -4068,7 +4074,7 @@ class BiAuditPowiazania {
 							$faktura = array_merge(['@attributes' => ['fid' => "BI_audit_ENERGA_FAKTURY.{$faktura['ID']}"]], $faktura);
 							$faktury[] = $faktura;
 						}
-					}
+					}*/
 
 					$query = "select umowy.* from BI_audit_ENERGA_RUM_UMOWY umowy join `{$refUmowyToKontrahenci}` ref on umowy.ID = ref.PRIMARY_KEY where ref.REMOTE_PRIMARY_KEY = '{$row['REMOTE_ID']}'";
 					$res = DB::query($query);