Bladeren bron

数据总览设备统计修改

skyline 2 jaren geleden
bovenliggende
commit
cf6f25155b

+ 1 - 1
admin-web/src/views/admin/index.vue

@@ -425,7 +425,7 @@ const initEchartsResize = () => {
 };
 
 const loadCurrentEquipmentStatus = () => {
-  $get(`equipment/statEquipmentStatus`, {stationId: state.currentStationId}).then((res: any) => {
+  $get(`connector/statConnectorStatus`, {stationId: state.currentStationId}).then((res: any) => {
     console.log(res)
     initPieChart(res || {});
   })

+ 10 - 0
admin/src/main/java/com/kym/admin/controller/ConnectorInfoController.java

@@ -41,5 +41,15 @@ public class ConnectorInfoController {
         return R.success(res);
     }
 
+    /**
+     * 统计充电桩状态
+     *
+     * @return
+     */
+    @GetMapping("/statConnectorStatus")
+    R<?> statEquipment(String stationId) {
+        return R.success(connectorInfoService.statConnectorStatus(stationId));
+    }
+
 
 }

+ 0 - 20
admin/src/main/java/com/kym/admin/controller/EquipmentInfoController.java

@@ -1,8 +1,5 @@
 package com.kym.admin.controller;
 
-import com.kym.common.R;
-import com.kym.service.admin.EquipmentInfoService;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -18,21 +15,4 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/equipment")
 public class EquipmentInfoController {
 
-    private final EquipmentInfoService equipmentInfoService;
-
-    public EquipmentInfoController(EquipmentInfoService equipmentInfoService) {
-        this.equipmentInfoService = equipmentInfoService;
-    }
-
-
-    /**
-     * 统计充电桩状态
-     *
-     * @return
-     */
-    @GetMapping("/statEquipmentStatus")
-    R<?> statEquipment(String stationId) {
-        return R.success(equipmentInfoService.statEquipmentStatus(stationId));
-    }
-
 }

+ 3 - 0
service/src/main/java/com/kym/service/admin/ConnectorInfoService.java

@@ -6,6 +6,8 @@ import com.kym.entity.admin.queryParams.EquipmentQueryParam;
 import com.kym.entity.admin.vo.ConnectorInfoVo;
 import com.kym.entity.common.PageBean;
 
+import java.util.Map;
+
 /**
  * <p>
  * 充电桩接口(枪)信息 服务类
@@ -17,4 +19,5 @@ import com.kym.entity.common.PageBean;
 public interface ConnectorInfoService extends MPJBaseService<ConnectorInfo> {
     PageBean<ConnectorInfoVo> listConnectors(EquipmentQueryParam params);
 
+    Map<Integer, Long> statConnectorStatus(String stationId);
 }

+ 0 - 1
service/src/main/java/com/kym/service/admin/EquipmentInfoService.java

@@ -15,5 +15,4 @@ import java.util.Map;
  */
 public interface EquipmentInfoService extends MPJBaseService<EquipmentInfo> {
 
-    Map<Integer, Long> statEquipmentStatus(String stationId);
 }

+ 41 - 0
service/src/main/java/com/kym/service/admin/impl/ConnectorInfoServiceImpl.java

@@ -2,20 +2,27 @@ package com.kym.service.admin.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.github.pagehelper.PageHelper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.kym.common.utils.CommUtil;
 import com.kym.entity.admin.ConnectorInfo;
+import com.kym.entity.admin.EquipmentInfo;
 import com.kym.entity.admin.queryParams.EquipmentQueryParam;
 import com.kym.entity.admin.vo.ConnectorInfoVo;
 import com.kym.entity.common.PageBean;
+import com.kym.entity.miniapp.ChargeOrder;
 import com.kym.mapper.admin.ConnectorInfoMapper;
 import com.kym.service.admin.ConnectorInfoService;
 import com.kym.service.cache.KymCache;
+import com.kym.service.miniapp.ChargeOrderService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
 
@@ -30,6 +37,13 @@ import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
 @Service
 @DS("db-admin")
 public class ConnectorInfoServiceImpl extends MPJBaseServiceImpl<ConnectorInfoMapper, ConnectorInfo> implements ConnectorInfoService {
+
+    private final ChargeOrderService chargeOrderService;
+
+    public ConnectorInfoServiceImpl(ChargeOrderService chargeOrderService) {
+        this.chargeOrderService = chargeOrderService;
+    }
+
     @Override
     public PageBean<ConnectorInfoVo> listConnectors(EquipmentQueryParam params) {
         // 判断数据权限
@@ -63,4 +77,31 @@ public class ConnectorInfoServiceImpl extends MPJBaseServiceImpl<ConnectorInfoMa
         page.setList(res);
         return page;
     }
+
+    @Override
+    public Map<Integer, Long> statConnectorStatus(String stationId) {
+        if (CommUtil.null2Long(stationId) <= 0) {
+            // 判断数据权限
+            stationId = KymCache.INSTANCE.getAdminUserStationIds(StpUtil.getLoginIdAsLong()) == null ? null : KymCache.INSTANCE.getAdminUserStationIds(StpUtil.getLoginIdAsLong()).get(0);
+        }
+        // 获取指定站点下的充电桩
+        var connectorInfos = lambdaQuery().eq(isNotNull(stationId), ConnectorInfo::getStationId, stationId).list();
+        // 根据状态进行分组
+
+        // 预约中的设备
+        // 手动切换数据源
+        DynamicDataSourceContextHolder.push("db-miniapp");
+        // 查询预约中的订单,按照站点id分组并对connectorId去重计数
+        var orderInfos = chargeOrderService.lambdaQuery()
+                .select(ChargeOrder::getConnectorId)
+                .eq(ChargeOrder::getStationId, stationId)
+                .eq(ChargeOrder::getChargeStatus, ChargeOrder.CHARGE_STATUS_预约中)
+                .list().stream().filter(CommUtil.distinctByKey(ChargeOrder::getConnectorId)).count();
+
+        DynamicDataSourceContextHolder.poll();
+        var res = connectorInfos.stream().collect(Collectors.groupingBy(ConnectorInfo::getStatus, Collectors.counting()));
+        res.put(EquipmentInfo.SERVICE_STATUS_已连接, res.get(EquipmentInfo.SERVICE_STATUS_已连接) - orderInfos);
+        res.put(EquipmentInfo.SERVICE_STATUS_预约中, orderInfos);
+        return res;
+    }
 }

+ 0 - 24
service/src/main/java/com/kym/service/admin/impl/EquipmentInfoServiceImpl.java

@@ -1,23 +1,17 @@
 package com.kym.service.admin.impl;
 
-import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.kym.common.utils.CommUtil;
 import com.kym.entity.admin.EquipmentInfo;
 import com.kym.mapper.admin.EquipmentInfoMapper;
-import com.kym.service.admin.ConnectorInfoService;
 import com.kym.service.admin.EquipmentInfoService;
 import com.kym.service.cache.KymCache;
 import jakarta.annotation.PostConstruct;
 import org.springframework.stereotype.Service;
 
-import java.util.Map;
 import java.util.stream.Collectors;
 
-import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
-
 /**
  * <p>
  * 充电桩桩体设备 服务实现类
@@ -30,13 +24,6 @@ import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
 @DS("db-admin")
 public class EquipmentInfoServiceImpl extends MPJBaseServiceImpl<EquipmentInfoMapper, EquipmentInfo> implements EquipmentInfoService {
 
-    private final ConnectorInfoService connectorInfoService;
-
-    public EquipmentInfoServiceImpl(ConnectorInfoService connectorInfoService) {
-        this.connectorInfoService = connectorInfoService;
-    }
-
-
     @PostConstruct
     private void init() {
         // 手动切换数据源
@@ -45,15 +32,4 @@ public class EquipmentInfoServiceImpl extends MPJBaseServiceImpl<EquipmentInfoMa
         DynamicDataSourceContextHolder.poll();
     }
 
-    @Override
-    public Map<Integer, Long> statEquipmentStatus(String stationId) {
-        if (CommUtil.null2Long(stationId) <= 0) {
-            // 判断数据权限
-            stationId = KymCache.INSTANCE.getAdminUserStationIds(StpUtil.getLoginIdAsLong()) == null ? null : KymCache.INSTANCE.getAdminUserStationIds(StpUtil.getLoginIdAsLong()).get(0);
-        }
-        // 获取指定站点下的充电桩
-        var equipmentInfos = lambdaQuery().eq(isNotNull(stationId), EquipmentInfo::getStationId, stationId).list();
-        // 根据状态进行分组
-        return equipmentInfos.stream().collect(Collectors.groupingBy(EquipmentInfo::getServiceStatus, Collectors.counting()));
-    }
 }