提交代码,工程,设备权限,设备数据

This commit is contained in:
huangzj
2023-06-27 18:47:13 +08:00
parent c387992c3b
commit 022bf29a39
27 changed files with 866 additions and 40 deletions

View File

@@ -0,0 +1,50 @@
package com.njcn.csharmonic.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.csharmonic.param.CommonStatisticalQueryParam;
import com.njcn.csharmonic.param.DevicDataTrendQueryParam;
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
import com.njcn.csharmonic.service.DeviceDataTrendService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Description:
* Date: 2023/6/26 9:07【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/datatrend")
@Api(tags = "设备数据趋势")
@AllArgsConstructor
public class DeviceDataTrendController extends BaseController {
private final DeviceDataTrendService deviceDataTrendService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/querydatatrend")
@ApiOperation("查询设备数据趋势")
@ApiImplicitParam(name = "devicDataTrendQueryParam", value = "设备数据趋势参数", required = true)
public HttpResult< List<List<ThdDataVO>>> queryDataTrend(@RequestBody DevicDataTrendQueryParam devicDataTrendQueryParam) {
String methodDescribe = getMethodDescribe("queryDataTrend");
List<List<ThdDataVO>> result = deviceDataTrendService.queryDataTrend(devicDataTrendQueryParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,17 @@
package com.njcn.csharmonic.service;
import com.njcn.csharmonic.param.DevicDataTrendQueryParam;
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
import java.util.List;
/**
* Description:
* Date: 2023/6/26 9:14【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface DeviceDataTrendService {
List<List<ThdDataVO>> queryDataTrend(DevicDataTrendQueryParam devicDataTrendQueryParam);
}

View File

@@ -0,0 +1,80 @@
package com.njcn.csharmonic.service.impl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.api.DataArrayFeignClient;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csharmonic.param.DevicDataTrendQueryParam;
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
import com.njcn.csharmonic.service.DeviceDataTrendService;
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
import com.njcn.influx.service.CommonService;
import com.njcn.system.api.EpdFeignClient;
import com.njcn.system.pojo.po.EleEpdPqd;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Description:
* Date: 2023/6/26 9:14【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@RequiredArgsConstructor
public class DeviceDataTrendServiceImpl implements DeviceDataTrendService {
private final EpdFeignClient epdFeignClient;
private final CommonService commonService;
private final DataArrayFeignClient dataArrayFeignClient;
@Override
public List<List<ThdDataVO>> queryDataTrend(DevicDataTrendQueryParam devicDataTrendQueryParam) {
List<List<ThdDataVO>> result = new ArrayList<>();
if(CollectionUtils.isEmpty(devicDataTrendQueryParam.getStatisticalParams())){
return result;
}
devicDataTrendQueryParam.getStatisticalParams().forEach(temp->{
List<StatisticalDataDTO> deviceRtData = commonService.getDeviceRtDataByTime(Stream.of(devicDataTrendQueryParam.getLineId()).collect(Collectors.toList()),
temp.getClassId(),
temp.getName(), temp.getPhase(),
temp.getStatMethod(),
devicDataTrendQueryParam.getStartTime(),
devicDataTrendQueryParam.getEndTime());
List<ThdDataVO> collect1 = deviceRtData.stream().map(statisticalDataDTO -> {
ThdDataVO vo = new ThdDataVO();
vo.setLineId(statisticalDataDTO.getLineId());
vo.setPhase(statisticalDataDTO.getPhaseType());
vo.setTime(statisticalDataDTO.getTime().atZone(ZoneId.systemDefault()).toLocalDateTime());
vo.setStatMethod(statisticalDataDTO.getValueType());
vo.setStatisticalData(BigDecimal.valueOf(statisticalDataDTO.getValue()).setScale(4, RoundingMode.UP).doubleValue());
vo.setStatisticalIndex(temp.getDataId());
vo.setStatisticalName(temp.getName());
vo.setUnit(temp.getUnit());
vo.setAnotherName(temp.getAnotherName());
return vo;
}).collect(Collectors.toList());
result.add(collect1);
});
return result;
}
}