aijinhui
2023-09-19 065142057ba3983af899991085e37ac1ec502320
Merge remote-tracking branch 'origin/master'
已添加6个文件
已修改11个文件
1070 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarm/digitization3/controller/ArdAlarmDigitization3Controller.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/digitization3/domain/ArdAlarmDigitization3.java 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/digitization3/mapper/ArdAlarmDigitization3Mapper.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/digitization3/service/IArdAlarmDigitization3Service.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/digitization3/service/impl/ArdAlarmDigitization3ServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/global/controller/GlobalAlarmController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/global/domain/GlobalAlarmCondition.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/global/service/IGlobalAlarmService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java 303 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/radar/mapper/ArdAlarmRadarMoveMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmAccessMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmApponekeyMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmDigitization3Mapper.xml 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmWallMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/digitization3/controller/ArdAlarmDigitization3Controller.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.ruoyi.alarm.digitization3.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
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.alarm.digitization3.domain.ArdAlarmDigitization3;
import com.ruoyi.alarm.digitization3.service.IArdAlarmDigitization3Service;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
 * ä¸‰åœºæ•°å­—化报警Controller
 *
 * @author ard
 * @date 2023-09-19
 */
@RestController
@RequestMapping("/alarm/digitization3")
public class ArdAlarmDigitization3Controller extends BaseController
{
    @Autowired
    private IArdAlarmDigitization3Service ardAlarmDigitization3Service;
    /**
     * æŸ¥è¯¢ä¸‰åœºæ•°å­—化报警列表
     */
    @PreAuthorize("@ss.hasPermi('alarm:digitization3:list')")
    @GetMapping("/list")
    public TableDataInfo list(ArdAlarmDigitization3 ardAlarmDigitization3)
    {
        startPage();
        List<ArdAlarmDigitization3> list = ardAlarmDigitization3Service.selectArdAlarmDigitization3List(ardAlarmDigitization3);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºä¸‰åœºæ•°å­—化报警列表
     */
    @PreAuthorize("@ss.hasPermi('alarm:digitization3:export')")
    @Log(title = "三场数字化报警", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ArdAlarmDigitization3 ardAlarmDigitization3)
    {
        List<ArdAlarmDigitization3> list = ardAlarmDigitization3Service.selectArdAlarmDigitization3List(ardAlarmDigitization3);
        ExcelUtil<ArdAlarmDigitization3> util = new ExcelUtil<ArdAlarmDigitization3>(ArdAlarmDigitization3.class);
        util.exportExcel(response, list, "三场数字化报警数据");
    }
    /**
     * èŽ·å–ä¸‰åœºæ•°å­—åŒ–æŠ¥è­¦è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('alarm:digitization3:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") String id)
    {
        return success(ardAlarmDigitization3Service.selectArdAlarmDigitization3ById(id));
    }
    /**
     * æ–°å¢žä¸‰åœºæ•°å­—化报警
     */
    @PreAuthorize("@ss.hasPermi('alarm:digitization3:add')")
    @Log(title = "三场数字化报警", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ArdAlarmDigitization3 ardAlarmDigitization3)
    {
        return toAjax(ardAlarmDigitization3Service.insertArdAlarmDigitization3(ardAlarmDigitization3));
    }
    /**
     * ä¿®æ”¹ä¸‰åœºæ•°å­—化报警
     */
    @PreAuthorize("@ss.hasPermi('alarm:digitization3:edit')")
    @Log(title = "三场数字化报警", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ArdAlarmDigitization3 ardAlarmDigitization3)
    {
        return toAjax(ardAlarmDigitization3Service.updateArdAlarmDigitization3(ardAlarmDigitization3));
    }
    /**
     * åˆ é™¤ä¸‰åœºæ•°å­—化报警
     */
    @PreAuthorize("@ss.hasPermi('alarm:digitization3:remove')")
    @Log(title = "三场数字化报警", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable String[] ids)
    {
        return toAjax(ardAlarmDigitization3Service.deleteArdAlarmDigitization3ByIds(ids));
    }
}
ard-work/src/main/java/com/ruoyi/alarm/digitization3/domain/ArdAlarmDigitization3.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,206 @@
package com.ruoyi.alarm.digitization3.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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_alarm_digitization3
 *
 * @author ard
 * @date 2023-09-19
 */
public class ArdAlarmDigitization3 extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ID */
    private String id;
    /** é¡¹ç›®åç§° */
    @Excel(name = "项目名称")
    private String xmmc;
    /** å¤–é”® */
    @Excel(name = "外键")
    private String fKey;
    /** å­—段名称 */
    @Excel(name = "字段名称")
    private String fName;
    /** äº•号 */
    @Excel(name = "井号")
    private String wellNo;
    /** æŠ¥è­¦æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date alarmTime;
    /** æŠ¥è­¦å†…容 */
    @Excel(name = "报警内容")
    private String alarmType;
    /** ç»åº¦ */
    @Excel(name = "经度")
    private Double longitude;
    /** çº¬åº¦ */
    @Excel(name = "纬度")
    private Double latitude;
    /** é«˜å±‚ */
    @Excel(name = "高层")
    private Double altitude;
    /** æŸ¥çœ‹æ—¶é—´ */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "查看时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date viewTime;
    /**
     * æŠ¥è­¦æ€»æ•°
     */
    private Integer total;
    /**
     * æœªè¯»æŠ¥è­¦æ•°é‡
     */
    private Integer count;
    public Integer getTotal() {
        return total;
    }
    public void setTotal(Integer total) {
        this.total = total;
    }
    public Integer getCount() {
        return count;
    }
    public void setCount(Integer count) {
        this.count = count;
    }
    public void setId(String id)
    {
        this.id = id;
    }
    public String getId()
    {
        return id;
    }
    public void setXmmc(String xmmc)
    {
        this.xmmc = xmmc;
    }
    public String getXmmc()
    {
        return xmmc;
    }
    public void setfKey(String fKey)
    {
        this.fKey = fKey;
    }
    public String getfKey()
    {
        return fKey;
    }
    public void setfName(String fName)
    {
        this.fName = fName;
    }
    public String getfName()
    {
        return fName;
    }
    public void setWellNo(String wellNo)
    {
        this.wellNo = wellNo;
    }
    public String getWellNo()
    {
        return wellNo;
    }
    public void setAlarmTime(Date alarmTime)
    {
        this.alarmTime = alarmTime;
    }
    public Date getAlarmTime()
    {
        return alarmTime;
    }
    public void setAlarmType(String alarmType)
    {
        this.alarmType = alarmType;
    }
    public String getAlarmType()
    {
        return alarmType;
    }
    public void setLongitude(Double longitude)
    {
        this.longitude = longitude;
    }
    public Double getLongitude()
    {
        return longitude;
    }
    public void setLatitude(Double latitude)
    {
        this.latitude = latitude;
    }
    public Double getLatitude()
    {
        return latitude;
    }
    public void setAltitude(Double altitude)
    {
        this.altitude = altitude;
    }
    public Double getAltitude()
    {
        return altitude;
    }
    public void setViewTime(Date viewTime)
    {
        this.viewTime = viewTime;
    }
    public Date getViewTime()
    {
        return viewTime;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("xmmc", getXmmc())
            .append("fKey", getfKey())
            .append("fName", getfName())
            .append("wellNo", getWellNo())
            .append("alarmTime", getAlarmTime())
            .append("alarmType", getAlarmType())
            .append("longitude", getLongitude())
            .append("latitude", getLatitude())
            .append("altitude", getAltitude())
            .append("createTime", getCreateTime())
            .append("viewTime", getViewTime())
            .toString();
    }
}
ard-work/src/main/java/com/ruoyi/alarm/digitization3/mapper/ArdAlarmDigitization3Mapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
package com.ruoyi.alarm.digitization3.mapper;
import java.util.List;
import com.ruoyi.alarm.digitization3.domain.ArdAlarmDigitization3;
import com.ruoyi.alarm.tube.domain.ArdAlarmTube;
import org.apache.ibatis.annotations.Param;
/**
 * ä¸‰åœºæ•°å­—化报警Mapper接口
 *
 * @author ard
 * @date 2023-09-19
 */
public interface ArdAlarmDigitization3Mapper
{
    /**
     * æŸ¥è¯¢ä¸‰åœºæ•°å­—化报警
     *
     * @param id ä¸‰åœºæ•°å­—化报警主键
     * @return ä¸‰åœºæ•°å­—化报警
     */
    public ArdAlarmDigitization3 selectArdAlarmDigitization3ById(String id);
    /**
     * æŸ¥è¯¢ä¸‰åœºæ•°å­—化报警列表
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ä¸‰åœºæ•°å­—化报警集合
     */
    public List<ArdAlarmDigitization3> selectArdAlarmDigitization3List(ArdAlarmDigitization3 ardAlarmDigitization3);
    /**
     * æ–°å¢žä¸‰åœºæ•°å­—化报警
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ç»“æžœ
     */
    public int insertArdAlarmDigitization3(ArdAlarmDigitization3 ardAlarmDigitization3);
    /**
     * ä¿®æ”¹ä¸‰åœºæ•°å­—化报警
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ç»“æžœ
     */
    public int updateArdAlarmDigitization3(ArdAlarmDigitization3 ardAlarmDigitization3);
    /**
     * åˆ é™¤ä¸‰åœºæ•°å­—化报警
     *
     * @param id ä¸‰åœºæ•°å­—化报警主键
     * @return ç»“æžœ
     */
    public int deleteArdAlarmDigitization3ById(String id);
    /**
     * æ‰¹é‡åˆ é™¤ä¸‰åœºæ•°å­—化报警
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteArdAlarmDigitization3ByIds(String[] ids);
    public List<ArdAlarmDigitization3> selectListAllByCommand(@Param("refreshTime")String refreshTime);
    int selectCountByAlarmTime(@Param("refreshTime")String refreshTime);
    public int updateViewTimeByWellNo(@Param("wellNo")String wellNo,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime);
}
ard-work/src/main/java/com/ruoyi/alarm/digitization3/service/IArdAlarmDigitization3Service.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.ruoyi.alarm.digitization3.service;
import java.util.List;
import com.ruoyi.alarm.digitization3.domain.ArdAlarmDigitization3;
/**
 * ä¸‰åœºæ•°å­—化报警Service接口
 *
 * @author ard
 * @date 2023-09-19
 */
public interface IArdAlarmDigitization3Service
{
    /**
     * æŸ¥è¯¢ä¸‰åœºæ•°å­—化报警
     *
     * @param id ä¸‰åœºæ•°å­—化报警主键
     * @return ä¸‰åœºæ•°å­—化报警
     */
    public ArdAlarmDigitization3 selectArdAlarmDigitization3ById(String id);
    /**
     * æŸ¥è¯¢ä¸‰åœºæ•°å­—化报警列表
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ä¸‰åœºæ•°å­—化报警集合
     */
    public List<ArdAlarmDigitization3> selectArdAlarmDigitization3List(ArdAlarmDigitization3 ardAlarmDigitization3);
    /**
     * æ–°å¢žä¸‰åœºæ•°å­—化报警
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ç»“æžœ
     */
    public int insertArdAlarmDigitization3(ArdAlarmDigitization3 ardAlarmDigitization3);
    /**
     * ä¿®æ”¹ä¸‰åœºæ•°å­—化报警
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ç»“æžœ
     */
    public int updateArdAlarmDigitization3(ArdAlarmDigitization3 ardAlarmDigitization3);
    /**
     * æ‰¹é‡åˆ é™¤ä¸‰åœºæ•°å­—化报警
     *
     * @param ids éœ€è¦åˆ é™¤çš„三场数字化报警主键集合
     * @return ç»“æžœ
     */
    public int deleteArdAlarmDigitization3ByIds(String[] ids);
    /**
     * åˆ é™¤ä¸‰åœºæ•°å­—化报警信息
     *
     * @param id ä¸‰åœºæ•°å­—化报警主键
     * @return ç»“æžœ
     */
    public int deleteArdAlarmDigitization3ById(String id);
}
ard-work/src/main/java/com/ruoyi/alarm/digitization3/service/impl/ArdAlarmDigitization3ServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
package com.ruoyi.alarm.digitization3.service.impl;
import java.util.List;
        import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.alarm.digitization3.mapper.ArdAlarmDigitization3Mapper;
import com.ruoyi.alarm.digitization3.domain.ArdAlarmDigitization3;
import com.ruoyi.alarm.digitization3.service.IArdAlarmDigitization3Service;
/**
 * ä¸‰åœºæ•°å­—化报警Service业务层处理
 *
 * @author ard
 * @date 2023-09-19
 */
@Service
public class ArdAlarmDigitization3ServiceImpl implements IArdAlarmDigitization3Service {
    @Autowired
    private ArdAlarmDigitization3Mapper ardAlarmDigitization3Mapper;
    /**
     * æŸ¥è¯¢ä¸‰åœºæ•°å­—化报警
     *
     * @param id ä¸‰åœºæ•°å­—化报警主键
     * @return ä¸‰åœºæ•°å­—化报警
     */
    @Override
    public ArdAlarmDigitization3 selectArdAlarmDigitization3ById(String id) {
        return ardAlarmDigitization3Mapper.selectArdAlarmDigitization3ById(id);
    }
    /**
     * æŸ¥è¯¢ä¸‰åœºæ•°å­—化报警列表
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ä¸‰åœºæ•°å­—化报警
     */
    @Override
    public List<ArdAlarmDigitization3> selectArdAlarmDigitization3List(ArdAlarmDigitization3 ardAlarmDigitization3) {
        return ardAlarmDigitization3Mapper.selectArdAlarmDigitization3List(ardAlarmDigitization3);
    }
    /**
     * æ–°å¢žä¸‰åœºæ•°å­—化报警
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ç»“æžœ
     */
    @Override
    public int insertArdAlarmDigitization3(ArdAlarmDigitization3 ardAlarmDigitization3) {
                ardAlarmDigitization3.setId(IdUtils.simpleUUID());
                ardAlarmDigitization3.setCreateTime(DateUtils.getNowDate());
            return ardAlarmDigitization3Mapper.insertArdAlarmDigitization3(ardAlarmDigitization3);
    }
    /**
     * ä¿®æ”¹ä¸‰åœºæ•°å­—化报警
     *
     * @param ardAlarmDigitization3 ä¸‰åœºæ•°å­—化报警
     * @return ç»“æžœ
     */
    @Override
    public int updateArdAlarmDigitization3(ArdAlarmDigitization3 ardAlarmDigitization3) {
        return ardAlarmDigitization3Mapper.updateArdAlarmDigitization3(ardAlarmDigitization3);
    }
    /**
     * æ‰¹é‡åˆ é™¤ä¸‰åœºæ•°å­—化报警
     *
     * @param ids éœ€è¦åˆ é™¤çš„三场数字化报警主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdAlarmDigitization3ByIds(String[] ids) {
        return ardAlarmDigitization3Mapper.deleteArdAlarmDigitization3ByIds(ids);
    }
    /**
     * åˆ é™¤ä¸‰åœºæ•°å­—化报警信息
     *
     * @param id ä¸‰åœºæ•°å­—化报警主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteArdAlarmDigitization3ById(String id) {
        return ardAlarmDigitization3Mapper.deleteArdAlarmDigitization3ById(id);
    }
}
ard-work/src/main/java/com/ruoyi/alarm/global/controller/GlobalAlarmController.java
@@ -87,4 +87,12 @@
        Map<String, PriorityBlockingQueue<GuideTask>> cameraQueueMap = GuidePriorityQueue.cameraQueueMap;
        return AjaxResult.success(cameraQueueMap);
    }
    @PostMapping("/ThermalMapList")
    @ApiOperation(value = "热力图接口",notes = "按报警刷新时间按报警类别聚合查询")
    @ApiOperationSupport(includeParameters = {"command","refreshTime"},order = 1)
    public AjaxResult selectThermalMap(@RequestBody GlobalAlarmCondition condition) {
        List<GlobalAlarmData> result = globalAlarmService.selectThermalMap(condition);
        return AjaxResult.success(result);
    }
}
ard-work/src/main/java/com/ruoyi/alarm/global/domain/GlobalAlarmCondition.java
@@ -24,4 +24,6 @@
    String id;
    Date beginTime;
    Date endTime;
    String refreshTime;
}
ard-work/src/main/java/com/ruoyi/alarm/global/service/IGlobalAlarmService.java
@@ -20,4 +20,5 @@
    public void receiveAlarm(String topic,String message);
    public Map<String,Object> selectAlarmLogsCount();
    Object selectAlarmList(Integer command, String beginTime, String endTime,Integer pageNum,Integer pageSize);
    public List<GlobalAlarmData> selectThermalMap(GlobalAlarmCondition condition);
}
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
@@ -7,6 +7,8 @@
import com.ruoyi.alarm.apponekey.mapper.ArdAlarmApponekeyMapper;
import com.ruoyi.alarm.camera.domain.ArdAlarmCamera;
import com.ruoyi.alarm.camera.mapper.ArdAlarmCameraMapper;
import com.ruoyi.alarm.digitization3.domain.ArdAlarmDigitization3;
import com.ruoyi.alarm.digitization3.mapper.ArdAlarmDigitization3Mapper;
import com.ruoyi.alarm.external.domain.ArdAlarmExternal;
import com.ruoyi.alarm.external.mapper.ArdAlarmExternalMapper;
import com.ruoyi.alarm.global.domain.GlobalAlarmCondition;
@@ -16,7 +18,6 @@
import com.ruoyi.alarm.global.service.IGlobalAlarmService;
import com.ruoyi.alarm.radar.domain.*;
import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarFireMapper;
import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarMapper;
import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarMoveMapper;
import com.ruoyi.alarm.radar.mapper.ArdAlarmRadarPumpMapper;
import com.ruoyi.alarm.steal.domain.ArdAlarmStealelec;
@@ -70,6 +71,8 @@
public class GlobalAlarmServiceImpl implements IGlobalAlarmService {
    //region ä¾èµ–注入
    @Resource
    private ArdAlarmDigitization3Mapper ardAlarmDigitization3Mapper;
    @Resource
    private ArdAlarmWallMapper ardAlarmWallMapper;
    @Resource
    private ArdAlarmApponekeyMapper ardAlarmApponekeyMapper;
@@ -114,6 +117,7 @@
    private Map<String, Integer> unGuideCountMapMove = new HashMap<>();
    private Map<String, Integer> unGuideCountMapFire = new HashMap<>();
    private Map<String, Integer> unGuideCountMapPump = new HashMap<>();
    /**
     * @描述 æŸ¥è¯¢æ‰€æœ‰æŠ¥è­¦çš„当前数量
     * @参数 []
@@ -147,6 +151,8 @@
        countMap.put("1010", count1010);
        int count1014 = ardAlarmTubeMapper.selectCountByAlarmTime(refreshTime);
        countMap.put("1014", count1014);
        int count1012 = ardAlarmDigitization3Mapper.selectCountByAlarmTime(refreshTime);
        countMap.put("1012", count1012);
        map.put("20000", countMap);
        return map;
    }
@@ -193,6 +199,197 @@
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1003:
                List<ArdAlarmRadarMove> ardAlarmRadarMoves = ardAlarmRadarMoveMapper.selectListAllByCommand(refreshTime);
                return ardAlarmRadarMoves.stream()
                        .map(ardAlarmRadarMove -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmRadarMove.getId())
                                    .setName(ardAlarmRadarMove.getName())
                                    .setAlarmTime(ardAlarmRadarMove.getAlarmTime())
                                    .setLongitude(ardAlarmRadarMove.getLongitude())
                                    .setLatitude(ardAlarmRadarMove.getLatitude())
                                    .setCount(ardAlarmRadarMove.getCount())
                                    .setTotal(ardAlarmRadarMove.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1004:
                List<ArdAlarmRadarFire> ardAlarmRadarFires = ardAlarmRadarFireMapper.selectListAllByCommand(refreshTime);
                return ardAlarmRadarFires.stream()
                        .map(ardAlarmRadarFire -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmRadarFire.getId())
                                    .setName(ardAlarmRadarFire.getName())
                                    .setAlarmTime(ardAlarmRadarFire.getAlarmTime())
                                    .setLongitude(ardAlarmRadarFire.getLongitude())
                                    .setLatitude(ardAlarmRadarFire.getLatitude())
                                    .setCount(ardAlarmRadarFire.getCount())
                                    .setTotal(ardAlarmRadarFire.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1005:
                List<ArdAlarmExternal> ardAlarmExternals = ardAlarmExternalMapper.selectListAllByCommand(refreshTime, "防区报警");
                return ardAlarmExternals.stream()
                        .map(ardAlarmExternal -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmExternal.getId())
                                    .setName(ardAlarmExternal.getAlarmName())
                                    .setAlarmTime(ardAlarmExternal.getAlarmTime())
                                    .setLongitude(ardAlarmExternal.getLongitude())
                                    .setLatitude(ardAlarmExternal.getLatitude())
                                    .setCount(ardAlarmExternal.getCount())
                                    .setTotal(ardAlarmExternal.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1006:
                List<ArdAlarmAccess> ardAlarmAccesses = ardAlarmAccessMapper.selectListAllByCommand(refreshTime);
                return ardAlarmAccesses.stream()
                        .map(ardAlarmAccess -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmAccess.getId())
                                    .setName(ardAlarmAccess.getAcsName())
                                    .setAlarmTime(ardAlarmAccess.getAlarmTime())
                                    .setLongitude(ardAlarmAccess.getLongitude())
                                    .setLatitude(ardAlarmAccess.getLatitude())
                                    .setCount(ardAlarmAccess.getCount())
                                    .setTotal(ardAlarmAccess.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1007:
                List<ArdAlarmRadarPump> ardAlarmRadarPumps = ardAlarmRadarPumpMapper.selectListAllByCommand(refreshTime);
                return ardAlarmRadarPumps.stream()
                        .map(ardAlarmRadarPump -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmRadarPump.getId())
                                    .setName(ardAlarmRadarPump.getName())
                                    .setAlarmTime(ardAlarmRadarPump.getAlarmTime())
                                    .setLongitude(ardAlarmRadarPump.getLongitude())
                                    .setLatitude(ardAlarmRadarPump.getLatitude())
                                    .setCount(ardAlarmRadarPump.getCount())
                                    .setTotal(ardAlarmRadarPump.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1009:
                List<ArdAlarmApponekey> ardAlarmApponekeys = ardAlarmApponekeyMapper.selectListAllByCommand(refreshTime);
                return ardAlarmApponekeys.stream()
                        .map(ardAlarmApponekey -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmApponekey.getId())
                                    .setName(ardAlarmApponekey.getName())
                                    .setAlarmTime(ardAlarmApponekey.getCreateTime())
                                    .setLongitude(ardAlarmApponekey.getLongitude())
                                    .setLatitude(ardAlarmApponekey.getLatitude())
                                    .setCount(ardAlarmApponekey.getCount())
                                    .setTotal(ardAlarmApponekey.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1010:
                List<ArdAlarmWall> ardAlarmWalls = ardAlarmWallMapper.selectListAllByCommand(refreshTime);
                return ardAlarmWalls.stream()
                        .map(ardAlarmWall -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmWall.getId())
                                    .setName(ardAlarmWall.getWallName())
                                    .setAlarmTime(ardAlarmWall.getAlarmTime())
                                    .setLongitude(ardAlarmWall.getLongitude())
                                    .setLatitude(ardAlarmWall.getLatitude())
                                    .setCount(ardAlarmWall.getCount())
                                    .setTotal(ardAlarmWall.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1012:
                List<ArdAlarmDigitization3> ardAlarmDigitization3s = ardAlarmDigitization3Mapper.selectListAllByCommand(refreshTime);
                return ardAlarmDigitization3s.stream()
                        .map(ardAlarmDigitization3 -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmDigitization3.getId())
                                    .setName(ardAlarmDigitization3.getWellNo())
                                    .setAlarmType(ardAlarmDigitization3.getAlarmType())
                                    .setAlarmTime(ardAlarmDigitization3.getAlarmTime())
                                    .setLongitude(ardAlarmDigitization3.getLongitude())
                                    .setLatitude(ardAlarmDigitization3.getLatitude())
                                    .setAltitude(ardAlarmDigitization3.getAltitude())
                                    .setCount(ardAlarmDigitization3.getCount())
                                    .setTotal(ardAlarmDigitization3.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1014:
                List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime);
                return ardAlarmTubes.stream()
                        .map(ardAlarmTube -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmTube.getId())
                                    .setName(ardAlarmTube.getTubeName())
                                    .setAlarmTime(ardAlarmTube.getAlarmTime())
                                    .setLongitude(ardAlarmTube.getLongitude())
                                    .setLatitude(ardAlarmTube.getLatitude())
                                    .setAltitude(ardAlarmTube.getAltitude())
                                    .setCount(ardAlarmTube.getCount())
                                    .setTotal(ardAlarmTube.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            default:
                return null;
        }
    }
    /**
     * èŽ·å–çƒ­åŠ›å›¾æ•°æ®
     * åˆ˜è‹ä¹‰
     * 2023/9/16 8:38:54
     */
    @Override
    public List<GlobalAlarmData> selectThermalMap(GlobalAlarmCondition condition) {
        String refreshTime = condition.getRefreshTime();
        switch (condition.getCommand()) {
            case 1001:
                List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectListAllByCommand(refreshTime);
                return ardAlarmStealelecs.stream()
                        .map(ardAlarmStealelec -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmStealelec.getId())
                                    .setName(ardAlarmStealelec.getDescribe())
                                    .setAlarmTime(ardAlarmStealelec.getStartTime())
                                    .setLongitude(ardAlarmStealelec.getLongitude())
                                    .setLatitude(ardAlarmStealelec.getLatitude())
                                    .setAltitude(ardAlarmStealelec.getAltitude())
                                    .setCount(ardAlarmStealelec.getCount())
                                    .setTotal(ardAlarmStealelec.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1002:
                List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime);
                return ardAlarmCameras.stream()
                        .map(ardAlarmCamera -> {
                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                                    .setId(ardAlarmCamera.getId())
                                    .setName(ardAlarmCamera.getCameraName())
                                    .setAlarmTime(ardAlarmCamera.getAlarmTime())
                                    .setLongitude(ardAlarmCamera.getLongitude())
                                    .setLatitude(ardAlarmCamera.getLatitude())
                                    .setCount(ardAlarmCamera.getCount())
                                    .setTotal(ardAlarmCamera.getTotal());
                            return globalAlarmData;
                        }).collect(Collectors.toList());
            case 1003:
                //从缓存获取数据
                //String key = "radar_alarm:" + DateUtils.getDate();
                //List<ArdAlarmRadarMove> ardAlarmRadarMoves = redisCache.getCacheList(key);
                //Map<String, List<ArdAlarmRadarMove>> groupedData = ardAlarmRadarMoves.stream()
                //        .collect(Collectors.groupingBy(ArdAlarmRadarMove::getName));
                //List<GlobalAlarmData> globalAlarmDataList = new ArrayList<>();
                //for (String name : groupedData.keySet()) {
                //    List<ArdAlarmRadarMove> ardAlarmRadarMove = groupedData.get(name);
                //    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                //            .setId(ardAlarmRadarMove.get(0).getId())
                //            .setName(name)
                //            .setAlarmTime(ardAlarmRadarMove.get(0).getAlarmTime())
                //            .setLongitude(ardAlarmRadarMove.get(0).getLongitude())
                //            .setLatitude(ardAlarmRadarMove.get(0).getLatitude())
                //            .setTotal(ardAlarmRadarMove.size());
                //    globalAlarmDataList.add(globalAlarmData);
                //}
                //return globalAlarmDataList;
            //从数据库获取
                List<ArdAlarmRadarMove> ardAlarmRadarMoves = ardAlarmRadarMoveMapper.selectListAllByCommand(refreshTime);
                return ardAlarmRadarMoves.stream()
                        .map(ardAlarmRadarMove -> {
@@ -477,6 +674,24 @@
            GlobalAlarmDataList.addAll(alarmData1010);
        }
        List<ArdAlarmDigitization3> ardAlarmDigitization3s = ardAlarmDigitization3Mapper.selectListAllByCommand(refreshTime);
        List<GlobalAlarmData> alarmData1012 = ardAlarmDigitization3s.stream()
                .map(ardAlarmDigitization3 -> {
                    GlobalAlarmData globalAlarmData = new GlobalAlarmData()
                            .setId(ardAlarmDigitization3.getId())
                            .setName(ardAlarmDigitization3.getWellNo())
                            .setAlarmTime(ardAlarmDigitization3.getAlarmTime())
                            .setLongitude(ardAlarmDigitization3.getLongitude())
                            .setLatitude(ardAlarmDigitization3.getLatitude())
                            .setAltitude(ardAlarmDigitization3.getAltitude())
                            .setCount(ardAlarmDigitization3.getCount())
                            .setTotal(ardAlarmDigitization3.getTotal())
                            .setAlarmType("1012");
                    return globalAlarmData;
                }).collect(Collectors.toList());
        if (alarmData1012.size() > 0) {
            GlobalAlarmDataList.addAll(alarmData1012);
        }
        List<ArdAlarmTube> ardAlarmTubes = ardAlarmTubeMapper.selectListAllByCommand(refreshTime);
        List<GlobalAlarmData> alarmData1014= ardAlarmTubes.stream()
                .map(ardAlarmTube -> {
@@ -571,6 +786,12 @@
                aaw.setPageNum(pageNum);
                aaw.setPageSize(pageSize);
                return ardAlarmWallMapper.selectArdAlarmWallList(aaw);
            case 1012:
                ArdAlarmDigitization3 aad3 = new ArdAlarmDigitization3();
                aad3.setParams(params);
                aad3.setPageNum(pageNum);
                aad3.setPageSize(pageSize);
                return ardAlarmDigitization3Mapper.selectArdAlarmDigitization3List(aad3);
            case 1014:
                ArdAlarmTube aat = new ArdAlarmTube();
                aat.setParams(params);
@@ -666,6 +887,14 @@
                    String alarmTime = fmtms.format(ardAlarmWall.getAlarmTime());
                    ardAlarmWallMapper.updateViewTimeByUserId(userId, alarmTime, DateUtils.getTime());
                    return ardAlarmWall;
                }
            case 1012:
                ArdAlarmDigitization3 ardAlarmDigitization3 = ardAlarmDigitization3Mapper.selectArdAlarmDigitization3ById(condition.getId());
                if (StringUtils.isNotNull(ardAlarmDigitization3)) {
                    String wellNo = ardAlarmDigitization3.getWellNo();
                    String alarmTime = fmtms.format(ardAlarmDigitization3.getAlarmTime());
                    ardAlarmDigitization3Mapper.updateViewTimeByWellNo(wellNo, alarmTime, DateUtils.getTime());
                    return ardAlarmDigitization3;
                }
            case 1014:
                ArdAlarmTube ardAlarmTube = ardAlarmTubeMapper.selectArdAlarmTubeById(condition.getId());
@@ -783,7 +1012,14 @@
                                //入库
                                ardAlarmRadarMoveMapper.insertArdAlarmRadarMove(ardAlarmRadarMove);
                                ardAlarmRadarMoves.add(ardAlarmRadarMove);
                                //入缓存
                                //String key = "radar_alarm:" + DateUtils.getDate();
                                //if (redisCache.hasKey(key)) {
                                //    redisCache.setCacheList(key, ardAlarmRadarMove, -1, TimeUnit.HOURS);
                                //} else {
                                //    Integer expiryTimeInSeconds = DateUtils.getDayRemainingTime(ardAlarmRadarMove.getCreateTime());
                                //    redisCache.setCacheList(key, ardAlarmRadarMove, expiryTimeInSeconds, TimeUnit.SECONDS);
                                //}
                                break;
                            case "热源检测":
                                ArdAlarmRadarFire ardAlarmRadarFire=new ArdAlarmRadarFire();
@@ -823,6 +1059,7 @@
                    radarMoveGuide(ardAlarmRadarMoves,radarAlarmData);
                    radarFireGuide(ardAlarmRadarFires,radarAlarmData);
                    radarPumpGuide(ardAlarmRadarPumps,radarAlarmData);
                    //endregion
                    break;
                case "external":
                    //region å¤„理外联报警
@@ -892,6 +1129,23 @@
                    }
                    //endregion
                    break;
                case "digitization3":
                    //region ä¸‰åŽ‚æ•°å­—åŒ–æŠ¥è­¦
                    ArdAlarmDigitization3 ardAlarmDigitization3 = JSONObject.parseObject(message, ArdAlarmDigitization3.class);
                    //获取经纬度
                    ArdAlarmpointsWell Well = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(ardAlarmDigitization3.getWellNo());
                    if(Well!=null) {
                        ardAlarmDigitization3.setLongitude(Well.getLongitude());
                        ardAlarmDigitization3.setLatitude(Well.getLatitude());
                        ardAlarmDigitization3.setAltitude(Well.getAltitude());
                    }
                    ardAlarmDigitization3.setCreateTime(new Date());
                    int aad = ardAlarmDigitization3Mapper.insertArdAlarmDigitization3(ardAlarmDigitization3);
                    if (aad > 0) {
                        log.debug("digitization3入库成功:" + ardAlarmDigitization3);
                    }
                    //endregion
                    break;
            }
        } catch (Exception ex) {
            log.error("接收报警异常:" + ex.getMessage());
@@ -920,12 +1174,19 @@
            guideTask.setCameraId(cameraId);
            //报警类型
            String aType="";
            switch (alarmType)
            {
                case "运动目标检测": aType="sys_radar_move";break;
                case "热源检测": aType="sys_radar_fire";break;
                case "雷达抽油机停机": aType="sys_radar_pump";break;
                default: aType=alarmType;break;
            switch (alarmType) {
                case "运动目标检测":
                    aType = "sys_radar_move";
                    break;
                case "热源检测":
                    aType = "sys_radar_fire";
                    break;
                case "雷达抽油机停机":
                    aType = "sys_radar_pump";
                    break;
                default:
                    aType = alarmType;
                    break;
            }
            guideTask.setAlarmType(aType);
            //通道(通过日夜时间研判)
@@ -1016,9 +1277,7 @@
    }
    /**
     * é›·è¾¾å¼•导入队
     */
    //雷达引导入队(获取相机)
    private void radarGuideToQueue(String alarmId,String radarId, String name, String alarmType, Date createTime, double[] coordinate) {
        int index = name.indexOf("(");
        String alarmpointName = name.substring(0, index);
@@ -1028,9 +1287,7 @@
            log.debug("获取到雷达塔上的光电:" + cameraIdWithTower);
            //如果雷达塔上有光电
            messagesEnqueued(cameraIdWithTower, alarmId, alarmType, createTime, 1, 1, coordinate);
        }
        else
        {
        } else {
            log.debug("未获取到雷达塔上的光电");
        }
        //获取报警点关联的大光电
@@ -1043,16 +1300,12 @@
            log.info("获取到报警点关联的光电:" + cameraId);
            //如果报警点关联了光电
            messagesEnqueued(cameraId, alarmId, alarmType, createTime, 1, 2, coordinate);
        }
        else
        {
        } else {
            log.debug("未获取到报警点关联的光电");
        }
    }
    private void radarMoveGuide(List<ArdAlarmRadarMove> ardAlarmRadarMoves,RadarAlarmData radarAlarmData)
    {
    //雷达移动引导
    private void radarMoveGuide(List<ArdAlarmRadarMove> ardAlarmRadarMoves, RadarAlarmData radarAlarmData) {
        //按兴趣点去重,然后按引导逻辑进行引导入队
        ardAlarmRadarMoves = ardAlarmRadarMoves.stream()
                .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadarMove::getName))), ArrayList::new));
@@ -1104,8 +1357,8 @@
        }
        //endregion
    }
    private void radarFireGuide(List<ArdAlarmRadarFire> ardAlarmRadarFires,RadarAlarmData radarAlarmData)
    {
    //雷达防火引导
    private void radarFireGuide(List<ArdAlarmRadarFire> ardAlarmRadarFires, RadarAlarmData radarAlarmData) {
        //按兴趣点去重,然后按引导逻辑进行引导入队
        ardAlarmRadarFires = ardAlarmRadarFires.stream()
                .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadarFire::getName))), ArrayList::new));
@@ -1156,8 +1409,8 @@
        }
        //endregion
    }
    private void radarPumpGuide(List<ArdAlarmRadarPump> ardAlarmRadarPumps,RadarAlarmData radarAlarmData)
    {
    //雷达抽油机停机引导
    private void radarPumpGuide(List<ArdAlarmRadarPump> ardAlarmRadarPumps, RadarAlarmData radarAlarmData) {
        //按兴趣点去重,然后按引导逻辑进行引导入队
        ardAlarmRadarPumps = ardAlarmRadarPumps.stream()
                .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new java.util.TreeSet<>(java.util.Comparator.comparing(ArdAlarmRadarPump::getName))), ArrayList::new));
ard-work/src/main/java/com/ruoyi/alarm/radar/mapper/ArdAlarmRadarMoveMapper.java
@@ -65,8 +65,5 @@
    int selectCountByAlarmTime(@Param("refreshTime") String refreshTime);
    List<ArdAlarmRadarMove> selectListAllByCommand(@Param("refreshTime") String refreshTime);
    public int updateViewTimeByCondition(@Param("name")String name,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime);
    /**
     * é€šè¿‡é›·è¾¾id找到关联塔上的大光电id
     */
    String getCameraByRadar(String radarId);
}
ard-work/src/main/java/com/ruoyi/sy/controller/ArdSyCarController.java
@@ -87,6 +87,10 @@
        String ip = syURL.split(":")[1].replace("//", "");
        List<ArdSyUser> ardSyUserList = iArdSyUserService.selectSyUser();
        //车辆实时位置线程
        if(ardSyUserList.size()==0)
        {
            return;
        }
        PushClientImplPosition pushClientImplPosition = new PushClientImplPosition(ip,ardSyUserList.get(0).getUserId(),ardSyUserList.get(0).getPassword());
        Thread pushClientImplPositionThread = new Thread(pushClientImplPosition);
        pushClientImplPositionThread.start();
ard-work/src/main/resources/mapper/alarm/ArdAlarmAccessMapper.xml
@@ -32,6 +32,12 @@
    <select id="selectArdAlarmAccessList" parameterType="ArdAlarmAccess" resultMap="ArdAlarmAccessResult">
        <include refid="selectArdAlarmAccessVo"/>
        <where>  
            <if test="params.beginTime != null and params.beginTime != ''"><!-- å¼€å§‹æ—¶é—´æ£€ç´¢ -->
                AND alarm_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- ç»“束时间检索 -->
                AND alarm_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
        </where>
        order by alarm_time desc
    </select>
ard-work/src/main/resources/mapper/alarm/ArdAlarmApponekeyMapper.xml
@@ -23,6 +23,12 @@
    <select id="selectArdAlarmApponekeyList" parameterType="ArdAlarmApponekey" resultMap="ArdAlarmApponekeyResult">
        <include refid="selectArdAlarmApponekeyVo"/>
        <where>  
            <if test="params.beginTime != null and params.beginTime != ''"><!-- å¼€å§‹æ—¶é—´æ£€ç´¢ -->
                AND alarm_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- ç»“束时间检索 -->
                AND alarm_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
        </where>
        order by create_time desc
    </select>
ard-work/src/main/resources/mapper/alarm/ArdAlarmDigitization3Mapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,153 @@
<?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.alarm.digitization3.mapper.ArdAlarmDigitization3Mapper">
    <resultMap type="ArdAlarmDigitization3" id="ArdAlarmDigitization3Result">
        <result property="id"    column="id"    />
        <result property="xmmc"    column="xmmc"    />
        <result property="fKey"    column="f_key"    />
        <result property="fName"    column="f_name"    />
        <result property="wellNo"    column="well_no"    />
        <result property="alarmTime"    column="alarm_time"    />
        <result property="alarmType"    column="alarm_type"    />
        <result property="longitude"    column="longitude"    />
        <result property="latitude"    column="latitude"    />
        <result property="altitude"    column="altitude"    />
        <result property="createTime"    column="create_time"    />
        <result property="viewTime"    column="view_time"    />
    </resultMap>
    <sql id="selectArdAlarmDigitization3Vo">
        select id, xmmc, f_key, f_name, well_no, alarm_time, alarm_type, longitude, latitude, altitude, create_time, view_time from ard_alarm_digitization3
    </sql>
    <select id="selectArdAlarmDigitization3List" parameterType="ArdAlarmDigitization3" resultMap="ArdAlarmDigitization3Result">
        <include refid="selectArdAlarmDigitization3Vo"/>
        <where>
            <if test="xmmc != null  and xmmc != ''"> and xmmc = #{xmmc}</if>
            <if test="fKey != null  and fKey != ''"> and f_key = #{fKey}</if>
            <if test="fName != null  and fName != ''"> and f_name like '%'||#{fName}||'%'</if>
            <if test="wellNo != null  and wellNo != ''"> and well_no = #{wellNo}</if>
<!--  <if test="alarmTime != null "> and alarm_time = #{alarmTime}</if>-->
            <if test="params.beginTime != null and params.beginTime != ''"><!-- å¼€å§‹æ—¶é—´æ£€ç´¢ -->
                AND alarm_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- ç»“束时间检索 -->
                AND alarm_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <if test="alarmType != null  and alarmType != ''"> and alarm_type = #{alarmType}</if>
            <if test="longitude != null "> and longitude = #{longitude}</if>
            <if test="latitude != null "> and latitude = #{latitude}</if>
            <if test="altitude != null "> and altitude = #{altitude}</if>
            <if test="viewTime != null "> and view_time = #{viewTime}</if>
        </where>
    </select>
    <select id="selectArdAlarmDigitization3ById" parameterType="String" resultMap="ArdAlarmDigitization3Result">
        <include refid="selectArdAlarmDigitization3Vo"/>
        where id = #{id}
    </select>
    <insert id="insertArdAlarmDigitization3" parameterType="ArdAlarmDigitization3">
        insert into ard_alarm_digitization3
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="xmmc != null">xmmc,</if>
            <if test="fKey != null">f_key,</if>
            <if test="fName != null">f_name,</if>
            <if test="wellNo != null">well_no,</if>
            <if test="alarmTime != null">alarm_time,</if>
            <if test="alarmType != null">alarm_type,</if>
            <if test="longitude != null">longitude,</if>
            <if test="latitude != null">latitude,</if>
            <if test="altitude != null">altitude,</if>
            <if test="createTime != null">create_time,</if>
            <if test="viewTime != null">view_time,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="xmmc != null">#{xmmc},</if>
            <if test="fKey != null">#{fKey},</if>
            <if test="fName != null">#{fName},</if>
            <if test="wellNo != null">#{wellNo},</if>
            <if test="alarmTime != null">#{alarmTime},</if>
            <if test="alarmType != null">#{alarmType},</if>
            <if test="longitude != null">#{longitude},</if>
            <if test="latitude != null">#{latitude},</if>
            <if test="altitude != null">#{altitude},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="viewTime != null">#{viewTime},</if>
         </trim>
        ON conflict(id)  DO NOTHING;
    </insert>
    <update id="updateArdAlarmDigitization3" parameterType="ArdAlarmDigitization3">
        update ard_alarm_digitization3
        <trim prefix="SET" suffixOverrides=",">
            <if test="xmmc != null">xmmc = #{xmmc},</if>
            <if test="fKey != null">f_key = #{fKey},</if>
            <if test="fName != null">f_name = #{fName},</if>
            <if test="wellNo != null">well_no = #{wellNo},</if>
            <if test="alarmTime != null">alarm_time = #{alarmTime},</if>
            <if test="alarmType != null">alarm_type = #{alarmType},</if>
            <if test="longitude != null">longitude = #{longitude},</if>
            <if test="latitude != null">latitude = #{latitude},</if>
            <if test="altitude != null">altitude = #{altitude},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="viewTime != null">view_time = #{viewTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteArdAlarmDigitization3ById" parameterType="String">
        delete from ard_alarm_digitization3 where id = #{id}
    </delete>
    <delete id="deleteArdAlarmDigitization3ByIds" parameterType="String">
        delete from ard_alarm_digitization3 where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <select id="selectListAllByCommand" resultMap="ArdAlarmDigitization3Result">
        SELECT T
                   .*
        FROM
            (
                SELECT
                    aad.ID,
                    aad.well_no,
                    aad.alarm_type,
                    aad.alarm_time,
                    aad.longitude,
                    aad.latitude,
                    aad.altitude,
                    ROW_NUMBER () OVER ( PARTITION BY aad.well_no ORDER BY aad.alarm_time DESC ) AS rn,
                        COUNT ( CASE WHEN aad.view_time IS NULL THEN 1 END ) OVER ( PARTITION BY aad.well_no ) AS COUNT,
        COUNT ( aad.alarm_time ) OVER ( PARTITION BY aad.well_no ) AS total
                FROM
                    ard_alarm_digitization3 aad
                WHERE
                    aad.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
                ORDER BY
                    aad.alarm_time DESC
            ) T
        WHERE
            T.rn = 1
    </select>
    <select id="selectCountByAlarmTime" resultType="Integer">
        SELECT COUNT(DISTINCT aat.id)
        FROM ard_alarm_digitization3 aat
        WHERE aat.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE
          and aat.view_time is null
    </select>
    <update id="updateViewTimeByWellNo" parameterType="String">
        update ard_alarm_digitization3
        set view_time=#{viewTime}
        where well_no = #{wellNo}
          and alarm_time &lt;= #{alarmTime}
          and view_time is null
    </update>
</mapper>
ard-work/src/main/resources/mapper/alarm/ArdAlarmWallMapper.xml
@@ -44,10 +44,16 @@
            <if test="wallName != null  and wallName != ''">and wall_name = #{wallName}</if>
            <if test="userId != null  and userId != ''">and user_id = #{userId}</if>
            <if test="alarmType != null  and alarmType != ''">and alarm_type = #{alarmType}</if>
            <if test="alarmTime != null ">and alarm_time = #{alarmTime}</if>
<!--            <if test="alarmTime != null ">and alarm_time = #{alarmTime}</if>-->
            <if test="longitude != null ">and longitude = #{longitude}</if>
            <if test="latitude != null ">and latitude = #{latitude}</if>
            <if test="altitude != null ">and altitude = #{altitude}</if>
            <if test="params.beginTime != null and params.beginTime != ''"><!-- å¼€å§‹æ—¶é—´æ£€ç´¢ -->
                AND alarm_time &gt;= to_timestamp(#{params.beginTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
            <if test="params.endTime != null and params.endTime != ''"><!-- ç»“束时间检索 -->
                AND alarm_time &lt;= to_timestamp(#{params.endTime},'yyyy-MM-DD HH24:MI:ss')
            </if>
        </where>
        order by alarm_time desc
    </select>
ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
@@ -138,6 +138,15 @@
        return redisTemplate.opsForList().range(key, 0, -1);
    }
    public <T> void setCacheList(String key, T data, final Integer timeout, final TimeUnit timeUnit) {
        // å°†æ•°æ®æ’å…¥list
        redisTemplate.opsForList().leftPush(key, data);
        // è®¾ç½®è¿‡æœŸæ—¶é—´
        if (timeout > 0) {
            redisTemplate.expire(key,timeout, timeUnit);
        }
    }
    /**
     * ç¼“å­˜Set
     *
@@ -153,7 +162,23 @@
        }
        return setOperation;
    }
    /**
     * ç¼“å­˜Set
     *
     * @param key     ç¼“存键值
     * @param data    ç¼“存的值
     * @param timeout  æ—¶é—´
     * @param timeUnit æ—¶é—´é¢—粒度
     * @return ç¼“存数据的对象
     */
    public <T> void setCacheSet(String key, T data, final Integer timeout, final TimeUnit timeUnit) {
        BoundSetOperations<String, String> setOperations = redisTemplate.boundSetOps(key);
        setOperations.add(data.toString());
        // è®¾ç½®è¿‡æœŸæ—¶é—´
        if (timeout > 0) {
            setOperations.expire(timeout, timeUnit);
        }
    }
    /**
     * èŽ·å¾—ç¼“å­˜çš„set
     *
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
@@ -8,6 +8,7 @@
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;
@@ -207,4 +208,17 @@
        long sec = diff/ ns;
        return sec;
    }
    /**
     * èŽ·å–ä¸€å¤©ä¸­å‰©ä½™çš„æ—¶é—´ï¼ˆç§’æ•°ï¼‰
     */
    public static Integer getDayRemainingTime(Date currentDate) {
        LocalDateTime midnight = LocalDateTime.ofInstant(currentDate.toInstant(),
                        ZoneId.systemDefault()).plusDays(1).withHour(0).withMinute(0)
                .withSecond(0).withNano(0);
        LocalDateTime currentDateTime = LocalDateTime.ofInstant(currentDate.toInstant(),
                ZoneId.systemDefault());
        long seconds = ChronoUnit.SECONDS.between(currentDateTime, midnight);
        return (int) seconds;
    }
}