Browse Source

'新增照明系统能耗统计和设备管理-监控系统、门禁系统、梯控系统、机房系统设备信息同步接口增加同步mysql设备信息表'

james 2 years ago
parent
commit
f27028f19b

+ 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));
+    }
 }
 

+ 115 - 6
service-park/service-park-biz/src/main/java/com/usky/park/controller/web/DeviceHttpController.java

@@ -1,16 +1,24 @@
 package com.usky.park.controller.web;
 
 
-import com.alibaba.nacos.common.utils.StringUtils;
+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.util.Date;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.List;
@@ -23,6 +31,9 @@ import java.util.List;
 @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";
@@ -164,7 +175,7 @@ public class DeviceHttpController {
      * @return
      */
     @GetMapping("DeviceInfo")
-    public static String DeviceInfo(@RequestParam(value = "deviceType") Integer deviceType,
+    public String DeviceInfo(@RequestParam(value = "deviceType") Integer deviceType,
                                       @RequestParam(value = "regionIndexCodes") List<String> regionIndexCodes){
         String result = "";
         Map<String,Object> map = new HashMap<>();
@@ -182,11 +193,60 @@ public class DeviceHttpController {
             }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());
         }
-        return result;
+
+        String data = "{\"code\": \"0\",\"msg\": \"success\",\"data\": \"\"}";
+        return data;
     }
 
     /**
@@ -196,7 +256,7 @@ public class DeviceHttpController {
      * @return
      */
     @GetMapping("GeneratorDevInfo")
-    public static String GeneratorDevInfo(@RequestParam(value = "sceneId") String sceneId){
+    public String GeneratorDevInfo(@RequestParam(value = "sceneId") String sceneId){
         String result = "";
         Map<String,Object> map = new HashMap<>();
         map.put("jsonrpc","2.0");
@@ -208,9 +268,58 @@ public class DeviceHttpController {
         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());
         }
-        return result;
+        String data = "{\"code\": \"0\",\"msg\": \"success\",\"data\": \"\"}";
+        return data;
     }
 }

+ 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);
 }

+ 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;
+    }
 }

+ 4 - 1
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);
@@ -352,7 +354,8 @@ public class DmpDeviceServiceImpl extends AbstractCrudService<DmpDeviceMapper, D
         float f = 0;
         int deviceCount = 0;
         LambdaQueryWrapper<DmpDevice> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(DmpDevice::getDeviceType,deviceType);
+        queryWrapper.eq(DmpDevice::getDeviceType,deviceType)
+                .eq(DmpDevice::getDeleteFlag,0);
         deviceCount = this.count(queryWrapper);
         LambdaQueryWrapper<DataRealTime> queryWrapper1 = Wrappers.lambdaQuery();
         queryWrapper1.select(DataRealTime::getAttributeData)

+ 1 - 0
service-park/service-park-biz/src/main/java/com/usky/park/service/impl/EventEgServiceImpl.java

@@ -43,6 +43,7 @@ public class EventEgServiceImpl extends AbstractCrudService<EventEgMapper, Event
 
         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){