From a683718557e1e706ffcd12ecf326397714ac9475 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期四, 16 三月 2023 21:58:35 +0800
Subject: [PATCH] 驾驶舱接口

---
 ycl-platform/src/main/java/com/ycl/util/CheckApiUtil.java                                              |    6 +-
 ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java                                  |    2 
 ycl-platform/src/main/java/com/ycl/service/equipment/IOrgGridService.java                              |    5 +
 ycl-platform/src/main/resources/mapper/equipment/OrgGridMapper.xml                                     |   24 ++++++++
 ycl-platform/src/main/java/com/ycl/controller/cockpit/statisticsEvents/StatisticsEventsController.java |   17 +++++
 ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java                                    |    5 +
 ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java                 |    1 
 ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java                                       |    4 
 ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java                                       |    8 ++
 ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java                               |    3 +
 ycl-platform/src/main/java/com/ycl/mapper/equipment/OrgGridMapper.java                                 |    5 +
 ycl-platform/src/main/java/com/ycl/service/equipment/impl/OrgGridServiceImpl.java                      |    8 ++
 ycl-platform/src/main/java/com/ycl/vo/cockpit/statisticsEvents/GridMapVO.java                          |   29 +++++++++
 ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml                                      |    4 +
 ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java                                        |    6 ++
 ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java                       |    7 ++
 ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java                       |   10 ++-
 17 files changed, 136 insertions(+), 8 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java b/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
index bf474e7..bb353c4 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
@@ -59,6 +59,7 @@
     @Autowired
     IEfficiencyService iEfficiencyService;
 
+
     @ApiOperation(value = "鐩戞祴鏁版嵁")
     @GetMapping("/detection")
     public CommonResult<AIIotVO.DetectionVO> detection(@Validated CockpitVO params) {
@@ -66,7 +67,7 @@
         AIIotVO.DetectionVO detectionVO = new AIIotVO.DetectionVO();
         detectionVO.setVideo(iVideoPointService.count());
         detectionVO.setIndividual(iHandheldTerminalService.count());
-        detectionVO.setLampblack(154L);
+        detectionVO.setLampblack(iEfficiencyService.getSmokeCustomer());
         /// TODO: 2022/12/13 缂哄皯娌圭儫鏈虹洃鎺ц〃
         detectionVO.setLoudspeaker(loudspeakerService.count());
         detectionVO.setSlagCar(iCarSlagcarService.count());
@@ -91,6 +92,7 @@
             videoVO.setLatitude(item.getLatitude() != null ? item.getLatitude().toString() : "");
             videoVO.setLongitude(item.getLongitude() != null ? item.getLongitude().toString() : "");
             videoVO.setResourceId(item.getPlatResourceId());
+            videoVO.setCode(item.getCode());
             return videoVO;
         }).collect(Collectors.toList());
 
@@ -117,9 +119,11 @@
     @GetMapping("/slag_car")
     public CommonResult<AIIotVO.SlagCarVO> slagCar(@Validated CockpitVO params) {
         checkApiUtil.cockpit(params);
+
         AIIotVO.SlagCarVO slagCarVO = new AIIotVO.SlagCarVO();
-        slagCarVO.setCar(236);
-        slagCarVO.setTeam(20);
+        slagCarVO.setCar(iCarSlagcarService.count());
+        slagCarVO.setTeam(0L);
+
         return CommonResult.success(slagCarVO);
     }
 
diff --git a/ycl-platform/src/main/java/com/ycl/controller/cockpit/statisticsEvents/StatisticsEventsController.java b/ycl-platform/src/main/java/com/ycl/controller/cockpit/statisticsEvents/StatisticsEventsController.java
index a608f4b..e8bf477 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/cockpit/statisticsEvents/StatisticsEventsController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/cockpit/statisticsEvents/StatisticsEventsController.java
@@ -7,9 +7,11 @@
 import com.ycl.entity.cockpitManage.TeamConstruction;
 import com.ycl.entity.cockpitManage.TeamIndex;
 import com.ycl.service.cockpitManage.ITeamConstructionService;
+import com.ycl.service.equipment.IOrgGridService;
 import com.ycl.service.video.impl.IVideoPointService;
 import com.ycl.util.CheckApiUtil;
 import com.ycl.vo.cockpit.CockpitVO;
+import com.ycl.vo.cockpit.statisticsEvents.GridMapVO;
 import com.ycl.vo.cockpit.statisticsEvents.StatisticsEventsVO;
 import com.ycl.vo.equipment.VideoPointVo;
 import io.swagger.annotations.Api;
@@ -42,6 +44,8 @@
 
     private ITeamConstructionService teamConstructionService;
 
+    private IOrgGridService orgGridService;
+
     @Autowired
     public void setTeamConstructionService(ITeamConstructionService teamConstructionService) {
         this.teamConstructionService = teamConstructionService;
@@ -50,6 +54,11 @@
     @Autowired
     public void setVideoPointService(IVideoPointService videoPointService) {
         this.videoPointService = videoPointService;
+    }
+
+    @Autowired
+    public void setOrgGridService(IOrgGridService orgGridService) {
+        this.orgGridService = orgGridService;
     }
 
     @ApiOperation(value = "鎵ф硶浜嬩欢")
@@ -182,6 +191,14 @@
         return CommonResult.success(page.getRecords());
     }
 
+    @ApiOperation(value = "缃戞牸鍦板浘")
+    @GetMapping("/grid_map")
+    public CommonResult<List<GridMapVO>> gridMap(@Validated CockpitVO params) {
+        checkApiUtil.cockpit(params);
+
+        List<GridMapVO> list = orgGridService.statisticsGridMap(params.getBeginTime(), params.getEndTime());
+        return CommonResult.success(list);
+    }
 
     @ApiOperation(value = "闃熶紞寤鸿")
     @GetMapping("/team_construction")
diff --git a/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java b/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
index 4eb7d74..439057f 100644
--- a/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
+++ b/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
@@ -191,6 +191,10 @@
     @ApiModelProperty(value = "缁撴潫鏃堕棿")
     private LocalDateTime closeTime;
 
+    @TableField(value = "grid_id")
+    @ApiModelProperty(value = "缃戞牸id")
+    private Long gridId;
+
     /**
      * 杩濊浜嬩欢
      */
@@ -213,4 +217,5 @@
     private DispatchInfo dispatchInfo;
 
 
+
 }
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java b/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
index 28c6a7a..afd026a 100644
--- a/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
+++ b/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
@@ -10,6 +10,7 @@
 
 import java.io.Serializable;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -108,4 +109,9 @@
     @TableField("code")
     private String code;
 
+    @TableField(value = "grid_id")
+    @ApiModelProperty(value = "缃戞牸id")
+    private Long gridId;
+
+
 }
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java
index 4c98a83..30bddd4 100644
--- a/ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java
+++ b/ycl-platform/src/main/java/com/ycl/mapper/allot/EfficiencyMapper.java
@@ -11,4 +11,6 @@
     List<EfficiencyDto> list();
 
     List<AIIotStatisticsVO> aiMonthList();
+
+    Long getSmokeCustomer();
 }
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/equipment/OrgGridMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/equipment/OrgGridMapper.java
index 8a9f583..9227c96 100644
--- a/ycl-platform/src/main/java/com/ycl/mapper/equipment/OrgGridMapper.java
+++ b/ycl-platform/src/main/java/com/ycl/mapper/equipment/OrgGridMapper.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.entity.equipment.OrgGrid;
+import com.ycl.vo.cockpit.statisticsEvents.GridMapVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -15,4 +19,5 @@
 @Mapper
 public interface OrgGridMapper extends BaseMapper<OrgGrid> {
 
+    List<GridMapVO> statisticsGridMap(@Param("beginTime") String beginTime, @Param("endTime") String endTime);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java b/ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java
index 174f335..89971c9 100644
--- a/ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java
+++ b/ycl-platform/src/main/java/com/ycl/service/allot/IEfficiencyService.java
@@ -2,6 +2,7 @@
 
 import com.ycl.dto.allot.EfficiencyDto;
 import com.ycl.vo.cockpit.aiIot.AIIotStatisticsVO;
+import com.ycl.vo.cockpit.aiIot.AIIotVO;
 
 import java.util.List;
 
@@ -10,4 +11,6 @@
     List<EfficiencyDto> list();
 
     List<AIIotStatisticsVO> aiMonthList();
+
+    Long getSmokeCustomer();
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java
index 13659cf..d39555c 100644
--- a/ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/allot/impl/EfficiencyServiceImpl.java
@@ -4,6 +4,7 @@
 import com.ycl.mapper.allot.EfficiencyMapper;
 import com.ycl.service.allot.IEfficiencyService;
 import com.ycl.vo.cockpit.aiIot.AIIotStatisticsVO;
+import com.ycl.vo.cockpit.aiIot.AIIotVO;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -23,4 +24,10 @@
     public List<AIIotStatisticsVO> aiMonthList() {
         return efficiencyMapper.aiMonthList();
     }
+
+    @Override
+    public Long getSmokeCustomer() {
+        return efficiencyMapper.getSmokeCustomer();
+    }
+
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
index 86d0230..57ab292 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
@@ -66,6 +66,7 @@
                 baseCase.setStreetId(videoPoint.getStreetId());
                 baseCase.setCommunityId(videoPoint.getCommunityId());
                 baseCase.setSite(videoPoint.getAddress());
+                baseCase.setGridId(videoPoint.getGridId());
 
                 baseCaseService.save(baseCase);
                 violations.setId(baseCase.getId());
diff --git a/ycl-platform/src/main/java/com/ycl/service/equipment/IOrgGridService.java b/ycl-platform/src/main/java/com/ycl/service/equipment/IOrgGridService.java
index b844db6..67a8d30 100644
--- a/ycl-platform/src/main/java/com/ycl/service/equipment/IOrgGridService.java
+++ b/ycl-platform/src/main/java/com/ycl/service/equipment/IOrgGridService.java
@@ -3,7 +3,10 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ycl.entity.equipment.OrgGrid;
+import com.ycl.vo.cockpit.statisticsEvents.GridMapVO;
 import com.ycl.vo.equipment.HandheldTerminalVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -16,4 +19,6 @@
 public interface IOrgGridService extends IService<OrgGrid> {
 
     IPage<OrgGrid> search(Integer pageSize, Integer current, String name);
+
+    List<GridMapVO> statisticsGridMap(String beginTime, String endTime);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/equipment/impl/OrgGridServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/equipment/impl/OrgGridServiceImpl.java
index c056481..c884d35 100644
--- a/ycl-platform/src/main/java/com/ycl/service/equipment/impl/OrgGridServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/equipment/impl/OrgGridServiceImpl.java
@@ -11,8 +11,11 @@
 import com.ycl.entity.equipment.OrgGrid;
 import com.ycl.mapper.equipment.OrgGridMapper;
 import com.ycl.service.equipment.IOrgGridService;
+import com.ycl.vo.cockpit.statisticsEvents.GridMapVO;
 import com.ycl.vo.equipment.HandheldTerminalVo;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -34,4 +37,9 @@
 
         return baseMapper.selectPage(page, queryWrapper);
     }
+
+    @Override
+    public List<GridMapVO> statisticsGridMap(String beginTime, String endTime) {
+        return baseMapper.statisticsGridMap(beginTime, endTime);
+    }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/util/CheckApiUtil.java b/ycl-platform/src/main/java/com/ycl/util/CheckApiUtil.java
index 0a68dd5..4e37981 100644
--- a/ycl-platform/src/main/java/com/ycl/util/CheckApiUtil.java
+++ b/ycl-platform/src/main/java/com/ycl/util/CheckApiUtil.java
@@ -45,8 +45,8 @@
             sb.append(params.getStreetId());
         }
         result = MD5Util.md5Encrypt32Lower(sb.toString());
-        // if (!params.getSign().equals(result)) {
-        //     throw new ApiException(ResultCode.SIGN_ERROR);
-        // }
+         if (!params.getSign().equals(result)) {
+             throw new ApiException(ResultCode.SIGN_ERROR);
+         }
     }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java
index fa5d0ca..799b8f1 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java
@@ -48,10 +48,10 @@
     @Data
     public static class SlagCarVO {
         @ApiModelProperty(value = "杞﹂槦鏁�")
-        private Integer team;
+        private Long team;
 
         @ApiModelProperty(value = "杞﹁締鏁�")
-        private Integer car;
+        private Long car;
     }
 
 
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java
index f6b15e7..6b31c9a 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java
@@ -1,5 +1,6 @@
 package com.ycl.vo.cockpit.aiIot;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -23,4 +24,11 @@
     private String ip;
     @ApiModelProperty(value = "URL鍦板潃")
     private String url;
+
+    /**
+     * 璁惧鐮�
+     */
+    @ApiModelProperty(value = "璁惧鐮�")
+    private String code;
+
 }
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/statisticsEvents/GridMapVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/statisticsEvents/GridMapVO.java
new file mode 100644
index 0000000..818d6d6
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/statisticsEvents/GridMapVO.java
@@ -0,0 +1,29 @@
+package com.ycl.vo.cockpit.statisticsEvents;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel(description = "缃戞牸鍦板浘")
+@Data
+public class GridMapVO {
+
+    @ApiModelProperty(value = "缃戞牸鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "缃戞牸鍐呭悇绫昏澶囨暟閲�")
+    private Integer videoCount;
+
+    @ApiModelProperty(value = "缃戞牸鍐呬簨浠舵�绘暟")
+    private Integer eventCount;
+
+    @ApiModelProperty(value = "ai浜嬩欢鏁伴噺")
+    private Integer aiCount;
+
+    @ApiModelProperty(value = "缃戞牸涓婃姤浜嬩欢鏁伴噺")
+    private Integer handCount;
+
+    public Integer getHandCount() {
+        return this.eventCount - this.aiCount;
+    }
+}
diff --git a/ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml b/ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml
index f7ac3e9..3bf526b 100644
--- a/ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/allot/EfficiencyMapper.xml
@@ -44,4 +44,8 @@
         GROUP BY
             t4.id,DATE_FORMAT(alarm_time,'%Y-%m')
     </select>
+    <select id="getSmokeCustomer" resultType="java.lang.Long">
+        select count(1) total from ums_ods_customer
+    </select>
+
 </mapper>
diff --git a/ycl-platform/src/main/resources/mapper/equipment/OrgGridMapper.xml b/ycl-platform/src/main/resources/mapper/equipment/OrgGridMapper.xml
index 2b20916..871491d 100644
--- a/ycl-platform/src/main/resources/mapper/equipment/OrgGridMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/equipment/OrgGridMapper.xml
@@ -15,5 +15,29 @@
     <sql id="Base_Column_List">
         id, worker, contact, area, region
     </sql>
+    <select id="statisticsGridMap" resultType="com.ycl.vo.cockpit.statisticsEvents.GridMapVO">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    og.id,
+                    og.`name`,
+                    COUNT( DISTINCT v.id ) eventCount ,
+                    sum(case WHEN v.video_point_id is not null then 1 else 0 END ) aiCount
+                FROM
+                    ums_org_grid og
+                        LEFT JOIN ums_base_case bc ON og.id = bc.grid_id
+                        LEFT JOIN ums_violations v ON v.id = bc.id
+
+                    <if test="beginTime!=null">
+                      and  bc.alarm_time BETWEEN #{beginTime} and #{endTime}
+                    </if>
+                GROUP BY
+                    og.id,
+                    og.`name`
+            ) v_case
+                LEFT JOIN ( SELECT grid_id, COUNT( id ) videoCount FROM ums_video_point GROUP BY grid_id ) AS v_video ON v_case.id = v_video.grid_id
+    </select>
 
 </mapper>

--
Gitblit v1.8.0