From d3e6b7687905d820427d65565d099cff3808b13e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 29 七月 2024 10:13:19 +0800
Subject: [PATCH] 点位在线接口TODO

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexCarServiceImpl.java |  126 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 105 insertions(+), 21 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexCarServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexCarServiceImpl.java
index c01bf8b..5741332 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexCarServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexCarServiceImpl.java
@@ -1,96 +1,180 @@
 package com.ycl.platform.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ycl.platform.domain.entity.CheckIndexCar;
+import com.ycl.platform.domain.entity.TMonitor;
+import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
 import com.ycl.platform.mapper.CheckIndexCarMapper;
 import com.ycl.platform.service.ICheckIndexCarService;
+import com.ycl.platform.service.ITMonitorService;
+import com.ycl.system.entity.SysDept;
+import com.ycl.system.mapper.SysDeptMapper;
+import constant.ApiConstants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import utils.DateUtils;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 杞﹁締鎸囨爣姒傜巼鏁版嵁Service涓氬姟灞傚鐞�
- * 
+ *
  * @author ruoyi
  * @date 2024-04-29
  */
 @Service
-public class CheckIndexCarServiceImpl implements ICheckIndexCarService 
-{
+public class CheckIndexCarServiceImpl implements ICheckIndexCarService {
     @Autowired
     private CheckIndexCarMapper checkIndexCarMapper;
+    @Autowired
+    private ITMonitorService monitorService;
+    @Autowired
+    private SysDeptMapper deptMapper;
 
     /**
      * 鏌ヨ杞﹁締鎸囨爣姒傜巼鏁版嵁
-     * 
+     *
      * @param id 杞﹁締鎸囨爣姒傜巼鏁版嵁涓婚敭
      * @return 杞﹁締鎸囨爣姒傜巼鏁版嵁
      */
     @Override
-    public CheckIndexCar selectCheckIndexCarById(Long id)
-    {
+    public CheckIndexCar selectCheckIndexCarById(Long id) {
         return checkIndexCarMapper.selectCheckIndexCarById(id);
     }
 
     /**
      * 鏌ヨ杞﹁締鎸囨爣姒傜巼鏁版嵁鍒楄〃
-     * 
+     *
      * @param checkIndexCar 杞﹁締鎸囨爣姒傜巼鏁版嵁
      * @return 杞﹁締鎸囨爣姒傜巼鏁版嵁
      */
     @Override
-    public List<CheckIndexCar> selectCheckIndexCarList(CheckIndexCar checkIndexCar)
-    {
+    public List<CheckIndexCar> selectCheckIndexCarList(CheckIndexCar checkIndexCar) {
         return checkIndexCarMapper.selectCheckIndexCarList(checkIndexCar);
     }
 
     /**
      * 鏂板杞﹁締鎸囨爣姒傜巼鏁版嵁
-     * 
+     *
      * @param checkIndexCar 杞﹁締鎸囨爣姒傜巼鏁版嵁
      * @return 缁撴灉
      */
     @Override
-    public int insertCheckIndexCar(CheckIndexCar checkIndexCar)
-    {
+    public int insertCheckIndexCar(CheckIndexCar checkIndexCar) {
         checkIndexCar.setCreateTime(DateUtils.getNowDate());
         return checkIndexCarMapper.insertCheckIndexCar(checkIndexCar);
     }
 
     /**
      * 淇敼杞﹁締鎸囨爣姒傜巼鏁版嵁
-     * 
+     *
      * @param checkIndexCar 杞﹁締鎸囨爣姒傜巼鏁版嵁
      * @return 缁撴灉
      */
     @Override
-    public int updateCheckIndexCar(CheckIndexCar checkIndexCar)
-    {
+    public int updateCheckIndexCar(CheckIndexCar checkIndexCar) {
         return checkIndexCarMapper.updateCheckIndexCar(checkIndexCar);
     }
 
     /**
      * 鎵归噺鍒犻櫎杞﹁締鎸囨爣姒傜巼鏁版嵁
-     * 
+     *
      * @param ids 闇�瑕佸垹闄ょ殑杞﹁締鎸囨爣姒傜巼鏁版嵁涓婚敭
      * @return 缁撴灉
      */
     @Override
-    public int deleteCheckIndexCarByIds(Long[] ids)
-    {
+    public int deleteCheckIndexCarByIds(Long[] ids) {
         return checkIndexCarMapper.deleteCheckIndexCarByIds(ids);
     }
 
     /**
      * 鍒犻櫎杞﹁締鎸囨爣姒傜巼鏁版嵁淇℃伅
-     * 
+     *
      * @param id 杞﹁締鎸囨爣姒傜巼鏁版嵁涓婚敭
      * @return 缁撴灉
      */
     @Override
-    public int deleteCheckIndexCarById(Long id)
-    {
+    public int deleteCheckIndexCarById(Long id) {
         return checkIndexCarMapper.deleteCheckIndexCarById(id);
     }
+
+    /**
+     * 璁$畻杞﹁締鐐逛綅鍦ㄧ嚎鐜囥�佽鍥惧簱瀵规帴绋冲畾鎬�
+     *
+     * @param list
+     */
+    @Override
+    public void siteOnline(List<SnapshotDataMonitorResult> list) {
+        //璁惧id
+        List<String> deviceIds = list.stream().map(SnapshotDataMonitorResult::getExternalIndexCode).collect(Collectors.toList());
+        if (!CollectionUtils.isEmpty(deviceIds)) {
+            // 鐢ㄤ簬瀛樺偍姣忎釜鍖哄煙缁熻淇℃伅鐨勮緟鍔╃被
+            class AreaStats {
+                //鐐逛綅鎬绘暟
+                int totalSites = 0;
+                //绂荤嚎鐐逛綅鏁�
+                int offlineSites = 0;
+                //鎬绘姄鎷嶉噺
+                int totalDataSum = 0;
+            }
+            List<TMonitor> monitors = monitorService.list(new QueryWrapper<TMonitor>().in("serial_number", deviceIds));
+            Map<String, AreaStats> areaStatsMap = new HashMap<>();
+            //鑾峰緱鎵�鏈夊尯鍘縟eptId
+            List<Long> deptIds = deptMapper.selectByParentId(207L);
+            deptIds.forEach(deptId -> areaStatsMap.put(deptId + "", new AreaStats()));
+
+            //杞崲涓簃ap
+            //TODO锛氬垎鐪佸巺甯傚眬
+            List<String> provinceIds = new ArrayList<>();
+            Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity()));
+            for (SnapshotDataMonitorResult result : list) {
+                TMonitor monitor = monitorMap.get(result.getExternalIndexCode());
+                AreaStats areaStats = areaStatsMap.get(monitor.getDeptId() + "");
+                String serialNumber = monitor.getSerialNumber();
+                //鏃犳暟鎹�
+                if (ApiConstants.HK_SnapCount_ResultType_Null == result.getResultType()) {
+                    //鍖哄煙绂荤嚎鐐逛綅鏁�
+                    areaStats.offlineSites++;
+                } else {
+                    //鍖哄煙鎬绘姄鎷嶉噺
+                    areaStats.totalSites += result.getDataCount();
+                }
+                //鍖哄煙鐐逛綅鎬绘暟
+                areaStats.totalDataSum++;
+                //鏄惁鏄渷鍘呮暟鎹�
+                if (!CollectionUtils.isEmpty(provinceIds)) {
+                    if (provinceIds.contains(serialNumber)) {
+                        //鐪佸巺鏁版嵁
+                        AreaStats provinceStats = areaStatsMap.get("Province_" + monitor.getDeptId());
+                        //鏃犳暟鎹�
+                        if (ApiConstants.HK_SnapCount_ResultType_Null == result.getResultType()) {
+                            //鍖哄煙绂荤嚎鐐逛綅鏁�
+                            provinceStats.offlineSites++;
+                        } else {
+                            //鍖哄煙鎬绘姄鎷嶉噺
+                            provinceStats.totalSites += result.getDataCount();
+                        }
+                        //鍖哄煙鐐逛綅鎬绘暟
+                        provinceStats.totalDataSum++;
+                        areaStatsMap.put("Province_" + monitor.getDeptId(), areaStats);
+                    }
+                }
+                areaStatsMap.put(monitor.getDeptId() + "", areaStats);
+            }
+
+            areaStatsMap.forEach((k, v) -> {
+                if (k.startsWith("Province_")) {
+
+                }
+            });
+            CheckIndexCar checkIndexCar = new CheckIndexCar();
+
+        }
+    }
 }

--
Gitblit v1.8.0