From 9b81ed8ec15cc4b3f46c7a630512a268b3a74d74 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 07 八月 2024 16:37:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorTotalVO.java      |   48 +++++
 ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java          |    8 
 pom.xml                                                                           |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorRateVO.java       |   62 ++++++
 ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java         |    6 
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java            |    6 
 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml                       |    6 
 ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java              |    7 
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/DashboardQuery.java          |   22 ++
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java  |   13 +
 ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java                 |    7 
 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java             |   19 +
 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml                      |   95 ++++++++++
 ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml                     |    4 
 ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml                     |   13 +
 ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java  |   10 +
 ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java           |   17 +
 ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java              |   17 +
 ycl-server/src/main/java/com/ycl/platform/controller/ContractController.java      |    9 
 ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java      |    6 
 ycl-common/src/main/java/enumeration/Trend.java                                   |   11 +
 ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java           |   16 +
 ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java   |   17 +
 ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java     |   50 +++++
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/DeptAreaVO.java          |   22 ++
 ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml                    |   15 +
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java |    4 
 ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java          |    6 
 28 files changed, 500 insertions(+), 18 deletions(-)

diff --git a/pom.xml b/pom.xml
index 614ed78..903f2e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -256,7 +256,7 @@
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
-            <version>${spring-boot.version}</version>
+            <version>4.1.3</version>
         </dependency>
 
 
diff --git a/ycl-common/src/main/java/enumeration/Trend.java b/ycl-common/src/main/java/enumeration/Trend.java
new file mode 100644
index 0000000..10ae191
--- /dev/null
+++ b/ycl-common/src/main/java/enumeration/Trend.java
@@ -0,0 +1,11 @@
+package enumeration;
+
+/**
+ * @author gonghl
+ * @since 2024-8-7
+ */
+
+public enum Trend {
+    RISING, FALLING, STABLE
+
+}
\ No newline at end of file
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DashboardQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DashboardQuery.java
new file mode 100644
index 0000000..4cbcd38
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DashboardQuery.java
@@ -0,0 +1,22 @@
+package com.ycl.platform.domain.query;
+
+import lombok.Data;
+
+/**
+ * @author gonghl
+ * @since 2024/8/6 涓嬪崍 3:01
+ */
+@Data
+public class DashboardQuery {
+
+    /**
+     * 鏁版嵁鏉冮檺锛�1鐪佸巺锛�2甯傚眬锛�3鍏朵粬
+     */
+    private Integer dataScope;
+
+    /**
+     * 閮ㄩ棬id
+     */
+    private Integer deptId;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/DeptAreaVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/DeptAreaVO.java
new file mode 100644
index 0000000..9c21631
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/DeptAreaVO.java
@@ -0,0 +1,22 @@
+package com.ycl.platform.domain.vo.screen;
+
+import lombok.Data;
+
+/**
+ * @author gonghl
+ * @since 2024/8/7 涓婂崍 10:06
+ */
+@Data
+public class DeptAreaVO {
+
+    /**
+     * 閮ㄩ棬id
+     */
+    private Integer deptId;
+
+    /**
+     * 閮ㄩ棬鍖哄煙
+     */
+    private String area;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorRateVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorRateVO.java
new file mode 100644
index 0000000..753b712
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorRateVO.java
@@ -0,0 +1,62 @@
+package com.ycl.platform.domain.vo.screen;
+
+import lombok.Data;
+
+/**
+ * @author gonghl
+ * @since 2024/8/7 涓婂崍 10:06
+ */
+@Data
+public class MonitorRateVO {
+
+    /**
+     * 鍦板尯
+     */
+    private String area;
+
+    /**
+     * 浜鸿劯璁惧
+     */
+    private Double faceRate;
+
+    /**
+     * 浜鸿劯姝e父鏁�
+     */
+    private Integer faceNormalNum;
+
+    /**
+     * 浜鸿劯寮傚父鏁�
+     */
+    private Integer faceErrorNum;
+
+    /**
+     * 杞﹁締璁惧
+     */
+    private Double carRate;
+
+    /**
+     * 杞﹁締姝e父鏁�
+     */
+    private Integer carNormalNum;
+
+    /**
+     * 杞﹁締寮傚父鏁�
+     */
+    private Integer carErrorNum;
+
+    /**
+     * 瑙嗛璁惧
+     */
+    private Double videoRate;
+
+    /**
+     * 瑙嗛姝e父鏁�
+     */
+    private Integer videoNormalNum;
+
+    /**
+     * 瑙嗛寮傚父鏁�
+     */
+    private Integer videoErrorNum;
+
+}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorTotalVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorTotalVO.java
new file mode 100644
index 0000000..d675fe7
--- /dev/null
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/screen/MonitorTotalVO.java
@@ -0,0 +1,48 @@
+package com.ycl.platform.domain.vo.screen;
+
+import enumeration.Trend;
+import lombok.Data;
+
+/**
+ * @author gonghl
+ * @since 2024/8/7 涓婂崍 10:06
+ */
+@Data
+public class MonitorTotalVO {
+
+    /**
+     * 璁惧绫诲瀷
+     */
+    private String type;
+
+    /**
+     * 璁惧鎬绘暟
+     */
+    private Integer totalNum;
+
+    /**
+     * 璁惧鎬绘暟瓒嬪娍
+     */
+    private Trend totalTrend;
+
+    /**
+     * 璁惧姝e父鏁�
+     */
+    private Integer normalNum;
+
+    /**
+     * 璁惧姝e父鏁拌秼鍔�
+     */
+    private Trend normalTrend;
+
+    /**
+     * 璁惧寮傚父鏁�
+     */
+    private Integer errorNum;
+
+    /**
+     * 璁惧寮傚父鏁拌秼鍔�
+     */
+    private Trend errorTrend;
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java b/ycl-server/src/main/java/com/ycl/platform/controller/ContractController.java
similarity index 91%
rename from ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java
rename to ycl-server/src/main/java/com/ycl/platform/controller/ContractController.java
index 824b018..fedc6b1 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/TContractController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/ContractController.java
@@ -32,10 +32,17 @@
 @RestController
 @RequestMapping("/system/contract")
 @AllArgsConstructor
-public class TContractController extends BaseController {
+public class ContractController extends BaseController {
 
     private final ITContractService tContractService;
 
+    @PreAuthorize("@ss.hasPermi('system:contract:time')")
+    @GetMapping("/time/{unitId}")
+    @ApiOperation("鑾峰彇璇ュ崟浣嶇殑鍚堝悓鏃堕棿鑼冨洿")
+    public Result timeRange(@PathVariable("unitId") Integer unitId) {
+        return tContractService.timeRange(unitId);
+    }
+
     @PreAuthorize("@ss.hasPermi('system:contract:list')")
     @GetMapping("/list")
     public Result page(ContractQuery query) {
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java b/ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java
new file mode 100644
index 0000000..fa4ec5a
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/DashboardController.java
@@ -0,0 +1,50 @@
+package com.ycl.platform.controller;
+
+import com.ycl.platform.domain.query.DashboardQuery;
+import com.ycl.platform.service.ITMonitorService;
+import com.ycl.platform.service.WorkOrderService;
+import com.ycl.system.service.ISysDeptService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import pojo.AjaxResult;
+
+/**
+ * 杩愮淮鑰冩牳澶у睆
+ *
+ * @author gonghl
+ * @since 2024/8/6 涓嬪崍 2:35
+ */
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/dashboard")
+public class DashboardController {
+
+    private final WorkOrderService workOrderService;
+    private final ITMonitorService monitorService;
+    private final ISysDeptService deptService;
+
+    @GetMapping("/department")
+    public AjaxResult department() {
+        return AjaxResult.success(deptService.dashboard());
+    }
+
+    @GetMapping("/workOrder")
+    public AjaxResult workOrder(DashboardQuery dashboardQuery) {
+        return AjaxResult.success(workOrderService.dashboard(dashboardQuery));
+    }
+
+    @GetMapping("/monitor/total")
+    public AjaxResult monitorTotal(DashboardQuery dashboardQuery) {
+        return AjaxResult.success(monitorService.monitorTotal(dashboardQuery));
+    }
+
+    @GetMapping("/monitor/rate")
+    public AjaxResult monitorRate(DashboardQuery dashboardQuery) {
+        return AjaxResult.success(monitorService.monitorRate(dashboardQuery));
+    }
+
+
+}
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java b/ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java
index ab3c6ce..d0406b8 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/HomeController.java
@@ -23,6 +23,7 @@
     private final WorkOrderService workOrderService;
     private final YwPointService ywPointService;
     private final IContractScoreService contractScoreService;
+    private final ICheckScoreService checkScoreService;
 
     @GetMapping("/ywUnitList")
     public AjaxResult ywUnitList() {
@@ -49,6 +50,11 @@
         return AjaxResult.success(ywUnitService.ywUnitCount());
     }
 
+    @GetMapping("/checkScore")
+    public AjaxResult checkScore() {
+        return AjaxResult.success(checkScoreService.home());
+    }
+
     @GetMapping("/calculate")
     public AjaxResult calculate() {
         return AjaxResult.success(contractScoreService.calculate());
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
index aaf2b40..a62f559 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckScoreMapper.java
@@ -74,4 +74,10 @@
     void saveBatch(List<CheckScore> scoreList);
 
     List<CheckScore> selectCheckScoreMap(CheckScore checkScore);
+
+    /**
+     * 棣栭〉鑰冩牳棰勮
+     * @return 鏁版嵁
+     */
+    List<Map<String, Object>> home();
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index 433d542..ee883de 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -2,8 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.query.DashboardQuery;
 import com.ycl.platform.domain.query.HomeQuery;
 import com.ycl.platform.domain.vo.TMonitorVO;
+import com.ycl.platform.domain.vo.screen.MonitorRateVO;
+import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
 
 import java.util.List;
 import java.util.Map;
@@ -92,4 +95,18 @@
     List<Map<String, Object>> home(HomeQuery monitorQuery);
 
     List<TMonitorVO> selectListByIds(List<String> list);
+
+    /**
+     * 澶у睆璁惧鎬绘暟
+     * @param dashboardQuery 鏌ヨ鏉′欢
+     * @return 鏁版嵁
+     */
+    List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery);
+
+    /**
+     * 澶у睆璁惧姝e父鐜�
+     * @return 鏁版嵁
+     */
+    List<MonitorRateVO> monitorRate(DashboardQuery dashboardQuery);
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
index 603fb4f..2517f55 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java
@@ -3,10 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ycl.platform.domain.entity.WorkOrder;
-import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
-import com.ycl.platform.domain.query.HomeQuery;
-import com.ycl.platform.domain.query.ScreenQuery;
-import com.ycl.platform.domain.query.WorkOrderQuery;
+import com.ycl.platform.domain.query.*;
 import com.ycl.platform.domain.vo.WorkOrderVO;
 import com.ycl.platform.domain.vo.YwPointJobVO;
 import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
@@ -50,4 +47,18 @@
      * @return 鏁版嵁
      */
     List<Map<String, Object>> home(HomeQuery monitorQuery);
+
+    /**
+     * 澶у睆宸ュ崟鎬绘暟
+     * @param dashboardQuery 鏌ヨ鏉′欢
+     * @return 鏁版嵁
+     */
+    Map<String, Object> workOrderTotal(DashboardQuery dashboardQuery);
+
+    /**
+     * 澶у睆宸ュ崟鍒嗗尯
+     * @param dashboardQuery 鏌ヨ鏉′欢
+     * @return 鏁版嵁
+     */
+    Map<String, Object> workOrderRegion(DashboardQuery dashboardQuery);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java b/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java
index 32112e0..7302032 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ICheckScoreService.java
@@ -49,6 +49,12 @@
     List<CheckScore> page(CheckScore checkScore);
 
     void exportIndex(HttpServletResponse response,CheckScore checkScore) throws IOException;
+
+    /**
+     * 棣栭〉鑰冩牳棰勮
+     * @return 鏁版嵁
+     */
+    List<Map<String, Object>> home();
 //    /**
 //     * 鏂板鑰冩牳绉垎鏄庣粏
 //     *
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
index aaf5b80..b1b8e6f 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ITContractService.java
@@ -53,4 +53,12 @@
      * @return 鏁版嵁
      */
     List<TContract> selectUsingContract();
+
+    /**
+     * 鑾峰彇杩愮淮鍗曚綅鐨勫悎鍚屾椂闂磋寖鍥�
+     *
+     * @param unitId
+     * @return
+     */
+    Result timeRange(Integer unitId);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
index c73a2d4..16a323d 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/ITMonitorService.java
@@ -2,8 +2,11 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.query.DashboardQuery;
 import com.ycl.platform.domain.query.HomeQuery;
 import com.ycl.platform.domain.vo.TMonitorVO;
+import com.ycl.platform.domain.vo.screen.MonitorRateVO;
+import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
 
 import java.util.List;
 import java.util.Map;
@@ -84,4 +87,18 @@
      * @return 鏁版嵁
      */
     Map<String, Object> home(HomeQuery monitorQuery);
+
+    /**
+     * 澶у睆璁惧鏁版嵁
+     * @param dashboardQuery 鏌ヨ鏉′欢
+     * @return 鏁版嵁
+     */
+    List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery);
+
+    /**
+     * 澶у睆璁惧姝e父鐜�
+     * @return 鏁版嵁
+     */
+    List<MonitorRateVO> monitorRate(DashboardQuery dashboardQuery);
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
index 73c3a31..9e7d512 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderService.java
@@ -1,14 +1,12 @@
 package com.ycl.platform.service;
 
-import com.ycl.platform.domain.entity.WorkOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.platform.domain.entity.WorkOrder;
 import com.ycl.platform.domain.form.*;
-import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
-import com.ycl.platform.domain.query.HomeQuery;
-import com.ycl.platform.domain.query.ScreenQuery;
+import com.ycl.platform.domain.query.*;
 import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
 import com.ycl.system.Result;
-import com.ycl.platform.domain.query.WorkOrderQuery;
+
 import java.util.List;
 import java.util.Map;
 
@@ -159,4 +157,12 @@
      * @return 鏁版嵁
      */
     Map<String, Object> home(HomeQuery monitorQuery);
+
+    /**
+     * 澶у睆宸ュ崟
+     * @param dashboardQuery 鏌ヨ鏉′欢
+     * @return 鏁版嵁
+     */
+    Map<String, Object> dashboard(DashboardQuery dashboardQuery);
+
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
index 21d675d..e9503ef 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckScoreServiceImpl.java
@@ -290,6 +290,10 @@
         }
     }
 
+    @Override
+    public List<Map<String, Object>> home() {
+        return baseMapper.home();
+    }
 
     //    /**
 //     * 鏂板鑰冩牳绉垎
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
index 346b141..747dd0e 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -216,4 +216,14 @@
                 .ge(TContract::getEndTime, DateUtils.getDate())
                 .list();
     }
+
+    @Override
+    public Result timeRange(Integer unitId) {
+        List<TContract> unitContractList = new LambdaQueryChainWrapper<>(baseMapper)
+                .select(TContract::getId, TContract::getName, TContract::getStartTime, TContract::getEndTime)
+                .eq(TContract::getUnitId, unitId)
+                .ge(TContract::getEndTime, new Date())
+                .list();
+        return Result.ok().data(unitContractList);
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
index 57ea6e8..9aa15a8 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -3,12 +3,16 @@
 import annotation.DataScope;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.query.DashboardQuery;
 import com.ycl.platform.domain.query.HomeQuery;
 import com.ycl.platform.domain.vo.TMonitorVO;
+import com.ycl.platform.domain.vo.screen.MonitorRateVO;
+import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
 import com.ycl.platform.mapper.TMonitorMapper;
 import com.ycl.platform.service.ITMonitorService;
 import com.ycl.system.service.ISysConfigService;
 import com.ycl.utils.StringUtils;
+import com.ycl.utils.redis.RedisCache;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,6 +35,8 @@
     private TMonitorMapper tMonitorMapper;
     @Autowired
     private ISysConfigService configService;
+    @Autowired
+    private RedisCache redisCache;
 
     /**
      * 鏌ヨ璁惧璧勪骇
@@ -143,4 +149,15 @@
         }
         return dataMap;
     }
+
+    @Override
+    public List<MonitorTotalVO> monitorTotal(DashboardQuery dashboardQuery) {
+        List<MonitorTotalVO> list = baseMapper.monitorTotal(dashboardQuery);
+        return list;
+    }
+
+    @Override
+    public List<MonitorRateVO> monitorRate(DashboardQuery dashboardQuery) {
+        return baseMapper.monitorRate(dashboardQuery);
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 415f927..0178d13 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -8,10 +8,7 @@
 import com.ycl.exception.ServiceException;
 import com.ycl.platform.domain.entity.*;
 import com.ycl.platform.domain.form.*;
-import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
-import com.ycl.platform.domain.query.HomeQuery;
-import com.ycl.platform.domain.query.ScreenQuery;
-import com.ycl.platform.domain.query.WorkOrderQuery;
+import com.ycl.platform.domain.query.*;
 import com.ycl.platform.domain.vo.DistributeWorkOrderVO;
 import com.ycl.platform.domain.vo.WorkOrderVO;
 import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
@@ -465,4 +462,12 @@
         dataMap.put("pending", data3);
         return dataMap;
     }
+
+    @Override
+    public Map<String, Object> dashboard(DashboardQuery dashboardQuery) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("workOrderTotal", baseMapper.workOrderTotal(dashboardQuery));
+        map.put("workOrderRegion", baseMapper.workOrderRegion(dashboardQuery));
+        return map;
+    }
 }
diff --git a/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java b/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java
index b95a5b5..6b55c74 100644
--- a/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java
+++ b/ycl-server/src/main/java/com/ycl/system/mapper/SysDeptMapper.java
@@ -1,6 +1,7 @@
 package com.ycl.system.mapper;
 
 import com.ycl.platform.base.Cascader;
+import com.ycl.platform.domain.vo.screen.DeptAreaVO;
 import com.ycl.system.entity.SysDept;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -142,4 +143,10 @@
      * @return
      */
     List<Long> selectByParentId(@Param("id") Long deptId);
+
+    /**
+     * 澶у睆鍦板尯
+     * @return 鍦板尯
+     */
+    List<DeptAreaVO> dashboard();
 }
diff --git a/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java b/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java
index ad7deb7..346d9f0 100644
--- a/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java
+++ b/ycl-server/src/main/java/com/ycl/system/service/ISysDeptService.java
@@ -1,5 +1,6 @@
 package com.ycl.system.service;
 
+import com.ycl.platform.domain.vo.screen.DeptAreaVO;
 import com.ycl.system.Result;
 import com.ycl.system.domain.TreeSelect;
 import com.ycl.system.entity.SysDept;
@@ -141,4 +142,10 @@
      * @return
      */
     Result cascader();
+
+    /**
+     * 澶у睆鍦板尯
+     * @return 鍦板尯
+     */
+    List<DeptAreaVO> dashboard();
 }
diff --git a/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java b/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
index 0025f7a..cb0621d 100644
--- a/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
@@ -4,6 +4,7 @@
 import com.ycl.exception.ServiceException;
 import com.ycl.platform.base.BaseSelect;
 import com.ycl.platform.base.Cascader;
+import com.ycl.platform.domain.vo.screen.DeptAreaVO;
 import com.ycl.system.Result;
 import com.ycl.system.domain.TreeSelect;
 import com.ycl.system.entity.SysDept;
@@ -405,4 +406,9 @@
     {
         return getChildList(list, t).size() > 0;
     }
+
+    @Override
+    public List<DeptAreaVO> dashboard() {
+        return deptMapper.dashboard();
+    }
 }
diff --git a/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml b/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml
index 18a67f9..1f42286 100644
--- a/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml
+++ b/ycl-server/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -183,4 +183,8 @@
 			level DESC
 	</select>
 
+    <select id="dashboard" resultType="com.ycl.platform.domain.vo.screen.DeptAreaVO">
+		SELECT dept_id, area FROM sys_dept WHERE status = '0' AND del_flag = 0 AND area IS NOT NULL
+	</select>
+
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
index ae68b76..6c5fa75 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckScoreMapper.xml
@@ -136,4 +136,19 @@
           AND DATE_FORMAT(tcs.create_time, '%Y-%m') BETWEEN DATE_FORMAT(#{startDate}, '%Y-%m') AND DATE_FORMAT(#{endDate}, '%Y-%m')
     </select>
 
+    <select id="home" resultType="java.util.Map">
+        SELECT
+            DATE_FORMAT(cs.create_time, '%Y-%m-%d %h:%i:%s') AS createTime,
+            d.area,
+            CASE WHEN cs.examine_tag = '0' THEN '鐪佸巺' WHEN cs.examine_tag = '1' THEN '甯傚眬' WHEN cs.examine_tag = '2' THEN '' END AS examineTag,
+            ct.template_name AS templateName,
+            cs.score
+        FROM
+            t_check_score cs
+                LEFT JOIN t_check_template ct ON cs.template_id = ct.id
+                LEFT JOIN sys_dept d ON cs.dept_id = d.dept_id
+        WHERE cs.score > ct.alarm_score
+        ORDER BY cs.create_time DESC
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 62acb31..33e3d5f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -346,7 +346,102 @@
         <if test="dateRange != null and dateRange.size > 0">
             AND DATE_FORMAT(w.create_time, '%Y-%m') BETWEEN #{dateRange[0]} AND #{dateRange[1]}
         </if>
+        GROUP BY months
         ORDER BY months
     </select>
 
+    <select id="monitorTotal" resultType="com.ycl.platform.domain.vo.screen.MonitorTotalVO">
+        SELECT
+            '瑙嗛' as type,
+            COUNT(p1.id) AS totalNum,
+            COUNT(p2.id) AS errorNum,
+            COUNT(p1.id) - COUNT(p2.id) AS normalNum
+        FROM t_monitor
+        LEFT JOIN t_yw_point p1 ON t_monitor.serial_number = p1.serial_number <if test="dataScope == 1"> AND p1.province_tag = 'province' </if>
+        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number AND p2.recovery = 1 <if test="dataScope == 1"> AND p2.province_tag = 'province' </if>
+        WHERE INSTR(camera_fun_type, 1)
+        <if test="deptId != null"> AND p1.dept_id = #{deptId} AND p2.dept_id = #{deptId} </if>
+        UNION ALL
+        SELECT
+            '杞﹁締' as type,
+            COUNT(p1.id) AS totalNum,
+            COUNT(p2.id) AS errorNum,
+            COUNT(p1.id) - COUNT(p2.id) AS normalNum
+        FROM t_monitor
+        LEFT JOIN t_yw_point p1 ON t_monitor.serial_number = p1.serial_number <if test="dataScope == 1"> AND p1.province_tag = 'province' </if>
+        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number AND p2.recovery = 1 <if test="dataScope == 1"> AND p2.province_tag = 'province' </if>
+        WHERE INSTR(camera_fun_type, 2)
+        <if test="deptId != null"> AND p1.dept_id = #{deptId} AND p2.dept_id = #{deptId} </if>
+        UNION ALL
+        SELECT
+            '浜鸿劯' as type,
+            COUNT(p1.id) AS totalNum,
+            COUNT(p2.id) AS errorNum,
+            COUNT(p1.id) - COUNT(p2.id) AS normalNum
+        FROM t_monitor
+        LEFT JOIN t_yw_point p1 ON t_monitor.serial_number = p1.serial_number <if test="dataScope == 1"> AND p1.province_tag = 'province' </if>
+        LEFT JOIN t_yw_point p2 ON t_monitor.serial_number = p2.serial_number AND p2.recovery = 1 <if test="dataScope == 1"> AND p2.province_tag = 'province' </if>
+        WHERE INSTR(camera_fun_type, 3)
+        <if test="deptId != null"> AND p1.dept_id = #{deptId} AND p2.dept_id = #{deptId} </if>
+    </select>
+
+    <select id="monitorRate" resultType="com.ycl.platform.domain.vo.screen.MonitorRateVO">
+        SELECT
+            *
+        FROM
+            -- 浜鸿劯璁惧
+            (
+                SELECT
+                    d.area,
+                    IFNULL(ROUND((COUNT(m.id) - COUNT(m2.id)) / COUNT(m.id) * 100, 2), 0) AS faceRate,
+                    COUNT(m.id) - COUNT(m2.id) AS faceNormalNum,
+                    COUNT(m2.id) AS faceErrorNum
+                FROM
+                    sys_dept d
+                        LEFT JOIN t_yw_point p ON p.dept_id = d.dept_id AND p.deleted = 0 <if test="dataScope == 1"> AND p.province_tag = 'province' </if>
+                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.recovery = 1 <if test="dataScope == 1"> AND p2.province_tag = 'province' </if>
+                        LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 1)
+                        LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 1)
+                WHERE d.del_flag = 0 AND d.area IS NOT NULL
+                GROUP BY d.area, d.dept_id
+                ORDER BY d.dept_id
+            ) a
+        INNER JOIN
+            -- 杞﹁締璁惧
+            (
+                SELECT
+                    d.area,
+                    IFNULL(ROUND((COUNT(m.id) - COUNT(m2.id)) / COUNT(m.id) * 100, 2), 0) AS carRate,
+                    COUNT(m.id) - COUNT(m2.id) AS carNormalNum,
+                    COUNT(m2.id) AS carErrorNum
+                FROM
+                    sys_dept d
+                        LEFT JOIN t_yw_point p ON p.dept_id = d.dept_id AND p.deleted = 0 <if test="dataScope == 1"> AND p.province_tag = 'province' </if>
+                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.recovery = 1 <if test="dataScope == 1"> AND p2.province_tag = 'province' </if>
+                        LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 2)
+                        LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 2)
+                WHERE d.del_flag = 0 AND d.area IS NOT NULL
+                GROUP BY d.area, d.dept_id
+                ORDER BY d.dept_id
+            ) b ON a.area = b.area
+        INNER JOIN
+            -- 瑙嗛璁惧
+            (
+                SELECT
+                    d.area,
+                    IFNULL(ROUND((COUNT(m.id) - COUNT(m2.id)) / COUNT(m.id) * 100, 2), 0) AS videoRate,
+                    COUNT(m.id) - COUNT(m2.id) AS videoNormalNum,
+                    COUNT(m2.id) AS videoErrorNum
+                FROM
+                    sys_dept d
+                        LEFT JOIN t_yw_point p ON p.dept_id = d.dept_id AND p.deleted = 0 <if test="dataScope == 1"> AND p.province_tag = 'province' </if>
+                        LEFT JOIN t_yw_point p2 ON p2.dept_id = d.dept_id AND p2.deleted = 0 AND p2.recovery = 1 <if test="dataScope == 1"> AND p2.province_tag = 'province' </if>
+                        LEFT JOIN t_monitor m ON m.serial_number = p.serial_number AND INSTR(m.camera_fun_type, 3)
+                        LEFT JOIN t_monitor m2 ON m2.serial_number = p2.serial_number AND INSTR(m2.camera_fun_type, 3)
+                WHERE d.del_flag = 0 AND d.area IS NOT NULL
+                GROUP BY d.area, d.dept_id
+                ORDER BY d.dept_id
+            ) c ON a.area = c.area
+    </select>
+
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index fa34221..f07833f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -139,4 +139,17 @@
         </if>
     </select>
 
+    <select id="workOrderTotal" resultType="java.util.Map">
+        SELECT
+            COUNT(*) AS totalNum,
+            COUNT(IF(status = 'DISTRIBUTED', 1, NULL)) + COUNT(IF(status = 'AUDITING_FAIL', 1, NULL)) + COUNT(IF(status = 'WAIT_DISTRIBUTE', 1, NULL)) AS todoNum,
+            COUNT(IF(status = 'YW_HANDLE', 1, NULL)) + COUNT(IF(status = 'AUDITING_SUCCESS', 1, NULL)) + COUNT(IF(status = 'AUDITING', 1, NULL)) AS doneNum
+        FROM t_work_order w
+        WHERE w.deleted = 0
+    </select>
+
+    <select id="workOrderRegion" resultType="java.util.Map">
+        SELECT * FROM t_work_order limit 1
+    </select>
+
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index c57534a..56539c4 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -53,10 +53,10 @@
 
     <select id="home" resultType="com.ycl.platform.domain.entity.YwPoint">
         <![CDATA[
-        SELECT id, point_name, start_time, end_time, status
+        SELECT t_yw_point.id, point_name, start_time, end_time, status, unit_name AS remark
         FROM t_yw_point
-        WHERE
-        deleted = 0
+        LEFT JOIN t_yw_unit ON t_yw_unit.id = t_yw_point.unit_id AND t_yw_point.deleted = 0
+        WHERE t_yw_point.deleted = 0
         AND TIMESTAMPDIFF(MONTH, NOW(), end_time) <= (SELECT config_value FROM sys_config WHERE config_key = 'operation.and.maintenance.expiration.warning.time')
         ORDER BY end_time
         ]]>

--
Gitblit v1.8.0