From 92ac16fad20cbd4c0035501ef04605bdb960fc18 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 24 五月 2024 10:36:49 +0800
Subject: [PATCH] #提升机状态

---
 src/main/java/com/zy/asrs/domain/vo/HoistDataVo.java        |    9 ++
 src/main/java/com/zy/core/model/protocol/StaProtocol.java   |   17 ++++
 src/main/java/com/zy/asrs/controller/ConsoleController.java |   22 +++++
 src/main/webapp/static/wcs/js/console.map.js                |   50 ++++++++++++
 src/main/webapp/views/realtimeWatch/console.html            |   23 +++++
 src/main/webapp/static/wcs/js/console.js                    |   17 +++
 src/main/webapp/static/wcs/css/render.css                   |    9 ++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   46 +++++++++++
 8 files changed, 191 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index d56f44d..0dc3353 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -123,6 +123,28 @@
         return R.ok().add(vos);
     }
 
+
+    @PostMapping("/latest/data/hoist")
+    @ManagerAuth(memo = "鎻愬崌鏈哄疄鏃舵暟鎹�")
+    public R hoistLatestData(){
+        List<HoistDataVo> vos = new ArrayList<>();
+        Map<Integer, StaProtocol> stations = new HashMap<>();
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+            if (null != devpThread) {
+                stations.putAll(devpThread.getStation());
+            }
+        }
+        for (Map.Entry<Integer, StaProtocol> entry : stations.entrySet()) {
+            HoistDataVo vo = new HoistDataVo();
+            StaProtocol staProtocol = entry.getValue();
+            vo.setHoistId(String.valueOf(entry.getKey()));
+            vo.setPlace(staProtocol.getPlace());
+            vos.add(vo);
+        }
+        return R.ok().add(vos);
+    }
+
     @PostMapping("/latest/data/crn")
     @ManagerAuth(memo = "鍫嗗灈鏈哄疄鏃舵暟鎹�")
     public R crnLatestData(){
diff --git a/src/main/java/com/zy/asrs/domain/vo/HoistDataVo.java b/src/main/java/com/zy/asrs/domain/vo/HoistDataVo.java
new file mode 100644
index 0000000..1fdd6b5
--- /dev/null
+++ b/src/main/java/com/zy/asrs/domain/vo/HoistDataVo.java
@@ -0,0 +1,9 @@
+package com.zy.asrs.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class HoistDataVo {
+    private String hoistId;
+    private String place;
+}
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 04c2f06..ce532a8 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -68,6 +68,23 @@
     //鏉$爜
     private String barcode = null;
 
+    private boolean place1 = false;
+    private boolean place2 = false;
+
+    public String getPlace(){
+        if (place1 && place2){
+            return "鍒颁綅淇″彿寮傚父";
+        }
+        if (place1){
+            return "涓�妤煎埌浣�";
+        }
+        if (place2){
+            return "浜屾ゼ鍒颁綅";
+        }
+            return "涓嶅湪瀹氫綅";
+
+    }
+
     // 澶栧舰妫�娴� ------------------------------------------------------------------------
 
     // 鍓嶈秴闄�
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 37fd458..6322db8 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -71,6 +71,12 @@
         add(400);add(401);add(402);add(403);
         add(404);add(405);add(406);add(407);
     }};
+    public static final ArrayList<Integer> hoist1 = new ArrayList<Integer>() {{
+        add(302);add(303);
+    }};
+    public static final ArrayList<Integer> hoist2 = new ArrayList<Integer>() {{
+        add(402);add(403);
+    }};
 
     /**
      * 鏉$爜鏁伴噺
@@ -97,6 +103,17 @@
                 return staNos3;
             case 4:
                 return staNos4;
+            default:
+                throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
+        }
+    }
+
+    private ArrayList<Integer> getHoist() {
+        switch (slave.getId()) {
+            case 3:
+                return hoist1;
+            case 4:
+                return hoist2;
             default:
                 throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
         }
@@ -276,6 +293,35 @@
                 }
             }
         }
+        if (slave.getId() == 3 || slave.getId() == 4){
+            ArrayList<Integer> hoist = getHoist();
+            int hoistSize = hoist.size();
+            OperateResultExOne<byte[]> resultHoist = siemensS7Net.Read("DB15.0", (short) 33);
+            if (resultHoist.IsSuccess) {
+                    Integer siteId = hoist.get(0); // 绔欑偣缂栧彿
+                    StaProtocol staProtocol = station.get(siteId);
+                    if (null == staProtocol) {
+                        staProtocol = new StaProtocol();
+                        staProtocol.setSiteId(siteId);
+                        station.put(siteId, staProtocol);
+                    }
+                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultHoist.Content, 32, 1);
+                    staProtocol.setPlace1(status[0]);
+                    staProtocol.setPlace2(status[1]);
+
+                Integer siteId2 = hoist.get(1); // 绔欑偣缂栧彿
+                staProtocol = station.get(siteId2);
+                if (null == staProtocol) {
+                    staProtocol = new StaProtocol();
+                    staProtocol.setSiteId(siteId);
+                    station.put(siteId, staProtocol);
+                }
+                boolean[] status2 = siemensS7Net.getByteTransform().TransBool(resultHoist.Content, 32, 1);
+                staProtocol.setPlace1(status2[2]);
+                staProtocol.setPlace2(status2[3]);
+
+            }
+        }
 
 
         if (slave.getId() == 1){
diff --git a/src/main/webapp/static/wcs/css/render.css b/src/main/webapp/static/wcs/css/render.css
index 01d778f..fca38f4 100644
--- a/src/main/webapp/static/wcs/css/render.css
+++ b/src/main/webapp/static/wcs/css/render.css
@@ -562,6 +562,15 @@
     background-color: rgb(157, 217, 162);
     font-size: 10px;
 }
+.hoist {
+    position: absolute;
+    color: #a19c9c;
+    border: 1px solid rgb(108,167,168);
+    cursor: pointer;
+    text-align: center;
+    background-color: rgb(157, 217, 162);
+    font-size: 10px;
+}
 .barcode1{
     position: absolute;
     width: 100px;
diff --git a/src/main/webapp/static/wcs/js/console.js b/src/main/webapp/static/wcs/js/console.js
index fed00b7..d39150f 100644
--- a/src/main/webapp/static/wcs/js/console.js
+++ b/src/main/webapp/static/wcs/js/console.js
@@ -10,9 +10,11 @@
     tracks = '',
     stn = '',
     barcode = '',
+    hoist = '',
     stns = '',
     stnArr = [],
     barcodeArr = [],
+    hoistArr = [],
     floorBtn = '',
     floorBtns = '',
     floorBtnss = '',
@@ -127,6 +129,7 @@
 
         let stnss = areas[i].stns
         let barcodes = areas[i].barcode
+        let hoists = areas[i].hoist
         let floor = areas[i].text
         floorId = areas[i].id
         var position = (i+1)*100
@@ -142,6 +145,7 @@
         var n = 1
         stnArr[index] = ''
         barcodeArr[index] = ''
+        hoistArr[index] = ''
         total[index] = ''
         for (let j = 0; j < stnss.length; j++) {
             if (stnss[j].type == "stn") {
@@ -174,8 +178,17 @@
                 "px;left: "+ barcodes[k].left + "px'>" + "</div>"
             barcodeArr[i] = barcodeArr[i] + barcode
         }
+        for (let k = 0; k < hoists.length; k++) {
+            hoist = "<div class='hoist' id='" + hoists[k].id +
+                "'style='width:" + hoists[k].width +
+                "px;height: " + hoists[k].height +
+                "px;line-height: " + hoists[k].height +
+                "px;top: "+ hoists[k].top +
+                "px;left: "+ hoists[k].left + "px'>" + "</div>"
+            hoistArr[i] = hoistArr[i] + hoist
+        }
     }
-    floorInfo = racks + rackDescs + tracks + crns + stnArr[0] + floorBtnss + barcodeArr[0]
+    floorInfo = racks + rackDescs + tracks + crns + stnArr[0] + floorBtnss + barcodeArr[0]+hoistArr[0]
 
     $(".main-part").append(floorInfo)
     $("#line-total").html(total[0])
@@ -184,7 +197,7 @@
 }
 function changFloor(e) {
     $(".main-part").empty()  // 娓呯┖鑺傜偣
-    floorInfo = racks  + stnArr[e] +rackDescs + crns + tracks + floorBtnss + barcodeArr[e]
+    floorInfo = racks  + stnArr[e] +rackDescs + crns + tracks + floorBtnss + barcodeArr[e]+hoistArr[e]
     $(".main-part").append(floorInfo)
     $("#line-total").empty()
     $("#line-total").html(total[e])
diff --git a/src/main/webapp/static/wcs/js/console.map.js b/src/main/webapp/static/wcs/js/console.map.js
index 28ab492..51a9f88 100644
--- a/src/main/webapp/static/wcs/js/console.map.js
+++ b/src/main/webapp/static/wcs/js/console.map.js
@@ -708,6 +708,44 @@
                     "width": 80,
                     "height": 20
                 }
+            ],
+            "hoist": [
+                {
+                    "type": "hoist",
+                    "id": "hoist-302",
+                    "text": "",
+                    "top": 640,
+                    "left": 1500,
+                    "width": 50,
+                    "height": 20
+                },
+                {
+                    "type": "hoist",
+                    "id": "hoist-303",
+                    "text": "",
+                    "top": 595,
+                    "left": 1500,
+                    "width": 50,
+                    "height": 20
+                },
+                {
+                    "type": "hoist",
+                    "id": "hoist-402",
+                    "text": "",
+                    "top": 480,
+                    "left": 1500,
+                    "width": 50,
+                    "height": 20
+                },
+                {
+                    "type": "hoist",
+                    "id": "hoist-403",
+                    "text": "",
+                    "top": 527,
+                    "left": 1500,
+                    "width": 50,
+                    "height": 20
+                }
             ]
         }, {
             "type": "floor",
@@ -1114,6 +1152,18 @@
                     "height": 0
                 }
 
+            ],
+            "hoist": [
+                {
+                    "type": "hoist",
+                    "id": "hoist-999",
+                    "text": "",
+                    "top": 570,
+                    "left": 1590,
+                    "width": 80,
+                    "height": 0
+                }
+
             ]
         }]
     }]
diff --git a/src/main/webapp/views/realtimeWatch/console.html b/src/main/webapp/views/realtimeWatch/console.html
index b6ff3e7..3752f0b 100644
--- a/src/main/webapp/views/realtimeWatch/console.html
+++ b/src/main/webapp/views/realtimeWatch/console.html
@@ -503,6 +503,7 @@
     // 鍒濆鍖�
     getSitesInfo();
     getCrnInfo();
+    getHoistInfo();
     getSystemRunningStatus();
     getBarcodeInfo();
     getScaleInfo();
@@ -515,6 +516,7 @@
     }, 1000);
     setInterval(function () {
         getSitesInfo();
+        getHoistInfo();
     }, 3000);
 
     // 绯荤粺杩愯寮�鍏�
@@ -664,6 +666,27 @@
     }
 
     // 鎵爜鍣ㄥ疄鏃舵暟鎹幏鍙�
+    function getHoistInfo() {
+        $.ajax({
+            url: baseUrl + "/console/latest/data/hoist",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    var hoists = res.data;
+                    for (var i = 0; i < hoists.length; i++) {
+                        $("#hoist-"+hoists[i].hoistId).html(hoists[i].place ? hoists[i].place : "--");
+                    }
+                } else if (res.code === 403) {
+                    parent.location.href = baseUrl + "/login";
+                } else {
+                    console.log(res.msg);
+                }
+            }
+        });
+    }
+
+    // 鎵爜鍣ㄥ疄鏃舵暟鎹幏鍙�
     function getBarcodeInfo() {
         $.ajax({
             url: baseUrl + "/console/latest/data/barcode",

--
Gitblit v1.9.1