From 3f3e2af96c938192cd679b67b3ebf5fafa9e54a1 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 20 五月 2023 08:43:53 +0800
Subject: [PATCH] WCS监控图增加设备信息

---
 src/main/java/com/zy/asrs/controller/ConsoleController.java |   62 ++++++++++++++-
 src/main/webapp/views/realtimeWatch/console.html            |   30 +++++-
 src/main/webapp/static/wcs/js/console.js                    |   74 ++++++++++++++++++
 src/main/webapp/static/wcs/css/render.css                   |   26 ++++++
 4 files changed, 180 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 4b6a012..6a5eb26 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -13,14 +13,12 @@
 import com.zy.asrs.domain.enums.SiteStatusType;
 import com.zy.asrs.domain.param.SystemSwitchParam;
 import com.zy.asrs.domain.vo.*;
-import com.zy.asrs.entity.BasCrnError;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.ChartBean;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasCrnErrorMapper;
 import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.mapper.ReportQueryMapper;
 import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.service.DeviceErrorService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.common.CodeRes;
 import com.zy.core.CrnThread;
@@ -67,6 +65,8 @@
     private BasCrnErrorMapper basCrnErrorMapper;
     @Autowired
     private ReportQueryMapper reportQueryMapper;
+    @Autowired
+    private DeviceErrorService deviceErrorService;
 
     @PostMapping("/system/running/status")
     @ManagerAuth(memo = "绯荤粺杩愯鐘舵��")
@@ -198,6 +198,60 @@
         return R.ok().add(list);
     }
 
+    /**
+     * 鑾峰彇璁惧璇︽儏
+     */
+    @GetMapping("/deviceInfo")
+    @ManagerAuth
+    public R getDeviceInfo() {
+        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            if (crnThread == null) {
+                continue;
+            }
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("device", "鍫嗗灈鏈�");
+            map.put("deviceId", crn.getId());
+            map.put("battery", "");
+            map.put("error", crnProtocol.getFault());
+            map.put("status", crnProtocol.getStatusType().desc);
+            list.add(map);
+        }
+
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            DeviceError deviceError = deviceErrorService.selectByDeviceAndDeviceId("devp", devp.getId());
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("device", "杈撻�佺嚎");
+            map.put("deviceId", devp.getId());
+            map.put("battery", "");
+            map.put("error", deviceError != null);
+            map.put("status", deviceError == null ? "" : deviceError.getMsg());
+            list.add(map);
+        }
+
+        for (Slave scale : slaveProperties.getScale()) {
+            DeviceError deviceError = deviceErrorService.selectByDeviceAndDeviceId("scale", scale.getId());
+            HashMap<String, Object> map = new HashMap<>();
+            map.put("device", "纾呯Г");
+            map.put("deviceId", scale.getId());
+            map.put("battery", "");
+            map.put("error", deviceError != null);
+            map.put("status", deviceError == null ? "" : deviceError.getMsg());
+            list.add(map);
+        }
+
+        HashMap<String, Object> hashMap = new HashMap<>();
+        hashMap.put("records", list);
+        return R.ok().add(hashMap);
+    }
+
     /****************************************************************/
     /************************** 璇︽儏鎿嶄綔 ******************************/
     /****************************************************************/
diff --git a/src/main/webapp/static/wcs/css/render.css b/src/main/webapp/static/wcs/css/render.css
index 808914a..318a0ab 100644
--- a/src/main/webapp/static/wcs/css/render.css
+++ b/src/main/webapp/static/wcs/css/render.css
@@ -527,3 +527,29 @@
     width: auto;
 
 }
+.main-part {
+    position: relative;
+    top: -50px;
+    left: -150px;
+    width: 100%;
+    height: 100%;
+}
+
+.device-info {
+    position: absolute;
+    top: 0;
+    right: 0;
+    width: 500px;
+    height: 200px;
+    background: rgba(255, 255, 255, 0.7);
+    overflow: auto;
+}
+
+.device-info table td,.device-info table th{
+    font-size: 12px !important;
+}
+
+.layui-table-cell {
+    height: auto ;
+    white-space: normal;
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/wcs/js/console.js b/src/main/webapp/static/wcs/js/console.js
index 71073e8..c7984a3 100644
--- a/src/main/webapp/static/wcs/js/console.js
+++ b/src/main/webapp/static/wcs/js/console.js
@@ -148,4 +148,76 @@
     $("#line-total").empty()
     $("#line-total").html(total[e])
     // listenChange();
-}
\ No newline at end of file
+}
+
+
+layui.config({
+    base: baseUrl + "/static/wms/layui/lay/modules/"
+}).use(['table', 'form'], function () {
+    var table = layui.table;
+    var $ = layui.jquery;
+    var cache;
+
+    // 鏁版嵁娓叉煋
+    tableIns = table.render({
+        elem: '#deviceInfo',
+        headers: {token: localStorage.getItem('token')},
+        url: baseUrl + '/console/deviceInfo',
+        page: false,
+        limit: 16,
+        limits: [16, 30, 50, 100, 200, 500],
+        even: true,
+        cellMinWidth: 50,
+        cols: [[
+            {field: 'device', align: 'center', title: '璁惧'}
+            , {field: 'deviceId', align: 'center', title: '缂栧彿'}
+            , {field: 'battery', align: 'center', title: '鐢甸噺'}
+            , {field: 'error', align: 'center', title: '寮傚父', templet: '#errorTpl'}
+            , {field: 'status', align: 'center', title: '鐘舵��', width: 150}
+        ]],
+        request: {
+            pageName: 'curr',
+            pageSize: 'limit'
+        },
+        parseData: function (res) {
+            return {
+                'code': res.code,
+                'msg': res.msg,
+                'count': res.data.total,
+                'data': res.data.records
+            }
+        },
+        response: {
+            statusCode: 200
+        },
+        done: function (res, curr, count) {
+            $(".layui-table-tool").hide()
+            $(".layui-table-view").css({"margin":"0px"})
+            $(".layui-table-box").css({"padding-bottom":"0px"})
+
+            cache = table.cache['deviceInfo'];
+        }
+    });
+
+    setInterval(() => {
+        tableReload()
+    },10000)
+
+    function tableReload() {
+        $.ajax({
+            url: baseUrl + "/console/deviceInfo",
+            headers: {'token': localStorage.getItem('token')},
+            contentType: 'application/json;charset=UTF-8',
+            method: 'GET',
+            traditional: true,
+            success: function (res) {
+                cache = res.data.records
+                table.reload('deviceInfo',{
+                    data: cache
+                })
+            }
+        })
+    }
+
+});
+
diff --git a/src/main/webapp/views/realtimeWatch/console.html b/src/main/webapp/views/realtimeWatch/console.html
index 1678b0c..ede8fa9 100644
--- a/src/main/webapp/views/realtimeWatch/console.html
+++ b/src/main/webapp/views/realtimeWatch/console.html
@@ -4,15 +4,28 @@
     <meta charset="UTF-8">
     <title>鑷姩浠撳簱wcs绯荤粺</title>
     <link rel="stylesheet" href="../../static/wcs/css/render.css">
-    <script src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>
-    <script src="../../static/wcs/js/layer/layer.js"></script>
+    <link rel="stylesheet" href="../../static/wms/layui/css/layui.css" media="all">
+    <link rel="stylesheet" href="../../static/wms/css/cool.css" media="all">
+    <link rel="stylesheet" href="../../static/wms/css/common.css" media="all">
+
+<!--    <script src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script>-->
+<!--    <script src="../../static/wcs/js/layer/layer.js"></script>-->
+    <script type="text/javascript" src="../../static/wms/js/jquery/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="../../static/wms/layui/layui.js" charset="utf-8"></script>
+    <script type="text/javascript" src="../../static/wms/js/common.js" charset="utf-8"></script>
+    <script type="text/javascript" src="../../static/wms/js/cool.js" charset="utf-8"></script>
     <!--鍦板浘json-->
     <script src="../../static/wcs/js/console.map.js"></script>
     <script src="../../static/wcs/js/console.js"></script>
     <script src="../../static/wcs/js/common.js"></script>
-
-
 </head>
+<script type="text/html" id="errorTpl">
+    {{# if( d.error === false ){ }}
+    <span name="level" class="layui-badge layui-badge-green">姝e父</span>
+    {{# } else { }}
+    <span name="level" class="layui-badge layui-badge-red">寮傚父</span>
+    {{# } }}
+</script>
 <body>
     <div id="main">
         <div class="head">
@@ -20,14 +33,17 @@
                 <h1>鑷姩浠撳簱WCS鐩戞帶鍥�</h1>
                 <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
             </div>
-            <div class="head-right">
-                <img src="../../static/wcs/images/zy-logo.png" alt="涓壃" height="44" width="80">
-            </div>
         </div>
         <!-- 璐ф灦 + 鍫嗗灈鏈� + 鍏ュ簱绔欑偣 -->
         <div class="main-part">
 
         </div>
+
+        <!--璁惧鍒楄〃-->
+        <div class="device-info">
+            <table class="layui-hide" id="deviceInfo" lay-filter="deviceInfo"></table>
+        </div>
+
         <div id="body">
             <!-- 鎬诲紑鍏� -->
             <div class="system-state">

--
Gitblit v1.9.1