设备历史数据
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package com.njcn.csdevice.pojo.param;
|
||||
|
||||
import com.njcn.web.constant.ValidMessage;
|
||||
import com.njcn.web.pojo.annotation.DateTimeStrValid;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 类的介绍:
|
||||
*
|
||||
* @author xuyang
|
||||
* @version 1.0.0
|
||||
* @createTime 2023/6/20
|
||||
*/
|
||||
@Data
|
||||
public class EnergyBaseParam implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("id")
|
||||
@NotBlank(message = ValidMessage.ID_NOT_BLANK)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty("lineId")
|
||||
@NotBlank(message = ValidMessage.ID_NOT_BLANK)
|
||||
private String lineId;
|
||||
|
||||
@ApiModelProperty("pageNum")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty("pageSize")
|
||||
private Integer pageSize;
|
||||
|
||||
@ApiModelProperty("startTime")
|
||||
@DateTimeStrValid
|
||||
private String startTime;
|
||||
|
||||
@ApiModelProperty("endTime")
|
||||
@DateTimeStrValid
|
||||
private String endTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -43,4 +43,11 @@ public class EnergyTemplateVO {
|
||||
|
||||
@ApiModelProperty("数据")
|
||||
private Double dataValue;
|
||||
|
||||
@ApiModelProperty("最大值")
|
||||
private Double maxValue;
|
||||
|
||||
@ApiModelProperty("最小值")
|
||||
private Double minValue;
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ 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.csdevice.pojo.param.EnergyBaseParam;
|
||||
import com.njcn.csdevice.pojo.vo.CsGroupVO;
|
||||
import com.njcn.csdevice.pojo.vo.DataGroupTemplateVO;
|
||||
import com.njcn.csdevice.service.ICsGroupService;
|
||||
@@ -17,10 +18,7 @@ import io.swagger.annotations.ApiImplicitParams;
|
||||
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.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -66,5 +64,15 @@ public class CsGroupController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/deviceHistoryData")
|
||||
@ApiOperation("装置分组历史数据")
|
||||
@ApiImplicitParam(name = "energyBaseParam",required = true)
|
||||
public HttpResult<IPage<DataGroupTemplateVO>> getDeviceHistoryData(@RequestBody EnergyBaseParam energyBaseParam){
|
||||
String methodDescribe = getMethodDescribe("getDeviceHistoryData");
|
||||
IPage<DataGroupTemplateVO> list = csGroupService.getDeviceHistoryData(energyBaseParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.csdevice.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.csdevice.pojo.param.EnergyBaseParam;
|
||||
import com.njcn.csdevice.pojo.po.CsGroup;
|
||||
import com.njcn.csdevice.pojo.vo.CsGroupVO;
|
||||
import com.njcn.csdevice.pojo.vo.DataGroupTemplateVO;
|
||||
@@ -30,4 +31,10 @@ public interface ICsGroupService extends IService<CsGroup> {
|
||||
*/
|
||||
IPage<DataGroupTemplateVO> getDeviceRtData(String id, Integer pageNum, Integer pageSize, String lineId);
|
||||
|
||||
/**
|
||||
* 获取装置时间范围内的历史数据
|
||||
* @return
|
||||
*/
|
||||
IPage<DataGroupTemplateVO> getDeviceHistoryData(EnergyBaseParam energyBaseParam);
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.csdevice.mapper.CsDataArrayMapper;
|
||||
import com.njcn.csdevice.mapper.CsGroupMapper;
|
||||
import com.njcn.csdevice.pojo.param.EnergyBaseParam;
|
||||
import com.njcn.csdevice.pojo.po.CsDataArray;
|
||||
import com.njcn.csdevice.pojo.po.CsGroArr;
|
||||
import com.njcn.csdevice.pojo.po.CsGroup;
|
||||
@@ -25,6 +26,8 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -89,7 +92,7 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
|
||||
StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,eleEpdPqd.getClassId(),item.getName(),item.getPhase(),item.getStatMethod());
|
||||
if (!Objects.isNull(statisticalDataDTO)){
|
||||
vo.setTime(statisticalDataDTO.getTime());
|
||||
vo.setDataValue(statisticalDataDTO.getValue());
|
||||
vo.setDataValue(BigDecimal.valueOf(statisticalDataDTO.getValue()).setScale(4, RoundingMode.UP).doubleValue());
|
||||
} else {
|
||||
vo.setDataValue(3.1415926);
|
||||
}
|
||||
@@ -113,6 +116,49 @@ public class CsGroupServiceImpl extends ServiceImpl<CsGroupMapper, CsGroup> impl
|
||||
return pageTurn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<DataGroupTemplateVO> getDeviceHistoryData(EnergyBaseParam energyBaseParam) {
|
||||
IPage<DataGroupTemplateVO> pageTurn = new Page<>();
|
||||
List<EnergyTemplateVO> arrayList = new ArrayList<>();
|
||||
IPage<DataGroupTemplateVO> pageRes = csGroupMapper.getGroupDataList(new Page<>(energyBaseParam.getPageNum(), energyBaseParam.getPageSize()), energyBaseParam.getId());
|
||||
if (pageRes.getTotal() != 0) {
|
||||
List<DataGroupTemplateVO> groupList = pageRes.getRecords();
|
||||
List<String> group = groupList.stream().map(DataGroupTemplateVO::getId).collect(Collectors.toList());
|
||||
//获取当前组的所有指标项
|
||||
List<EnergyTemplateVO> list = csDataArrayMapper.getArrayByGroup(group);
|
||||
list.forEach(item->{
|
||||
EnergyTemplateVO vo = new EnergyTemplateVO();
|
||||
BeanUtils.copyProperties(item,vo);
|
||||
EleEpdPqd eleEpdPqd = epdFeignClient.selectById(item.getDataId()).getData();
|
||||
vo.setClassId(eleEpdPqd.getClassId());
|
||||
StatisticalDataDTO statisticalDataDTO = commonService.getLineHistoryData(energyBaseParam.getLineId(),eleEpdPqd.getClassId(),item.getName(),energyBaseParam.getStartTime(),energyBaseParam.getEndTime());
|
||||
if (!Objects.isNull(statisticalDataDTO)){
|
||||
vo.setMaxValue(BigDecimal.valueOf(statisticalDataDTO.getMaxValue()).setScale(4, RoundingMode.UP).doubleValue());
|
||||
vo.setMinValue(BigDecimal.valueOf(statisticalDataDTO.getMinValue()).setScale(4, RoundingMode.UP).doubleValue());
|
||||
} else {
|
||||
vo.setMaxValue(3.1415956);
|
||||
vo.setMinValue(3.1415956);
|
||||
}
|
||||
arrayList.add(vo);
|
||||
});
|
||||
if (CollectionUtil.isNotEmpty(arrayList)){
|
||||
List<DataGroupTemplateVO> grList = groupList.stream().peek((item) -> {item.setChildren(getChildren(item.getId(), arrayList));}).collect(Collectors.toList());
|
||||
pageTurn.setRecords(grList);
|
||||
pageTurn.setTotal(pageRes.getTotal());
|
||||
pageTurn.setSize(pageRes.getSize());
|
||||
pageTurn.setCurrent(pageRes.getCurrent());
|
||||
pageTurn.setPages(pageRes.getPages());
|
||||
}
|
||||
} else {
|
||||
pageTurn.setRecords(new ArrayList<>());
|
||||
pageTurn.setTotal(pageRes.getTotal());
|
||||
pageTurn.setSize(pageRes.getSize());
|
||||
pageTurn.setCurrent(pageRes.getCurrent());
|
||||
pageTurn.setPages(pageRes.getPages());
|
||||
}
|
||||
return pageTurn;
|
||||
}
|
||||
|
||||
private List<EnergyTemplateVO> getChildren(String tabId, List<EnergyTemplateVO> all) {
|
||||
return all.stream().filter(item -> item.getPid().equals(tabId)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user