Browse Source

巡检轨迹

459242451@qq.com 3 years ago
parent
commit
d5546d27ad

+ 98 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/qdtl/TlInspectionDeviceTrailController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.web.controller.qdtl;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.qdtl.domain.TlInspectionDeviceTrail;
+import com.ruoyi.qdtl.service.ITlInspectionDeviceTrailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 设备轨迹Controller
+ *
+ * @author ruoyi
+ * @date 2022-03-12
+ */
+@RestController
+@RequestMapping("/qdtl/trail")
+public class TlInspectionDeviceTrailController extends BaseController {
+    @Autowired
+    private ITlInspectionDeviceTrailService tlInspectionDeviceTrailService;
+
+    /**
+     * 查询设备轨迹列表
+     */
+    @PreAuthorize("@ss.hasPermi('qdtl:trail:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TlInspectionDeviceTrail tlInspectionDeviceTrail) {
+        startPage();
+        List<TlInspectionDeviceTrail> list = tlInspectionDeviceTrailService.selectTlInspectionDeviceTrailList(tlInspectionDeviceTrail);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出设备轨迹列表
+     */
+    @PreAuthorize("@ss.hasPermi('qdtl:trail:export')")
+    @Log(title = "设备轨迹", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TlInspectionDeviceTrail tlInspectionDeviceTrail) {
+        List<TlInspectionDeviceTrail> list = tlInspectionDeviceTrailService.selectTlInspectionDeviceTrailList(tlInspectionDeviceTrail);
+        ExcelUtil<TlInspectionDeviceTrail> util = new ExcelUtil<TlInspectionDeviceTrail>(TlInspectionDeviceTrail.class);
+        util.exportExcel(response, list, "设备轨迹数据");
+    }
+
+    /**
+     * 获取设备轨迹详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('qdtl:trail:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(tlInspectionDeviceTrailService.selectTlInspectionDeviceTrailById(id));
+    }
+
+    /**
+     * 新增设备轨迹
+     */
+    @PreAuthorize("@ss.hasPermi('qdtl:trail:add')")
+    @Log(title = "设备轨迹", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TlInspectionDeviceTrail tlInspectionDeviceTrail) {
+        return toAjax(tlInspectionDeviceTrailService.insertTlInspectionDeviceTrail(tlInspectionDeviceTrail));
+    }
+
+    /**
+     * 修改设备轨迹
+     */
+    @PreAuthorize("@ss.hasPermi('qdtl:trail:edit')")
+    @Log(title = "设备轨迹", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TlInspectionDeviceTrail tlInspectionDeviceTrail) {
+        return toAjax(tlInspectionDeviceTrailService.updateTlInspectionDeviceTrail(tlInspectionDeviceTrail));
+    }
+
+    /**
+     * 删除设备轨迹
+     */
+    @PreAuthorize("@ss.hasPermi('qdtl:trail:remove')")
+    @Log(title = "设备轨迹", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(tlInspectionDeviceTrailService.deleteTlInspectionDeviceTrailByIds(ids));
+    }
+}

+ 15 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/XunTask.java

@@ -1,15 +1,19 @@
 package com.ruoyi.web.controller.task;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.ruoyi.qdtl.domain.TlInspectionDevice;
+import com.ruoyi.qdtl.domain.TlInspectionDeviceTrail;
 import com.ruoyi.qdtl.domain.TlInspectionLocation;
 import com.ruoyi.qdtl.domain.TlInspectionLocationLog;
 import com.ruoyi.qdtl.service.IQdCommonService;
 import com.ruoyi.qdtl.service.ITlInspectionDeviceService;
+import com.ruoyi.qdtl.service.ITlInspectionDeviceTrailService;
 import com.ruoyi.qdtl.service.ITlInspectionLocationLogService;
 import com.ruoyi.qdtl.service.ITlInspectionLocationService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +38,8 @@ public class XunTask {
     private ITlInspectionLocationService tlInspectionLocationService;
     @Autowired
     private ITlInspectionLocationLogService tlInspectionLocationLogService;
+    @Autowired
+    private ITlInspectionDeviceTrailService tlInspectionDeviceTrailService;
 
     /**
      * 同步设备列表
@@ -123,6 +129,15 @@ public class XunTask {
                 TlInspectionLocationLog convert = Convert.convert(TlInspectionLocationLog.class, checkpointLog);
                 convert.setCreateTime(DateUtil.date(jsonObject.getLong("createTime")));
                 tlInspectionLocationLogService.insertTlInspectionLocationLog(convert);
+                // 由于巡检器不带GPS,则以巡检点的经纬度作为巡检轨迹
+                TlInspectionDeviceTrail deviceTrail = new TlInspectionDeviceTrail();
+                BeanUtil.copyProperties(convert, deviceTrail, "id", "fence");
+                // 查询该点位的经纬度
+                TlInspectionLocation tlInspectionLocation = tlInspectionLocationService.queryByThirdId(deviceTrail.getCheckpointId());
+                if (StrUtil.isNotBlank(tlInspectionLocation.getLnglat())) {
+                    deviceTrail.setFence(tlInspectionLocation.getLnglat());
+                    tlInspectionDeviceTrailService.insertTlInspectionDeviceTrail(deviceTrail);
+                }
             }
         }
     }

+ 136 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/domain/TlInspectionDeviceTrail.java

@@ -0,0 +1,136 @@
+package com.ruoyi.qdtl.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 设备轨迹对象 tl_inspection_device_trail
+ * 
+ * @author ruoyi
+ * @date 2022-03-12
+ */
+public class TlInspectionDeviceTrail extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 巡检器id */
+    @Excel(name = "巡检器id")
+    private String deviceId;
+
+    /** 巡检器名称 */
+    @Excel(name = "巡检器名称")
+    private String deviceName;
+
+    /** 巡检器卡号 */
+    @Excel(name = "巡检器卡号")
+    private String deviceCode;
+
+    /** 巡检点id */
+    @Excel(name = "巡检点id")
+    private String checkpointId;
+
+    /** 巡检点名称 */
+    @Excel(name = "巡检点名称")
+    private String checkpointName;
+
+    /** 巡检点卡号 */
+    @Excel(name = "巡检点卡号")
+    private String checkpointCard;
+
+    /** 经纬度 */
+    @Excel(name = "经纬度")
+    private String fence;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setDeviceId(String deviceId) 
+    {
+        this.deviceId = deviceId;
+    }
+
+    public String getDeviceId() 
+    {
+        return deviceId;
+    }
+    public void setDeviceName(String deviceName) 
+    {
+        this.deviceName = deviceName;
+    }
+
+    public String getDeviceName() 
+    {
+        return deviceName;
+    }
+    public void setDeviceCode(String deviceCode) 
+    {
+        this.deviceCode = deviceCode;
+    }
+
+    public String getDeviceCode() 
+    {
+        return deviceCode;
+    }
+    public void setCheckpointId(String checkpointId) 
+    {
+        this.checkpointId = checkpointId;
+    }
+
+    public String getCheckpointId() 
+    {
+        return checkpointId;
+    }
+    public void setCheckpointName(String checkpointName) 
+    {
+        this.checkpointName = checkpointName;
+    }
+
+    public String getCheckpointName() 
+    {
+        return checkpointName;
+    }
+    public void setCheckpointCard(String checkpointCard) 
+    {
+        this.checkpointCard = checkpointCard;
+    }
+
+    public String getCheckpointCard() 
+    {
+        return checkpointCard;
+    }
+    public void setFence(String fence) 
+    {
+        this.fence = fence;
+    }
+
+    public String getFence() 
+    {
+        return fence;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("deviceId", getDeviceId())
+            .append("deviceName", getDeviceName())
+            .append("deviceCode", getDeviceCode())
+            .append("checkpointId", getCheckpointId())
+            .append("checkpointName", getCheckpointName())
+            .append("checkpointCard", getCheckpointCard())
+            .append("fence", getFence())
+            .append("createTime", getCreateTime())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/mapper/TlInspectionDeviceTrailMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.qdtl.mapper;
+
+import java.util.List;
+import com.ruoyi.qdtl.domain.TlInspectionDeviceTrail;
+
+/**
+ * 设备轨迹Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2022-03-12
+ */
+public interface TlInspectionDeviceTrailMapper 
+{
+    /**
+     * 查询设备轨迹
+     * 
+     * @param id 设备轨迹主键
+     * @return 设备轨迹
+     */
+    public TlInspectionDeviceTrail selectTlInspectionDeviceTrailById(Long id);
+
+    /**
+     * 查询设备轨迹列表
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 设备轨迹集合
+     */
+    public List<TlInspectionDeviceTrail> selectTlInspectionDeviceTrailList(TlInspectionDeviceTrail tlInspectionDeviceTrail);
+
+    /**
+     * 新增设备轨迹
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 结果
+     */
+    public int insertTlInspectionDeviceTrail(TlInspectionDeviceTrail tlInspectionDeviceTrail);
+
+    /**
+     * 修改设备轨迹
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 结果
+     */
+    public int updateTlInspectionDeviceTrail(TlInspectionDeviceTrail tlInspectionDeviceTrail);
+
+    /**
+     * 删除设备轨迹
+     * 
+     * @param id 设备轨迹主键
+     * @return 结果
+     */
+    public int deleteTlInspectionDeviceTrailById(Long id);
+
+    /**
+     * 批量删除设备轨迹
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTlInspectionDeviceTrailByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/service/ITlInspectionDeviceTrailService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.qdtl.service;
+
+import java.util.List;
+import com.ruoyi.qdtl.domain.TlInspectionDeviceTrail;
+
+/**
+ * 设备轨迹Service接口
+ * 
+ * @author ruoyi
+ * @date 2022-03-12
+ */
+public interface ITlInspectionDeviceTrailService 
+{
+    /**
+     * 查询设备轨迹
+     * 
+     * @param id 设备轨迹主键
+     * @return 设备轨迹
+     */
+    public TlInspectionDeviceTrail selectTlInspectionDeviceTrailById(Long id);
+
+    /**
+     * 查询设备轨迹列表
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 设备轨迹集合
+     */
+    public List<TlInspectionDeviceTrail> selectTlInspectionDeviceTrailList(TlInspectionDeviceTrail tlInspectionDeviceTrail);
+
+    /**
+     * 新增设备轨迹
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 结果
+     */
+    public int insertTlInspectionDeviceTrail(TlInspectionDeviceTrail tlInspectionDeviceTrail);
+
+    /**
+     * 修改设备轨迹
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 结果
+     */
+    public int updateTlInspectionDeviceTrail(TlInspectionDeviceTrail tlInspectionDeviceTrail);
+
+    /**
+     * 批量删除设备轨迹
+     * 
+     * @param ids 需要删除的设备轨迹主键集合
+     * @return 结果
+     */
+    public int deleteTlInspectionDeviceTrailByIds(Long[] ids);
+
+    /**
+     * 删除设备轨迹信息
+     * 
+     * @param id 设备轨迹主键
+     * @return 结果
+     */
+    public int deleteTlInspectionDeviceTrailById(Long id);
+}

+ 95 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/service/impl/TlInspectionDeviceTrailServiceImpl.java

@@ -0,0 +1,95 @@
+package com.ruoyi.qdtl.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.qdtl.mapper.TlInspectionDeviceTrailMapper;
+import com.ruoyi.qdtl.domain.TlInspectionDeviceTrail;
+import com.ruoyi.qdtl.service.ITlInspectionDeviceTrailService;
+
+/**
+ * 设备轨迹Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2022-03-12
+ */
+@Service
+public class TlInspectionDeviceTrailServiceImpl implements ITlInspectionDeviceTrailService 
+{
+    @Autowired
+    private TlInspectionDeviceTrailMapper tlInspectionDeviceTrailMapper;
+
+    /**
+     * 查询设备轨迹
+     * 
+     * @param id 设备轨迹主键
+     * @return 设备轨迹
+     */
+    @Override
+    public TlInspectionDeviceTrail selectTlInspectionDeviceTrailById(Long id)
+    {
+        return tlInspectionDeviceTrailMapper.selectTlInspectionDeviceTrailById(id);
+    }
+
+    /**
+     * 查询设备轨迹列表
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 设备轨迹
+     */
+    @Override
+    public List<TlInspectionDeviceTrail> selectTlInspectionDeviceTrailList(TlInspectionDeviceTrail tlInspectionDeviceTrail)
+    {
+        return tlInspectionDeviceTrailMapper.selectTlInspectionDeviceTrailList(tlInspectionDeviceTrail);
+    }
+
+    /**
+     * 新增设备轨迹
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 结果
+     */
+    @Override
+    public int insertTlInspectionDeviceTrail(TlInspectionDeviceTrail tlInspectionDeviceTrail)
+    {
+        tlInspectionDeviceTrail.setCreateTime(DateUtils.getNowDate());
+        return tlInspectionDeviceTrailMapper.insertTlInspectionDeviceTrail(tlInspectionDeviceTrail);
+    }
+
+    /**
+     * 修改设备轨迹
+     * 
+     * @param tlInspectionDeviceTrail 设备轨迹
+     * @return 结果
+     */
+    @Override
+    public int updateTlInspectionDeviceTrail(TlInspectionDeviceTrail tlInspectionDeviceTrail)
+    {
+        return tlInspectionDeviceTrailMapper.updateTlInspectionDeviceTrail(tlInspectionDeviceTrail);
+    }
+
+    /**
+     * 批量删除设备轨迹
+     * 
+     * @param ids 需要删除的设备轨迹主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTlInspectionDeviceTrailByIds(Long[] ids)
+    {
+        return tlInspectionDeviceTrailMapper.deleteTlInspectionDeviceTrailByIds(ids);
+    }
+
+    /**
+     * 删除设备轨迹信息
+     * 
+     * @param id 设备轨迹主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTlInspectionDeviceTrailById(Long id)
+    {
+        return tlInspectionDeviceTrailMapper.deleteTlInspectionDeviceTrailById(id);
+    }
+}

+ 90 - 0
ruoyi-system/src/main/resources/mapper/qdtl/TlInspectionDeviceTrailMapper.xml

@@ -0,0 +1,90 @@
+<?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.ruoyi.qdtl.mapper.TlInspectionDeviceTrailMapper">
+    
+    <resultMap type="TlInspectionDeviceTrail" id="TlInspectionDeviceTrailResult">
+        <result property="id"    column="id"    />
+        <result property="deviceId"    column="device_id"    />
+        <result property="deviceName"    column="device_name"    />
+        <result property="deviceCode"    column="device_code"    />
+        <result property="checkpointId"    column="checkpoint_id"    />
+        <result property="checkpointName"    column="checkpoint_name"    />
+        <result property="checkpointCard"    column="checkpoint_card"    />
+        <result property="fence"    column="fence"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+
+    <sql id="selectTlInspectionDeviceTrailVo">
+        select id, device_id, device_name, device_code, checkpoint_id, checkpoint_name, checkpoint_card, fence, create_time from tl_inspection_device_trail
+    </sql>
+
+    <select id="selectTlInspectionDeviceTrailList" parameterType="TlInspectionDeviceTrail" resultMap="TlInspectionDeviceTrailResult">
+        <include refid="selectTlInspectionDeviceTrailVo"/>
+        <where>  
+            <if test="deviceId != null  and deviceId != ''"> and device_id = #{deviceId}</if>
+            <if test="deviceName != null  and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
+            <if test="deviceCode != null  and deviceCode != ''"> and device_code = #{deviceCode}</if>
+            <if test="checkpointId != null  and checkpointId != ''"> and checkpoint_id = #{checkpointId}</if>
+            <if test="checkpointName != null  and checkpointName != ''"> and checkpoint_name like concat('%', #{checkpointName}, '%')</if>
+            <if test="checkpointCard != null  and checkpointCard != ''"> and checkpoint_card = #{checkpointCard}</if>
+            <if test="fence != null  and fence != ''"> and fence = #{fence}</if>
+        </where>
+    </select>
+    
+    <select id="selectTlInspectionDeviceTrailById" parameterType="Long" resultMap="TlInspectionDeviceTrailResult">
+        <include refid="selectTlInspectionDeviceTrailVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTlInspectionDeviceTrail" parameterType="TlInspectionDeviceTrail" useGeneratedKeys="true" keyProperty="id">
+        insert into tl_inspection_device_trail
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="deviceId != null">device_id,</if>
+            <if test="deviceName != null">device_name,</if>
+            <if test="deviceCode != null">device_code,</if>
+            <if test="checkpointId != null">checkpoint_id,</if>
+            <if test="checkpointName != null">checkpoint_name,</if>
+            <if test="checkpointCard != null">checkpoint_card,</if>
+            <if test="fence != null">fence,</if>
+            <if test="createTime != null">create_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="deviceId != null">#{deviceId},</if>
+            <if test="deviceName != null">#{deviceName},</if>
+            <if test="deviceCode != null">#{deviceCode},</if>
+            <if test="checkpointId != null">#{checkpointId},</if>
+            <if test="checkpointName != null">#{checkpointName},</if>
+            <if test="checkpointCard != null">#{checkpointCard},</if>
+            <if test="fence != null">#{fence},</if>
+            <if test="createTime != null">#{createTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTlInspectionDeviceTrail" parameterType="TlInspectionDeviceTrail">
+        update tl_inspection_device_trail
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deviceId != null">device_id = #{deviceId},</if>
+            <if test="deviceName != null">device_name = #{deviceName},</if>
+            <if test="deviceCode != null">device_code = #{deviceCode},</if>
+            <if test="checkpointId != null">checkpoint_id = #{checkpointId},</if>
+            <if test="checkpointName != null">checkpoint_name = #{checkpointName},</if>
+            <if test="checkpointCard != null">checkpoint_card = #{checkpointCard},</if>
+            <if test="fence != null">fence = #{fence},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTlInspectionDeviceTrailById" parameterType="Long">
+        delete from tl_inspection_device_trail where id = #{id}
+    </delete>
+
+    <delete id="deleteTlInspectionDeviceTrailByIds" parameterType="String">
+        delete from tl_inspection_device_trail where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>