fangyuan
2022-11-15 9b3d338c8c66d4dc544bcec66f727bb8d2933658
趋势分析数据查询,点位报警数量信息查询
7个文件已添加
184 ■■■■■ 已修改文件
ycl-platform/src/main/java/com/ycl/controller/trend/TrendAnalysisController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/trend/TrendAnalysisParam.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/mapper/trend/TrendAnalysisMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/trend/TrendAnalysisService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/trend/impl/TrendAnalysisServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/vo/TrendVo.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/mapper/trend/TrendAnalysisMapper.xml 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/trend/TrendAnalysisController.java
New file
@@ -0,0 +1,35 @@
package com.ycl.controller.trend;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ycl.api.CommonResult;
import com.ycl.dto.trend.TrendAnalysisParam;
import com.ycl.service.trend.TrendAnalysisService;
import com.ycl.vo.TrendVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "趋势分析")
@RestController
@RequestMapping("/trendAnalysis")
public class TrendAnalysisController {
    @Autowired
    TrendAnalysisService trendAnalysisService;
    @ApiOperation("数据查询")
    @PostMapping("/info")
    public CommonResult<List<TrendVo>> list(@RequestBody TrendAnalysisParam trendAnalysisParam, Integer pageSize, Integer pageNum) {
        return CommonResult.success(trendAnalysisService.list(trendAnalysisParam,pageSize,pageNum));
    }
    @ApiOperation("点位数据查询")
    @PostMapping("/pointInfo")
    public CommonResult<List<TrendVo>> queryPointInfo(@RequestBody String id) {
        JSONObject jsonObject = JSON.parseObject(id);
        return CommonResult.success(trendAnalysisService.queryPointInfo(jsonObject.getString("id")));
    }
}
ycl-platform/src/main/java/com/ycl/dto/trend/TrendAnalysisParam.java
New file
@@ -0,0 +1,25 @@
package com.ycl.dto.trend;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TrendAnalysisParam {
    @ApiModelProperty(value = "违规类型")
    private String type;
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String startTime;
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String endTime;
}
ycl-platform/src/main/java/com/ycl/mapper/trend/TrendAnalysisMapper.java
New file
@@ -0,0 +1,13 @@
package com.ycl.mapper.trend;
import com.ycl.dto.trend.TrendAnalysisParam;
import com.ycl.vo.TrendVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TrendAnalysisMapper {
    List<TrendVo> selectTrendInfo(@Param("tap") TrendAnalysisParam trendAnalysisParam);
    List<TrendVo> selectTrendPointInfo(String id);
}
ycl-platform/src/main/java/com/ycl/service/trend/TrendAnalysisService.java
New file
@@ -0,0 +1,15 @@
package com.ycl.service.trend;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.dto.trend.TrendAnalysisParam;
import com.ycl.entity.store.StoreScoreRule;
import com.ycl.vo.TrendVo;
import java.util.List;
public interface TrendAnalysisService  {
    List<TrendVo> list(TrendAnalysisParam trendAnalysisParam, Integer pageSize, Integer pageNum);
    List<TrendVo> queryPointInfo(String id);
}
ycl-platform/src/main/java/com/ycl/service/trend/impl/TrendAnalysisServiceImpl.java
New file
@@ -0,0 +1,30 @@
package com.ycl.service.trend.impl;
import com.ycl.dto.trend.TrendAnalysisParam;
import com.ycl.mapper.trend.TrendAnalysisMapper;
import com.ycl.service.trend.TrendAnalysisService;
import com.ycl.vo.TrendVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TrendAnalysisServiceImpl implements TrendAnalysisService {
    @Autowired
    TrendAnalysisMapper trendAnalysisMapper;
    @Override
    public List<TrendVo> list(TrendAnalysisParam trendAnalysisParam, Integer pageSize, Integer pageNum) {
        return trendAnalysisMapper.selectTrendInfo(trendAnalysisParam);
    }
    @Override
    public List<TrendVo> queryPointInfo(String id) {
        return trendAnalysisMapper.selectTrendPointInfo(id);
    }
}
ycl-platform/src/main/java/com/ycl/vo/TrendVo.java
New file
@@ -0,0 +1,29 @@
package com.ycl.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@ApiModel(value = "趋势分析")
public class TrendVo {
    @ApiModelProperty(value = "点位id")
    private String id;
    @ApiModelProperty(value = "点位名称")
    private String name;
    @ApiModelProperty(value = "报警数量")
    private String count;
    @ApiModelProperty(value = "报警日期")
    private String dateTime;
    @ApiModelProperty(value = "报警地址")
    private String address;
}
ycl-platform/src/main/resources/mapper/trend/TrendAnalysisMapper.xml
New file
@@ -0,0 +1,37 @@
<?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.ycl.mapper.trend.TrendAnalysisMapper">
    <select id="selectTrendInfo" resultType="com.ycl.vo.TrendVo" parameterType="com.ycl.dto.trend.TrendAnalysisParam">
        select vp.id,vp.name,count(0) as count from
          ums_warn_alarm_record war
        left join
          ums_violations v
        on v.id=war.case_number_id
        left join
          ums_video_point vp
        on v.video_point_id=vp.id
        <where>
            <if test="tap.startTime!=null and tap.startTime!=''and tap.endTime!=null and tap.endTime!=''" >
                war.alarm_time between #{tap.startTime} and #{tap.endTime}
            </if>
            <if test="tap.type!=null and tap.type!=''" >
                war.violation_type=#{tap.type}
            </if>
        </where>
        group by vp.id,vp.name
        order by count DESC
    </select>
    <select id="selectTrendPointInfo" resultType="com.ycl.vo.TrendVo" parameterType="string">
        SELECT vp.address, DATE_FORMAT(war.alarm_time,"%Y-%m-%d") as dateTime,count(0) as count
        from ums_warn_alarm_record war
        left join ums_violations v
        on v.id=war.case_number_id
        left join ums_video_point vp
        on v.video_point_id=vp.id
        where vp.id=#{id}
        GROUP BY vp.address,DATE_FORMAT(war.alarm_time,"%Y-%m-%d")
    </select>
</mapper>