Commit 4489e7d8 authored by linruibiao's avatar linruibiao

接口编写

parent 7fc8afcb
......@@ -56,6 +56,8 @@ public class BaseRestController {
@Value("${dc_client.interfaces.variableHistoryDataList}")
protected String variableHistoryDataList;
@Value("${dc_client.interfaces.variableRealTimeDataList}")
protected String variableRealTimeDataList;
......
......@@ -87,9 +87,14 @@ public class VariableController extends BaseRestController{
@GetMapping("/real-time")
@ApiOperation("获取变量实时数据")
@ApiImplicitParam(name = "appId", value = "租户id", required = true,dataTypeClass = String.class)
public R<Map<String, List<Map<String, RealTimeVariableVo>>>> getVariableRealTimeDataList(@PathVariable String appId,
VariableDataDTO variableDTO) {
return call(()->(variableService.getVariableRealTimeDataList(variableDTO)));
public R<Map<String, List<Map<String, Object>>>> getVariableRealTimeDataList(HttpServletRequest request,@PathVariable String appId,
VariableRealTimeDTO variableDTO) {
return call(() -> {
CurrentUser currentUser = getCurrentUser(request);
return variableService.getVariableRealTimeDataList(dcClientHost + variableRealTimeDataList,
variableDTO,
currentUser);
});
}
@GetMapping("/source")
......@@ -112,7 +117,8 @@ public class VariableController extends BaseRestController{
@GetMapping("/history")
@ApiOperation("获取变量历史数据")
@ApiImplicitParam(name = "appId", value = "租户id", required = true,dataTypeClass = String.class)
public R< List<Map<String, Object>> > getVariableHistoryDataList(HttpServletRequest request,@PathVariable String appId,VariableDataDTO variableDTO) {
public R< List<Map<String, Object>> > getVariableHistoryDataList(HttpServletRequest request,@PathVariable String appId,
VariableHistoryDataDTO variableDTO) {
return call(() -> {
CurrentUser currentUser = getCurrentUser(request);
return variableService.getVariableHistoryDataList(dcClientHost + variableHistoryDataList,
......
......@@ -13,7 +13,7 @@ import lombok.Data;
**/
@ApiModel("变量DTO")
@Data
public class VariableDataDTO {
public class VariableHistoryDataDTO {
@ApiModelProperty(value = "所属设备", required = true)
private String deviceId;
@ApiModelProperty(value = "统计类型,代表(合计值(sum),平均值(avg),最大值(max),最小值(min) 中位数(middle),原值 original)", required = true)
......@@ -22,10 +22,13 @@ public class VariableDataDTO {
private String variableId;
@ApiModelProperty(value = "变量Code", required = true)
private String variableCode;
@ApiModelProperty(value = "变量名称", required = true)
private String variableName;
@ApiModelProperty(value = "开始时间(时间戳)",required = true)
private String startTime;
@ApiModelProperty(value = "结束时间(时间戳)", required = true)
private String endTime;
@ApiModelProperty(value = "统计维度,如果是时间填time,如果是变量填variableCode", required = true)
private String x;
@ApiModelProperty(value = "统计维度如果是时间,请填时间格式如(yyyy-MM-dd HH:mm:ss),非时间为空", required = true)
private String format;
}
package com.syc.slm.slmbi.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* slm-bi
* 实时变量DTO
* @author : lin
* @date : 2021-03-30 15:05
**/
@ApiModel("变量DTO")
@Data
public class VariableRealTimeDTO {
@ApiModelProperty(value = "所属设备", required = true)
private String deviceId;
@ApiModelProperty(value = "变量id", required = true)
private String variableId;
@ApiModelProperty(value = "变量Code", required = true)
private String variableCode;
@ApiModelProperty(value = "开始时间(时间戳)",required = true)
private String startTime;
@ApiModelProperty(value = "结束时间(时间戳)", required = true)
private String endTime;
@ApiModelProperty(value = "请填时间格式如(yyyy-MM-dd HH:mm:ss)", required = true)
private String format;
}
package com.syc.slm.slmbi.enums;
import javax.crypto.interfaces.PBEKey;
/**
* 统计类型
*
......@@ -24,7 +26,7 @@ public enum StatisticsType {
MAX("max"),
/**
* 最小值
* 最小值
*/
MIN("min"),
......@@ -37,9 +39,10 @@ public enum StatisticsType {
* 原值
*/
ORIGINAL("original");
private String value;
StatisticsType(String v){
value=v;
public String value;
StatisticsType(String v) {
value = v;
}
}
package com.syc.slm.slmbi.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.syc.slm.slmbi.dto.QueryPageDTO;
import com.syc.slm.slmbi.dto.VariableDataDTO;
import com.syc.slm.slmbi.dto.VariableDTO;
import com.syc.slm.slmbi.dto.VariableSendDTO;
import com.syc.slm.slmbi.dto.*;
import com.syc.slm.slmbi.entity.CurrentUser;
import com.syc.slm.slmbi.vo.*;
import lombok.NonNull;
......@@ -45,22 +42,28 @@ public interface VariableService {
/**
* 获取实时数据
* @param uri
* @param variableDTO
* @param user
* @return
*/
Map<String, List<Map<String, RealTimeVariableVo>>> getVariableRealTimeDataList(VariableDataDTO variableDTO);
Map<String, List<Map<String, Object>>> getVariableRealTimeDataList(@NonNull String uri,VariableRealTimeDTO variableDTO,CurrentUser user);
/**
* 获取历史数据
* @param uri
* @param variableDTO
* @param currentUser
* @return
*/
List<Map<String, Object>> getVariableHistoryDataList(@NonNull String uri,VariableDataDTO variableDTO,CurrentUser currentUser);
List<Map<String, Object>> getVariableHistoryDataList(@NonNull String uri,
VariableHistoryDataDTO variableDTO,CurrentUser currentUser);
/**
* 下发
* @param sendDTO
* @param currentUser
* @param uri
*/
void send(VariableSendDTO sendDTO, CurrentUser currentUser,String uri);
}
......@@ -13,6 +13,7 @@ import com.syc.slm.common.core.util.RestTemplateUtils;
import com.syc.slm.slmbi.dto.*;
import com.syc.slm.slmbi.entity.CurrentUser;
import com.syc.slm.slmbi.enums.AccessType;
import com.syc.slm.slmbi.enums.StatisticsType;
import com.syc.slm.slmbi.exception.SysException;
import com.syc.slm.slmbi.service.VariableService;
import com.syc.slm.slmbi.vo.*;
......@@ -120,13 +121,72 @@ public class VariableServiceImpl implements VariableService {
}
@Override
public Map<String, List<Map<String, RealTimeVariableVo>>> getVariableRealTimeDataList(VariableDataDTO variableDTO) {
return null;
public Map<String, List<Map<String, Object>>> getVariableRealTimeDataList(@NonNull String uri,VariableRealTimeDTO variableDTO,CurrentUser user) {
if(StringUtils.isBlank(uri)){
throw new SysException("请传入uri");
}
if(StringUtils.isBlank(variableDTO.getDeviceId())){
throw new SysException("请传入设备id");
}
if(StringUtils.isBlank(variableDTO.getVariableCode())){
throw new SysException("请传入变量code");
}
if(StringUtils.isBlank(variableDTO.getEndTime())){
throw new SysException("请传入结束时间");
}
if(StringUtils.isBlank(variableDTO.getStartTime())){
throw new SysException("请传入开始时间");
}
if(StringUtils.isBlank(variableDTO.getFormat())) {
throw new SysException(" 请填入时间格式");
}
Map<String, String> heads = Maps.newHashMap();
heads.put("X-Token", user.getToken());
Map<String, String> uriVariables =SlmConstants.gson.fromJson(SlmConstants.gson.toJson(variableDTO),new TypeToken<Map<String,String>>(){}.getType());
uriVariables.put("appId",user.getAppId());
R<Map<String, List<Map<String, Object>>>> result = RestTemplateUtils.get(uri, heads, new TypeToken<R<Map<String, List<Map<String, Object>>>>>() {}.getType(), uriVariables);
return result.detach();
}
@Override
public List<Map<String, Object>> getVariableHistoryDataList(@NonNull String uri,VariableDataDTO variableDTO,CurrentUser user) {
public List<Map<String, Object>> getVariableHistoryDataList(@NonNull String uri,
VariableHistoryDataDTO variableDTO,CurrentUser user) {
if(StringUtils.isBlank(uri)){
throw new SysException("请传入uri");
}
if(StringUtils.isBlank(variableDTO.getDeviceId())){
throw new SysException("请传入设备id");
}
if(StringUtils.isBlank(variableDTO.getVariableCode())){
throw new SysException("请传入变量code");
}
if(StringUtils.isBlank(variableDTO.getEndTime())){
throw new SysException("请传入结束时间");
}
if(StringUtils.isBlank(variableDTO.getStartTime())){
throw new SysException("请传入开始时间");
}
if(StringUtils.isBlank(variableDTO.getStatisticsType())){
throw new SysException("请传入统计类型");
}else{
if(!StatisticsType.SUM.value.equals(variableDTO.getStatisticsType()) &&
!StatisticsType.AVG.value.equals(variableDTO.getStatisticsType()) &&
!StatisticsType.MAX.value.equals(variableDTO.getStatisticsType()) &&
!StatisticsType.MIN.value.equals(variableDTO.getStatisticsType()) &&
!StatisticsType.MIDDLE.value.equals(variableDTO.getStatisticsType()) &&
!StatisticsType.ORIGINAL.value.equals(variableDTO.getStatisticsType())){
throw new SysException("没有对应匹配的统计类型");
}
}
if(StringUtils.isBlank(variableDTO.getX())){
throw new SysException("请传入统计维度");
}
if("time".equals(variableDTO.getX())){
if(StringUtils.isBlank(variableDTO.getFormat())) {
throw new SysException("统计维度为时间,请填入时间格式");
}
}
Map<String, String> heads = Maps.newHashMap();
heads.put("X-Token", user.getToken());
Map<String, String> uriVariables =SlmConstants.gson.fromJson(SlmConstants.gson.toJson(variableDTO),new TypeToken<Map<String,String>>(){}.getType());
......@@ -205,7 +265,6 @@ public class VariableServiceImpl implements VariableService {
Map<String,String> uriVariables =Maps.newHashMap();
uriVariables.put("appId",user.getAppId());
return RestTemplateUtils.get(uri, heads, new TypeToken<R<Map<String,String>>>() {}.getType(), uriVariables);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment