Quellcode durchsuchen

金家渠风机数据接口

秦锐 vor 3 Jahren
Ursprung
Commit
e7595abf25
35 geänderte Dateien mit 598 neuen und 1 gelöschten Zeilen
  1. 0 0
      Modules/OpcData/Config/.gitkeep
  2. 5 0
      Modules/OpcData/Config/config.php
  3. 0 0
      Modules/OpcData/Console/.gitkeep
  4. 0 0
      Modules/OpcData/Database/Migrations/.gitkeep
  5. 0 0
      Modules/OpcData/Database/Seeders/.gitkeep
  6. 21 0
      Modules/OpcData/Database/Seeders/OpcDataDatabaseSeeder.php
  7. 0 0
      Modules/OpcData/Database/factories/.gitkeep
  8. 0 0
      Modules/OpcData/Entities/.gitkeep
  9. 11 0
      Modules/OpcData/Entities/OpcDataDict.php
  10. 0 0
      Modules/OpcData/Http/Controllers/.gitkeep
  11. 136 0
      Modules/OpcData/Http/Controllers/Api/OpcDataController.php
  12. 79 0
      Modules/OpcData/Http/Controllers/OpcDataController.php
  13. 0 0
      Modules/OpcData/Http/Middleware/.gitkeep
  14. 0 0
      Modules/OpcData/Http/Requests/.gitkeep
  15. 0 0
      Modules/OpcData/Providers/.gitkeep
  16. 125 0
      Modules/OpcData/Providers/OpcDataServiceProvider.php
  17. 69 0
      Modules/OpcData/Providers/RouteServiceProvider.php
  18. 0 0
      Modules/OpcData/Resources/assets/.gitkeep
  19. 0 0
      Modules/OpcData/Resources/assets/js/app.js
  20. 0 0
      Modules/OpcData/Resources/assets/sass/app.scss
  21. 0 0
      Modules/OpcData/Resources/lang/.gitkeep
  22. 0 0
      Modules/OpcData/Resources/views/.gitkeep
  23. 9 0
      Modules/OpcData/Resources/views/index.blade.php
  24. 19 0
      Modules/OpcData/Resources/views/layouts/master.blade.php
  25. 0 0
      Modules/OpcData/Routes/.gitkeep
  26. 20 0
      Modules/OpcData/Routes/api.php
  27. 16 0
      Modules/OpcData/Routes/web.php
  28. 0 0
      Modules/OpcData/Tests/Feature/.gitkeep
  29. 0 0
      Modules/OpcData/Tests/Unit/.gitkeep
  30. 23 0
      Modules/OpcData/composer.json
  31. 13 0
      Modules/OpcData/module.json
  32. 17 0
      Modules/OpcData/package.json
  33. 14 0
      Modules/OpcData/webpack.mix.js
  34. 19 0
      config/database.php
  35. 2 1
      modules_statuses.json

+ 0 - 0
Modules/OpcData/Config/.gitkeep


+ 5 - 0
Modules/OpcData/Config/config.php

@@ -0,0 +1,5 @@
+<?php
+
+return [
+    'name' => 'OpcData'
+];

+ 0 - 0
Modules/OpcData/Console/.gitkeep


+ 0 - 0
Modules/OpcData/Database/Migrations/.gitkeep


+ 0 - 0
Modules/OpcData/Database/Seeders/.gitkeep


+ 21 - 0
Modules/OpcData/Database/Seeders/OpcDataDatabaseSeeder.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace Modules\OpcData\Database\Seeders;
+
+use Illuminate\Database\Seeder;
+use Illuminate\Database\Eloquent\Model;
+
+class OpcDataDatabaseSeeder extends Seeder
+{
+    /**
+     * Run the database seeds.
+     *
+     * @return void
+     */
+    public function run()
+    {
+        Model::unguard();
+
+        // $this->call("OthersTableSeeder");
+    }
+}

+ 0 - 0
Modules/OpcData/Database/factories/.gitkeep


+ 0 - 0
Modules/OpcData/Entities/.gitkeep


+ 11 - 0
Modules/OpcData/Entities/OpcDataDict.php

@@ -0,0 +1,11 @@
+<?php
+
+namespace Modules\OpcData\Entities;
+
+use Illuminate\Database\Eloquent\Model;
+
+class OpcDataDict extends Model
+{
+    protected $table = 'tb_fan_dict_list';
+    protected $fillable = ['selItem', 'fan_type_id', 'fan_type_name', 'device_num', 'device_name', 'group_id', 'group_name', 'row_number', 'unit', 'json_key'];
+}

+ 0 - 0
Modules/OpcData/Http/Controllers/.gitkeep


+ 136 - 0
Modules/OpcData/Http/Controllers/Api/OpcDataController.php

@@ -0,0 +1,136 @@
+<?php
+
+namespace Modules\OpcData\Http\Controllers\Api;
+
+use Illuminate\Contracts\Support\Renderable;
+use Illuminate\Http\Request;
+use Illuminate\Routing\Controller;
+use Illuminate\Support\Facades\DB;
+
+class OpcDataController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     * @return Renderable
+     */
+    public function index()
+    {
+        return view('opcdata::index');
+    }
+
+    /**
+     * Show the form for creating a new resource.
+     * @return Renderable
+     */
+    public function create()
+    {
+        return view('opcdata::create');
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     * @param Request $request
+     * @return Renderable
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Show the specified resource.
+     * @param int $id
+     * @return Renderable
+     */
+    public function show($id)
+    {
+        return view('opcdata::show');
+    }
+
+    /**
+     * Show the form for editing the specified resource.
+     * @param int $id
+     * @return Renderable
+     */
+    public function edit($id)
+    {
+        return view('opcdata::edit');
+    }
+
+    /**
+     * Update the specified resource in storage.
+     * @param Request $request
+     * @param int $id
+     * @return Renderable
+     */
+    public function update(Request $request, $id)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     * @param int $id
+     * @return Renderable
+     */
+    public function destroy($id)
+    {
+        //
+    }
+
+    public function getData()
+    {
+        
+        $db = DB::connection('mysql_opc_jinjiaqu');
+        $sqlStr = "
+         select t1.fan_type_id,
+                t1.fan_type_name,
+                t1.device_num,
+                t1.device_name,
+                case t.val 
+                    when 'True' then 1
+                    when 'False' then 2
+                    else t.val
+                end val,
+                t1.json_key,
+                t1.row_number,
+                t1.unit
+          from `equipment` t
+          join tb_fan_dict_list t1 on t.selItem = t1.selItem
+         where t1.group_id = 1
+         order by t1.fan_type_id, t1.row_number, t1.device_num
+        ";
+        
+        $dbResult = $db->select($sqlStr);
+        $dataArr = array();
+        foreach ($dbResult as $key => $val) {
+            $fanNum     = $val->fan_type_id - 1;        // 风机号
+            $label      = $val->device_name;        // 设备名
+            $devVal     = $val->val;                // 数值
+            $dataType   = $val->json_key;           // json键值
+            $unit       = $val->unit;
+            $dataArr[$fanNum]['title'] = $val->fan_type_name;
+            $valArr = [
+                'label' => $label,
+                'value' => $devVal,
+                'unit'  => $unit
+            ];
+            if($label == '电机') {
+                $hisVal = 0;
+                if(array_key_exists('state', $dataArr)){
+                    $hisVal = $dataArr[$fanNum]['state'];
+                } else {
+                    $hisVal = 0;
+                };
+                $valArr = [
+                    'label' => $label,
+                    'state' => max($devVal, $hisVal)
+                ];
+                $dataArr[$fanNum]['state'] = $devVal;
+            }  else {
+                $dataArr[$fanNum][$dataType][] = $valArr;
+            }
+        }
+        return response()->json($dataArr);
+    }
+}

+ 79 - 0
Modules/OpcData/Http/Controllers/OpcDataController.php

@@ -0,0 +1,79 @@
+<?php
+
+namespace Modules\OpcData\Http\Controllers;
+
+use Illuminate\Contracts\Support\Renderable;
+use Illuminate\Http\Request;
+use Illuminate\Routing\Controller;
+
+class OpcDataController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     * @return Renderable
+     */
+    public function index()
+    {
+        return view('opcdata::index');
+    }
+
+    /**
+     * Show the form for creating a new resource.
+     * @return Renderable
+     */
+    public function create()
+    {
+        return view('opcdata::create');
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     * @param Request $request
+     * @return Renderable
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Show the specified resource.
+     * @param int $id
+     * @return Renderable
+     */
+    public function show($id)
+    {
+        return view('opcdata::show');
+    }
+
+    /**
+     * Show the form for editing the specified resource.
+     * @param int $id
+     * @return Renderable
+     */
+    public function edit($id)
+    {
+        return view('opcdata::edit');
+    }
+
+    /**
+     * Update the specified resource in storage.
+     * @param Request $request
+     * @param int $id
+     * @return Renderable
+     */
+    public function update(Request $request, $id)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     * @param int $id
+     * @return Renderable
+     */
+    public function destroy($id)
+    {
+        //
+    }
+}

+ 0 - 0
Modules/OpcData/Http/Middleware/.gitkeep


+ 0 - 0
Modules/OpcData/Http/Requests/.gitkeep


+ 0 - 0
Modules/OpcData/Providers/.gitkeep


+ 125 - 0
Modules/OpcData/Providers/OpcDataServiceProvider.php

@@ -0,0 +1,125 @@
+<?php
+
+namespace Modules\OpcData\Providers;
+
+use Illuminate\Support\ServiceProvider;
+use Illuminate\Database\Eloquent\Factory;
+
+class OpcDataServiceProvider extends ServiceProvider
+{
+    /**
+     * @var string $moduleName
+     */
+    protected $moduleName = 'OpcData';
+
+    /**
+     * @var string $moduleNameLower
+     */
+    protected $moduleNameLower = 'opcdata';
+
+    /**
+     * Boot the application events.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        $this->registerTranslations();
+        $this->registerConfig();
+        $this->registerViews();
+        $this->registerFactories();
+        $this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations'));
+    }
+
+    /**
+     * Register the service provider.
+     *
+     * @return void
+     */
+    public function register()
+    {
+        $this->app->register(RouteServiceProvider::class);
+    }
+
+    /**
+     * Register config.
+     *
+     * @return void
+     */
+    protected function registerConfig()
+    {
+        $this->publishes([
+            module_path($this->moduleName, 'Config/config.php') => config_path($this->moduleNameLower . '.php'),
+        ], 'config');
+        $this->mergeConfigFrom(
+            module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower
+        );
+    }
+
+    /**
+     * Register views.
+     *
+     * @return void
+     */
+    public function registerViews()
+    {
+        $viewPath = resource_path('views/modules/' . $this->moduleNameLower);
+
+        $sourcePath = module_path($this->moduleName, 'Resources/views');
+
+        $this->publishes([
+            $sourcePath => $viewPath
+        ], ['views', $this->moduleNameLower . '-module-views']);
+
+        $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower);
+    }
+
+    /**
+     * Register translations.
+     *
+     * @return void
+     */
+    public function registerTranslations()
+    {
+        $langPath = resource_path('lang/modules/' . $this->moduleNameLower);
+
+        if (is_dir($langPath)) {
+            $this->loadTranslationsFrom($langPath, $this->moduleNameLower);
+        } else {
+            $this->loadTranslationsFrom(module_path($this->moduleName, 'Resources/lang'), $this->moduleNameLower);
+        }
+    }
+
+    /**
+     * Register an additional directory of factories.
+     *
+     * @return void
+     */
+    public function registerFactories()
+    {
+        if (! app()->environment('production') && $this->app->runningInConsole()) {
+            app(Factory::class)->load(module_path($this->moduleName, 'Database/factories'));
+        }
+    }
+
+    /**
+     * Get the services provided by the provider.
+     *
+     * @return array
+     */
+    public function provides()
+    {
+        return [];
+    }
+
+    private function getPublishableViewPaths(): array
+    {
+        $paths = [];
+        foreach (\Config::get('view.paths') as $path) {
+            if (is_dir($path . '/modules/' . $this->moduleNameLower)) {
+                $paths[] = $path . '/modules/' . $this->moduleNameLower;
+            }
+        }
+        return $paths;
+    }
+}

+ 69 - 0
Modules/OpcData/Providers/RouteServiceProvider.php

@@ -0,0 +1,69 @@
+<?php
+
+namespace Modules\OpcData\Providers;
+
+use Illuminate\Support\Facades\Route;
+use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
+
+class RouteServiceProvider extends ServiceProvider
+{
+    /**
+     * The module namespace to assume when generating URLs to actions.
+     *
+     * @var string
+     */
+    protected $moduleNamespace = 'Modules\OpcData\Http\Controllers';
+
+    /**
+     * Called before routes are registered.
+     *
+     * Register any model bindings or pattern based filters.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        parent::boot();
+    }
+
+    /**
+     * Define the routes for the application.
+     *
+     * @return void
+     */
+    public function map()
+    {
+        $this->mapApiRoutes();
+
+        $this->mapWebRoutes();
+    }
+
+    /**
+     * Define the "web" routes for the application.
+     *
+     * These routes all receive session state, CSRF protection, etc.
+     *
+     * @return void
+     */
+    protected function mapWebRoutes()
+    {
+        Route::middleware('web')
+            ->namespace($this->moduleNamespace)
+            ->group(module_path('OpcData', '/Routes/web.php'));
+    }
+
+    /**
+     * Define the "api" routes for the application.
+     *
+     * These routes are typically stateless.
+     *
+     * @return void
+     */
+    protected function mapApiRoutes()
+    {
+        Route::prefix('api')
+            ->middleware('api')
+            ->namespace($this->moduleNamespace)
+            ->group(module_path('OpcData', '/Routes/api.php'));
+    }
+}

+ 0 - 0
Modules/OpcData/Resources/assets/.gitkeep


+ 0 - 0
Modules/OpcData/Resources/assets/js/app.js


+ 0 - 0
Modules/OpcData/Resources/assets/sass/app.scss


+ 0 - 0
Modules/OpcData/Resources/lang/.gitkeep


+ 0 - 0
Modules/OpcData/Resources/views/.gitkeep


+ 9 - 0
Modules/OpcData/Resources/views/index.blade.php

@@ -0,0 +1,9 @@
+@extends('opcdata::layouts.master')
+
+@section('content')
+    <h1>Hello World</h1>
+
+    <p>
+        This view is loaded from module: {!! config('opcdata.name') !!}
+    </p>
+@endsection

+ 19 - 0
Modules/OpcData/Resources/views/layouts/master.blade.php

@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+        <title>Module OpcData</title>
+
+       {{-- Laravel Mix - CSS File --}}
+       {{-- <link rel="stylesheet" href="{{ mix('css/opcdata.css') }}"> --}}
+
+    </head>
+    <body>
+        @yield('content')
+
+        {{-- Laravel Mix - JS File --}}
+        {{-- <script src="{{ mix('js/opcdata.js') }}"></script> --}}
+    </body>
+</html>

+ 0 - 0
Modules/OpcData/Routes/.gitkeep


+ 20 - 0
Modules/OpcData/Routes/api.php

@@ -0,0 +1,20 @@
+<?php
+
+use Illuminate\Http\Request;
+
+/*
+|--------------------------------------------------------------------------
+| API Routes
+|--------------------------------------------------------------------------
+|
+| Here is where you can register API routes for your application. These
+| routes are loaded by the RouteServiceProvider within a group which
+| is assigned the "api" middleware group. Enjoy building your API!
+|
+*/
+
+Route::namespace('Api')->group(function () {
+// Route::middleware('auth:api')->get('/opcdata', function (Request $request) {
+    Route::get('opcdata/getData', 'OpcDataController@getData');
+    // return $request->user();
+});

+ 16 - 0
Modules/OpcData/Routes/web.php

@@ -0,0 +1,16 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| Web Routes
+|--------------------------------------------------------------------------
+|
+| Here is where you can register web routes for your application. These
+| routes are loaded by the RouteServiceProvider within a group which
+| contains the "web" middleware group. Now create something great!
+|
+*/
+
+Route::prefix('opcdata')->group(function() {
+    Route::get('/', 'OpcDataController@index');
+});

+ 0 - 0
Modules/OpcData/Tests/Feature/.gitkeep


+ 0 - 0
Modules/OpcData/Tests/Unit/.gitkeep


+ 23 - 0
Modules/OpcData/composer.json

@@ -0,0 +1,23 @@
+{
+    "name": "nwidart/opcdata",
+    "description": "",
+    "authors": [
+        {
+            "name": "Nicolas Widart",
+            "email": "n.widart@gmail.com"
+        }
+    ],
+    "extra": {
+        "laravel": {
+            "providers": [],
+            "aliases": {
+
+            }
+        }
+    },
+    "autoload": {
+        "psr-4": {
+            "Modules\\OpcData\\": ""
+        }
+    }
+}

+ 13 - 0
Modules/OpcData/module.json

@@ -0,0 +1,13 @@
+{
+    "name": "OpcData",
+    "alias": "opcdata",
+    "description": "",
+    "keywords": [],
+    "order": 0,
+    "providers": [
+        "Modules\\OpcData\\Providers\\OpcDataServiceProvider"
+    ],
+    "aliases": {},
+    "files": [],
+    "requires": []
+}

+ 17 - 0
Modules/OpcData/package.json

@@ -0,0 +1,17 @@
+{
+    "private": true,
+    "scripts": {
+        "dev": "npm run development",
+        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
+        "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
+        "watch-poll": "npm run watch -- --watch-poll",
+        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
+        "prod": "npm run production",
+        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
+    },
+    "devDependencies": {
+        "cross-env": "^7.0",
+        "laravel-mix": "^5.0.1",
+        "laravel-mix-merge-manifest": "^0.1.2"
+    }
+}

+ 14 - 0
Modules/OpcData/webpack.mix.js

@@ -0,0 +1,14 @@
+const dotenvExpand = require('dotenv-expand');
+dotenvExpand(require('dotenv').config({ path: '../../.env'/*, debug: true*/}));
+
+const mix = require('laravel-mix');
+require('laravel-mix-merge-manifest');
+
+mix.setPublicPath('../../public').mergeManifest();
+
+mix.js(__dirname + '/Resources/assets/js/app.js', 'js/opcdata.js')
+    .sass( __dirname + '/Resources/assets/sass/app.scss', 'css/opcdata.css');
+
+if (mix.inProduction()) {
+    mix.version();
+}

+ 19 - 0
config/database.php

@@ -91,6 +91,25 @@ return [
             'prefix_indexes' => true,
         ],
 
+        'mysql_opc_jinjiaqu' => [
+            'driver'         => 'mysql',
+            'host'           => env('DB_OPC_JINJIAQU_HOST', '127.0.0.1'),
+            'port'           => env('DB_OPC_JINJIAQU_PORT', '3306'),
+            'database'       => env('DB_OPC_JINJIAQU_DATABASE', 'opc-jinjiaqu'),
+            'username'       => env('DB_OPC_JINJIAQU_USERNAME', 'r'),
+            'password'       => env('DB_OPC_JINJIAQU_PASSWORD', ''),
+            'unix_socket'    => '',
+            'charset'        => 'utf8mb4',
+            'collation'      => 'utf8mb4_general_ci',
+            'prefix'         => '',
+            'prefix_indexes' => true,
+            'strict'         => true,
+            'engine'         => null,
+            'options'        => extension_loaded('pdo_mysql') ? array_filter([
+                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+            ]) : [],
+        ],
+
     ],
 
     /*

+ 2 - 1
modules_statuses.json

@@ -2,5 +2,6 @@
     "ModuleAdmin": true,
     "Admin": true,
     "Mine": true,
-    "Camera": true
+    "Camera": true,
+    "OpcData": true
 }