Browse Source

ups接口代码提交

jingyuanchao 1 year ago
parent
commit
e6b3562f52

+ 5 - 5
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/iot/domain/IotUps.java

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import lombok.experimental.SuperBuilder;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -21,10 +21,10 @@ import java.time.LocalDateTime;
  * @since 2024-06-18
  */
 @Data
-@SuperBuilder
+@Builder
 @EqualsAndHashCode(callSuper = false)
 @TableName("iot_ups")
-@ApiModel(value="IotUps对象", description="ups表信息")
+@ApiModel(value = "IotUps对象", description = "ups表信息")
 public class IotUps implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -109,7 +109,7 @@ public class IotUps implements Serializable {
     private Integer lowPressureStatus;
 
 
-    public static String getUniqueCode(String orgCode, String hostCode, String deviceCode){
-        return orgCode +"_"+ hostCode+"_" + deviceCode;
+    public static String getUniqueCode(String orgCode, String hostCode, String deviceCode) {
+        return orgCode + "_" + hostCode + "_" + deviceCode;
     }
 }

+ 5 - 5
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/controller/UpsController.java

@@ -21,15 +21,15 @@ import org.springframework.web.bind.annotation.*;
  * @since 2024-06-18
  */
 @RestController
-@RequestMapping("/api/")
+@RequestMapping
 public class UpsController {
 
     @Autowired
     private IIotUpsService upsService;
 
 
-    @ApiOperation("接受UPS信息同步")
-    @PostMapping({"/data/upsDeviceList"})
+    @ApiOperation("UPS基础信息同步")
+    @PostMapping({"/api/data/upsDeviceList"})
     public ReceiveErrorDto upsDeviceList(String msgId, @RequestBody DataPageDto<UpsDeviceDto> request) {
 
         LogUtils.BASE_INFO_UPS_DEVICE.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "接受UPS信息同步:/api/data/upsDeviceList", msgId, JacksonUtils.toJSONString(request));
@@ -45,8 +45,8 @@ public class UpsController {
         return errorDto;
     }
 
-    @ApiOperation("接受UPS实时状态信息")
-    @PostMapping({"/status/ups"})
+    @ApiOperation("UPS状态信息同步")
+    @PostMapping({"/api/status/ups"})
     public ReceiveErrorDto statusUps(String msgId, @RequestBody UpsDeviceDataDto request) {
         LogUtils.BASE_INFO_UPS_DEVICE_DATA.info("【北向接口-{}】【msgId:{}】【接收参数:{}】", "接受UPS实时状态信息:/api/status/ups", msgId, JacksonUtils.toJSONString(request));
         ReceiveErrorDto errorDto = ReceiveErrorDto.success();

+ 15 - 9
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/service/impl/IotUpsServiceImpl.java

@@ -2,7 +2,6 @@ package com.xunmei.mediator.api.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -11,6 +10,7 @@ import com.xunmei.common.core.domain.iot.domain.IotUps;
 import com.xunmei.common.core.domain.iot.domain.IotUpsAttr;
 import com.xunmei.common.core.enums.iot.UpsStatus;
 import com.xunmei.common.core.utils.DateUtils;
+import com.xunmei.common.core.utils.JacksonUtils;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.mediator.api.mapper.IotUpsAttrMapper;
 import com.xunmei.mediator.api.mapper.IotUpsMapper;
@@ -36,6 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.*;
 
 /**
@@ -73,7 +74,7 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
 
     @Override
     public ReceiveErrorDto saveUpsDeviceData(UpsDeviceDataDto request, String msgId) throws IllegalAccessException {
-        String value = DigestUtils.md5Hex(request.getInfos());
+        String value = DigestUtils.md5Hex(JacksonUtils.toJSONString(request.getInfos()));
         String key = request.getOrgCode() + request.getDeviceCode() + "upsdata";
         //验证是否在段时间内收到重复的数据
         if (!RedisCheckRepeatDataUtil.checkData(key, value)) {
@@ -103,6 +104,7 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
     }
 
     private Map<String, Object> buildUpsAndData(UpsDeviceDataDto request) {
+        String info = JSON.toJSONString(request.getInfos());
         IotUps upsDevice = baseMapper.selectByUniqueCode(IotUps.getUniqueCode(request.getOrgCode(), request.getHostCode(), request.getDeviceCode()));
         ReceiveErrorDto errorDto = ReceiveErrorDto.success();
         Map<String, Object> map = new HashMap<>();
@@ -113,9 +115,9 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
             return map;
         }
         upsDevice.setUpdateTime(DateUtils.toLocalDateTime(request.getUpdateTime()));
-        //List<UpsDataVo> infos = buildInfos(request.getInfos());
+        List<UpsDataVo> infos = buildInfos(info);
         if (request.getInfos() != null) {
-            List<UpsDataVo> list = JSON.parseArray(request.getInfos(), UpsDataVo.class);
+            List<UpsDataVo> list = JSON.parseArray(info, UpsDataVo.class);
             for (UpsDataVo vo : list) {
                 if (StringUtils.isNotEmpty(vo.getName()) && vo.getName().contains("UPS市电状态")) {
                     upsDevice.setMainsElectricityStatus(Double.valueOf(vo.getVal()).intValue());
@@ -125,6 +127,7 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
                 }
             }
         }
+        upsDevice.setInfo(JacksonUtils.toJSONString(infos));
         map.put("errorDto", errorDto);
         map.put("upsDevice", upsDevice);
         return map;
@@ -227,6 +230,7 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
         LambdaUpdateWrapper<IotUps> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.eq(IotUps::getDeleted, 0);
         updateWrapper.in(IotUps::getOrgId, orgIdList);
+        updateWrapper.set(IotUps::getDeleted, 1);
         baseMapper.update(null, updateWrapper);
     }
 
@@ -236,7 +240,7 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
         List<NorthError> errors = new ArrayList<>();
         List<IotUps> upsDevices = new ArrayList<>();
         List<IotUps> upsDeviceOlds = new ArrayList<>();
-        List<IotUps> upsDeviceAllOlds = baseMapper.selectList(new QueryWrapper<>());
+        List<IotUps> upsDeviceAllOlds = this.list();
         NorthError error = null;
         //获取机构列表
         List<Long> list = new ArrayList<>();
@@ -262,10 +266,13 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
             Optional<IotUps> upsOptional = upsDeviceAllOlds.stream().filter(r -> r.getUpsUniqueCode().equals(upsDevice.getUpsUniqueCode())).findAny();
             if (upsOptional.isPresent()) {
                 IotUps upsDeviceOld = upsOptional.get();
-                BeanUtils.copyProperties(upsDeviceOld, upsDevice);
+                BeanUtils.copyProperties(upsDevice, upsDeviceOld, "id");
+                upsDeviceOld.setUpdateTime(LocalDateTime.now());
                 upsDeviceOlds.add(upsDeviceOld);
             } else {
                 upsDevice.setId(IdWorker.getId());
+                upsDevice.setCreateTime(LocalDateTime.now());
+                upsDevice.setUpdateTime(LocalDateTime.now());
                 upsDevices.add(upsDevice);
             }
 
@@ -286,13 +293,12 @@ public class IotUpsServiceImpl extends ServiceImpl<IotUpsMapper, IotUps> impleme
                 .deviceType(ups.getDeviceType())
                 .hostCode(ups.getHostCode())
                 .orgId(org.getId())
-                .orgName(org.getName())
+                .orgName(org.getShortName())
                 .orgPath(org.getPath())
                 .upsUniqueCode(IotUps.getUniqueCode(org.getCode(), ups.getHostCode(), ups.getDeviceCode()))
                 .deleted(0)
+                .source(1)
                 .status(UpsStatus.UN_KNOW.getStatus())
                 .build();
-
-
     }
 }

+ 3 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/ups/UpsDeviceDataDto.java

@@ -8,6 +8,8 @@ import lombok.experimental.SuperBuilder;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -40,7 +42,7 @@ public class UpsDeviceDataDto implements Serializable {
     @ApiModelProperty(value = "数据更新时间")
     private Date updateTime;
     @ApiModelProperty(value = "属性信息数组")
-    private String infos;
+    private List<Map> infos;