Jelajahi Sumber

动环设备状态上报 bug修改

jingyuanchao 1 tahun lalu
induk
melakukan
80c82c58b3

+ 3 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/iot/SensorType.java

@@ -33,7 +33,9 @@ public enum SensorType {
 
     UPS(408, "UPS", "FSU_Ups"),
 
-    DO_POWER_CONTROL(4186, "DO8小时控电", "FSU_DoPowerControl"),
+    DO_POWER_CONTROL(41861, "DO8小时控电", "FSU_DoPowerControl"),
+    DO_POWER_COLLECTION(4186, "DO8小时采集", "FSU_DoPowerCollection"),
+    DO_POWER_BOX_BUTTON(4185, "DO8小时电箱按钮", "FSU_DoPowerControlBoxButton"),
 
     //待确认
     THREE_PHASE_AC_VOLTAGE(41881, "三相电电压传感器", "FSU_ThreePhaseACVoltage"),

+ 1 - 0
soc-modules/soc-modules-host/src/main/java/com/xunmei/host/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -590,6 +590,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
     private void updateChannelInfo(SubDeviceInfo subDeviceInfo, IotDeviceInfo channelInfo, IotDeviceInfo hostInfo) {
         channelInfo.setDeleted(0);
         channelInfo.setDeviceName(subDeviceInfo.getDeviceName());
+        channelInfo.setUpdateTime(new Date());
         BaseDeviceTypeEnum baseDeviceTypeEnum = BaseDeviceTypeEnum.valueOf(subDeviceInfo.getSubType());
         channelInfo.setDeviceType(baseDeviceTypeEnum.getCode());
         if (ObjectUtil.equal(ProductEnums.FSU_GATEWAY, ProductEnums.getByProductByName(hostInfo.getDeviceProduct()))) {

+ 2 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotSensorController.java

@@ -3,6 +3,7 @@ package com.xunmei.iot.controller;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.log.annotation.Log;
 import com.xunmei.common.log.enums.BusinessType;
+import com.xunmei.iot.dto.sensor.SensorLogPageDto;
 import com.xunmei.iot.dto.sensor.SensorPageDto;
 import com.xunmei.iot.service.IIotCommonSensorService;
 import com.xunmei.iot.vo.sensor.IotDeviceStatusLogPageVo;
@@ -44,7 +45,7 @@ public class IotSensorController {
 
     @ApiOperation("动环设备上报历史数据分页")
     @PostMapping({"/data/log"})
-    TableDataInfo<IotDeviceStatusLogPageVo> webLogPageData(@RequestBody final SensorPageDto request) {
+    TableDataInfo<IotDeviceStatusLogPageVo> webLogPageData(@RequestBody final SensorLogPageDto request) {
         final TableDataInfo<IotDeviceStatusLogPageVo> page = this.sensorService.selectDeviceStatusLogPage(request);
         return page;
     }

+ 19 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/sensor/SensorLogPageDto.java

@@ -0,0 +1,19 @@
+package com.xunmei.iot.dto.sensor;
+
+import com.xunmei.common.core.web.domain.PageRequest;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author jingyuanchao
+ * @date 2024/8/22 15:20
+ */
+@Data
+public class SensorLogPageDto extends PageRequest {
+
+    private String deviceStatusId;
+
+    private Date[] dateRange;
+
+}

+ 2 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotDeviceStatusLogMapper.java

@@ -2,6 +2,7 @@ package com.xunmei.iot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xunmei.iot.dto.sensor.SensorLogPageDto;
 import com.xunmei.iot.dto.sensor.SensorPageDto;
 import com.xunmei.iot.vo.sensor.IotDeviceStatusLogPageVo;
 import com.xunmei.system.api.domain.iot.IotDeviceStatusLog;
@@ -12,5 +13,5 @@ import org.apache.ibatis.annotations.Param;
  * @date 2024/8/12 16:06
  */
 public interface IotDeviceStatusLogMapper extends BaseMapper<IotDeviceStatusLog> {
-    Page<IotDeviceStatusLogPageVo> selectPageData(Page<IotDeviceStatusLogPageVo> pageRequest, @Param("req") SensorPageDto request);
+    Page<IotDeviceStatusLogPageVo> selectPageData(Page<IotDeviceStatusLogPageVo> pageRequest, @Param("req") SensorLogPageDto request);
 }

+ 2 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IIotCommonSensorService.java

@@ -4,6 +4,7 @@ import com.xunmei.common.core.domain.iot.domain.IotSensor;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.iot.dto.sensor.SensorAppPageDto;
+import com.xunmei.iot.dto.sensor.SensorLogPageDto;
 import com.xunmei.iot.vo.sensor.*;
 import com.xunmei.iot.dto.sensor.SensorPageDto;
 
@@ -24,7 +25,7 @@ public interface IIotCommonSensorService extends IService<IotSensor> {
     TableDataInfo<SensorPageVo> selectSensorDataPage(SensorPageDto request);
 
     TableDataInfo<SensorPageVo> selectSensorLogDataPage(SensorPageDto request);
-    TableDataInfo<IotDeviceStatusLogPageVo> selectDeviceStatusLogPage(SensorPageDto request);
+    TableDataInfo<IotDeviceStatusLogPageVo> selectDeviceStatusLogPage(SensorLogPageDto request);
 
     void export(SensorPageDto request, HttpServletResponse response);
 

+ 8 - 4
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java

@@ -22,6 +22,7 @@ import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.iot.dto.sensor.SensorAppPageDto;
+import com.xunmei.iot.dto.sensor.SensorLogPageDto;
 import com.xunmei.iot.dto.sensor.SensorPageDto;
 import com.xunmei.iot.mapper.IotCommonSensorMapper;
 import com.xunmei.iot.mapper.IotDeviceInfoMapper;
@@ -104,7 +105,7 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
             record.setInfo(dealInfoData(info));
             record.setDeviceType(BaseDeviceTypeEnum.getDescByCode(record.getDeviceType()));
             String dictLabel = DictUtils.getDictLabel(DictConstants.SENSOR_ALARM_STATUS, record.getState());
-            record.setStateText(ObjectUtil.isEmpty(dictLabel)?"未知":dictLabel);
+            record.setStateText(ObjectUtil.isEmpty(dictLabel) ? "未知" : dictLabel);
         }
         return TableDataInfo.build(page);
     }
@@ -125,9 +126,12 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
     }
 
     @Override
-    public TableDataInfo<IotDeviceStatusLogPageVo> selectDeviceStatusLogPage(SensorPageDto request) {
-        dealPageParam(request);
-        if (ObjectUtil.isEmpty(request.getDeviceCode())) {
+    public TableDataInfo<IotDeviceStatusLogPageVo> selectDeviceStatusLogPage(SensorLogPageDto request) {
+        if (ObjectUtil.isNotEmpty(request.getDateRange())) {
+            final Date[] dates = {DateUtil.beginOfDay(request.getDateRange()[0]), DateUtil.endOfDay(request.getDateRange()[1])};
+            request.setDateRange(dates);
+        }
+        if (ObjectUtil.isEmpty(request.getDeviceStatusId())) {
             throw new RuntimeException("设备编码不能为空!");
         }
         Page<IotDeviceStatusLogPageVo> page = deviceStatusLogMapper.selectPageData(request.getPageRequest(), request);

+ 2 - 2
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/sensor/IotDeviceStatusLogPageVo.java

@@ -1,7 +1,5 @@
 package com.xunmei.iot.vo.sensor;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -15,6 +13,8 @@ import java.util.Date;
 @Data
 public class IotDeviceStatusLogPageVo {
 
+    @ApiModelProperty(value = "设备名称")
+    private Long id;
 
     @ApiModelProperty(value = "设备名称")
     private String deviceName;

+ 4 - 1
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/sensor/SensorPageVo.java

@@ -2,7 +2,6 @@ package com.xunmei.iot.vo.sensor;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.xunmei.common.core.constant.CacheConstants;
 import com.xunmei.common.core.constant.Constants;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -16,8 +15,12 @@ import java.time.LocalDateTime;
 @Data
 public class SensorPageVo {
 
+    @ApiModelProperty("设备id")
     private Long id;
 
+    @ApiModelProperty("设备状态id")
+    private Long deviceStatusId;
+
     @ApiModelProperty("设备名称")
     private String deviceName;
 

+ 5 - 9
soc-modules/soc-modules-iot/src/main/resources/mapper/IotDeviceStatusLogMapper.xml

@@ -1,16 +1,12 @@
 <?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.xunmei.iot.mapper.IotDeviceStatusLogMapper">
-
     <select id="selectPageData" resultType="com.xunmei.iot.vo.sensor.IotDeviceStatusLogPageVo">
-
-        select device_name,create_time,info from iot_device_status_log
-
-        <where>
-            <if test="req.startTime != null and req.endTime != null">
-                and create_time between #{req.startTime} and #{req.endTime}
-            </if>
-        </where>
+        select  id,device_name,create_time,info from iot_device_status_log
+        where device_status_id=#{req.deviceStatusId}
+        <if test="req.dateRange.length >0 ">
+            and create_time between #{req.dateRange[0]} and #{req.dateRange[1]}
+        </if>
         order by create_time desc
     </select>
 </mapper>

+ 1 - 1
soc-modules/soc-modules-iot/src/main/resources/mapper/IotSensorMapper.xml

@@ -28,7 +28,7 @@
         </if>
     </select>-->
     <select id="selectPageData" resultType="com.xunmei.iot.vo.sensor.SensorPageVo">
-        select s.id, s.org_id, s.org_name,s.org_path, s.device_name, s.device_type, ds.info as info,s.device_code, ds.state_update_time as updateTime,ds.state
+        select s.id,ds.id as deviceStatusId, s.org_id, s.org_name,s.org_path, s.device_name, s.device_type, ds.info as info,s.device_code, ds.state_update_time as updateTime,ds.state
         from iot_device_info s left join iot_device_status ds on s.id=ds.device_id
         where s.deleted=0
         <if test="request.orgId!= null">