Initial commit

This commit is contained in:
2026-09-03 12:21:17 +02:00
commit 6d40da0410
155 changed files with 21554 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# SoftSPM_2 - obraz deweloperski (PHP 8.3 + Apache + Node 20)
# Produkcja: Windows Server / IIS+Apache z zainstalowanym PHP - ten obraz
# służy wyłącznie do pracy lokalnej. DocumentRoot wskazuje na public/.
FROM php:8.3-apache
ARG UID=1000
ARG GID=1000
RUN apt-get update && apt-get install -y --no-install-recommends \
git unzip zip curl ca-certificates \
libzip-dev libpng-dev libjpeg62-turbo-dev libfreetype6-dev \
libxml2-dev libicu-dev libonig-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j"$(nproc)" \
pdo_mysql mysqli soap zip gd intl opcache \
&& a2enmod rewrite headers \
&& rm -rf /var/lib/apt/lists/*
# Node 20 - build assetów (Vite + Tailwind v4)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf \
&& sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
COPY docker/php.ini /usr/local/etc/php/conf.d/zz-softspm.ini
WORKDIR /var/www/html
+34
View File
@@ -0,0 +1,34 @@
<?php
// Smoke-test połączeń DB (uruchamiać: php artisan tinker < docker/check/db-check.php
// albo: docker compose exec app php docker/check/db-check.php)
require __DIR__.'/../../vendor/autoload.php';
$app = require __DIR__.'/../../bootstrap/app.php';
$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();
use Illuminate\Support\Facades\DB;
foreach (['softspm' => 'sys_users', 'softspm_rep' => null, 'softspm_his' => null] as $conn => $probe) {
try {
$row = DB::connection($conn)->select('SELECT DATABASE() AS d, VERSION() AS v')[0];
$extra = '';
if ($probe) {
$extra = ', ' . $probe . '=' . DB::connection($conn)->table($probe)->count() . ' rek.';
}
echo "OK {$conn} -> {$row->d} (MariaDB {$row->v}{$extra})\n";
} catch (\Throwable $e) {
echo "FAIL {$conn} -> " . $e->getMessage() . "\n";
}
}
// Kluczowe tabele legacy używane przez nakładkę
$tables = ['sys_users', 'seg_wells', 'seg_dev_resources', 'seg_dev_resources_det',
'seg_equipments', 'seg_well_pump_eng_rel', 'seg_object_hole_cards', 'sys_dictionaries',
'seg_pumps', 'seg_engines', 'seg_manufacturers', 'rep_his_data_everyday', 'tst_tests'];
foreach ($tables as $t) {
try {
$n = DB::connection('softspm')->table($t)->count();
echo "OK softspm.{$t} = {$n}\n";
} catch (\Throwable $e) {
echo "FAIL softspm.{$t} -> " . substr($e->getMessage(), 0, 120) . "\n";
}
}
+110
View File
@@ -0,0 +1,110 @@
# SoftSPM_2 - pliki NAKŁADKI (kopiowane na szkielet Laravela: UAT /var/www/html/softspm_pge).
# Wygenerowane 2026-09-03, PRZED domieszaniem szkieletu Laravela do tego katalogu.
# Reszta drzewa (artisan, bootstrap/, vendor/, public/index.php, pozostałe config/*.php) to szkielet.
app/Http/Controllers/AggregateController.php
app/Http/Controllers/AggregateSelectionController.php
app/Http/Controllers/Auth/LoginController.php
app/Http/Controllers/CableController.php
app/Http/Controllers/Concerns/SortsLists.php
app/Http/Controllers/DashboardController.php
app/Http/Controllers/EngineController.php
app/Http/Controllers/EquipmentFileController.php
app/Http/Controllers/MeteringController.php
app/Http/Controllers/PipingController.php
app/Http/Controllers/PumpController.php
app/Http/Controllers/WellController.php
app/Http/Controllers/WellOperationController.php
app/Http/Middleware/SetLocale.php
app/Http/Requests/StoreCableRequest.php
app/Http/Requests/StoreEngineRequest.php
app/Http/Requests/StoreMeteringRequest.php
app/Http/Requests/StorePipingRequest.php
app/Http/Requests/StorePumpRequest.php
app/Http/Requests/UpdateCableRequest.php
app/Http/Requests/UpdateEngineRequest.php
app/Http/Requests/UpdateMeteringRequest.php
app/Http/Requests/UpdatePipingRequest.php
app/Http/Requests/UpdatePumpRequest.php
app/Models/Engine.php
app/Models/Equipment.php
app/Models/EquipmentFile.php
app/Models/Manufacturer.php
app/Models/Pump.php
app/Models/PumpCurvePoint.php
app/Models/User.php
app/Services/EquipmentFileService.php
app/Services/PumpService.php
app/Services/SyndisService.php
app/Services/WellAssessmentService.php
app/Services/WellService.php
app/Support/PolynomialRegression.php
config/database.php
config/navigation.php
config/softspm.php
resources/css/app.css
resources/js/app.js
resources/views/auth/login.blade.php
resources/views/catalog/aggregate-selection/index.blade.php
resources/views/catalog/aggregates/edit.blade.php
resources/views/catalog/aggregates/index.blade.php
resources/views/catalog/aggregates/show.blade.php
resources/views/catalog/cables/create.blade.php
resources/views/catalog/cables/edit.blade.php
resources/views/catalog/cables/index.blade.php
resources/views/catalog/cables/show.blade.php
resources/views/catalog/engines/create.blade.php
resources/views/catalog/engines/edit.blade.php
resources/views/catalog/engines/index.blade.php
resources/views/catalog/engines/show.blade.php
resources/views/catalog/metering/create.blade.php
resources/views/catalog/metering/edit.blade.php
resources/views/catalog/metering/index.blade.php
resources/views/catalog/metering/show.blade.php
resources/views/catalog/piping/create.blade.php
resources/views/catalog/piping/edit.blade.php
resources/views/catalog/piping/index.blade.php
resources/views/catalog/piping/show.blade.php
resources/views/catalog/pumps/create.blade.php
resources/views/catalog/pumps/edit.blade.php
resources/views/catalog/pumps/index.blade.php
resources/views/catalog/pumps/show.blade.php
resources/views/components/app-layout.blade.php
resources/views/components/btn.blade.php
resources/views/components/confirm-delete.blade.php
resources/views/components/curve-chart.blade.php
resources/views/components/energy-gauge.blade.php
resources/views/components/guest-layout.blade.php
resources/views/components/icon.blade.php
resources/views/components/power-schematic.blade.php
resources/views/components/pump-curve.blade.php
resources/views/components/selection-chart.blade.php
resources/views/components/sortable-th.blade.php
resources/views/components/well-field.blade.php
resources/views/components/well-schematic.blade.php
resources/views/components/well-select.blade.php
resources/views/dashboard.blade.php
resources/views/exploitation/wells/index.blade.php
resources/views/exploitation/wells/params.blade.php
resources/views/exploitation/wells/show.blade.php
resources/views/section.blade.php
resources/views/wells/create.blade.php
resources/views/wells/edit.blade.php
resources/views/wells/index.blade.php
routes/web.php
README_SOFTSPM.md
package.json
vite.config.js
docker-compose.yml
docker/Dockerfile
docker/php.ini
public/images/logo.png
public/images/dashboard_01.png
public/images/dashboard_02.png
public/fonts/inter/Inter-Variable.woff2
public/fonts/jetbrains-mono/JetBrainsMono-Variable.woff2
public/fonts/material-symbols/MaterialSymbolsOutlined.woff2
docker/check/db-check.php
docker/overlay-files.txt
.env.example
.gitignore # (uwaga: wyjatki na public/fonts i public/images dopisane do wersji ze szkieletu)
+15
View File
@@ -0,0 +1,15 @@
; SoftSPM_2 - ustawienia PHP (dev)
memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = Europe/Warsaw
; Załączniki wyposażenia trzymane są jako BLOB - podnosimy limity pakietu
mysqli.allow_local_infile = Off
; SOAP (integracja SYNDIS) - bez cache WSDL w dev
soap.wsdl_cache_enabled = 0
display_errors = On
error_reporting = E_ALL