Explorar el Código

Merge branch 'usky-zyj' of uskycloud/usky-modules into master

James hace 1 año
padre
commit
e4bac62d88
Se han modificado 18 ficheros con 731 adiciones y 19 borrados
  1. 3 2
      service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DataEvHistoryController.java
  2. 24 3
      service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DataLgHistoryController.java
  3. 9 1
      service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DataRealTimeController.java
  4. 325 0
      service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DeviceHttpController.java
  5. 13 0
      service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DmpDeviceController.java
  6. 51 0
      service-park/service-park-biz/src/main/java/com/usky/park/controller/web/EgConfigController.java
  7. 46 0
      service-park/service-park-biz/src/main/java/com/usky/park/domain/EgConfig.java
  8. 16 0
      service-park/service-park-biz/src/main/java/com/usky/park/mapper/EgConfigMapper.java
  9. 3 0
      service-park/service-park-biz/src/main/java/com/usky/park/service/DataLgHistoryService.java
  10. 3 0
      service-park/service-park-biz/src/main/java/com/usky/park/service/DataRealTimeService.java
  11. 10 0
      service-park/service-park-biz/src/main/java/com/usky/park/service/DmpDeviceService.java
  12. 34 0
      service-park/service-park-biz/src/main/java/com/usky/park/service/EgConfigService.java
  13. 21 0
      service-park/service-park-biz/src/main/java/com/usky/park/service/impl/DataLgHistoryServiceImpl.java
  14. 7 0
      service-park/service-park-biz/src/main/java/com/usky/park/service/impl/DataRealTimeServiceImpl.java
  15. 53 3
      service-park/service-park-biz/src/main/java/com/usky/park/service/impl/DmpDeviceServiceImpl.java
  16. 39 0
      service-park/service-park-biz/src/main/java/com/usky/park/service/impl/EgConfigServiceImpl.java
  17. 61 10
      service-park/service-park-biz/src/main/java/com/usky/park/service/impl/EventEgServiceImpl.java
  18. 13 0
      service-park/service-park-biz/src/main/resources/mapper/park/EgConfigMapper.xml

+ 3 - 2
service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DataEvHistoryController.java

@@ -1,9 +1,11 @@
 package com.usky.park.controller.web;
 
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
@@ -13,9 +15,8 @@ import org.springframework.stereotype.Controller;
  * @author zyj
  * @since 2023-04-03
  */
-@Controller
+@RestController
 @RequestMapping("/dataEvHistory")
 public class DataEvHistoryController {
-
 }
 

+ 24 - 3
service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DataLgHistoryController.java

@@ -1,9 +1,15 @@
 package com.usky.park.controller.web;
 
 
+import com.usky.common.core.bean.ApiResult;
+import com.usky.park.service.DataLgHistoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
-import org.springframework.stereotype.Controller;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,9 +19,24 @@ import org.springframework.stereotype.Controller;
  * @author zyj
  * @since 2023-04-03
  */
-@Controller
+@RestController
 @RequestMapping("/dataLgHistory")
 public class DataLgHistoryController {
-
+    @Autowired
+    private DataLgHistoryService dataLgHistoryService;
+    /**
+     * 数据中心-照明系统能耗统计
+     *
+     * @param deviceId 设备Id
+     * @param startDate 开始时间  格式 yyyy-MM-dd HH:mm:ss
+     * @param endDate  结束时间  格式 yyyy-MM-dd HH:mm:ss
+     * @return
+     */
+    @GetMapping("ElectricalStatistics")
+    public ApiResult<Map<String,Object>> evBuildHealth(@RequestParam(value = "deviceId") String deviceId,
+                                                       @RequestParam(value = "startDate") String startDate,
+                                                       @RequestParam(value = "endDate") String endDate){
+        return ApiResult.success(dataLgHistoryService.ElectricalStatistics(deviceId,startDate,endDate));
+    }
 }
 

+ 9 - 1
service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DataRealTimeController.java

@@ -1,9 +1,17 @@
 package com.usky.park.controller.web;
 
 
+import com.usky.common.core.bean.ApiResult;
+import com.usky.park.domain.DataRealTime;
+import com.usky.park.service.DataRealTimeService;
+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.Map;
 
 /**
  * <p>
@@ -13,7 +21,7 @@ import org.springframework.stereotype.Controller;
  * @author zyj
  * @since 2023-03-30
  */
-@Controller
+@RestController
 @RequestMapping("/dataRealTime")
 public class DataRealTimeController {
 

+ 325 - 0
service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DeviceHttpController.java

@@ -0,0 +1,325 @@
+package com.usky.park.controller.web;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.core.util.HttpUtils;
+import com.usky.common.core.util.JsonUtils;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.park.domain.DmpDevice;
+import com.usky.park.service.DmpDeviceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * @author zyj
+ * @date 2023/2/24 14:52:05
+ */
+@RestController
+@RequestMapping("deviceHttp")
+public class DeviceHttpController {
+
+    @Autowired
+    private DmpDeviceService dmpDeviceService;
+
+
+    public static final String light_url = "http://172.17.35.51:15224";
+    public static final String video_url = "http://172.17.35.51:15225";
+    public static final String video1_url = "http://172.17.35.51:15226";
+    public static final String guard_url = "http://172.17.35.51:15227";
+    public static final String video_devinfo = "http://172.17.35.51:15228";
+    public static final String guard_devinfo = "http://172.17.35.51:15229";
+    public static final String elevator_devinfo = "http://172.17.35.51:15230";
+    public static final String generator_devinfo = "http://172.17.35.51:15231";
+
+    /**
+     * 设备管理-照明开关状态控制
+     *
+     * @param deviceId  设备Id
+     * @param switchStatus  开关状态(0 关 1 开)
+     * @return
+     */
+    @GetMapping("lightControl")
+    public static String lightControl(@RequestParam(value = "deviceId") String deviceId,
+                                      @RequestParam(value = "switchStatus") Integer switchStatus){
+        String result;
+        Map<String,Object> map = new HashMap<>();
+        map.put("jsonrpc","2.0");
+        map.put("method","lightControl");
+        Map<String,Object> map1 = new HashMap<>();
+        map1.put("device_id",deviceId);
+        map1.put("switch_status",switchStatus);
+        map.put("params",map1);
+        map.put("id",3);
+        try {
+            result  = HttpUtils.postJson(light_url,map,null);
+        } catch (IOException e) {
+            throw new BusinessException("设备管理-照明开关状态控制http调用异常"+e.getMessage());
+        }
+        return result;
+    }
+
+    /**
+     * 设备管理-监控系统实时视频预览取流
+     *
+     * @param deviceId  设备Id
+     * @param streamType  码流类型,0:主码流 1:子码流 2:第三码流 参数不填,默认为主码流
+     * @param protocol  取流协议(应用层协议),“rtsp”:RTSP协议,“rtmp”:RTMP协议,“hls”:HLS协议(HLS协议只支持海康SDK协议、EHOME协议、GB28181协议、ONVIF协议接入的设备;只支持H264视频编码和AAC音频编码),参数不填,默认为RTSP协议
+     * @param transmode  传输协议(传输层协议),0:UDP 1:TCP 默认是TCP 注: GB28181 2011及以前版本只支持UDP传输
+     * @return
+     */
+    @GetMapping("videoUrl")
+    public static String videoUrl(@RequestParam(value = "deviceId") String deviceId,
+                                  @RequestParam(value = "streamType") Integer streamType,
+                                  @RequestParam(value = "protocol") String protocol,
+                                  @RequestParam(value = "transmode") Integer transmode){
+        String result;
+        Map<String,Object> map = new HashMap<>();
+        map.put("jsonrpc","2.0");
+        map.put("method","videoUrl");
+        Map<String,Object> map1 = new HashMap<>();
+        map1.put("device_id",deviceId);
+        map1.put("streamType",streamType);
+        map1.put("protocol",protocol);
+        map1.put("transmode",transmode);
+        map.put("params",map1);
+        map.put("id",3);
+        try {
+            result  = HttpUtils.postJson(video_url,map,null);
+        } catch (IOException e) {
+            throw new BusinessException("设备管理-监控系统实时视频预览取流http调用异常"+e.getMessage());
+        }
+        return result;
+    }
+
+    /**
+     * 设备管理-监控系统云台操作
+     *
+     * @param deviceId  设备Id
+     * @param action  0-开始 1-停止 注:GOTO_PRESET命令下填任意值均可转到预置点,建议填0即可
+     * @param command  不区分大小写 说明: LEFT 左转 RIGHT右转 UP 上转 DOWN 下转 ZOOM_IN 焦距变大 ZOOM_OUT 焦距变小 LEFT_UP 左上 LEFT_DOWN 左下 RIGHT_UP 右上 RIGHT_DOWN 右下 FOCUS_NEAR 焦点前移 FOCUS_FAR 焦点后移 IRIS_ENLARGE 光圈扩大 IRIS_REDUCE 光圈缩小 WIPER_SWITCH 接通雨刷开关 START_RECORD_TRACK 开始记录轨迹 STOP_RECORD_TRACK 停止记录轨迹 START_TRACK 开始轨迹 STOP_TRACK 停止轨迹 以下命令presetIndex不可 为空: GOTO_PRESET到预置点
+     * @param speed  云台速度,取值范围为1-100,默认50
+     * @param presetIndex 预置点编号,整数,通常在300以内
+     * @return
+     */
+    @GetMapping("videoControl")
+    public static String videoControl(@RequestParam(value = "deviceId") String deviceId,
+                                    @RequestParam(value = "action") Integer action,
+                                    @RequestParam(value = "command") String command,
+                                    @RequestParam(value = "speed") Integer speed,
+                                     @RequestParam(value = "presetIndex") Integer presetIndex){
+        String result;
+        Map<String,Object> map = new HashMap<>();
+        map.put("jsonrpc","2.0");
+        map.put("method","videoControl");
+        Map<String,Object> map1 = new HashMap<>();
+        map1.put("device_id",deviceId);
+        map1.put("action",action);
+        map1.put("command",command);
+        map1.put("speed",speed);
+        map1.put("presetIndex",presetIndex);
+        map.put("params",map1);
+        map.put("id",3);
+        try {
+            result  = HttpUtils.postJson(video1_url,map,null);
+        } catch (IOException e) {
+            throw new BusinessException("设备管理-监控系统云台操作http调用异常"+e.getMessage());
+        }
+        return result;
+    }
+
+    /**
+     * 设备管理-门禁系统门禁点反控
+     *
+     * @param deviceId  设备Id
+     * @param controlType  0-常开 1-门闭 2-门开 3-常闭
+     * @return
+     */
+    @GetMapping("guardControl")
+    public static String guardControl(@RequestParam(value = "deviceId") String deviceId,
+                                      @RequestParam(value = "controlType") Integer controlType){
+        String result;
+        Map<String,Object> map = new HashMap<>();
+        map.put("jsonrpc","2.0");
+        map.put("method","guardControl");
+        Map<String,Object> map1 = new HashMap<>();
+        map1.put("device_id",deviceId);
+        map1.put("controlType",controlType);
+        map.put("params",map1);
+        map.put("id",3);
+        try {
+            result  = HttpUtils.postJson(guard_url,map,null);
+        } catch (IOException e) {
+            throw new BusinessException("设备管理-门禁系统门禁点反控http调用异常"+e.getMessage());
+        }
+        return result;
+    }
+
+    /**
+     * 设备管理-监控系统、门禁系统、梯控系统设备信息同步
+     *
+     * @param deviceType  设备类型(501、监控系统  502、门禁系统  503、梯控系统 )
+     * @param regionIndexCodes  所在区域
+     * @return
+     */
+    @GetMapping("DeviceInfo")
+    public String DeviceInfo(@RequestParam(value = "deviceType") Integer deviceType,
+                                      @RequestParam(value = "regionIndexCodes") List<String> regionIndexCodes){
+        String result = "";
+        Map<String,Object> map = new HashMap<>();
+        map.put("jsonrpc","2.0");
+        map.put("method","DeviceInfo");
+        Map<String,Object> map1 = new HashMap<>();
+        map1.put("regionIndexCodes","["+regionIndexCodes+"]");
+        map.put("params",map1);
+        map.put("id",3);
+        try {
+            if(deviceType == 501){
+                result  = HttpUtils.postJson(video_devinfo,map,null);
+            }else if(deviceType == 502){
+                result  = HttpUtils.postJson(guard_devinfo,map,null);
+            }else if(deviceType == 503){
+                result  = HttpUtils.postJson(elevator_devinfo,map,null);
+            }
+            Map data_map = JsonUtils.fromJson(result,Map.class);
+            List<Map<String,Object>> data =(List) JSONObject.parseArray(JSONObject.toJSONString(data_map.get("data")));
+            for(int i=0;i<data.size();i++){
+                String flag = data.get(i).get("flag").toString();   //1 新增 0 更新 -1 删除
+                String device_id = data.get(i).get("device_id").toString();
+                String device_code = data.get(i).get("device_code").toString();
+                String device_name = data.get(i).get("device_name").toString();
+                String product_id = data.get(i).get("product_id").toString();
+                String company_code = data.get(i).get("company_code").toString();
+
+
+                if(flag.equals("-1") || flag.equals("0")){
+                    List<DmpDevice> list = new ArrayList<>();
+                    LambdaQueryWrapper<DmpDevice> queryWrapper = Wrappers.lambdaQuery();
+                    queryWrapper.eq(DmpDevice::getDeviceCode,device_code);
+                    list = dmpDeviceService.list(queryWrapper);
+
+                    DmpDevice dmpDevice = new DmpDevice();
+                    dmpDevice.setId(list.get(0).getId());
+                    dmpDevice.setDeviceId(device_id);
+                    dmpDevice.setDeviceCode(device_code);
+                    dmpDevice.setDeviceName(device_name);
+                    dmpDevice.setDeviceType(deviceType);
+                    dmpDevice.setProductId(Integer.parseInt(product_id));
+                    dmpDevice.setCompanyCode(company_code);
+                    dmpDevice.setUpdatedBy(SecurityUtils.getLoginUser().getSysPerson().getFullName());
+                    dmpDevice.setUpdatedTime(LocalDateTime.now());
+                    if(flag.equals("-1")){
+                        dmpDevice.setDeleteFlag(1);
+                        dmpDeviceService.updateById(dmpDevice);
+                    }else if(flag.equals("0")){
+                        dmpDeviceService.updateById(dmpDevice);
+                    }
+                }else if(flag.equals("1")){
+                    DmpDevice dmpDevice = new DmpDevice();
+                    dmpDevice.setDeviceId(device_id);
+                    dmpDevice.setDeviceCode(device_code);
+                    dmpDevice.setDeviceName(device_name);
+                    dmpDevice.setDeviceType(deviceType);
+                    dmpDevice.setProductId(Integer.parseInt(product_id));
+                    dmpDevice.setCompanyCode(company_code);
+                    dmpDevice.setDeleteFlag(0);
+                    dmpDevice.setCreatedBy(SecurityUtils.getLoginUser().getSysPerson().getFullName());
+                    dmpDevice.setCreatedTime(LocalDateTime.now());
+                    dmpDeviceService.save(dmpDevice);
+                }
+            }
+
+        } catch (IOException e) {
+            throw new BusinessException("设备管理-监控系统、门禁系统、梯控系统设备信息同步http调用异常"+e.getMessage());
+        }
+
+        String data = "{\"code\": \"0\",\"msg\": \"success\",\"data\": \"\"}";
+        return data;
+    }
+
+    /**
+     * 设备管理-机房系统设备信息同步
+     *
+     * @param sceneId  项目ID
+     * @return
+     */
+    @GetMapping("GeneratorDevInfo")
+    public String GeneratorDevInfo(@RequestParam(value = "sceneId") String sceneId){
+        String result = "";
+        Map<String,Object> map = new HashMap<>();
+        map.put("jsonrpc","2.0");
+        map.put("method","GeneratorDevInfo");
+        Map<String,Object> map1 = new HashMap<>();
+        map1.put("scene_id",sceneId);
+        map.put("params",map1);
+        map.put("id",3);
+        try {
+            result  = HttpUtils.postJson(generator_devinfo,map,null);
+
+            Map data_map = JsonUtils.fromJson(result,Map.class);
+            List<Map<String,Object>> data =(List) JSONObject.parseArray(JSONObject.toJSONString(data_map.get("data")));
+            for(int i=0;i<data.size();i++){
+                String flag = data.get(i).get("flag").toString();   //1 新增 0 更新 -1 删除
+                String device_id = data.get(i).get("device_id").toString();
+                String device_code = data.get(i).get("device_code").toString();
+                String device_name = data.get(i).get("device_name").toString();
+                String product_id = data.get(i).get("product_id").toString();
+                String company_code = data.get(i).get("company_code").toString();
+
+
+                if(flag.equals("-1") || flag.equals("0")){
+                    List<DmpDevice> list = new ArrayList<>();
+                    LambdaQueryWrapper<DmpDevice> queryWrapper = Wrappers.lambdaQuery();
+                    queryWrapper.eq(DmpDevice::getDeviceCode,device_code);
+                    list = dmpDeviceService.list(queryWrapper);
+
+                    DmpDevice dmpDevice = new DmpDevice();
+                    dmpDevice.setId(list.get(0).getId());
+                    dmpDevice.setDeviceId(device_id);
+                    dmpDevice.setDeviceCode(device_code);
+                    dmpDevice.setDeviceName(device_name);
+                    dmpDevice.setDeviceType(504);
+                    dmpDevice.setProductId(Integer.parseInt(product_id));
+                    dmpDevice.setCompanyCode(company_code);
+                    dmpDevice.setUpdatedBy(SecurityUtils.getLoginUser().getSysPerson().getFullName());
+                    dmpDevice.setUpdatedTime(LocalDateTime.now());
+                    if(flag.equals("-1")){
+                        dmpDevice.setDeleteFlag(1);
+                        dmpDeviceService.updateById(dmpDevice);
+                    }else if(flag.equals("0")){
+                        dmpDeviceService.updateById(dmpDevice);
+                    }
+                }else if(flag.equals("1")){
+                    DmpDevice dmpDevice = new DmpDevice();
+                    dmpDevice.setDeviceId(device_id);
+                    dmpDevice.setDeviceCode(device_code);
+                    dmpDevice.setDeviceName(device_name);
+                    dmpDevice.setDeviceType(504);
+                    dmpDevice.setProductId(Integer.parseInt(product_id));
+                    dmpDevice.setCompanyCode(company_code);
+                    dmpDevice.setDeleteFlag(0);
+                    dmpDevice.setCreatedBy(SecurityUtils.getLoginUser().getSysPerson().getFullName());
+                    dmpDevice.setCreatedTime(LocalDateTime.now());
+                    dmpDeviceService.save(dmpDevice);
+                }
+            }
+
+        } catch (IOException e) {
+            throw new BusinessException("设备管理-机房系统设备信息同步http调用异常"+e.getMessage());
+        }
+        String data = "{\"code\": \"0\",\"msg\": \"success\",\"data\": \"\"}";
+        return data;
+    }
+}

+ 13 - 0
service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DmpDeviceController.java

@@ -3,6 +3,8 @@ package com.usky.park.controller.web;
 
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.park.domain.DataRealTime;
+import com.usky.park.service.DataRealTimeService;
 import com.usky.park.service.DmpDeviceService;
 import com.usky.park.service.vo.DmpDeviceVO;
 import com.usky.park.service.vo.HistoryAttributeVO;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -100,6 +103,16 @@ public class DmpDeviceController {
         return ApiResult.success(deviceService.deviceHistoryDataList(deviceId,deviceType,deviceAttribute,startDate,endDate));
     }
 
+    /**
+     * 数据中心-环境系统楼宇健康监测查询
+     *
+     * @return
+     */
+    @GetMapping("evBuildHealth")
+    public ApiResult<Map<String,Object>> evBuildHealth(){
+        return ApiResult.success(deviceService.evBuildHealth());
+    }
+
 
 }
 

+ 51 - 0
service-park/service-park-biz/src/main/java/com/usky/park/controller/web/EgConfigController.java

@@ -0,0 +1,51 @@
+package com.usky.park.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.park.domain.EgConfig;
+import com.usky.park.service.EgConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import retrofit2.http.PUT;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 门禁进出统计配置设备表 前端控制器
+ * </p>
+ *
+ * @author zyj
+ * @since 2023-04-26
+ */
+@RestController
+@RequestMapping("/egConfig")
+public class EgConfigController {
+    @Autowired
+    private EgConfigService egConfigService;
+
+    /**
+     * 数据中心-门禁系统统计进出设备配置保存接口
+     *
+     * @param egConfig
+     * @return
+     */
+    @PutMapping("updateEgConfig")
+    public ApiResult<Void> updateEgConfig(@RequestBody EgConfig egConfig){
+        egConfigService.updateEgConfig(egConfig);
+        return ApiResult.success();
+    }
+
+    /**
+     * 数据中心-门禁系统统计进出设备配置查询接口
+     *
+     * @return
+     */
+    @GetMapping("getEgConfig")
+    public ApiResult<List<EgConfig>> getEgConfig(){
+        return ApiResult.success(egConfigService.getEgConfig());
+    }
+
+
+}
+

+ 46 - 0
service-park/service-park-biz/src/main/java/com/usky/park/domain/EgConfig.java

@@ -0,0 +1,46 @@
+package com.usky.park.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 门禁进出统计配置设备表
+ * </p>
+ *
+ * @author zyj
+ * @since 2023-04-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EgConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 进入统计设备ID汇总
+     */
+    private String inDeviceids;
+
+    /**
+     * 出去统计设备ID汇总
+     */
+    private String outDeviceids;
+
+    /**
+     * 配置时间
+     */
+    private LocalDateTime configTime;
+
+
+}

+ 16 - 0
service-park/service-park-biz/src/main/java/com/usky/park/mapper/EgConfigMapper.java

@@ -0,0 +1,16 @@
+package com.usky.park.mapper;
+
+import com.usky.park.domain.EgConfig;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 门禁进出统计配置设备表 Mapper 接口
+ * </p>
+ *
+ * @author zyj
+ * @since 2023-04-26
+ */
+public interface EgConfigMapper extends CrudMapper<EgConfig> {
+
+}

+ 3 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/DataLgHistoryService.java

@@ -3,6 +3,8 @@ package com.usky.park.service;
 import com.usky.park.domain.DataLgHistory;
 import com.usky.common.mybatis.core.CrudService;
 
+import java.util.Map;
+
 /**
  * <p>
  * 照明系统历史数据 服务类
@@ -13,4 +15,5 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface DataLgHistoryService extends CrudService<DataLgHistory> {
 
+    Map<String,Object> ElectricalStatistics(String deviceId, String startDate, String endDate);
 }

+ 3 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/DataRealTimeService.java

@@ -1,8 +1,11 @@
 package com.usky.park.service;
 
+import com.usky.common.core.bean.ApiResult;
 import com.usky.park.domain.DataRealTime;
 import com.usky.common.mybatis.core.CrudService;
 
+import java.util.Map;
+
 /**
  * <p>
  * 实时数据表 服务类

+ 10 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/DmpDeviceService.java

@@ -7,6 +7,7 @@ import com.usky.park.service.vo.DmpDeviceVO;
 import com.usky.park.service.vo.HistoryAttributeVO;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -56,4 +57,13 @@ public interface DmpDeviceService extends CrudService<DmpDevice> {
      * @return
      */
     List<HistoryAttributeVO> deviceHistoryDataList(String deviceId, Integer deviceType, List<String> deviceAttribute, String startDate, String endDate);
+
+    /**
+     * 数据中心-环境系统楼宇健康监测查询
+     *
+     * @return
+     */
+    Map<String,Object> evBuildHealth();
+
+    float attributeStatistic(Integer deviceType,String attribute_name);
 }

+ 34 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/EgConfigService.java

@@ -0,0 +1,34 @@
+package com.usky.park.service;
+
+import com.usky.park.domain.EgConfig;
+import com.usky.common.mybatis.core.CrudService;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 门禁进出统计配置设备表 服务类
+ * </p>
+ *
+ * @author zyj
+ * @since 2023-04-26
+ */
+public interface EgConfigService extends CrudService<EgConfig> {
+
+    /**
+     * 数据中心-门禁系统统计进出设备配置保存接口
+     *
+     * @param egConfig
+     * @return
+     */
+    void updateEgConfig(EgConfig egConfig);
+
+    /**
+     * 数据中心-门禁系统统计进出设备配置查询接口
+     *
+     * @return
+     */
+    List<EgConfig> getEgConfig();
+
+}

+ 21 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/impl/DataLgHistoryServiceImpl.java

@@ -1,11 +1,17 @@
 package com.usky.park.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.park.domain.DataGrHistory;
 import com.usky.park.domain.DataLgHistory;
 import com.usky.park.mapper.DataLgHistoryMapper;
 import com.usky.park.service.DataLgHistoryService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * <p>
  * 照明系统历史数据 服务实现类
@@ -17,4 +23,19 @@ import org.springframework.stereotype.Service;
 @Service
 public class DataLgHistoryServiceImpl extends AbstractCrudService<DataLgHistoryMapper, DataLgHistory> implements DataLgHistoryService {
 
+    @Override
+    public Map<String,Object> ElectricalStatistics(String deviceId,String startDate,String endDate)
+    {
+        Map<String,Object> map = new HashMap<>();
+        LambdaQueryWrapper<DataLgHistory> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(DataLgHistory::getAttributeName,"switch_status")
+                .eq(DataLgHistory::getAttributeData,"1")
+                .eq(DataLgHistory::getDeviceId,deviceId)
+                .between(DataLgHistory::getDataTime,startDate,endDate);
+        int count = this.count(queryWrapper);
+        map.put("device_id",deviceId);
+        map.put("count",count);
+
+        return map;
+    }
 }

+ 7 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/impl/DataRealTimeServiceImpl.java

@@ -1,11 +1,17 @@
 package com.usky.park.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.park.domain.DataRealTime;
+import com.usky.park.domain.DmpDevice;
 import com.usky.park.mapper.DataRealTimeMapper;
 import com.usky.park.service.DataRealTimeService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * <p>
  * 实时数据表 服务实现类
@@ -17,4 +23,5 @@ import org.springframework.stereotype.Service;
 @Service
 public class DataRealTimeServiceImpl extends AbstractCrudService<DataRealTimeMapper, DataRealTime> implements DataRealTimeService {
 
+
 }

+ 53 - 3
service-park/service-park-biz/src/main/java/com/usky/park/service/impl/DmpDeviceServiceImpl.java

@@ -59,6 +59,7 @@ public class DmpDeviceServiceImpl extends AbstractCrudService<DmpDeviceMapper, D
         LambdaQueryWrapper<DmpDevice> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(DmpDevice::getDeviceId,DmpDevice::getDeviceCode,DmpDevice::getDeviceName,DmpDevice::getDeviceType,DmpDevice::getInstallAddress,DmpDevice::getCreatedTime)
                 .eq(DmpDevice::getDeviceType,deviceType)
+                .eq(DmpDevice::getDeleteFlag,0)
                 .like(StringUtils.isNotBlank(deviceName),DmpDevice::getDeviceName,deviceName)
                 .like(StringUtils.isNotBlank(installAddress),DmpDevice::getInstallAddress,installAddress)
                 .between(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate),DmpDevice::getCreatedTime,startDate,endDate)
@@ -173,6 +174,7 @@ public class DmpDeviceServiceImpl extends AbstractCrudService<DmpDeviceMapper, D
         List<DmpDevice> devList = new ArrayList<>();
         LambdaQueryWrapper<DmpDevice> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(DmpDevice::getDeviceId,DmpDevice::getDeviceName,DmpDevice::getInstallAddress)
+                .eq(DmpDevice::getDeleteFlag,0)
                 .like(StringUtils.isNotBlank(deviceName),DmpDevice::getDeviceName,deviceName)
                 .like(StringUtils.isNotBlank(installAddress),DmpDevice::getInstallAddress,installAddress)
                 .eq(DmpDevice::getDeviceType,deviceType);
@@ -250,7 +252,8 @@ public class DmpDeviceServiceImpl extends AbstractCrudService<DmpDeviceMapper, D
                     queryWrapper1.select(DataGrHistory::getAttributeData,DataGrHistory::getDataTime)
                             .eq(DataGrHistory::getDeviceId,deviceId)
                             .eq(DataGrHistory::getAttributeName,deviceAttribute.get(i))
-                            .between(DataGrHistory::getDataTime,startDate,endDate);
+                            .between(DataGrHistory::getDataTime,startDate,endDate)
+                            .orderByDesc(DataGrHistory::getId);
                     List<DataGrHistory> grList = dataGrHistoryService.list(queryWrapper1);
                     if(CollectionUtils.isNotEmpty(grList)){
                         for(int j=0;j< grList.size();j++){
@@ -276,7 +279,8 @@ public class DmpDeviceServiceImpl extends AbstractCrudService<DmpDeviceMapper, D
                     queryWrapper1.select(DataEvHistory::getAttributeData,DataEvHistory::getDataTime)
                             .eq(DataEvHistory::getDeviceId,deviceId)
                             .eq(DataEvHistory::getAttributeName,deviceAttribute.get(i))
-                            .between(DataEvHistory::getDataTime,startDate,endDate);
+                            .between(DataEvHistory::getDataTime,startDate,endDate)
+                            .orderByDesc(DataEvHistory::getId);
                     List<DataEvHistory> evList = dataEvHistoryService.list(queryWrapper1);
                     if(CollectionUtils.isNotEmpty(evList)){
                         for(int j=0;j< evList.size();j++){
@@ -301,7 +305,8 @@ public class DmpDeviceServiceImpl extends AbstractCrudService<DmpDeviceMapper, D
                     queryWrapper1.select(DataLgHistory::getAttributeData,DataLgHistory::getDataTime)
                             .eq(DataLgHistory::getDeviceId,deviceId)
                             .eq(DataLgHistory::getAttributeName,deviceAttribute.get(i))
-                            .between(DataLgHistory::getDataTime,startDate,endDate);
+                            .between(DataLgHistory::getDataTime,startDate,endDate)
+                            .orderByDesc(DataLgHistory::getId);
                     List<DataLgHistory> lgList = dataLgHistoryService.list(queryWrapper1);
                     if(CollectionUtils.isNotEmpty(lgList)){
                         for(int j=0;j< lgList.size();j++){
@@ -321,4 +326,49 @@ public class DmpDeviceServiceImpl extends AbstractCrudService<DmpDeviceMapper, D
 
     }
 
+
+    @Override
+    public Map<String,Object> evBuildHealth(){
+        Map<String,Object> map = new HashMap<>();
+        float co2 = attributeStatistic(509,"co2");
+        map.put("co2",co2);
+        float jq = attributeStatistic(509,"jq");
+        map.put("jq",jq);
+        float pm2_5 = attributeStatistic(509,"pm2.5");
+        map.put("pm2.5",pm2_5);
+        float pm1_0 = attributeStatistic(509,"pm1.0");
+        map.put("pm1.0",pm1_0);
+        float pm10 = attributeStatistic(509,"pm10");
+        map.put("pm10",pm10);
+        float tvoc = attributeStatistic(509,"tvoc");
+        map.put("tvoc",tvoc);
+        float wd = attributeStatistic(509,"wd");
+        map.put("wd",wd);
+        float sd = attributeStatistic(509,"sd");
+        map.put("sd",sd);
+
+        return map;
+    }
+
+    public float attributeStatistic(Integer deviceType,String attribute_name){
+        float f = 0;
+        int deviceCount = 0;
+        LambdaQueryWrapper<DmpDevice> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(DmpDevice::getDeviceType,deviceType)
+                .eq(DmpDevice::getDeleteFlag,0);
+        deviceCount = this.count(queryWrapper);
+        LambdaQueryWrapper<DataRealTime> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.select(DataRealTime::getAttributeData)
+                .eq(DataRealTime::getDeviceType,deviceType)
+                .eq(DataRealTime::getAttributeName,attribute_name);
+        List<DataRealTime> list = dataRealTimeService.list(queryWrapper1);
+        if(list.size() > 0){
+            for(int i=0;i<list.size();i++){
+                f += Float.parseFloat(list.get(i).getAttributeData());
+            }
+        }
+        float data = f/deviceCount;
+        return data;
+    }
+
 }

+ 39 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/impl/EgConfigServiceImpl.java

@@ -0,0 +1,39 @@
+package com.usky.park.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.park.domain.EgConfig;
+import com.usky.park.mapper.EgConfigMapper;
+import com.usky.park.service.EgConfigService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 门禁进出统计配置设备表 服务实现类
+ * </p>
+ *
+ * @author zyj
+ * @since 2023-04-26
+ */
+@Service
+public class EgConfigServiceImpl extends AbstractCrudService<EgConfigMapper, EgConfig> implements EgConfigService {
+    @Override
+    public void updateEgConfig(EgConfig egConfig){
+        egConfig.setConfigTime(LocalDateTime.now());
+        this.updateById(egConfig);
+    }
+
+    @Override
+    public List<EgConfig> getEgConfig(){
+        LambdaQueryWrapper<EgConfig> queryWrapper = Wrappers.lambdaQuery();
+        List<EgConfig> list = this.list(queryWrapper);
+        return list;
+    }
+
+}

+ 61 - 10
service-park/service-park-biz/src/main/java/com/usky/park/service/impl/EventEgServiceImpl.java

@@ -6,16 +6,21 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.park.domain.DmpDevice;
 import com.usky.park.domain.EventEg;
 import com.usky.park.mapper.EventEgMapper;
+import com.usky.park.service.DmpDeviceService;
 import com.usky.park.service.EventEgService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import java.util.Comparator;
 import com.usky.park.service.vo.EventEgStatisticVO;
 import org.bouncycastle.util.StringList;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -27,22 +32,68 @@ import java.util.List;
  */
 @Service
 public class EventEgServiceImpl extends AbstractCrudService<EventEgMapper, EventEg> implements EventEgService {
+    @Autowired
+    private DmpDeviceService deviceService;
 
     @Override
     public CommonPage<EventEg> eventEgList(String deviceName,String installAddress,String cardNo,String orgName,Integer eventType,Integer pageNum,Integer pageSize){
         IPage<EventEg> page = new Page<>(pageNum,pageSize);
         List<EventEg> list = new ArrayList<>();
-        LambdaQueryWrapper<EventEg> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.like(StringUtils.isNotBlank(deviceName),EventEg::getDeviceName,deviceName)
-                    .like(StringUtils.isNotBlank(installAddress),EventEg::getInstallAddress,installAddress)
-                    .like(StringUtils.isNotBlank(cardNo),EventEg::getCardNo,cardNo)
-                    .like(StringUtils.isNotBlank(orgName),EventEg::getOrgName,orgName)
-                    .eq(eventType  != null,EventEg::getEventType,eventType)
-                    .orderByDesc(EventEg::getId);
-        page = this.page(page,queryWrapper);
-        list = page.getRecords();
+        List<EventEg> list2 = new ArrayList<>();
+
+        LambdaQueryWrapper<DmpDevice> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.select(DmpDevice::getDeviceId)
+                .eq(DmpDevice::getDeleteFlag,0)
+                .eq(DmpDevice::getDeviceType,502);
+        List<DmpDevice> deviceList = deviceService.list(queryWrapper1);
+        if(deviceList.size() > 0){
+            for(int i=0;i<deviceList.size();i++){
+                LambdaQueryWrapper<EventEg> queryWrapper = Wrappers.lambdaQuery();
+                queryWrapper.eq(EventEg::getDeviceId,deviceList.get(i).getDeviceId())
+                        .orderByDesc(EventEg::getEventTime);
+                List<EventEg> list1 = this.list(queryWrapper);
+                if(list1.size()>0){
+                    list2.add(list1.get(0));
+
+                }
+            }
+
+        }
+
+        if(StringUtils.isNotBlank(deviceName)){
+            list = list2.stream().filter(e->deviceName.equals(e.getDeviceName())).collect(Collectors.toList());
+        }
+        if(StringUtils.isNotBlank(installAddress)){
+            list = list2.stream().filter(e->installAddress.equals(e.getInstallAddress())).collect(Collectors.toList());
+        }
+        if(StringUtils.isNotBlank(cardNo)){
+            list = list2.stream().filter(e->cardNo.equals(e.getCardNo())).collect(Collectors.toList());
+        }
+        if(StringUtils.isNotBlank(orgName)){
+            list = list2.stream().filter(e->orgName.equals(e.getOrgName())).collect(Collectors.toList());
+        }
+        if(eventType != null){
+            list = list2.stream().filter(e->eventType.equals(e.getEventType())).collect(Collectors.toList());
+        }
+        if(list.size()==0){
+            list = list2;
+        }
+
+        List<EventEg> objectList = new ArrayList<>();
+        int total = 0;
+        if(list.size() > 0){
+            total = list.size();
+        }
+        int current = 0;
+        if(pageNum != 0 && pageSize > 0){
+            current = (pageNum - 1)*pageSize;
+        }
+
+        objectList = list.stream().skip(current).limit(pageSize).collect(Collectors.toList());
+        objectList = objectList.stream().sorted(Comparator.comparing(EventEg::getEventTime).reversed()).collect(Collectors.toList());
+
 
-        return new CommonPage<>(list,page.getTotal(),pageNum,pageSize);
+        return new CommonPage<>(objectList,total,pageNum,pageSize);
 
     }
 

+ 13 - 0
service-park/service-park-biz/src/main/resources/mapper/park/EgConfigMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.park.mapper.EgConfigMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.park.domain.EgConfig">
+        <id column="id" property="id" />
+        <result column="in_deviceids" property="inDeviceids" />
+        <result column="out_deviceids" property="outDeviceids" />
+        <result column="config_time" property="configTime" />
+    </resultMap>
+
+</mapper>