ikinci temizlik tamamlandı
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
<?php
|
||||
/**
|
||||
* @api-readonly
|
||||
* NDT Calculation data - reads from cache
|
||||
*/
|
||||
if(getesit("type","test_packs")) {
|
||||
|
||||
// 1. Cached Veriyi Çek
|
||||
$ndtData = json_decode(setting("ndtCalculation"), true);
|
||||
|
||||
// 2. ISO/Line -> TP Haritasını Oluştur
|
||||
// Tüm weld_logs'u çekmek yerine sadece eşleştirme için gerekli alanları çekiyoruz
|
||||
$mappings = db("weld_logs")
|
||||
->select("line_number", "iso_number", "test_package_no")
|
||||
->whereNotNull("test_package_no")
|
||||
->where("test_package_no", "!=", "")
|
||||
->distinct()
|
||||
->get();
|
||||
|
||||
$isoToTP = [];
|
||||
foreach($mappings as $map) {
|
||||
if($map->line_number) {
|
||||
$isoToTP[$map->line_number] = $map->test_package_no;
|
||||
}
|
||||
if($map->iso_number) {
|
||||
$isoToTP[$map->iso_number] = $map->test_package_no;
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Veriyi İşle (Referans: ndt-calculation-no-cache.blade.php)
|
||||
$tpStats = [];
|
||||
$tpISOStats = [];
|
||||
|
||||
if (is_array($ndtData)) {
|
||||
foreach($ndtData AS $row)
|
||||
{
|
||||
// Doğru ISO/TP ilişkisini kullanarak TP numarasını al
|
||||
$tpNo = "";
|
||||
// Veri kaynağında line_number varsa ve haritada karşılığı varsa
|
||||
if(isset($row['line_number']) && isset($isoToTP[$row['line_number']])) {
|
||||
$tpNo = trim($isoToTP[$row['line_number']]);
|
||||
}
|
||||
// Alternatif olarak iso_number kontrolü
|
||||
else if(isset($row['iso_number']) && isset($isoToTP[$row['iso_number']])) {
|
||||
$tpNo = trim($isoToTP[$row['iso_number']]);
|
||||
}
|
||||
|
||||
if($tpNo != "")
|
||||
{
|
||||
$testTypes = array_keys(log_test_types());
|
||||
|
||||
if(!isset($tpStats[$tpNo]))
|
||||
{
|
||||
$tpStats[$tpNo]['test_package_no'] = $tpNo;
|
||||
foreach($testTypes AS $testType)
|
||||
{
|
||||
$tpStats[$tpNo][$testType] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// ISO numarasını belirle
|
||||
$isoNum = $row['iso_number'] ?? ($row['line_number'] ?? 'Unknown');
|
||||
|
||||
if(!isset($tpISOStats[$tpNo][$isoNum]))
|
||||
{
|
||||
$tpISOStats[$tpNo][$isoNum]['test_package_no'] = $tpNo;
|
||||
$tpISOStats[$tpNo][$isoNum]['iso_number'] = $isoNum;
|
||||
foreach($testTypes AS $testType)
|
||||
{
|
||||
$tpISOStats[$tpNo][$isoNum][$testType] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($testTypes AS $testType)
|
||||
{
|
||||
// Backlog değeri kontrolü ve negatif değerleri sıfıra dönüştürme
|
||||
$backlogValue = 0;
|
||||
if(isset($row[$testType . '_backlog'])) {
|
||||
$backlogValue = max(0, (int)$row[$testType . '_backlog']);
|
||||
}
|
||||
|
||||
if($backlogValue > 0)
|
||||
{
|
||||
$tpStats[$tpNo][$testType] += $backlogValue;
|
||||
$tpISOStats[$tpNo][$isoNum][$testType] += $backlogValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tpStatsRefactor = [];
|
||||
foreach($tpStats AS $tpStat)
|
||||
{
|
||||
$tpStatsRefactor[] = $tpStat;
|
||||
}
|
||||
|
||||
$tpISOStatsRefactor = [];
|
||||
foreach($tpISOStats AS $tpNo => $data)
|
||||
{
|
||||
foreach($data AS $d)
|
||||
{
|
||||
$tpISOStatsRefactor[] = $d;
|
||||
}
|
||||
}
|
||||
|
||||
$tpDatas = [
|
||||
'tp_base' => $tpStatsRefactor,
|
||||
'tp_base_iso' => $tpISOStatsRefactor,
|
||||
'tpStats' => $tpStats,
|
||||
'tpISOStats' => $tpISOStats,
|
||||
];
|
||||
|
||||
echo json_encode_tr($tpDatas);
|
||||
|
||||
} elseif(getesit("type", "backlogs")) {
|
||||
$ndtData = json_decode(setting("ndtCalculation"), true);
|
||||
$ndtBacklogStats = [];
|
||||
|
||||
if (is_array($ndtData)) {
|
||||
foreach($ndtData as $d) {
|
||||
foreach($d as $field => $value) {
|
||||
if(strpos($field, "backlog") !== false) {
|
||||
$key = strtoupper(str_replace("_backlog", "", $field));
|
||||
if($value > 0) {
|
||||
if(!isset($ndtBacklogStats[$key])) {
|
||||
$ndtBacklogStats[$key] = 0;
|
||||
}
|
||||
$ndtBacklogStats[$key] += $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$result = [];
|
||||
foreach($ndtBacklogStats as $key => $totalBacklog) {
|
||||
$result[] = [
|
||||
'type' => $key,
|
||||
'backlog' => $totalBacklog
|
||||
];
|
||||
}
|
||||
echo json_encode($result);
|
||||
} else {
|
||||
cacheBladeLoad('ndt-calculation');
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user