From 90ffa7515c367e9be9a2c41e954757898ad2df94 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 17 十一月 2020 15:27:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/MonitorController.java |  227 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 225 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MonitorController.java b/src/main/java/com/zy/asrs/controller/MonitorController.java
index f46ffea..633a26e 100644
--- a/src/main/java/com/zy/asrs/controller/MonitorController.java
+++ b/src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -1,14 +1,22 @@
 package com.zy.asrs.controller;
 
+import com.core.common.Arith;
 import com.core.common.Cools;
 import com.core.common.R;
+import com.zy.asrs.domain.vo.LocChartPie;
+import com.zy.asrs.mapper.ReportQueryMapper;
 import com.zy.common.service.CommonService;
+import com.zy.core.CrnThread;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.protocol.CrnProtocol;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Calendar;
-import java.util.Date;
+import java.util.*;
 
 /**
  * Created by vincent on 2020/11/16
@@ -18,6 +26,9 @@
 public class MonitorController {
 
     private static final String[] WEEK = {"鏄熸湡鏃�","鏄熸湡涓�","鏄熸湡浜�","鏄熸湡涓�","鏄熸湡鍥�","鏄熸湡浜�","鏄熸湡鍏�"};
+
+    @Autowired
+    private ReportQueryMapper reportQueryMapper;
 
     /**
      * 鑾峰彇褰撳墠鏃堕棿
@@ -38,6 +49,218 @@
         );
     }
 
+    /**
+     * 鑾峰彇鍏朵粬淇℃伅
+     */
+    @GetMapping("/other")
+    public R monitorOther(@RequestParam("crnId") Integer crnId) {
+        Double xSpeed = 0.0D;
+        Double ySpeed = 0.0D;
+        if (null != crnId) {
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnId);
+            if (crnThread != null) {
+                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+                if (crnProtocol != null) {
+                    xSpeed = Double.valueOf(crnProtocol.getXSpeed());
+                    ySpeed = Double.valueOf(crnProtocol.getYSpeed());
+                }
+            }
+        }
+
+        xSpeed = Double.valueOf(new Random().nextInt(10));
+        ySpeed = Double.valueOf(new Random().nextInt(10));
+
+        int totalWrk = reportQueryMapper.getTotalWrkByCrnId(crnId);
+        int totalLoc = reportQueryMapper.getTotalLocByCrnId();
+
+        return R.ok(
+                Cools.add("xSpeed", xSpeed) // 琛岃蛋閫熷害
+                .add("ySpeed", ySpeed)  // 鍗囬檷閫熷害
+                .add("totalLoc", totalLoc)  // 鎬诲簱浣嶆暟
+                .add("totalWrk", totalWrk)    // 鎬讳换鍔℃暟
+
+        );
+    }
+
+    /**
+     * 鍏ュ簱鎶ヨ〃 -- 鎶樼嚎鍥�
+     */
+    @GetMapping("/pakin/rep")
+    public R monitorPakinRep(){
+        List<Map<String, Object>> report = reportQueryMapper.queryPakinRep();
+        for (Map<String, Object> map : report) {
+            if (map.get("node")!=null) {
+                map.put("node", String.valueOf(map.get("node")).substring(5, 10));
+            }
+        }
+        return R.ok(report);
+    }
+
+    /**
+     * 搴撲綅浣跨敤鎯呭喌缁熻
+     */
+    @GetMapping("/loc/rep")
+    public R monitorLocRep(){
+        List<Map<String, Object>> pie = new ArrayList<>();
+
+        LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
+        if(locUseRate!=null) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("name", "鍦ㄥ簱");
+            map.put("value", locUseRate.getFqty());
+            pie.add(map);
+
+            Map<String, Object> map1 = new HashMap<>();
+            map1.put("name", "绌�");
+            map1.put("value", locUseRate.getOqty());
+            pie.add(map1);
+
+            Map<String, Object> map2 = new HashMap<>();
+            map2.put("name", "浣跨敤");
+            map2.put("value", locUseRate.getUqty());
+            pie.add(map2);
+
+            Map<String, Object> map3 = new HashMap<>();
+            map3.put("name", "绂佺敤");
+            map3.put("value", locUseRate.getXqty());
+            pie.add(map3);
+        }
+
+        // 鎬诲簱浣嶆暟
+        Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
+        // 浣跨敤涓�
+        Integer used = locUseRate.getFqty() + locUseRate.getUqty();
+        // 搴撲綅浣跨敤鐜�
+        double usedDivides = Arith.divides(3, used, total);
+        double usedPr = Arith.multiplys(1, usedDivides, 100);
+
+        return R.ok(
+                Cools.add("pie", pie)
+                .add("stockCunt", locUseRate.getFqty())
+                .add("emptyCount", locUseRate.getOqty())
+                .add("noneCount", locUseRate.getXqty())
+                .add("total", total)
+                .add("used", used)
+                .add("usedPr", usedPr)
+        );
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    /**
+     * 鑷姩琛ラ浂
+     */
+    private List<Map<String, Object>> fill(List<Map<String, Object>> list, int start, int end){
+        for (int i = start ; i <= end; i++){
+            boolean exist = false;
+            for (Map seq : list){
+                if (Integer.parseInt(String.valueOf(seq.get("node"))) == i){
+                    exist = true;
+                }
+            }
+            if (!exist){
+                HashMap<String, Object> map = new HashMap<>();
+                map.put("node", i);
+                map.put("val", 0);
+                list.add(map);
+            }
+        }
+        list.sort(Comparator.comparingInt(o -> (int) o.get("node")));
+        return list;
+    }
+
+    /**
+     * x杞村崟浣嶈浆鎹�
+     * @param dot y杞存暟鍊间繚鐣欏皬鏁颁綅
+     */
+    private List<Map<String, Object>> convert(List<Map<String, Object>> list, StatsType statsType, int dot){
+        for (Map<String, Object> map : list){
+            Object val = map.get("val");
+            map.put("val", Arith.multiplys(dot, 1, (Number) val));
+            Object node = map.get("node");
+            switch (statsType){
+                case MONTH:
+                    map.put("node", node + "鍙�");
+                    break;
+                case YEAR:
+                    map.put("node", node + "鏈�");
+                    break;
+                default:
+                    break;
+            }
+        }
+        return list;
+    }
+
+    enum StatsType{
+
+        YEAR(1,1, 12),
+        MONTH(2,1, 30),
+        ;
+
+        int id;
+        int start;
+        int end;
+        StatsType(int id, int start, int end) {
+            this.id = id;
+            this.start = start;
+            this.end = end;
+        }
+
+        static StatsType get(int id) {
+            StatsType[] values = StatsType.values();
+            for (StatsType statsType : values){
+                if (statsType.id == id){
+                    return statsType;
+                }
+            }
+            throw new RuntimeException("鎵句笉鍒癝tatsType绫诲瀷");
+        }
+
+    }
+
+
 
 
 }

--
Gitblit v1.9.1