Selaa lähdekoodia

'优化设备管理-设备统计界面相关接口'

james 1 vuosi sitten
vanhempi
commit
847837c4b7

+ 3 - 3
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpDataOverviewController.java

@@ -39,16 +39,16 @@ public class DmpDataOverviewController {
      * 集合
      * @param startTime 开始时间
      * @param endTime 结束时间
-     * @param productId 产品id
+     * @param tenantId 租户id
      * @param type 类型1日2月
      * @return
      */
     @GetMapping("/list")
     public ApiResult<List<DmpDataOverview>> list(@RequestParam(required = false) Date startTime,
                                       @RequestParam(required = false) Date endTime,
-                                      @RequestParam(required = false) Integer productId,
+                                      @RequestParam(required = false) Integer tenantId,
                                       @RequestParam(required = false) Integer type){
-        return ApiResult.success(dmpDataOverviewService.list(startTime, endTime, productId, type));
+        return ApiResult.success(dmpDataOverviewService.list(startTime, endTime, tenantId, type));
     }
 }
 

+ 2 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpProductInfoController.java

@@ -80,8 +80,8 @@ public class DmpProductInfoController {
      * @return
      */
     @GetMapping("/collect")
-    public ApiResult<List<Map<String,Object>>> collect(){
-        return ApiResult.success(dmpProductInfoService.collect());
+    public ApiResult<List<Map<String,Object>>> collect(@RequestParam(value = "tenantId", required = false) Integer tenantId){
+        return ApiResult.success(dmpProductInfoService.collect(tenantId));
     }
 
     /**

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/TaskController.java

@@ -37,7 +37,7 @@ public class TaskController implements ApplicationContextAware {
         context = applicationContext;
     }
 
-    @Scheduled(cron = "0 0 1 * * ? ") //每天凌晨1点执行
+    @Scheduled(cron = "0 30 23 * * ? ") //每天23点30分执行
     public void task() {
         System.out.println(Thread.currentThread().getName() + "定时任务执行中");
         dmpDataOverviewJob.execute();

+ 8 - 16
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/DmpDeviceStatusMapper.java

@@ -24,27 +24,19 @@ import java.util.List;
 public interface DmpDeviceStatusMapper extends CrudMapper<DmpDeviceStatus> {
 
 
-    List<DmpDataOverviewVO> getDeviceStatusCollect(@Param("productId") Integer productId,
-                                                   @Param("startTime") Date startTime,
-                                                   @Param("endTime") Date endTime,
-                                                   @Param("tenantId") Integer tenantId);
+    List<DmpDataOverviewVO> getDeviceStatusCollect(@Param("startTime") Date startTime,
+                                                   @Param("endTime") Date endTime);
 
 
-    DmpDataOverviewVO getAllCollect(@Param("productId") Integer productId,
-                                             @Param("startTime") Date startTime,
-                                             @Param("endTime") Date endTime,
-                                    @Param("tenantId") Integer tenantId);
+    DmpDataOverviewVO getAllCollect(@Param("startTime") Date startTime,
+                                             @Param("endTime") Date endTime);
 
 
-    List<DmpDataOverviewVO> getMonthHyCollect(@Param("productId") Integer productId,
-                                               @Param("startTime") Date startTime,
-                                               @Param("endTime") Date endTime,
-                                              @Param("tenantId") Integer tenantId);
+    List<DmpDataOverviewVO> getMonthHyCollect(@Param("startTime") Date startTime,
+                                               @Param("endTime") Date endTime);
 
-    DmpDataOverviewVO getAllMonthHyCollect(@Param("productId") Integer productId,
-                                            @Param("startTime") Date startTime,
-                                            @Param("endTime") Date endTime,
-                                           @Param("tenantId") Integer tenantId);
+    DmpDataOverviewVO getAllMonthHyCollect(@Param("startTime") Date startTime,
+                                            @Param("endTime") Date endTime);
 
 
 }

+ 2 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/DmpProductInfoMapper.java

@@ -2,6 +2,7 @@ package com.usky.iot.mapper;
 
 import com.usky.common.mybatis.core.CrudMapper;
 import com.usky.iot.domain.DmpProductInfo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -19,5 +20,5 @@ public interface DmpProductInfoMapper extends CrudMapper<DmpProductInfo> {
 
 
 
-    List<Map<String,Object>> selectCollect();
+    List<Map<String,Object>> selectCollect(@Param("tenantId") Integer tenantId);
 }

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDataOverviewService.java

@@ -16,6 +16,6 @@ import java.util.List;
  */
 public interface DmpDataOverviewService extends CrudService<DmpDataOverview> {
 
-    List<DmpDataOverview> list(Date startTime,Date endTime,Integer productId,Integer type);
+    List<DmpDataOverview> list(Date startTime,Date endTime,Integer tenantId,Integer type);
 
 }

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpProductInfoService.java

@@ -29,7 +29,7 @@ public interface DmpProductInfoService extends CrudService<DmpProductInfo> {
 
     boolean remove(Integer id);
 
-    List<Map<String,Object>> collect();
+    List<Map<String,Object>> collect(Integer tenantId);
 
     /**
      * 设备状态统计

+ 2 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDataOverviewServiceImpl.java

@@ -29,10 +29,10 @@ public class DmpDataOverviewServiceImpl extends AbstractCrudService<DmpDataOverv
 
 
     @Override
-    public List<DmpDataOverview> list(Date startTime, Date endTime, Integer productId, Integer type) {
+    public List<DmpDataOverview> list(Date startTime, Date endTime, Integer tenantId, Integer type) {
         LambdaQueryWrapper<DmpDataOverview> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.between(null != startTime && null != endTime, DmpDataOverview::getCreatedTime, startTime, endTime)
-                .eq(null != productId, DmpDataOverview::getProductId, productId)
+                .eq(null != tenantId, DmpDataOverview::getTenantId, tenantId)
                 .eq(null != type, DmpDataOverview::getCycleType, type);
         List<DmpDataOverview> list = this.list(queryWrapper);
         Optional.ofNullable(type)

+ 2 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpProductInfoServiceImpl.java

@@ -249,8 +249,8 @@ public class DmpProductInfoServiceImpl extends AbstractCrudService<DmpProductInf
     }
 
     @Override
-    public List<Map<String, Object>> collect() {
-        return baseMapper.selectCollect();
+    public List<Map<String, Object>> collect(Integer tenantId) {
+        return baseMapper.selectCollect(tenantId);
     }
 
     @Override

+ 22 - 22
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/job/DmpDataOverviewJob.java

@@ -48,35 +48,35 @@ public class DmpDataOverviewJob {
         Date date4 = DateUtils.setDays(date3, 1);
         //产品日
         List<DmpDataOverview> dmpDataOverviews = new ArrayList<>();
-        List<DmpDataOverviewVO> list = getListMap(null, dayStartTime, dayEndTime);
+        List<DmpDataOverviewVO> list = getListMap(dayStartTime, dayEndTime);
         //计算产品活跃占比
         checkRadio(list);
         for (DmpDataOverviewVO dvo : list) {
             DmpDataOverview dmpDataOverview = new DmpDataOverview();
             dmpDataOverview.setCreatedTime(date3);
-            dmpDataOverview.setProductId(dvo.getProductId());
+            dmpDataOverview.setTenantId(dvo.getTenantId());
             dmpDataOverview.setDeviceNumber(JSON.toJSONString(dvo));
             dmpDataOverviews.add(dmpDataOverview);
         }
         dmpDataOverviewService.saveBatch(dmpDataOverviews);
         //产品月
-        List<DmpDataOverviewVO> monthList = getListMap(null, firstDayOfMonth, lastDayOfMonth);
+        List<DmpDataOverviewVO> monthList = getListMap(firstDayOfMonth, lastDayOfMonth);
         //活跃产品月
-        List<DmpDataOverviewVO> hyList = getHyListMap(null, firstDayOfMonth, lastDayOfMonth);
+        List<DmpDataOverviewVO> hyList = getHyListMap(firstDayOfMonth, lastDayOfMonth);
         for (DmpDataOverviewVO dmpDataOverviewVO : monthList) {
-            hyList.stream().filter(hy -> Objects.equals(hy.getProductId(), dmpDataOverviewVO.getProductId()))
+            hyList.stream().filter(hy -> Objects.equals(hy.getTenantId(), dmpDataOverviewVO.getTenantId()))
                     .findFirst()
                     .ifPresent(hy -> dmpDataOverviewVO.setHyCount(hy.getHyCount()));
         }
         //统计全部时间数据
-        List<DmpDataOverviewVO> allList = getListMap(null, null, null);
+        List<DmpDataOverviewVO> allList = getListMap(null, null);
         //计算占比
         checkRadio(monthList);
         //查看对应月份数据是否存在
         List<DmpDataOverview> listByTimeAndIds = getListByTimeAndIds(monthList, firstDayOfMonth,lastDayOfMonth);
         for (DmpDataOverviewVO dmpDataOverviewVO : monthList) {
             DmpDataOverview dd = listByTimeAndIds.stream()
-                    .filter(dm -> dmpDataOverviewVO.getProductId().equals(dm.getProductId()) && DateUtils.isSameDay(dm.getCreatedTime(),date4))
+                    .filter(dm -> dmpDataOverviewVO.getTenantId().equals(dm.getTenantId()) && DateUtils.isSameDay(dm.getCreatedTime(),date4))
                     .findAny()
                     .map(dm -> {
                         dm.setDeviceNumber(JSON.toJSONString(dmpDataOverviewVO));
@@ -85,14 +85,14 @@ public class DmpDataOverviewJob {
                     .orElseGet(() -> {
                         DmpDataOverview dmpDataOverview = new DmpDataOverview();
                         dmpDataOverview.setDeviceNumber(JSON.toJSONString(dmpDataOverviewVO));
-                        dmpDataOverview.setProductId(dmpDataOverviewVO.getProductId());
+                        dmpDataOverview.setTenantId(dmpDataOverviewVO.getTenantId());
                         dmpDataOverview.setCreatedTime(date4);
                         dmpDataOverview.setCycleType(2);
                         listByTimeAndIds.add(dmpDataOverview);
                         return dmpDataOverview;
                     });
             allList.stream()
-                    .filter(dvo -> dvo.getProductId().equals(dd.getProductId()))
+                    .filter(dvo -> dvo.getTenantId().equals(dd.getTenantId()))
                     .findAny()
                     .ifPresent(dvo -> dd.setMiddleStatistic(JSON.toJSONString(dvo)));
         }
@@ -101,18 +101,18 @@ public class DmpDataOverviewJob {
 
     /**
      * 统计月信息
-     * @param productIds
+     * @param tenantIds
      * @param startTime
      * @param endTime
      * @return
      */
-    public List<DmpDataOverview> getListByTimeAndIds(List<DmpDataOverviewVO> productIds,Date startTime,Date endTime){
-        if (CollectionUtils.isNotEmpty(productIds)){
-            List<Integer> productId = productIds.stream()
-                    .map(DmpDataOverviewVO::getProductId)
+    public List<DmpDataOverview> getListByTimeAndIds(List<DmpDataOverviewVO> tenantIds,Date startTime,Date endTime){
+        if (CollectionUtils.isNotEmpty(tenantIds)){
+            List<Integer> tenantId = tenantIds.stream()
+                    .map(DmpDataOverviewVO::getTenantId)
                     .collect(Collectors.toList());
             LambdaQueryWrapper<DmpDataOverview> queryWrapper = Wrappers.lambdaQuery();
-            queryWrapper.in(DmpDataOverview::getProductId,productId)
+            queryWrapper.in(DmpDataOverview::getTenantId,tenantId)
                     .between(DmpDataOverview::getCreatedTime,startTime,endTime)
                     .eq(DmpDataOverview::getCycleType,2);
             return dmpDataOverviewService.list(queryWrapper);
@@ -121,23 +121,23 @@ public class DmpDataOverviewJob {
         }
     }
 
-    public List<DmpDataOverviewVO> getHyListMap(Integer productId,Date startTime,Date endTime){
-        List<DmpDataOverviewVO> list = dmpDeviceStatusMapper.getMonthHyCollect(productId, startTime, endTime, SecurityUtils.getTenantId());
-        DmpDataOverviewVO map = dmpDeviceStatusMapper.getAllMonthHyCollect(productId, startTime, endTime, SecurityUtils.getTenantId());
+    public List<DmpDataOverviewVO> getHyListMap(Date startTime,Date endTime){
+        List<DmpDataOverviewVO> list = dmpDeviceStatusMapper.getMonthHyCollect(startTime, endTime);
+        DmpDataOverviewVO map = dmpDeviceStatusMapper.getAllMonthHyCollect(startTime, endTime);
         joinList(list,map);
         return list;
     }
 
-    public List<DmpDataOverviewVO> getListMap(Integer productId,Date startTime,Date endTime){
-        List<DmpDataOverviewVO> list = dmpDeviceStatusMapper.getDeviceStatusCollect(productId, startTime, endTime, SecurityUtils.getTenantId());
+    public List<DmpDataOverviewVO> getListMap(Date startTime,Date endTime){
+        List<DmpDataOverviewVO> list = dmpDeviceStatusMapper.getDeviceStatusCollect(startTime, endTime);
         //全部产品日
-        DmpDataOverviewVO map = dmpDeviceStatusMapper.getAllCollect(productId, startTime, endTime, SecurityUtils.getTenantId());
+        DmpDataOverviewVO map = dmpDeviceStatusMapper.getAllCollect(startTime, endTime);
         joinList(list,map);
         return list;
     }
 
     public void joinList(List<DmpDataOverviewVO> list,DmpDataOverviewVO map){
-        Optional.ofNullable(map).ifPresent(map1 -> map.setProductId(0));
+        Optional.ofNullable(map).ifPresent(map1 -> map.setTenantId(0));
         list.add(map);
     }
 

+ 2 - 3
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/DmpDataOverviewVO.java

@@ -4,11 +4,10 @@ import lombok.Data;
 
 @Data
 public class DmpDataOverviewVO {
-
     /**
-     * 设备编号
+     * 租户Id
      */
-    private Integer productId;
+    private Integer tenantId;
 
     /**
      * 设备总数

+ 12 - 24
service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpDeviceStatusMapper.xml

@@ -14,7 +14,7 @@
     </resultMap>
 
     <select id="getAllCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
-        select ddi.product_id as productId,
+        select 0 as tenantId,
         count(*) as deviceCount,
         COUNT(to_days(last_online_time) = to_days(now()) or null) as hyCount,
         count(service_status = 2 or null) as jhCount,
@@ -29,17 +29,14 @@
                 and  ddi.created_time between #{startTime}
                 and #{endTime}
             </if>
-            <if test="productId != null">
-                and ddi.product_id = #{productId}
-            </if>
             <if test="1 == 1">
-                and ddi.delete_flag = 0 and ddi.tenant_id = #{tenantId}
+                and ddi.delete_flag = 0
             </if>
         </where>
     </select>
     <select id="getMonthHyCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
-        select ddi.product_id as productId,
-        count(*) hyCount
+        select ddi.tenant_id as tenantId,
+        count(*) as hyCount
         from dmp_device ddi
         left join dmp_device_status dds
         on ddi.device_id  = dds.device_id and ddi.product_code = dds.product_code
@@ -48,18 +45,15 @@
                 and  dds.last_online_time between #{startTime}
                 and #{endTime}
             </if>
-            <if test="productId != null">
-                and ddi.product_id = #{productId}
-            </if>
             <if test="1 == 1">
-                and ddi.delete_flag = 0 and ddi.tenant_id = #{tenantId}
+                and ddi.delete_flag = 0
             </if>
         </where>
-        group by productId
+        group by tenantId
     </select>
     <select id="getAllMonthHyCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
-        select ddi.product_id as productId,
-        count(*) hyCount
+        select 0 as tenantId,
+        count(*) as hyCount
         from dmp_device ddi
         left join dmp_device_status dds
         on ddi.device_id  = dds.device_id and ddi.product_code = dds.product_code
@@ -68,16 +62,13 @@
                 and  dds.last_online_time between #{startTime}
                 and #{endTime}
             </if>
-            <if test="productId != null">
-                and ddi.product_id = #{productId}
-            </if>
             <if test="1 == 1">
-                and ddi.delete_flag = 0 and ddi.tenant_id = #{tenantId}
+                and ddi.delete_flag = 0
             </if>
         </where>
     </select>
     <select id="getDeviceStatusCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
-        select ddi.product_id as productId,
+        select ddi.tenant_id as tenantId,
         count(*) as deviceCount,
         COUNT(to_days(last_online_time) = to_days(now()) or null) as hyCount,
         count(service_status = 2 or null) as jhCount,
@@ -92,14 +83,11 @@
                 and  ddi.created_time between #{startTime}
                 and #{endTime}
             </if>
-            <if test="productId != null">
-                and ddi.product_id = #{productId}
-            </if>
             <if test="1 == 1">
-                and ddi.delete_flag = 0 and ddi.tenant_id = #{tenantId}
+                and ddi.delete_flag = 0
             </if>
         </where>
-        group by productId
+        group by tenantId
     </select>
 
 </mapper>

+ 8 - 1
service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpProductInfoMapper.xml

@@ -32,7 +32,14 @@
         from dmp_product as dp
         inner join dmp_device as dd
         on dp.id = dd.product_id
-        where dp.delete_flag = 0
+        <where>
+            <if test="tenantId != null">
+                and dp.tenant_id = #{tenantId}
+            </if>
+            <if test="1 == 1">
+                and dp.delete_flag = 0
+            </if>
+        </where>
         group by product_name
     </select>