فهرست منبع

优化围栏返回VO

Simon 1 سال پیش
والد
کامیت
0424b7487b

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TElectronicFenceController.java

@@ -3,6 +3,8 @@ package com.ruoyi.web.controller.system;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.system.domain.to.AMapBaseTo;
+import com.ruoyi.system.domain.vo.AMapFenceVo;
 import com.ruoyi.system.domain.vo.ElectronicFenceVo;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,7 +57,7 @@ public class TElectronicFenceController extends BaseController {
     @GetMapping("/list/device/{deviceId}")
     public TableDataInfo list(@PathVariable("deviceId") Long deviceId) {
         startPage();
-        List<TElectronicFence> list = tElectronicFenceService.selectTElectronicFenceListByDeviceId(deviceId);
+        List<AMapFenceVo> list = tElectronicFenceService.selectTElectronicFenceListByDeviceId(deviceId);
         return getDataTable(list);
     }
 

+ 196 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/AMapFenceVo.java

@@ -0,0 +1,196 @@
+package com.ruoyi.system.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.StringJoiner;
+
+/**
+ * @ClassName: AMapFenceVo
+ * @Author: 于学智
+ * @Description: 返回给UI的围栏信息
+ * @CreateDate: 2023/9/15 14:31
+ * @Version: 1.0
+ * @E-mail:18722650553@139.com
+ * @Link:https://github.com/18722650553
+ */
+public class AMapFenceVo implements Serializable {
+    /**
+     * 围栏id
+     */
+    private Long id;
+
+    /**
+     * 高德key 用户在高德地图官网申请Web服务API类型Key
+     */
+    private String key;
+
+    /**
+     * 服务唯一编号 sid为猎鹰service唯一编号
+     */
+    private String sid;
+
+    /**
+     * 高德围栏服务的唯一ID
+     */
+    private String gfid;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 设备表id
+     */
+    private Long deviceId;
+
+    /**
+     * 围栏名称 在同一个 sid 下不可重复,不可为空。
+     */
+    private String name;
+
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "HH:mm")
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "HH:mm")
+    private Date endTime;
+
+    /**
+     * 围栏状态:(0:关闭 1:开启)
+     */
+    private Integer state;
+
+    /**
+     * 围栏开启状态(0:默认 1:禁止离开 2:禁止进入)
+     */
+    private Integer type;
+
+    /**
+     * 描述
+     */
+    private String desc;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getSid() {
+        return sid;
+    }
+
+    public void setSid(String sid) {
+        this.sid = sid;
+    }
+
+    public String getGfid() {
+        return gfid;
+    }
+
+    public void setGfid(String gfid) {
+        this.gfid = gfid;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getDeviceId() {
+        return deviceId;
+    }
+
+    public void setDeviceId(Long deviceId) {
+        this.deviceId = deviceId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    @Override
+    public String toString() {
+        return new StringJoiner(", ", AMapFenceVo.class.getSimpleName() + "[", "]")
+                .add("id=" + id)
+                .add("key='" + key + "'")
+                .add("sid='" + sid + "'")
+                .add("gfid='" + gfid + "'")
+                .add("userId=" + userId)
+                .add("deviceId=" + deviceId)
+                .add("name='" + name + "'")
+                .add("startTime=" + startTime)
+                .add("endTime=" + endTime)
+                .add("state=" + state)
+                .add("type=" + type)
+                .add("desc='" + desc + "'")
+                .toString();
+    }
+}

+ 2 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/ITElectronicFenceService.java

@@ -3,6 +3,7 @@ package com.ruoyi.system.service;
 import java.util.List;
 
 import com.ruoyi.system.domain.TElectronicFence;
+import com.ruoyi.system.domain.vo.AMapFenceVo;
 import com.ruoyi.system.domain.vo.ElectronicFenceVo;
 
 /**
@@ -68,7 +69,7 @@ public interface ITElectronicFenceService {
      * @param deviceId
      * @return
      */
-    List<TElectronicFence> selectTElectronicFenceListByDeviceId(Long deviceId);
+    List<AMapFenceVo> selectTElectronicFenceListByDeviceId(Long deviceId);
 
     /**
      * 通过围栏id更新

+ 30 - 6
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TElectronicFenceServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.constant.AMapConstants;
@@ -15,10 +16,8 @@ import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.ruoyi.system.domain.TElectronicFenceKey;
 import com.ruoyi.system.domain.TElectronicFenceService;
-import com.ruoyi.system.domain.to.AMapUpdateCircleTo;
-import com.ruoyi.system.domain.to.AMapUpdateDistrictTo;
-import com.ruoyi.system.domain.to.AMapUpdatePolyLineTo;
-import com.ruoyi.system.domain.to.AMapUpdatePolygonTo;
+import com.ruoyi.system.domain.to.*;
+import com.ruoyi.system.domain.vo.AMapFenceVo;
 import com.ruoyi.system.domain.vo.ElectronicFenceVo;
 import com.ruoyi.system.mapper.TElectronicFenceMapper;
 import com.ruoyi.system.service.ITElectronicFenceKeyService;
@@ -142,8 +141,33 @@ public class TElectronicFenceServiceImpl implements ITElectronicFenceService {
     }
 
     @Override
-    public List<TElectronicFence> selectTElectronicFenceListByDeviceId(Long deviceId) {
-        return tElectronicFenceMapper.selectTElectronicFenceListByDeviceId(deviceId);
+    public List<AMapFenceVo> selectTElectronicFenceListByDeviceId(Long deviceId) {
+        List<TElectronicFence> tElectronicFences = tElectronicFenceMapper.selectTElectronicFenceListByDeviceId(deviceId);
+        if (tElectronicFences == null || tElectronicFences.isEmpty()) {
+            log.info("通过deviceId查询围栏,返回结果为空 ,deviceId:{}!", deviceId);
+            return null;
+        }
+        List<AMapFenceVo> electronicFenceVos = tElectronicFences.stream()
+                .map(tElectronicFence -> {
+                    TElectronicFenceService fenceService = iElectronicFenceServiceService.selectTElectronicFenceServiceById(tElectronicFence.getServiceId());
+                    TElectronicFenceKey tElectronicFenceKey = iElectronicFenceKeyService.selectTElectronicFenceKeyById(fenceService.getKeyId());
+                    AMapFenceVo aMapFenceVo = new AMapFenceVo();
+                    aMapFenceVo.setId(tElectronicFence.getId());
+                    aMapFenceVo.setKey(tElectronicFenceKey.getAmapKey());
+                    aMapFenceVo.setSid(fenceService.getAmapSid());
+                    aMapFenceVo.setGfid(tElectronicFence.getGfid());
+                    aMapFenceVo.setUserId(tElectronicFence.getUserId());
+                    aMapFenceVo.setDeviceId(tElectronicFence.getDeviceId());
+                    aMapFenceVo.setName(tElectronicFence.getName());
+                    aMapFenceVo.setStartTime(tElectronicFence.getStartTime());
+                    aMapFenceVo.setEndTime(tElectronicFence.getEndTime());
+                    aMapFenceVo.setState(tElectronicFence.geteState());
+                    aMapFenceVo.setType(tElectronicFence.geteType());
+                    aMapFenceVo.setDesc(tElectronicFence.geteDesc());
+                    return aMapFenceVo;
+                })
+                .collect(Collectors.toList());
+        return electronicFenceVos;
     }
 
     @Override