‘liusuyi’
2023-06-16 a2f6f1975b6e0eca7ae24cb19cfe30343d93fab6
重构三维实景业务
已添加6个文件
已修改7个文件
已删除6个文件
1400 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/controller/ArdTiles3dController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/controller/tiles3d/Tiles3dController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/domain/ArdTiles3d.java 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/domain/Tiles3d.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/mapper/ArdTiles3dMapper.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/mapper/Tiles3dMapper.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/IArdTiles3dService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/ITiles3dService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/impl/ArdTiles3dServiceImpl.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/impl/Tiles3dServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/device/ArdEquipExternalMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/management3d/ArdTiles3dMapper.xml 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/tiles3d/Tiles3dMapper.xml 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -509,6 +509,10 @@
                        ardVideoInspectTask.setCurrentStepStartTime("");
                        ardVideoInspectTaskMapper.updateArdVideoInspectTaskWithCurrentSetpInfo(ardVideoInspectTask);
                    }
                    else
                    {
                        log.debug("引导成功!");
                    }
                }
            }
        } catch (Exception ex) {
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/controller/ArdTiles3dController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,115 @@
package com.ruoyi.management3d.tiles3d.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.management3d.tiles3d.domain.ArdTiles3d;
import com.ruoyi.management3d.tiles3d.service.IArdTiles3dService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * ä¸‰ç»´å®žæ™¯Controller
 *
 * @author ard
 * @date 2023-06-16
 */
@RestController
@RequestMapping("/management3d/tiles3d")
@Api(tags = "三维实景接口")
public class ArdTiles3dController extends BaseController
{
    @Autowired
    private IArdTiles3dService ardTiles3dService;
    /**
     * æŸ¥è¯¢ä¸‰ç»´å®žæ™¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('management3d:tiles3d:list')")
    @GetMapping("/list")
    public TableDataInfo list(ArdTiles3d ardTiles3d)
    {
        startPage();
        List<ArdTiles3d> list = ardTiles3dService.selectArdTiles3dList(ardTiles3d);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºä¸‰ç»´å®žæ™¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('management3d:tiles3d:export')")
    @Log(title = "三维实景", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArdTiles3d ardTiles3d)
    {
        List<ArdTiles3d> list = ardTiles3dService.selectArdTiles3dList(ardTiles3d);
        ExcelUtil<ArdTiles3d> util = new ExcelUtil<ArdTiles3d>(ArdTiles3d.class);
        util.exportExcel(response, list, "三维实景数据");
    }
    /**
     * èŽ·å–ä¸‰ç»´å®žæ™¯è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('management3d:tiles3d:query')")
    @GetMapping(value = "/{tilesId}")
    public AjaxResult getInfo(@PathVariable("tilesId") String tilesId)
    {
        return success(ardTiles3dService.selectArdTiles3dByTilesId(tilesId));
    }
    /**
     * æ–°å¢žä¸‰ç»´å®žæ™¯
     */
    @PreAuthorize("@ss.hasPermi('management3d:tiles3d:add')")
    @Log(title = "三维实景", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ArdTiles3d ardTiles3d)
    {
        return toAjax(ardTiles3dService.insertArdTiles3d(ardTiles3d));
    }
    /**
     * ä¿®æ”¹ä¸‰ç»´å®žæ™¯
     */
    @PreAuthorize("@ss.hasPermi('management3d:tiles3d:edit')")
    @Log(title = "三维实景", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ArdTiles3d ardTiles3d)
    {
        return toAjax(ardTiles3dService.updateArdTiles3d(ardTiles3d));
    }
    /**
     * åˆ é™¤ä¸‰ç»´å®žæ™¯
     */
    @PreAuthorize("@ss.hasPermi('management3d:tiles3d:remove')")
    @Log(title = "三维实景", businessType = BusinessType.DELETE)
    @DeleteMapping("/{tilesIds}")
    public AjaxResult remove(@PathVariable String[] tilesIds)
    {
        return toAjax(ardTiles3dService.deleteArdTiles3dByTilesIds(tilesIds));
    }
    @GetMapping("/getDeptAndTiles3d")
    @ApiOperation("获取部门和三维实景")
    public AjaxResult getDeptAndTiles3d()
    {
        Map deptAndTiles3d = ardTiles3dService.getChildDeptAndTiles3d();
        return AjaxResult.success(deptAndTiles3d);
    }
}
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/controller/tiles3d/Tiles3dController.java
ÎļþÒÑɾ³ý
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/domain/ArdTiles3d.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,252 @@
package com.ruoyi.management3d.tiles3d.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;
/**
 * ä¸‰ç»´å®žæ™¯å¯¹è±¡ ard_tiles3d
 *
 * @author ard
 * @date 2023-06-16
 */
public class ArdTiles3d extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ID */
    @Excel(name = "ID")
    private String tilesId;
    /** å®žæ™¯ä¸‰ç»´åç§° */
    @Excel(name = "实景三维名称")
    private String tilesName;
    /** å®žæ™¯ä¸‰ç»´è·¯å¾„ */
    @Excel(name = "实景三维路径")
    private String tilesUrl;
    /** æ˜¯å¦é»˜è®¤åŠ è½½ff默认初始化 */
    @Excel(name = "是否默认加载ff默认初始化")
    private String tilesType;
    /** x轴偏移 */
    @Excel(name = "x轴偏移")
    private Integer tilesX;
    /** y轴偏移 */
    @Excel(name = "y轴偏移")
    private Integer tilesY;
    /** z轴偏移 */
    @Excel(name = "z轴偏移")
    private Integer tilesZ;
    /** ç›¸æœºåæ ‡ */
    @Excel(name = "相机坐标")
    private String camPoi;
    /** ç›¸æœºæ–¹ä½ */
    @Excel(name = "相机方位")
    private Double camHeading;
    /** ç›¸æœºä¿¯ä»° */
    @Excel(name = "相机俯仰")
    private Double camPitch;
    /** å±å¹•空间误差 */
    @Excel(name = "屏幕空间误差")
    private Integer maximumScreenSpaceError;
    /** å†…存最大使用量 */
    @Excel(name = "内存最大使用量")
    private Integer maximumMemoryUsage;
    /** è‡ªåŠ¨è¶…æ¸…åŒ–æ¨¡åž‹ */
    @Excel(name = "自动超清化模型")
    private Integer cullRequestsWhileMovingMultiplier;
    /** æ¨¡åž‹åŠ è½½é€Ÿåº¦ */
    @Excel(name = "模型加载速度")
    private Integer dynamicScreenSpaceErrorDensity;
    /** éƒ¨é—¨id */
    @Excel(name = "部门id")
    private Integer deptId;
    /** ç”¨æˆ·id */
    @Excel(name = "用户id")
    private String userId;
    public void setTilesId(String tilesId)
    {
        this.tilesId = tilesId;
    }
    public String getTilesId()
    {
        return tilesId;
    }
    public void setTilesName(String tilesName)
    {
        this.tilesName = tilesName;
    }
    public String getTilesName()
    {
        return tilesName;
    }
    public void setTilesUrl(String tilesUrl)
    {
        this.tilesUrl = tilesUrl;
    }
    public String getTilesUrl()
    {
        return tilesUrl;
    }
    public void setTilesType(String tilesType)
    {
        this.tilesType = tilesType;
    }
    public String getTilesType()
    {
        return tilesType;
    }
    public void setTilesX(Integer tilesX)
    {
        this.tilesX = tilesX;
    }
    public Integer getTilesX()
    {
        return tilesX;
    }
    public void setTilesY(Integer tilesY)
    {
        this.tilesY = tilesY;
    }
    public Integer getTilesY()
    {
        return tilesY;
    }
    public void setTilesZ(Integer tilesZ)
    {
        this.tilesZ = tilesZ;
    }
    public Integer getTilesZ()
    {
        return tilesZ;
    }
    public void setCamPoi(String camPoi)
    {
        this.camPoi = camPoi;
    }
    public String getCamPoi()
    {
        return camPoi;
    }
    public void setCamHeading(Double camHeading)
    {
        this.camHeading = camHeading;
    }
    public Double getCamHeading()
    {
        return camHeading;
    }
    public void setCamPitch(Double camPitch)
    {
        this.camPitch = camPitch;
    }
    public Double getCamPitch()
    {
        return camPitch;
    }
    public void setMaximumScreenSpaceError(Integer maximumScreenSpaceError)
    {
        this.maximumScreenSpaceError = maximumScreenSpaceError;
    }
    public Integer getMaximumScreenSpaceError()
    {
        return maximumScreenSpaceError;
    }
    public void setMaximumMemoryUsage(Integer maximumMemoryUsage)
    {
        this.maximumMemoryUsage = maximumMemoryUsage;
    }
    public Integer getMaximumMemoryUsage()
    {
        return maximumMemoryUsage;
    }
    public void setCullRequestsWhileMovingMultiplier(Integer cullRequestsWhileMovingMultiplier)
    {
        this.cullRequestsWhileMovingMultiplier = cullRequestsWhileMovingMultiplier;
    }
    public Integer getCullRequestsWhileMovingMultiplier()
    {
        return cullRequestsWhileMovingMultiplier;
    }
    public void setDynamicScreenSpaceErrorDensity(Integer dynamicScreenSpaceErrorDensity)
    {
        this.dynamicScreenSpaceErrorDensity = dynamicScreenSpaceErrorDensity;
    }
    public Integer getDynamicScreenSpaceErrorDensity()
    {
        return dynamicScreenSpaceErrorDensity;
    }
    public void setDeptId(Integer deptId)
    {
        this.deptId = deptId;
    }
    public Integer getDeptId()
    {
        return deptId;
    }
    public void setUserId(String userId)
    {
        this.userId = userId;
    }
    public String getUserId()
    {
        return userId;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("tilesId", getTilesId())
            .append("tilesName", getTilesName())
            .append("tilesUrl", getTilesUrl())
            .append("tilesType", getTilesType())
            .append("tilesX", getTilesX())
            .append("tilesY", getTilesY())
            .append("tilesZ", getTilesZ())
            .append("camPoi", getCamPoi())
            .append("camHeading", getCamHeading())
            .append("camPitch", getCamPitch())
            .append("maximumScreenSpaceError", getMaximumScreenSpaceError())
            .append("maximumMemoryUsage", getMaximumMemoryUsage())
            .append("cullRequestsWhileMovingMultiplier", getCullRequestsWhileMovingMultiplier())
            .append("dynamicScreenSpaceErrorDensity", getDynamicScreenSpaceErrorDensity())
            .append("deptId", getDeptId())
            .append("userId", getUserId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/domain/Tiles3d.java
ÎļþÒÑɾ³ý
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/mapper/ArdTiles3dMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.ruoyi.management3d.tiles3d.mapper;
import java.util.List;
import com.ruoyi.management3d.tiles3d.domain.ArdTiles3d;
/**
 * ä¸‰ç»´å®žæ™¯Mapper接口
 *
 * @author ard
 * @date 2023-06-16
 */
public interface ArdTiles3dMapper
{
    /**
     * æŸ¥è¯¢ä¸‰ç»´å®žæ™¯
     *
     * @param tilesId ä¸‰ç»´å®žæ™¯ä¸»é”®
     * @return ä¸‰ç»´å®žæ™¯
     */
    public ArdTiles3d selectArdTiles3dByTilesId(String tilesId);
    /**
     * æŸ¥è¯¢ä¸‰ç»´å®žæ™¯åˆ—表
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ä¸‰ç»´å®žæ™¯é›†åˆ
     */
    public List<ArdTiles3d> selectArdTiles3dList(ArdTiles3d ardTiles3d);
    /**
     * æ–°å¢žä¸‰ç»´å®žæ™¯
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ç»“æžœ
     */
    public int insertArdTiles3d(ArdTiles3d ardTiles3d);
    /**
     * ä¿®æ”¹ä¸‰ç»´å®žæ™¯
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ç»“æžœ
     */
    public int updateArdTiles3d(ArdTiles3d ardTiles3d);
    /**
     * åˆ é™¤ä¸‰ç»´å®žæ™¯
     *
     * @param tilesId ä¸‰ç»´å®žæ™¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteArdTiles3dByTilesId(String tilesId);
    /**
     * æ‰¹é‡åˆ é™¤ä¸‰ç»´å®žæ™¯
     *
     * @param tilesIds éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteArdTiles3dByTilesIds(String[] tilesIds);
    /**
     * æ ¹æ®éƒ¨é—¨ID查询关联的三维实景
     *
     * @param deptId éƒ¨é—¨ID
     * @return éƒ¨é—¨åˆ—表
     */
    public List<ArdTiles3d> selectArdTiles3dByDeptId(Long deptId);
}
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/mapper/Tiles3dMapper.java
ÎļþÒÑɾ³ý
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/IArdTiles3dService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.ruoyi.management3d.tiles3d.service;
import java.util.List;
import java.util.Map;
import com.ruoyi.management3d.tiles3d.domain.ArdTiles3d;
/**
 * ä¸‰ç»´å®žæ™¯Service接口
 *
 * @author ard
 * @date 2023-06-16
 */
public interface IArdTiles3dService
{
    /**
     * æŸ¥è¯¢ä¸‰ç»´å®žæ™¯
     *
     * @param tilesId ä¸‰ç»´å®žæ™¯ä¸»é”®
     * @return ä¸‰ç»´å®žæ™¯
     */
    public ArdTiles3d selectArdTiles3dByTilesId(String tilesId);
    /**
     * æŸ¥è¯¢ä¸‰ç»´å®žæ™¯åˆ—表
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ä¸‰ç»´å®žæ™¯é›†åˆ
     */
    public List<ArdTiles3d> selectArdTiles3dList(ArdTiles3d ardTiles3d);
    /**
     * æ–°å¢žä¸‰ç»´å®žæ™¯
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ç»“æžœ
     */
    public int insertArdTiles3d(ArdTiles3d ardTiles3d);
    /**
     * ä¿®æ”¹ä¸‰ç»´å®žæ™¯
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ç»“æžœ
     */
    public int updateArdTiles3d(ArdTiles3d ardTiles3d);
    /**
     * æ‰¹é‡åˆ é™¤ä¸‰ç»´å®žæ™¯
     *
     * @param tilesIds éœ€è¦åˆ é™¤çš„三维实景主键集合
     * @return ç»“æžœ
     */
    public int deleteArdTiles3dByTilesIds(String[] tilesIds);
    /**
     * åˆ é™¤ä¸‰ç»´å®žæ™¯ä¿¡æ¯
     *
     * @param tilesId ä¸‰ç»´å®žæ™¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteArdTiles3dByTilesId(String tilesId);
    public Map getChildDeptAndTiles3d();
}
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/ITiles3dService.java
ÎļþÒÑɾ³ý
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/impl/ArdTiles3dServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
package com.ruoyi.management3d.tiles3d.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.management3d.tiles3d.domain.ArdTiles3d;
import com.ruoyi.management3d.tiles3d.mapper.ArdTiles3dMapper;
import com.ruoyi.management3d.tiles3d.service.IArdTiles3dService;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.utils.tools.ArdTool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * ä¸‰ç»´å®žæ™¯Service业务层处理
 *
 * @author ard
 * @date 2023-06-16
 */
@Service
public class ArdTiles3dServiceImpl implements IArdTiles3dService {
    @Resource
    private ArdTiles3dMapper ardTiles3dMapper;
    @Resource
    private SysDeptMapper sysDeptMapper;
    /**
     * æŸ¥è¯¢ä¸‰ç»´å®žæ™¯
     *
     * @param tilesId ä¸‰ç»´å®žæ™¯ä¸»é”®
     * @return ä¸‰ç»´å®žæ™¯
     */
    @Override
    public ArdTiles3d selectArdTiles3dByTilesId(String tilesId) {
        return ardTiles3dMapper.selectArdTiles3dByTilesId(tilesId);
    }
    /**
     * æŸ¥è¯¢ä¸‰ç»´å®žæ™¯åˆ—表
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ä¸‰ç»´å®žæ™¯
     */
    @Override
    @DataScope(deptAlias = "d", userAlias = "u")
    public List<ArdTiles3d> selectArdTiles3dList(ArdTiles3d ardTiles3d) {
        return ardTiles3dMapper.selectArdTiles3dList(ardTiles3d);
    }
    /**
     * æ–°å¢žä¸‰ç»´å®žæ™¯
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ç»“æžœ
     */
    @Override
    public int insertArdTiles3d(ArdTiles3d ardTiles3d) {
        ardTiles3d.setUserId(SecurityUtils.getUserId());
        ardTiles3d.setCreateBy(SecurityUtils.getUsername());
        ardTiles3d.setCreateTime(DateUtils.getNowDate());
        return ardTiles3dMapper.insertArdTiles3d(ardTiles3d);
    }
    /**
     * ä¿®æ”¹ä¸‰ç»´å®žæ™¯
     *
     * @param ardTiles3d ä¸‰ç»´å®žæ™¯
     * @return ç»“æžœ
     */
    @Override
    public int updateArdTiles3d(ArdTiles3d ardTiles3d) {
        ardTiles3d.setUpdateBy(SecurityUtils.getUsername());
        ardTiles3d.setUpdateTime(DateUtils.getNowDate());
        return ardTiles3dMapper.updateArdTiles3d(ardTiles3d);
    }
    /**
     * æ‰¹é‡åˆ é™¤ä¸‰ç»´å®žæ™¯
     *
     * @param tilesIds éœ€è¦åˆ é™¤çš„三维实景主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdTiles3dByTilesIds(String[] tilesIds) {
        return ardTiles3dMapper.deleteArdTiles3dByTilesIds(tilesIds);
    }
    /**
     * åˆ é™¤ä¸‰ç»´å®žæ™¯ä¿¡æ¯
     *
     * @param tilesId ä¸‰ç»´å®žæ™¯ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdTiles3dByTilesId(String tilesId) {
        return ardTiles3dMapper.deleteArdTiles3dByTilesId(tilesId);
    }
    @Override
    public Map getChildDeptAndTiles3d() {
        Long deptId = SecurityUtils.getDeptId();
        SysDept sysDept = sysDeptMapper.selectDeptById(deptId);
        Map<String, Object> map = fetchChildDepartments(sysDept);
        return map;
    }
    /**
     * @描述 é€’归查询
     * @参数 [sysDept]
     * @返回值 java.util.Map<java.lang.String, java.lang.Object>
     * @创建人 åˆ˜è‹ä¹‰
     * @创建时间 2023/6/2 14:38
     * @修改人和其它信息
     */
    public Map<String, Object> fetchChildDepartments(SysDept sysDept) {
        Map<String, Object> map = new HashMap<>();
        map.put("name", sysDept.getDeptName());
        map.put("deptId", sysDept.getDeptId());
        map.put("disabled", true);
        List<SysDept> sysDepts = sysDeptMapper.selectNextChildrenDeptById(sysDept.getDeptId());
        List<ArdTiles3d> ardTiles3ds = ardTiles3dMapper.selectArdTiles3dByDeptId(sysDept.getDeptId());
        List<Object> childList = new ArrayList<>();
        for (SysDept childDept : sysDepts) {
            Map<String, Object> childMap = new HashMap<>();
            childMap.put("name", childDept.getDeptName());
            childMap.put("deptId", childDept.getDeptId());
            childMap.put("disabled", true);
            Map<String, Object> map1 = fetchChildDepartments(childDept);
            childMap.putAll(map1);
            childList.add(childMap);
        }
        if (ardTiles3ds.size() > 0) {
            for (ArdTiles3d tiles3d : ardTiles3ds) {
                Map<String, Object> cameraMap = ArdTool.convertEntityToMap(tiles3d);
                childList.add(cameraMap);
            }
        }
        map.put("children", childList);
        return map;
    }
}
ard-work/src/main/java/com/ruoyi/management3d/tiles3d/service/impl/Tiles3dServiceImpl.java
ÎļþÒÑɾ³ý
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
@@ -36,8 +36,9 @@
    @Override
    public void connectionLost(Throwable cause) {
        log.info("MQTT连接断开,发起重连......");
        try {
            while (!client.isConnected()) {
        while (!client.isConnected()) {
            try {
                Thread.sleep(5000);
                if (null != client && !client.isConnected()) {
                    client.reconnect();
@@ -46,9 +47,9 @@
                    client.connect(options);
                    log.error("尝试建立新连接");
                }
            } catch (Exception e) {
                log.error("断开重连异常:" + e.getMessage());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -26,7 +26,7 @@
    </resultMap>
    <sql id="selectArdAlarmTubeVo">
        select id, host, tube_id, tube_name, tube_type, pipe_diameter, color, position, type, alarm_type, alarm_time, watcher, create_time, longitude, latitude, altitude,, record_url, view_time from ard_alarm_tube
        select id, host, tube_id, tube_name, tube_type, pipe_diameter, color, position, type, alarm_type, alarm_time, watcher, create_time, longitude, latitude, altitude, record_url, view_time from ard_alarm_tube
    </sql>
    <select id="selectArdAlarmTubeList" parameterType="ArdAlarmTube" resultMap="ArdAlarmTubeResult">
ard-work/src/main/resources/mapper/device/ArdEquipExternalMapper.xml
@@ -39,8 +39,8 @@
               c.altitude,
               c.username,
               c.password,
               c.dept_id,
               c.user_id,
               d.dept_id,
               u.user_id,
               c.port,
               c.longitude,
               c.latitude
ard-work/src/main/resources/mapper/management3d/ArdTiles3dMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,184 @@
<?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.management3d.tiles3d.mapper.ArdTiles3dMapper">
    <resultMap type="ArdTiles3d" id="ArdTiles3dResult">
        <result property="tilesId" column="tiles_id"/>
        <result property="tilesName" column="tiles_name"/>
        <result property="tilesUrl" column="tiles_url"/>
        <result property="tilesType" column="tiles_type"/>
        <result property="tilesX" column="tiles_x"/>
        <result property="tilesY" column="tiles_y"/>
        <result property="tilesZ" column="tiles_z"/>
        <result property="camPoi" column="cam_poi"/>
        <result property="camHeading" column="cam_heading"/>
        <result property="camPitch" column="cam_pitch"/>
        <result property="maximumScreenSpaceError" column="maximum_screen_space_error"/>
        <result property="maximumMemoryUsage" column="maximum_memory_usage"/>
        <result property="cullRequestsWhileMovingMultiplier" column="cull_requests_while_moving_multiplier"/>
        <result property="dynamicScreenSpaceErrorDensity" column="dynamic_screen_space_error_density"/>
        <result property="deptId" column="dept_id"/>
        <result property="userId" column="user_id"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
    <sql id="selectArdTiles3dVo">
        select c.tiles_id,
               c.tiles_name,
               c.tiles_url,
               c.tiles_type,
               c.tiles_x,
               c.tiles_y,
               c.tiles_z,
               c.cam_poi,
               c.cam_heading,
               c.cam_pitch,
               c.maximum_screen_space_error,
               c.maximum_memory_usage,
               c.cull_requests_while_moving_multiplier,
               c.dynamic_screen_space_error_density,
               d.dept_id,
               u.user_id,
               c.create_by,
               c.create_time,
               c.update_by,
               c.update_time
        from ard_tiles3d c
        left join sys_dept d on d.dept_id = c.dept_id
        left join sys_user u on u.user_id = c.user_id
    </sql>
    <select id="selectArdTiles3dList" parameterType="ArdTiles3d" resultMap="ArdTiles3dResult">
        <include refid="selectArdTiles3dVo"/>
        <where>
            <if test="tilesId != null  and tilesId != ''">and c.tiles_id = #{tilesId}</if>
            <if test="tilesName != null  and tilesName != ''">and c.tiles_name like '%'||#{tilesName}||'%'</if>
            <if test="tilesUrl != null  and tilesUrl != ''">and c.tiles_url = #{tilesUrl}</if>
            <if test="tilesType != null  and tilesType != ''">and c.tiles_type = #{tilesType}</if>
            <if test="tilesX != null ">and c.tiles_x = #{tilesX}</if>
            <if test="tilesY != null ">and c.tiles_y = #{tilesY}</if>
            <if test="tilesZ != null ">and c.tiles_z = #{tilesZ}</if>
            <if test="camPoi != null  and camPoi != ''">and c.cam_poi = #{camPoi}</if>
            <if test="camHeading != null ">and c.cam_heading = #{camHeading}</if>
            <if test="camPitch != null ">and c.cam_pitch = #{camPitch}</if>
            <if test="maximumScreenSpaceError != null ">and c.maximum_screen_space_error = #{maximumScreenSpaceError}</if>
            <if test="maximumMemoryUsage != null ">and c.maximum_memory_usage = #{maximumMemoryUsage}</if>
            <if test="cullRequestsWhileMovingMultiplier != null ">and c.cull_requests_while_moving_multiplier =
                #{cullRequestsWhileMovingMultiplier}
            </if>
            <if test="dynamicScreenSpaceErrorDensity != null ">and c.dynamic_screen_space_error_density =
                #{dynamicScreenSpaceErrorDensity}
            </if>
            <if test="deptId != null ">and c.dept_id = #{deptId}</if>
            <if test="userId != null  and userId != ''">and c.user_id = #{userId}</if>
        </where>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
    </select>
    <select id="selectArdTiles3dByTilesId" parameterType="String" resultMap="ArdTiles3dResult">
        <include refid="selectArdTiles3dVo"/>
        where tiles_id = #{tilesId}
    </select>
    <insert id="insertArdTiles3d" parameterType="ArdTiles3d">
        insert into ard_tiles3d
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="tilesId != null">tiles_id,</if>
            <if test="tilesName != null">tiles_name,</if>
            <if test="tilesUrl != null">tiles_url,</if>
            <if test="tilesType != null">tiles_type,</if>
            <if test="tilesX != null">tiles_x,</if>
            <if test="tilesY != null">tiles_y,</if>
            <if test="tilesZ != null">tiles_z,</if>
            <if test="camPoi != null">cam_poi,</if>
            <if test="camHeading != null">cam_heading,</if>
            <if test="camPitch != null">cam_pitch,</if>
            <if test="maximumScreenSpaceError != null">maximum_screen_space_error,</if>
            <if test="maximumMemoryUsage != null">maximum_memory_usage,</if>
            <if test="cullRequestsWhileMovingMultiplier != null">cull_requests_while_moving_multiplier,</if>
            <if test="dynamicScreenSpaceErrorDensity != null">dynamic_screen_space_error_density,</if>
            <if test="deptId != null">dept_id,</if>
            <if test="userId != null">user_id,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="tilesId != null">#{tilesId},</if>
            <if test="tilesName != null">#{tilesName},</if>
            <if test="tilesUrl != null">#{tilesUrl},</if>
            <if test="tilesType != null">#{tilesType},</if>
            <if test="tilesX != null">#{tilesX},</if>
            <if test="tilesY != null">#{tilesY},</if>
            <if test="tilesZ != null">#{tilesZ},</if>
            <if test="camPoi != null">#{camPoi},</if>
            <if test="camHeading != null">#{camHeading},</if>
            <if test="camPitch != null">#{camPitch},</if>
            <if test="maximumScreenSpaceError != null">#{maximumScreenSpaceError},</if>
            <if test="maximumMemoryUsage != null">#{maximumMemoryUsage},</if>
            <if test="cullRequestsWhileMovingMultiplier != null">#{cullRequestsWhileMovingMultiplier},</if>
            <if test="dynamicScreenSpaceErrorDensity != null">#{dynamicScreenSpaceErrorDensity},</if>
            <if test="deptId != null">#{deptId},</if>
            <if test="userId != null">#{userId},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
        </trim>
    </insert>
    <update id="updateArdTiles3d" parameterType="ArdTiles3d">
        update ard_tiles3d
        <trim prefix="SET" suffixOverrides=",">
            <if test="tilesName != null">tiles_name = #{tilesName},</if>
            <if test="tilesUrl != null">tiles_url = #{tilesUrl},</if>
            <if test="tilesType != null">tiles_type = #{tilesType},</if>
            <if test="tilesX != null">tiles_x = #{tilesX},</if>
            <if test="tilesY != null">tiles_y = #{tilesY},</if>
            <if test="tilesZ != null">tiles_z = #{tilesZ},</if>
            <if test="camPoi != null">cam_poi = #{camPoi},</if>
            <if test="camHeading != null">cam_heading = #{camHeading},</if>
            <if test="camPitch != null">cam_pitch = #{camPitch},</if>
            <if test="maximumScreenSpaceError != null">maximum_screen_space_error = #{maximumScreenSpaceError},</if>
            <if test="maximumMemoryUsage != null">maximum_memory_usage = #{maximumMemoryUsage},</if>
            <if test="cullRequestsWhileMovingMultiplier != null">cull_requests_while_moving_multiplier =
                #{cullRequestsWhileMovingMultiplier},
            </if>
            <if test="dynamicScreenSpaceErrorDensity != null">dynamic_screen_space_error_density =
                #{dynamicScreenSpaceErrorDensity},
            </if>
            <if test="deptId != null">dept_id = #{deptId},</if>
            <if test="userId != null">user_id = #{userId},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
        </trim>
        where tiles_id = #{tilesId}
    </update>
    <delete id="deleteArdTiles3dByTilesId" parameterType="String">
        delete
        from ard_tiles3d
        where tiles_id = #{tilesId}
    </delete>
    <delete id="deleteArdTiles3dByTilesIds" parameterType="String">
        delete from ard_tiles3d where tiles_id in
        <foreach item="tilesId" collection="array" open="(" separator="," close=")">
            #{tilesId}
        </foreach>
    </delete>
    <select id="selectArdTiles3dByDeptId" parameterType="Long" resultMap="ArdTiles3dResult">
        select *
        from ard_tiles3d
        where dept_id = #{deptId}
    </select>
</mapper>
ard-work/src/main/resources/mapper/tiles3d/Tiles3dMapper.xml
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
@@ -18,6 +18,5 @@
    </settings>
    <typeAliases>
        <package name="com.ruoyi.*.*.domain"/> <!--替换成你的项目的实体类的路径(这个配置对于项目来说没有作用,仅仅是写给IDEA上安装的 MyBatis æ’件看的,防止标红)-->
    </typeAliases>
</configuration>
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/SdkOperateAspect.java
@@ -9,6 +9,7 @@
import com.ruoyi.device.camera.domain.CameraCmd;
import com.ruoyi.device.camera.service.IArdCamerasService;
import com.ruoyi.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@@ -18,6 +19,8 @@
import javax.annotation.Resource;
import java.util.Date;
import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
/**
 * SDK控制处理
 *
@@ -25,6 +28,7 @@
 */
@Aspect
@Component
@Slf4j(topic = "hikSdk")
public class SdkOperateAspect {
    @Resource
@@ -41,8 +45,10 @@
    public Object around(ProceedingJoinPoint point) throws Throwable {
        Boolean result = controlScopeFilter(point);
        if (result) {
            log.debug("已获取相机控制权");
            return point.proceed();
        } else {
            log.debug("未获取相机控制权");
            return false;//代替目标方法的返回值
        }
    }
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java
@@ -122,4 +122,6 @@
     * @return ç»“æžœ
     */
    public int deleteDeptById(Long deptId);
}