035378aa 张雷

奥体项目累计流量

1 个父辈 3ab28ffb
......@@ -3,10 +3,7 @@ package com.skua.modules.business.controller;
import com.skua.core.api.vo.Result;
import com.skua.modules.business.service.IOlympicCenterService;
import com.skua.modules.business.service.ISynthesizeService;
import com.skua.modules.business.vo.AlarmParams;
import com.skua.modules.business.vo.EchartResult;
import com.skua.modules.business.vo.InputQueryParams;
import com.skua.modules.business.vo.ReportParams;
import com.skua.modules.business.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -249,4 +246,19 @@ public class OlympicCenterController {
return result;
}
@ApiOperation(value="获取累计流量同比环比数据", notes="获取累计流量同比环比数据")
@GetMapping(value = "/getSumFlowData")
public Result<Map<String,Object>> getSumFlowData(SumFlowParams sumFlowParams){
Result<Map<String,Object>> result = new Result<Map<String,Object>>();
Map<String,Object> map = new HashMap<>();
if("".equals(sumFlowParams.getStart())||sumFlowParams.getStart()==null
||"".equals(sumFlowParams.getEnd())||sumFlowParams.getEnd()==null){
map = olympicCenterService.getSumFlowData(sumFlowParams);
}else{
map = new HashMap<>();
}
result.setResult(map);
result.setSuccess(true);
return result;
}
}
......
package com.skua.modules.business.service;
import com.skua.modules.business.vo.AlarmParams;
import com.skua.modules.business.vo.EchartResult;
import com.skua.modules.business.vo.InputQueryParams;
import com.skua.modules.business.vo.ReportParams;
import com.skua.modules.business.vo.*;
import java.util.List;
import java.util.Map;
......@@ -51,4 +48,5 @@ public interface IOlympicCenterService {
List<Map<String, Object>> getAlarmList(AlarmParams alarmParams);
Map<String, Object> getSumFlowData(SumFlowParams sumFlowParams);
}
......
package com.skua.modules.business.vo;
import lombok.Data;
/**
* 请求参数
*/
@Data
public class SumFlowParams {
/**聚合类型 日:day, 月:month,年:year*/
private String sumType;
/**开始时间 yyyy-MM-DD*/
private String start;
/**结束时间 yyyy-MM-DD*/
private String end;
}
......@@ -25,4 +25,6 @@ public interface IFmPgQueryService {
public List<Map<String, Object>> queryReportData(String departId,String fields,String startTime,String endTime,String reportType);
public List<Map<String, Object>> queryAotiCurveData(String fields,String startTime,String endTime,String sumType,int strCount);
}
......
......@@ -12,6 +12,9 @@ import com.skua.modules.monitor.service.IFmPgQueryService;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
......@@ -78,12 +81,6 @@ public class FmPgQueryServiceImpl implements IFmPgQueryService {
return result;
}
public static void main(String[] args) {
Date d=new Date();//获取时间
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(gettimeStemp(sdf.format(d)+" 00:00:00","yyyy-MM-dd"));
}
public static long gettimeStemp(String time, String format) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (!"".equals(format)) {
......@@ -362,4 +359,38 @@ public class FmPgQueryServiceImpl implements IFmPgQueryService {
}
return resultList;
}
@Override
public List<Map<String, Object>> queryAotiCurveData( String fields, String startTime, String endTime, String sumType, int strCount) {
List<Map<String, Object>> dataList = new ArrayList<>();
//获取数据采集pg数据库,实时数据获取统一从数据采集pg库获取
JdbcTemplate pgDB = (JdbcTemplate)SpringContextUtils.getBean("pg-db");
String countTableName = "a01a21a03_count";
//获取要查询的指标
String fieldSqlPart = "";
String[] fieldsArr = fields.split(",");
for (int i = 0; i < fieldsArr.length; ++i){
fieldSqlPart = fieldSqlPart + (",'"+fieldsArr[i]+"'");
}
if(!StringUtils.isEmpty(fieldSqlPart)) {
fieldSqlPart = fieldSqlPart.substring(1);
}
try{
String tsStartTime = String.valueOf(DateUtils.getMillis(DateUtils.parseDate(startTime, "yyyy-MM-dd HH:mm:ss"))/1000);
String tsEndTime = String.valueOf(DateUtils.getMillis(DateUtils.parseDate(endTime, "yyyy-MM-dd HH:mm:ss"))/1000);
String sql = "SELECT nm, " +
" LEFT(TO_CHAR(TO_TIMESTAMP(CAST(ts AS INTEGER)), 'YYYY-MM-DD HH24:MI:SS'), "+strCount+") AS time, " +
" SUM(v::numeric) AS value " +
" FROM " + countTableName +
" WHERE nm in ("+fieldSqlPart+")" +
" AND type = 'def'" +
" AND ts >= ? AND ts < ? " +
" GROUP BY nm, time " +
" ORDER BY time";
dataList = pgDB.queryForList(sql,tsStartTime,tsEndTime);
}catch (Exception e){
e.printStackTrace();
}
return dataList;
}
}
......
server:
port: 8803
servlet:
context-path: /fmboot
compression:
enabled: true
mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*
management:
endpoints:
web:
exposure:
include: metrics,httptrace
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
mail:
host: smtp.163.com
username: zhanglei891008@163.com
password: ??
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
## quartz定时任务,采用数据库方式
quartz:
job-store-type: jdbc
#json 时间戳统一转换
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
aop:
proxy-target-class: true
#配置freemarker
freemarker:
# 设置模板后缀名
suffix: .ftl
# 设置文档类型
content-type: text/html
# 设置页面编码格式
charset: UTF-8
# 设置页面缓存
cache: false
prefer-file-system-access: false
# 设置ftl文件路径
template-loader-path:
- classpath:/templates
# 设置静态文件路径,js,css等
mvc:
static-path-pattern: /**
resource:
static-locations: classpath:/static/,classpath:/public/
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
web-stat-filter:
enabled: true
dynamic:
druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
master:
url: jdbc:mysql://10.68.182.67:3306/zhsw_modules?characterEncoding=UTF-8&useUnicode=true&useSSL=false
username: root
password: Winps6eH3wB2dNHqh5
driver-class-name: com.mysql.jdbc.Driver
#redis 配置
redis:
database: 0
host: 10.68.182.67
lettuce:
pool:
max-active: 8 #最大连接数据库连接数,设 0 为没有限制
max-idle: 8 #最大等待连接中的数量,设 0 为没有限制
max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
shutdown-timeout: 100ms
password: 4BM9tVs9KW2qGSEEVz
port: 6379
#mybatis plus 设置
mybatis-plus:
mapper-locations: classpath*:com/skua/**/xml/*Mapper.xml
global-config:
db-config:
#主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",
#3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",
#5:"字符串全局唯一ID (idWorker 的字符串表示)";
id-type: 4
# 默认数据库表下划线命名
table-underline: true
configuration:
call-setters-on-nulls: true
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#数矿专用配置
skua :
path :
#文件上传根目录 设置
upload: /mnt/app/uploadfile
#webapp文件路径
webapp: /mnt/app/uploadfile
# 断点续传路径
chunk: /app/skboot/zujianhua/voice
#短信秘钥
sms:
#应用地址
accessKeyUrl: http://smssh1.253.com/msg/send/json
#账户
accessKeyId: f344035
#密码
accessKeySecret: r38oABz
factoryId: d60401ac4a9943b1943c6b8edbe4df27
iosUpdateUrl: https://itunes.apple.com/cn/lookup?id=1486744187
viewPath: http://127.0.0.1:8081/fmboot/sys/common/view/
#展示运行报表id
reportShowParentId: 6958c2d7f6d391a86b2c58059dbcddc3
#数据采集服务频率,单位秒,注意如果调整了数据采集频率,请记得同步修改此配置
collectionFrequency: 10
#视频对接相关配置
video:
ip: 127.0.0.1
port: 8667
username: admin
password: xrjkauto@123
#海康威视需要填写密钥
appkey: 22650577
secretkey: 6958c2d7f6d391a86b
streamMediaIp: 127.0.0.1
#消息推送
push:
#是否开启流程消息推送
process-enable: false
#极光推送
jg:
masterSecret: bb892f7773279e1ae6a
appKey: cb69e9fb44b487ec3b5
#洪城内网推送地址
deviceHostName: http://189.200.0.223/device
pushHostName: http://189.200.0.223/api
mob:
appSecret: 1dc50510bb62e65add34dab122f4536f
appKey: 347052887a080
pushHostName: http://api.push.mob.com/v3/push/createPush
iosProduction: 1
packageName: com.kingtrol.flutter
#后面更换推送服务向下扩展添加
#cas单点登录
cas:
prefixUrl: http://cas.example.org:8443/cas
#微信相关
wx:
# 公众号
app-id: wxbdc5610c
app-secret: xxxxxxxxxxxxxxxxxxxxxxx
redirect-url: https://passport.yhd.com
......@@ -96,17 +96,17 @@ spring:
username: jk_test
password: Jk_test1211rw
driver-class-name: com.mysql.jdbc.Driver
mysql-alarm:
url: jdbc:mysql://47.104.99.86:3306/intelligent-devices?characterEncoding=UTF-8&useUnicode=true&useSSL=false
username: id_rw
password: s2eCvUEPO2Vk3U1w
driver-class-name: com.mysql.jdbc.Driver
# 多数据源配置
pg-db:
url: jdbc:postgresql://47.104.99.86:10086/postgres?useUnicode=true&characterEncoding=UTF8
username: postgres
password: JKjnf9713xt
driver-class-name: org.postgresql.Driver
# mysql-alarm:
# url: jdbc:mysql://47.104.99.86:3306/intelligent-devices?characterEncoding=UTF-8&useUnicode=true&useSSL=false
# username: id_rw
# password: s2eCvUEPO2Vk3U1w
# driver-class-name: com.mysql.jdbc.Driver
# # 多数据源配置
# pg-db:
# url: jdbc:postgresql://47.104.99.86:10086/postgres?useUnicode=true&characterEncoding=UTF8
# username: postgres
# password: JKjnf9713xt
# driver-class-name: org.postgresql.Driver
#redis 配置
redis:
database: 0
......
......@@ -97,7 +97,7 @@ spring:
password: jkauto@123wh
driver-class-name: com.mysql.jdbc.Driver
mysql-alarm:
url: jdbc:mysql://192.168.21.6:13306/zhsw_modules?characterEncoding=UTF-8&useUnicode=true&useSSL=false
url: jdbc:mysql://192.168.21.6:13306/intelligent-devices?characterEncoding=UTF-8&useUnicode=true&useSSL=false
username: root
password: jkauto@123wh
driver-class-name: com.mysql.jdbc.Driver
......
spring:
profiles:
active: prod
active: dev
# 信息安全
security:
csrf:
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!