Browse Source

修改路牌的接口

yangxiaokun 3 years ago
parent
commit
5f52babf7a
26 changed files with 343 additions and 175 deletions
  1. 41 7
      src/main/java/com/zy/bms/controller/UbiLpWxController.java
  2. 0 42
      src/main/java/com/zy/bms/controller/lp/LpWxController.java
  3. 0 34
      src/main/java/com/zy/bms/controller/ubi/UbiWxController.java
  4. 113 0
      src/main/java/com/zy/bms/entity/lp/LpInfoRecord.java
  5. 4 0
      src/main/java/com/zy/bms/entity/lp/LpInfoState.java
  6. 17 7
      src/main/java/com/zy/bms/handler/LpHandlers.java
  7. 4 3
      src/main/java/com/zy/bms/handler/TransformEntity.java
  8. 14 0
      src/main/java/com/zy/bms/mapper/lp/LpInfoRecordMapper.java
  9. 10 0
      src/main/java/com/zy/bms/mapper/lp/LpInfoStateMapper.java
  10. 0 5
      src/main/java/com/zy/bms/mapper/ubi/UbiInfoStateMapper.java
  11. 31 0
      src/main/java/com/zy/bms/pojo/vo/LpChartsDataVO.java
  12. 12 2
      src/main/java/com/zy/bms/pojo/vo/UbiDeviceDetailVo.java
  13. 9 10
      src/main/java/com/zy/bms/pojo/vo/UbiDeviceListVo.java
  14. 0 33
      src/main/java/com/zy/bms/schedule/DeviceStatusSchedule.java
  15. 9 0
      src/main/java/com/zy/bms/service/IDeviceBaseService.java
  16. 16 2
      src/main/java/com/zy/bms/service/impl/DeviceBaseServiceImpl.java
  17. 16 0
      src/main/java/com/zy/bms/service/lp/ILpInfoRecordService.java
  18. 0 1
      src/main/java/com/zy/bms/service/lp/ILpInfoStateService.java
  19. 18 0
      src/main/java/com/zy/bms/service/lp/impl/LpInfoRecordServiceImpl.java
  20. 6 0
      src/main/java/com/zy/bms/service/lp/impl/LpInfoStateServiceImpl.java
  21. 0 4
      src/main/java/com/zy/bms/service/ubi/IUbiInfoStateService.java
  22. 0 10
      src/main/java/com/zy/bms/service/ubi/impl/UbiInfoStateServiceImpl.java
  23. 5 0
      src/main/resources/mapper/LpInfoRecordMapper.xml
  24. 13 0
      src/main/resources/mapper/LpInfoStateMapper.xml
  25. 4 14
      src/main/resources/mapper/UbiInfoStateMapper.xml
  26. 1 1
      src/test/java/com/zy/bms/MybatisPlusGenerator.java

+ 41 - 7
src/main/java/com/zy/bms/controller/UbiLpWxController.java

@@ -1,18 +1,25 @@
 package com.zy.bms.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.zy.bms.common.ServerResponse;
+import com.zy.bms.entity.DeviceBase;
+import com.zy.bms.entity.UserPrivilege;
+import com.zy.bms.entity.lp.LpInfoState;
 import com.zy.bms.service.IDeviceBaseService;
 import com.zy.bms.service.IGroupService;
 import com.zy.bms.service.IPostMqttMsgService;
 import com.zy.bms.service.IUserPrivilegeService;
-import com.zy.bms.service.ubi.IUbiInfoStateService;
+import com.zy.bms.service.lp.ILpInfoStateService;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 
 import javax.annotation.Resource;
 import java.util.HashSet;
 import java.util.Set;
 
 /**
+ * 普适型,路牌 微信小程序接口
+ *
  * @author yang xiao kun
  * create on 2021/8/24
  */
@@ -20,18 +27,18 @@ public class UbiLpWxController extends BaseController {
     @Resource
     private IUserPrivilegeService userPrivilegeService;
     @Resource
-    private IUbiInfoStateService ubiInfoStateService;
-    @Resource
     private IGroupService groupService;
     @Resource
     private IDeviceBaseService deviceBaseService;
     @Resource
     private IPostMqttMsgService postMqttMsgService;
+    @Resource
+    private ILpInfoStateService lpInfoStateService;
 
     /**
      * 查看用户拥有权限的设备组列表
      */
-    @GetMapping("getGroupsByUserId.do")
+    @GetMapping("getGroups.do")
     public ServerResponse getGroupsByUserId() {
         return ServerResponse.success(groupService.getByUserId(userId()));
     }
@@ -47,11 +54,30 @@ public class UbiLpWxController extends BaseController {
     /**
      * 通过设备组ID查询设备列表
      */
-    @GetMapping("getDevicesByGroupId.do")
+    @GetMapping("getDevices.do")
     public ServerResponse getDevicesByGroupId(String groupId) {
         Set<String> groupIds = new HashSet<>(userPrivilegeService.getGroupIdsByUserId(userId()));
         if (!groupIds.contains(groupId)) return ServerResponse.warning("无权限");
-        return ServerResponse.success(deviceBaseService.listWx(group));
+        return ServerResponse.success(deviceBaseService.listByGroupIdWx(groupId));
+    }
+
+    /**
+     * 扫码查询
+     */
+    @GetMapping("scan.do")
+    public ServerResponse scan(String openNum) {
+        DeviceBase device = deviceBaseService.getOne(new QueryWrapper<DeviceBase>().eq("open_num", openNum));
+        if (device == null) return ServerResponse.warning("设备码错误!");
+        //如果该用户没有该设备组权限,则加上权限
+        UserPrivilege userPrivilege = userPrivilegeService.getOne(new QueryWrapper<UserPrivilege>()
+                .eq("group_id", device.getGroupId()).eq("user_id", userId()));
+        if (userPrivilege == null) {
+            UserPrivilege entity = new UserPrivilege();
+            entity.setUserId(userId());
+            entity.setGroupId(device.getGroupId());
+            userPrivilegeService.save(entity);
+        }
+        return ServerResponse.success(deviceBaseService.getDetailWx(openNum));
     }
 
     /**
@@ -59,7 +85,15 @@ public class UbiLpWxController extends BaseController {
      */
     @GetMapping("getDeviceDetail.do")
     public ServerResponse getDeviceDetail(String openNum) {
-        return ServerResponse.success(ubiInfoStateService.getDetailWx(openNum));
+        return ServerResponse.success(deviceBaseService.getDetailWx(openNum));
+    }
+
+    /**
+     * 更新唤醒时间和阈值
+     */
+    @PostMapping("update.do")
+    public ServerResponse update(LpInfoState entity) {
+        return ServerResponse.success(lpInfoStateService.updateWakeAndThresh(entity));
     }
 
     /**

+ 0 - 42
src/main/java/com/zy/bms/controller/lp/LpWxController.java

@@ -1,42 +0,0 @@
-package com.zy.bms.controller.lp;
-
-import com.zy.bms.common.ServerResponse;
-import com.zy.bms.entity.lp.LpInfoState;
-import com.zy.bms.service.lp.ILpInfoStateService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 路牌设备
- * 微信小程序 端接口
- *
- * @author yang xiao kun
- * create on 2021/7/16
- */
-@RestController
-@RequestMapping("/bms/api/lpapp")
-public class LpWxController {
-    @Resource
-    private ILpInfoStateService lpInfoStateService;
-
-    /**
-     * 查询所有设备
-     */
-    @GetMapping("list.do")
-    public ServerResponse getListByUserId() {
-        return ServerResponse.success(lpInfoStateService.list());
-    }
-
-
-    /**
-     * 更新唤醒时间和阈值
-     */
-    @PostMapping("update.do")
-    public ServerResponse update(LpInfoState entity) {
-        return ServerResponse.success(lpInfoStateService.updateWakeAndThresh(entity));
-    }
-}

+ 0 - 34
src/main/java/com/zy/bms/controller/ubi/UbiWxController.java

@@ -1,34 +0,0 @@
-package com.zy.bms.controller.ubi;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.zy.bms.common.ServerResponse;
-import com.zy.bms.controller.BaseController;
-import com.zy.bms.entity.Group;
-import com.zy.bms.entity.PrivilegeApplyRecord;
-import com.zy.bms.service.IGroupService;
-import com.zy.bms.service.IPostMqttMsgService;
-import com.zy.bms.service.IPrivilegeApplyRecordService;
-import com.zy.bms.service.IUserPrivilegeService;
-import com.zy.bms.service.ubi.IUbiInfoStateService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * 普适型设备
- * 微信小程序 端接口
- *
- * @author yang xiao kun
- * create on 2021/7/16
- */
-@RestController
-@RequestMapping("/bms/api/ubiapp")
-public class UbiWxController extends BaseController {
-
-}

+ 113 - 0
src/main/java/com/zy/bms/entity/lp/LpInfoRecord.java

@@ -0,0 +1,113 @@
+package com.zy.bms.entity.lp;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 设备-路牌-历史记录表
+ *
+ * @author chenyi
+ * @since 2021-08-26
+ */
+@Data
+public class LpInfoRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备唯一码
+     */
+    private String openNum;
+
+    /**
+     * 定时唤醒时间
+     */
+    private BigDecimal wakeInt;
+
+    /**
+     * 阈值
+     */
+    private Integer thresh;
+
+    /**
+     * 电量
+     */
+    private String battery;
+
+    /**
+     * 信号
+     */
+    private String s4g;
+
+    private String x;
+
+    private String y;
+
+    private String z;
+
+    private String anglex;
+
+    private String angley;
+
+    private String anglez;
+
+    /**
+     * 温度
+     */
+    private String temp;
+
+    /**
+     * 经度
+     */
+    private Double lon;
+
+    /**
+     * 纬度
+     */
+    private Double lat;
+
+    /**
+     * 经度(Gcj)
+     */
+    private Double lonGcj;
+
+    /**
+     * 纬度(Gcj)
+     */
+    private Double latGcj;
+
+    /**
+     * 格式化位置
+     */
+    private String site;
+
+    /**
+     * 定位模式 1:GPS 2:基站
+     */
+    private Integer mode;
+
+    /**
+     * 上传类型
+     */
+    private String dataType;
+
+    /**
+     * 状态 0:离线 1:在线
+     */
+    private Integer status;
+
+    /**
+     * 数据上传时间
+     */
+    private LocalDateTime uploadTime;
+
+}

+ 4 - 0
src/main/java/com/zy/bms/entity/lp/LpInfoState.java

@@ -114,4 +114,8 @@ public class LpInfoState implements Serializable {
      */
     private LocalDateTime updateTime;
 
+    public Integer getStatus() {
+        if (updateTime == null || wakeInt == null) return 0;
+        return LocalDateTime.now().isAfter(updateTime.plusMinutes(wakeInt.multiply(BigDecimal.valueOf(60)).intValue() + 3)) ? 0 : 1;
+    }
 }

+ 17 - 7
src/main/java/com/zy/bms/handler/LpHandlers.java

@@ -2,10 +2,13 @@ package com.zy.bms.handler;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.zy.bms.common.Constant;
+import com.zy.bms.entity.lp.LpInfoRecord;
 import com.zy.bms.entity.lp.LpInfoState;
 import com.zy.bms.pojo.dto.MqttDTO;
 import com.zy.bms.service.IPostMqttMsgService;
+import com.zy.bms.service.lp.ILpInfoRecordService;
 import com.zy.bms.service.lp.ILpInfoStateService;
+import com.zy.bms.utils.BeanUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
@@ -25,6 +28,8 @@ public class LpHandlers {
     @Resource
     private ILpInfoStateService lpInfoStateService;
     @Resource
+    private ILpInfoRecordService lpInfoRecordService;
+    @Resource
     private IPostMqttMsgService postMqttMsgService;
 
     /**
@@ -33,23 +38,28 @@ public class LpHandlers {
     public void deviceInfoHandler(String topic, MqttDTO mqttDTO) {
         try {
             String openNum = Constant.splitOpenNum(topic);
-            LpInfoState dbDevice = lpInfoStateService.getByOpenNum(openNum);
-            LpInfoState device = TransformEntity.tsf2LpInfoState(openNum, mqttDTO);
+            LpInfoState local = lpInfoStateService.getByOpenNum(openNum);
+            //存储历史记录
+            LpInfoRecord record = TransformEntity.tsf2LpInfoRecord(openNum, mqttDTO);
+            lpInfoRecordService.save(record);
+            //远程数据
+            LpInfoState remote = BeanUtil.cast(record, LpInfoState.class);
+            remote.setUpdateTime(record.getUploadTime());
             //若数据库中不存在设备信息直接插入
-            if (dbDevice == null) {
-                lpInfoStateService.save(device);
+            if (local == null) {
+                lpInfoStateService.save(remote);
                 return;
             }
             BigDecimal wakeInt = BigDecimal.valueOf(mqttDTO.getDouble("sleept")).setScale(2, BigDecimal.ROUND_HALF_UP);
             Integer thresh = mqttDTO.getInt("thresh");
-            BigDecimal dbWakeInt = dbDevice.getWakeInt().setScale(2, BigDecimal.ROUND_HALF_UP);
+            BigDecimal dbWakeInt = local.getWakeInt().setScale(2, BigDecimal.ROUND_HALF_UP);
             //如果远程设备的(唤醒时间,阈值)与数据库的数据不一致,则发送消息更新设备的设置数据与数据库保持一致
             if ((dbWakeInt != null && !dbWakeInt.equals(wakeInt)) ||
-                    (dbDevice.getThresh() != null && !dbDevice.getThresh().equals(thresh))) {
+                    (local.getThresh() != null && !local.getThresh().equals(thresh))) {
                 postMqttMsgService.setWakeAndThreshLp(openNum, wakeInt, thresh);
             }
             //更新数据库设备状态信息
-            lpInfoStateService.update(device, new QueryWrapper<LpInfoState>().eq("open_num", openNum));
+            lpInfoStateService.update(remote, new QueryWrapper<LpInfoState>().eq("open_num", openNum));
         } catch (Exception e) {
             log.error("路牌上传基本信息异常", e);
         }

+ 4 - 3
src/main/java/com/zy/bms/handler/TransformEntity.java

@@ -1,6 +1,7 @@
 package com.zy.bms.handler;
 
 import com.zy.bms.common.Constant;
+import com.zy.bms.entity.lp.LpInfoRecord;
 import com.zy.bms.entity.lp.LpInfoState;
 import com.zy.bms.entity.ubi.UbiInfoRecord;
 import com.zy.bms.entity.ubi.UbiNtrip;
@@ -73,8 +74,8 @@ public class TransformEntity {
     /**
      * 路牌 - 状态信息
      */
-    public static LpInfoState tsf2LpInfoState(String openNum, MqttDTO dto) {
-        LpInfoState result = new LpInfoState();
+    public static LpInfoRecord tsf2LpInfoRecord(String openNum, MqttDTO dto) {
+        LpInfoRecord result = new LpInfoRecord();
         result.setOpenNum(openNum);
         result.setWakeInt(BigDecimal.valueOf(dto.getDouble("sleept")).setScale(2, BigDecimal.ROUND_HALF_UP));
         result.setThresh(dto.getInt("thresh"));
@@ -88,7 +89,7 @@ public class TransformEntity {
         result.setAngley(dto.getString("angley"));
         result.setAnglez(dto.getString("anglez"));
         result.setTemp(dto.getString("temp"));
-        result.setUpdateTime(LocalDateTime.now());
+        result.setUploadTime(LocalDateTime.now());
         //经纬度
         Double lon = dto.getDouble("lon");
         Double lat = dto.getDouble("lat");

+ 14 - 0
src/main/java/com/zy/bms/mapper/lp/LpInfoRecordMapper.java

@@ -0,0 +1,14 @@
+package com.zy.bms.mapper.lp;
+
+import com.zy.bms.entity.lp.LpInfoRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 设备-路牌-历史记录表 Mapper 接口
+ *
+ * @author chenyi
+ * @since 2021-08-26
+ */
+public interface LpInfoRecordMapper extends BaseMapper<LpInfoRecord> {
+
+}

+ 10 - 0
src/main/java/com/zy/bms/mapper/lp/LpInfoStateMapper.java

@@ -10,6 +10,8 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * 设备-路牌 Mapper 接口
  *
@@ -27,6 +29,14 @@ public interface LpInfoStateMapper extends BaseMapper<LpInfoState> {
      */
     IPage<LpDeviceListVo> listPage(Page<LpDeviceListVo> page, @Param("io") DeviceIO io);
 
+    /**
+     * 微信端
+     * 通过设备组查询设备
+     *
+     * @param groupId 设备组
+     */
+    List<LpDeviceListVo> listByGroupIdWx(String groupId);
+
     /**
      * 更新唤醒时间和阈值
      *

+ 0 - 5
src/main/java/com/zy/bms/mapper/ubi/UbiInfoStateMapper.java

@@ -24,11 +24,6 @@ import java.util.List;
 @Repository
 public interface UbiInfoStateMapper extends BaseMapper<UbiInfoState> {
 
-    /**
-     * 定时任务,定时更新设备在线状态
-     */
-    void updateStatus();
-
     /**
      * 分页查询设备列表
      *

+ 31 - 0
src/main/java/com/zy/bms/pojo/vo/LpChartsDataVO.java

@@ -0,0 +1,31 @@
+package com.zy.bms.pojo.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 路牌,表格数据视图
+ *
+ * @author yang xiao kun
+ * create on 2021/8/26
+ */
+@Data
+public class LpChartsDataVO {
+    private String x;
+
+    private String y;
+
+    private String z;
+
+    private String anglex;
+
+    private String angley;
+
+    private String anglez;
+
+    /**
+     * 时间
+     */
+    private LocalDateTime time;
+}

+ 12 - 2
src/main/java/com/zy/bms/pojo/vo/UbiDeviceDetailVo.java

@@ -1,5 +1,6 @@
 package com.zy.bms.pojo.vo;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import com.zy.bms.entity.ubi.UbiNtrip;
 import com.zy.bms.entity.ubi.UbiTcp;
 import lombok.Data;
@@ -23,9 +24,9 @@ public class UbiDeviceDetailVo {
     private String openNum;
 
     /**
-     * 1在线,0离线
+     * 数据发送频率
      */
-    private Integer status;
+    private Integer freq;
 
     /**
      * 电压
@@ -50,21 +51,25 @@ public class UbiDeviceDetailVo {
     /**
      * 经度
      */
+    @JSONField(format = "#.######")
     private Double lat;
 
     /**
      * 纬度
      */
+    @JSONField(format = "#.######")
     private Double lon;
 
     /**
      * 经度
      */
+    @JSONField(format = "#.######")
     private Double latGcj;
 
     /**
      * 纬度
      */
+    @JSONField(format = "#.######")
     private Double lonGcj;
 
     /**
@@ -80,4 +85,9 @@ public class UbiDeviceDetailVo {
      * TCP 链路设置
      */
     List<UbiTcp> ubiTcpList;
+
+    public Integer getStatus() {
+        if (updateTime == null || freq == null) return 0;
+        return LocalDateTime.now().isAfter(updateTime.plusSeconds(freq + 500)) ? 0 : 1;
+    }
 }

+ 9 - 10
src/main/java/com/zy/bms/pojo/vo/UbiDeviceListVo.java

@@ -1,8 +1,8 @@
 package com.zy.bms.pojo.vo;
 
+import com.alibaba.fastjson.annotation.JSONField;
 import lombok.Data;
 
-import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -43,11 +43,6 @@ public class UbiDeviceListVo {
      */
     private LocalDateTime createTime;
 
-    /**
-     * 1在线,0离线
-     */
-    private Integer status;
-
     /**
      * 心跳包间隔,单位:秒
      */
@@ -71,22 +66,26 @@ public class UbiDeviceListVo {
     /**
      * 经度
      */
-    private BigDecimal lon;
+    @JSONField(format = "#.######")
+    private Double lon;
 
     /**
      * 纬度
      */
-    private BigDecimal lat;
+    @JSONField(format = "#.######")
+    private Double lat;
 
     /**
      * 经度(Gcj)
      */
-    private BigDecimal lonGcj;
+    @JSONField(format = "#.######")
+    private Double lonGcj;
 
     /**
      * 纬度(Gcj)
      */
-    private BigDecimal latGcj;
+    @JSONField(format = "#.######")
+    private Double latGcj;
 
     /**
      * 卫星颗数

+ 0 - 33
src/main/java/com/zy/bms/schedule/DeviceStatusSchedule.java

@@ -1,33 +0,0 @@
-package com.zy.bms.schedule;
-
-import com.zy.bms.service.ubi.IUbiInfoStateService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.annotation.Scheduled;
-
-/**
- * 定时更新设备在线状态
- *
- * @author yang xiao kun
- * create on 2021/5/14
- */
-@EnableAsync
-@Configuration
-//@EnableScheduling
-public class DeviceStatusSchedule {
-
-    @Autowired
-    private IUbiInfoStateService deviceDynamicService;
-
-    /**
-     * 更新频率 5分钟
-     * 定时更新设备在线状态
-     */
-    @Async
-    @Scheduled(cron = "0 0/5 * * * ?")
-    public void updateDeviceStatus() {
-        deviceDynamicService.updateStatus();
-    }
-}

+ 9 - 0
src/main/java/com/zy/bms/service/IDeviceBaseService.java

@@ -21,9 +21,18 @@ public interface IDeviceBaseService extends IService<DeviceBase> {
     boolean checkOpenNum(String openNum);
 
     /**
+     * 微信
      * 通过设备组查询设备集合
      *
      * @param groupId 设备组
      */
     List listByGroupIdWx(String groupId);
+
+    /**
+     * 微信
+     * 获取设备详情
+     *
+     * @param openNum 设备码
+     */
+    Object getDetailWx(String openNum);
 }

+ 16 - 2
src/main/java/com/zy/bms/service/impl/DeviceBaseServiceImpl.java

@@ -1,7 +1,9 @@
 package com.zy.bms.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.zy.bms.common.Constant;
 import com.zy.bms.entity.DeviceBase;
+import com.zy.bms.entity.lp.LpInfoState;
 import com.zy.bms.mapper.DeviceBaseMapper;
 import com.zy.bms.service.IDeviceBaseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,9 +15,7 @@ import javax.annotation.Resource;
 import java.util.List;
 
 /**
- * <p>
  * 设备静态信息 服务实现类
- * </p>
  *
  * @author yangxiaokun
  * @since 2021-06-01
@@ -47,4 +47,18 @@ public class DeviceBaseServiceImpl extends ServiceImpl<DeviceBaseMapper, DeviceB
         }
         return null;
     }
+
+    @Override
+    public Object getDetailWx(String openNum) {
+        String type = baseMapper.selectOne(new QueryWrapper<DeviceBase>().eq("open_num", openNum)).getType();
+        switch (type) {
+            case Constant.TYPE.UBI: {
+                return ubiInfoStateService.getDetailWx(openNum);
+            }
+            case Constant.TYPE.LP: {
+                return lpInfoStateService.getOne(new QueryWrapper<LpInfoState>().eq("open_num", openNum));
+            }
+        }
+        return null;
+    }
 }

+ 16 - 0
src/main/java/com/zy/bms/service/lp/ILpInfoRecordService.java

@@ -0,0 +1,16 @@
+package com.zy.bms.service.lp;
+
+import com.zy.bms.entity.lp.LpInfoRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 设备-路牌-历史记录表 服务类
+ * </p>
+ *
+ * @author chenyi
+ * @since 2021-08-26
+ */
+public interface ILpInfoRecordService extends IService<LpInfoRecord> {
+
+}

+ 0 - 1
src/main/java/com/zy/bms/service/lp/ILpInfoStateService.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zy.bms.entity.lp.LpInfoState;
 import com.zy.bms.pojo.io.DeviceIO;
 import com.zy.bms.pojo.vo.LpDeviceListVo;
-import com.zy.bms.pojo.vo.UbiDeviceListVo;
 
 import java.util.List;
 

+ 18 - 0
src/main/java/com/zy/bms/service/lp/impl/LpInfoRecordServiceImpl.java

@@ -0,0 +1,18 @@
+package com.zy.bms.service.lp.impl;
+
+import com.zy.bms.entity.lp.LpInfoRecord;
+import com.zy.bms.mapper.lp.LpInfoRecordMapper;
+import com.zy.bms.service.lp.ILpInfoRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 设备-路牌-历史记录表 服务实现类
+ *
+ * @author chenyi
+ * @since 2021-08-26
+ */
+@Service
+public class LpInfoRecordServiceImpl extends ServiceImpl<LpInfoRecordMapper, LpInfoRecord> implements ILpInfoRecordService {
+
+}

+ 6 - 0
src/main/java/com/zy/bms/service/lp/impl/LpInfoStateServiceImpl.java

@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -34,6 +35,11 @@ public class LpInfoStateServiceImpl extends ServiceImpl<LpInfoStateMapper, LpInf
         return baseMapper.listPage(page, io);
     }
 
+    @Override
+    public List<LpDeviceListVo> listByGroupIdWx(String groupId) {
+        return baseMapper.listByGroupIdWx(groupId);
+    }
+
     @Override
     public LpInfoState getByOpenNum(String openNum) {
         return baseMapper.selectOne(new QueryWrapper<LpInfoState>().eq("open_num", openNum));

+ 0 - 4
src/main/java/com/zy/bms/service/ubi/IUbiInfoStateService.java

@@ -19,10 +19,6 @@ import java.util.List;
  * @since 2021-06-01
  */
 public interface IUbiInfoStateService extends IService<UbiInfoState> {
-    /**
-     * 定时任务,定时更新设备在线状态
-     */
-    void updateStatus();
 
     /**
      * 分页查询设备列表

+ 0 - 10
src/main/java/com/zy/bms/service/ubi/impl/UbiInfoStateServiceImpl.java

@@ -5,11 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.bms.entity.ubi.UbiInfoState;
 import com.zy.bms.mapper.ubi.UbiInfoStateMapper;
 import com.zy.bms.pojo.io.DeviceIO;
-import com.zy.bms.pojo.io.PageIO;
 import com.zy.bms.pojo.vo.UbiDeviceDetailVo;
 import com.zy.bms.pojo.vo.UbiDeviceListVo;
-import com.zy.bms.service.IUserPrivilegeService;
-import com.zy.bms.service.IUserService;
 import com.zy.bms.service.ubi.IUbiInfoStateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.bms.service.ubi.IUbiNtripService;
@@ -17,9 +14,7 @@ import com.zy.bms.service.ubi.IUbiTcpService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 /**
  * 普适型
@@ -36,11 +31,6 @@ public class UbiInfoStateServiceImpl extends ServiceImpl<UbiInfoStateMapper, Ubi
     @Resource
     private IUbiNtripService ntripSetService;
 
-    @Override
-    public void updateStatus() {
-        baseMapper.updateStatus();
-    }
-
     @Override
     public IPage<UbiDeviceListVo> listPage(DeviceIO io) {
         Page<UbiDeviceListVo> page = new Page<>(io.getCurrent(), io.getSize());

+ 5 - 0
src/main/resources/mapper/LpInfoRecordMapper.xml

@@ -0,0 +1,5 @@
+<?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.zy.bms.mapper.lp.LpInfoRecordMapper">
+
+</mapper>

+ 13 - 0
src/main/resources/mapper/LpInfoStateMapper.xml

@@ -25,6 +25,19 @@
         </if>
     </select>
 
+    <select id="listByGroupIdWx" resultType="com.zy.bms.pojo.vo.LpDeviceListVo">
+        SELECT
+            t1.open_num,
+            t2.wake_int,
+            t2.update_time
+        FROM
+            device_base t1
+        LEFT JOIN
+            lp_info_state t2 ON t1.open_num = t2.open_num
+        WHERE
+            t1.type = "lupai" AND t1.group_id = #{group}
+    </select>
+
     <update id="updateWakeAndThresh">
         UPDATE
         lp_info_state

+ 4 - 14
src/main/resources/mapper/UbiInfoStateMapper.xml

@@ -2,14 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.zy.bms.mapper.ubi.UbiInfoStateMapper">
 
-    <update id="updateStatus">
-        UPDATE
-            ubi_info_state
-        SET status = 0
-        WHERE
-            TIMESTAMPDIFF(SECOND, update_time, NOW()) > (freq + 120)
-    </update>
-
     <select id="listPage" resultType="com.zy.bms.pojo.vo.UbiDeviceListVo">
         SELECT
             t1.open_num,
@@ -37,14 +29,12 @@
     </select>
 
     <select id="getDetail" resultType="com.zy.bms.pojo.vo.UbiDeviceDetailVo">
-        SELECT t1.open_num,
-               t2.*
+        SELECT
+            *
         FROM
-            device_base t1
-        LEFT JOIN
-            ubi_info_state t2 ON t1.open_num = t2.open_num
+            ubi_info_state
         WHERE
-            t1.type = "gnss" AND t1.open_num = #{openNum}
+            open_num = #{openNum}
     </select>
 
     <select id="listByGroupIdWx" resultType="com.zy.bms.pojo.vo.UbiDeviceListVo">

+ 1 - 1
src/test/java/com/zy/bms/MybatisPlusGenerator.java

@@ -18,7 +18,7 @@ public class MybatisPlusGenerator {
     private static final String username = "useryxk";
     private static final String password = "CHENyi406@";
     private static final String moduleName = "builder";
-    private static final String[] tables = {"user_privilege"};
+    private static final String[] tables = {"lp_info_record"};
 
 
     public static void main(String[] args) {