Commit 232f778d authored by 梁光意's avatar 梁光意

修改业务字段y轴统计类型

parent 0cf33171
...@@ -52,6 +52,8 @@ public class BaseRestController { ...@@ -52,6 +52,8 @@ public class BaseRestController {
@Value("${dc_client.interfaces.businessFiledData}") @Value("${dc_client.interfaces.businessFiledData}")
protected String businessFiledData; protected String businessFiledData;
@Value("${dc_client.interfaces.businessDataFieldStatistics}")
protected String businessDataFieldStatistics;
@Value("${dc_client.interfaces.variableCodeHistoryList}") @Value("${dc_client.interfaces.variableCodeHistoryList}")
protected String variableHistoryDataList; protected String variableHistoryDataList;
......
...@@ -3,6 +3,7 @@ package com.syc.slm.slmbi.controller; ...@@ -3,6 +3,7 @@ package com.syc.slm.slmbi.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.syc.slm.common.core.util.R; import com.syc.slm.common.core.util.R;
import com.syc.slm.slmbi.dto.BusinessDTO; import com.syc.slm.slmbi.dto.BusinessDTO;
import com.syc.slm.slmbi.dto.BusinessStatisticsDTO;
import com.syc.slm.slmbi.entity.CurrentUser; import com.syc.slm.slmbi.entity.CurrentUser;
import com.syc.slm.slmbi.service.BusinessConfigService; import com.syc.slm.slmbi.service.BusinessConfigService;
import com.syc.slm.slmbi.vo.BusinessConfigVo; import com.syc.slm.slmbi.vo.BusinessConfigVo;
...@@ -59,6 +60,18 @@ public class BusinessConfigController extends BaseRestController{ ...@@ -59,6 +60,18 @@ public class BusinessConfigController extends BaseRestController{
}); });
} }
@PostMapping("/data/field/statistics")
@ApiOperation("根据配置字段获取字段的统计数据")
@ApiImplicitParam(name = "appId", value = "租户id", required = true, dataTypeClass = String.class)
public R<Map<String,Object>> listBusinessFieldStatistics(HttpServletRequest request,
@PathVariable String appId,
@RequestBody BusinessStatisticsDTO dto) {
return call(() -> {
CurrentUser currentUser = getCurrentUser(request);
return businessConfigService.listBusinessFieldStatistics(dcClientHost+businessDataFieldStatistics,dto, currentUser);
});
}
@GetMapping("/filed-value/{tableName}/{filed}") @GetMapping("/filed-value/{tableName}/{filed}")
@ApiOperation("根据字段以及表名查询对应的字段") @ApiOperation("根据字段以及表名查询对应的字段")
@ApiImplicitParam(name = "appId", value = "租户id", required = true, dataTypeClass = String.class) @ApiImplicitParam(name = "appId", value = "租户id", required = true, dataTypeClass = String.class)
......
package com.syc.slm.slmbi.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @author: guangyi-liang
* @date: 2021/5/14
*/
@Data
@ApiModel(value = "业务数据字段数值统计类型")
public class BusinessStatisticsDTO {
@ApiModelProperty(value = "查询表名", required = true)
private String table;
@ApiModelProperty(value = "查询配置(如果为空不要调用后台)", required = true)
List<Map<String, List<BusinessConditionDTO>>> where;
@ApiModelProperty(value = "统计参数", required = true)
List<BusinessFieldStatisticsDTO> statisticsList;
}
...@@ -3,6 +3,7 @@ package com.syc.slm.slmbi.service; ...@@ -3,6 +3,7 @@ package com.syc.slm.slmbi.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.syc.slm.slmbi.dto.BusinessDTO; import com.syc.slm.slmbi.dto.BusinessDTO;
import com.syc.slm.slmbi.dto.BusinessStatisticsDTO;
import com.syc.slm.slmbi.entity.BusinessConfig; import com.syc.slm.slmbi.entity.BusinessConfig;
import com.syc.slm.slmbi.entity.CurrentUser; import com.syc.slm.slmbi.entity.CurrentUser;
import com.syc.slm.slmbi.vo.BusinessConfigVo; import com.syc.slm.slmbi.vo.BusinessConfigVo;
...@@ -39,6 +40,15 @@ public interface BusinessConfigService extends IService<BusinessConfig> { ...@@ -39,6 +40,15 @@ public interface BusinessConfigService extends IService<BusinessConfig> {
*/ */
Map<String,List<Object>> getBusinessData(BusinessDTO dto,String uri, CurrentUser user); Map<String,List<Object>> getBusinessData(BusinessDTO dto,String uri, CurrentUser user);
/**
* 查询业务字段的统计数据
* @param uri url
* @param dto 参数
* @param user 当前用
* @return 统计数据
*/
Map<String,Object> listBusinessFieldStatistics(String uri, BusinessStatisticsDTO dto,CurrentUser user);
/** /**
* 根据字段以及表名查询对应的字段 * 根据字段以及表名查询对应的字段
* @param currentUser * @param currentUser
......
...@@ -15,6 +15,7 @@ import com.syc.slm.common.core.util.R; ...@@ -15,6 +15,7 @@ import com.syc.slm.common.core.util.R;
import com.syc.slm.common.core.util.RestTemplateUtils; import com.syc.slm.common.core.util.RestTemplateUtils;
import com.syc.slm.slmbi.dao.BusinessConfigMapper; import com.syc.slm.slmbi.dao.BusinessConfigMapper;
import com.syc.slm.slmbi.dto.BusinessDTO; import com.syc.slm.slmbi.dto.BusinessDTO;
import com.syc.slm.slmbi.dto.BusinessStatisticsDTO;
import com.syc.slm.slmbi.entity.BaseEntity; import com.syc.slm.slmbi.entity.BaseEntity;
import com.syc.slm.slmbi.entity.BusinessConfig; import com.syc.slm.slmbi.entity.BusinessConfig;
import com.syc.slm.slmbi.entity.CurrentUser; import com.syc.slm.slmbi.entity.CurrentUser;
...@@ -119,6 +120,44 @@ public class BusinessConfigServiceImpl extends ServiceImpl<BusinessConfigMapper, ...@@ -119,6 +120,44 @@ public class BusinessConfigServiceImpl extends ServiceImpl<BusinessConfigMapper,
return result.detach(); return result.detach();
} }
@Override
public Map<String, Object> listBusinessFieldStatistics(String uri, BusinessStatisticsDTO dto, CurrentUser user) {
if(StringUtils.isBlank(dto.getTable())){
throw new SysException("请传入对应的表名");
}
if(CollectionUtils.isEmpty(dto.getStatisticsList())){
throw new SysException("请传入字段统计参数");
}else{
if(dto.getStatisticsList().stream().anyMatch(x -> StringUtils.isBlank(x.getField()))){
throw new SysException("y轴配置字段不能为空");
}
if(dto.getStatisticsList().stream().anyMatch(x -> StringUtils.isBlank(x.getStatisticsType()))){
throw new SysException("统计类型不能为空");
}
}
if(CollectionUtils.isEmpty(dto.getWhere())){
throw new SysException("where 条件不能为空");
}
dto.getWhere().forEach(x->{
if(CollectionUtils.isEmpty(x.keySet())){
throw new SysException("条件 and 或者or 都必须说明");
}
x.forEach((k,v)->{
if(v.stream().anyMatch(y -> StringUtils.isBlank(y.getKey()))
|| v.stream().anyMatch(y -> ObjectUtils.isEmpty(y.getValue()))
|| v.stream().anyMatch(y -> StringUtils.isBlank(y.getQueryType()))) {
throw new SysException("where 条件不能key value queryType 都不能为空");
}
});
});
Map<String, String> uriVariables = Maps.newHashMap();
uriVariables.put("appId", user.getAppId());
R<Map<String,Object>> result = RestTemplateUtils.post(uri, null,dto, new TypeToken<R<Map<String,Object>>>() {}.getType(), uriVariables);
return result.detach();
}
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public IPage<String> filedValue(CurrentUser currentUser,String tableName, String filed, Integer current, Integer size,String name,String uri) { public IPage<String> filedValue(CurrentUser currentUser,String tableName, String filed, Integer current, Integer size,String name,String uri) {
......
...@@ -58,6 +58,7 @@ dc_client: ...@@ -58,6 +58,7 @@ dc_client:
deviceList : /{appId}/variables/device?token={token}&equipment_info_id={equipment_info_id}&q_name={q_name}&search_code={search_code}&warranty_status={warranty_status}&page_num={page_num}&page_size={page_size} deviceList : /{appId}/variables/device?token={token}&equipment_info_id={equipment_info_id}&q_name={q_name}&search_code={search_code}&warranty_status={warranty_status}&page_num={page_num}&page_size={page_size}
deptsRoles : /{appId}/users/depts-roles deptsRoles : /{appId}/users/depts-roles
businessFiledData : /{appId}/business/filed businessFiledData : /{appId}/business/filed
businessDataFieldStatistics: /{appId}/business/data/field/statistics
# variableHistoryDataList: /{appId}/variables/history?deviceId={deviceId}&endTime={endTime}&startTime={startTime}&statisticsType={statisticsType}&variableCode={variableCode}&variableId={variableId}&x={x}&format={format} # variableHistoryDataList: /{appId}/variables/history?deviceId={deviceId}&endTime={endTime}&startTime={startTime}&statisticsType={statisticsType}&variableCode={variableCode}&variableId={variableId}&x={x}&format={format}
# variableRealTimeDataList: /{appId}/variables/real-time?deviceId={deviceId}&endTime={endTime}&startTime={startTime}&variableCode={variableCode}&variableId={variableId}&format={format} # variableRealTimeDataList: /{appId}/variables/real-time?deviceId={deviceId}&endTime={endTime}&startTime={startTime}&variableCode={variableCode}&variableId={variableId}&format={format}
variableCodeHistoryList: /{appId}/variables/variable-code/history variableCodeHistoryList: /{appId}/variables/variable-code/history
......
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