Преглед изворни кода

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James пре 1 година
родитељ
комит
5442c313eb

+ 20 - 1
service-fire/service-fire-biz/src/main/java/com/usky/fire/controller/web/BaseDeviceController.java

@@ -1,9 +1,17 @@
 package com.usky.fire.controller.web;
 
 
+import com.usky.common.core.bean.ApiResult;
+import com.usky.fire.service.BaseDeviceService;
+import com.usky.fire.service.vo.BaseDeviceVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,9 +21,20 @@ import org.springframework.stereotype.Controller;
  * @author JCB
  * @since 2022-08-15
  */
-@Controller
+@RestController
 @RequestMapping("/baseDevice")
 public class BaseDeviceController {
+    @Autowired
+    private BaseDeviceService baseDeviceService;
+
+    /**
+     * 企业自主管理-物联网设备情况统计
+     * @return
+     */
+    @GetMapping("deviceTypeList")
+    public ApiResult<BaseDeviceVO> deviceTypeList(){
+        return ApiResult.success(baseDeviceService.deviceTypeList());
+    }
 
 }
 

+ 2 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/mapper/BaseDeviceStatusMapper.java

@@ -2,6 +2,7 @@ package com.usky.fire.mapper;
 
 import com.usky.fire.domain.BaseDeviceStatus;
 import com.usky.common.mybatis.core.CrudMapper;
+import org.springframework.stereotype.Repository;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.usky.common.mybatis.core.CrudMapper;
  * @author JCB
  * @since 2022-09-16
  */
+@Repository
 public interface BaseDeviceStatusMapper extends CrudMapper<BaseDeviceStatus> {
 
 }

+ 3 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/BaseDeviceService.java

@@ -2,6 +2,7 @@ package com.usky.fire.service;
 
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.fire.domain.BaseDevice;
+import com.usky.fire.service.vo.BaseDeviceVO;
 
 import java.util.List;
 
@@ -31,4 +32,6 @@ public interface BaseDeviceService extends CrudService<BaseDevice> {
      * @return
      */
     Integer deviceCount(String companyId, Integer deviceType);
+
+    BaseDeviceVO deviceTypeList();
 }

+ 57 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/impl/BaseDeviceServiceImpl.java

@@ -1,14 +1,23 @@
 package com.usky.fire.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.fire.domain.BaseDevice;
+import com.usky.fire.domain.BaseDeviceStatus;
 import com.usky.fire.mapper.BaseDeviceMapper;
+import com.usky.fire.mapper.BaseDeviceStatusMapper;
 import com.usky.fire.service.BaseDeviceService;
+import com.usky.fire.service.BaseDeviceStatusService;
+import com.usky.fire.service.vo.BaseDeviceTypeVO;
+import com.usky.fire.service.vo.BaseDeviceVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -20,6 +29,8 @@ import java.util.List;
  */
 @Service
 public class BaseDeviceServiceImpl extends AbstractCrudService<BaseDeviceMapper, BaseDevice> implements BaseDeviceService {
+    @Autowired
+    private BaseDeviceStatusMapper baseDeviceStatusMapper;
 
     @Override
     public List<BaseDevice> deviceData(String deviceCode) {
@@ -42,4 +53,50 @@ public class BaseDeviceServiceImpl extends AbstractCrudService<BaseDeviceMapper,
         return count;
     }
 
+    @Override
+    public BaseDeviceVO deviceTypeList(){
+
+        BaseDeviceVO baseDeviceVO = new BaseDeviceVO();
+        LambdaQueryWrapper<BaseDevice> queryWrapper = Wrappers.lambdaQuery();
+        Integer totalCount = this.count(queryWrapper);
+        baseDeviceVO.setDeviceCount(totalCount);
+
+        QueryWrapper<BaseDevice> queryWrapper1 = Wrappers.query();
+        queryWrapper1.select("device_type as deviceTypeCode","device_name as deviceTypeName","count(*) as deviceCount")
+                .groupBy("device_type");
+        List<Map<String,Object>> map = this.listMaps(queryWrapper1);
+        if(map.size() > 0){
+            List<BaseDeviceTypeVO> list1 = new ArrayList<>();
+            QueryWrapper<BaseDeviceStatus> queryWrapper2 = Wrappers.query();
+            queryWrapper2.select("company_id as deviceTypeCode","count(*) as lineCount")
+                    .ne("device_status",0)
+                    .groupBy("company_id");
+            List<Map<String,Object>> map1 = baseDeviceStatusMapper.selectMaps(queryWrapper2);
+
+            for (int i = 0; i < map.size(); i++) {
+                BaseDeviceTypeVO baseDeviceTypeVO = new BaseDeviceTypeVO();
+                baseDeviceTypeVO.setDeviceTypeCode(Integer.parseInt(map.get(i).get("deviceTypeCode").toString()));
+                baseDeviceTypeVO.setDeviceTypeName(map.get(i).get("deviceTypeName").toString());
+                baseDeviceTypeVO.setDeviceCount(Integer.parseInt(map.get(i).get("deviceCount").toString()));
+
+                for (int j = 0; j < map1.size(); j++) {
+                    int typeCode = Integer.parseInt(map.get(i).get("deviceTypeCode").toString());
+                    int typeCode1 = Integer.parseInt(map1.get(j).get("deviceTypeCode").toString());
+                    if(typeCode1 == typeCode){
+                        int lineCount = Integer.parseInt(map1.get(j).get("lineCount").toString());
+                        int deviceCount = Integer.parseInt(map.get(i).get("deviceCount").toString());
+                        baseDeviceTypeVO.setLineCount(lineCount);
+                        double rate = (double)lineCount/deviceCount*100;
+                        baseDeviceTypeVO.setLineRate(rate);
+                        list1.add(baseDeviceTypeVO);
+                    }
+                }
+            }
+            baseDeviceVO.setTypeList(list1);
+        }
+
+
+        return baseDeviceVO;
+    }
+
 }

+ 33 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/BaseDeviceTypeVO.java

@@ -0,0 +1,33 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BaseDeviceTypeVO {
+
+    /**
+     * 设备类型编码
+     */
+    private Integer deviceTypeCode;
+
+    /**
+     * 设备类型名称
+     */
+    private String deviceTypeName;
+
+    /**
+     * 设备数
+     */
+    private Integer deviceCount;
+
+    /**
+     * 在线数
+     */
+    private Integer lineCount;
+
+    /**
+     * 在线率
+     */
+    private double lineRate;
+
+}

+ 19 - 0
service-fire/service-fire-biz/src/main/java/com/usky/fire/service/vo/BaseDeviceVO.java

@@ -0,0 +1,19 @@
+package com.usky.fire.service.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BaseDeviceVO {
+
+    /**
+     * 设备总数
+     */
+    private Integer deviceCount;
+
+    /**
+     * 设备类型信息统计
+     */
+    private List<BaseDeviceTypeVO> typeList;
+}