Jay
2025-01-17 570ca8e69bf33cff32c3ae1c5d54015de6804c95
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/point/DataPointApiImpl.java
@@ -8,11 +8,13 @@
import com.iailab.module.data.influxdb.service.InfluxDBService;
import com.iailab.module.data.influxdb.service.impl.InfluxDBServiceImpl;
import com.iailab.module.data.point.collection.PointCollector;
import com.iailab.module.data.point.collection.handler.CalculateHandle;
import com.iailab.module.data.point.dto.DaMathPointDTO;
import com.iailab.module.data.point.dto.DaPointDTO;
import com.iailab.module.data.point.dto.DaPointWriteValueDTO;
import com.iailab.module.data.point.service.DaMathPointService;
import com.iailab.module.data.point.service.DaPointService;
import com.iailab.module.data.point.vo.DaPointPageReqVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
@@ -139,22 +141,28 @@
    }
    @Override
    public PageResult<ApiPointDTO> getPageByNo(String pointNo) {
        DaPointDTO daPointDTO = daPointService.getSimpleInfoByNo(pointNo);
    public PageResult<ApiPointDTO> queryMathPointCurrentValue(ApiPointPageReqVO reqVO) {
        DaPointDTO daPointDTO = daPointService.getSimpleInfoByNo(reqVO.getPointNo());
        DaMathPointDTO daMathPointDTO = daMathPointService.getByPoint(daPointDTO.getId());
        String[] pointNos = daMathPointDTO.getExpression().split("[-+]+");
        HashMap<Integer, String> map = new HashMap<>();
        IntStream.range(0, pointNos.length).forEach(i -> map.put(i, pointNos[i]));
        List<String> pointNosL = new ArrayList<>();
        for (String value : map.values()) {
            pointNosL.add(value);
        }
        PageResult<ApiPointDTO> pageResult = daPointService.getPointPage(map);
        Map<String, Object> CurrentValueMap = pointCollector.getCurrentValue(pointNosL);
        pageResult.getList().stream().map(item -> {
            item.setCurrentValue(CurrentValueMap.get(item.getPointNo()));
            return item;
        String[] pointNos = daMathPointDTO.getExpression().split(CalculateHandle.regex);
        DaPointPageReqVO pageReqVO = new DaPointPageReqVO();
        pageReqVO.setPageNo(reqVO.getPageNo());
        pageReqVO.setPageSize(reqVO.getPageSize());
        pageReqVO.setPointNos(Arrays.asList(pointNos));
        PageResult<DaPointDTO> pageResult = daPointService.queryPage(pageReqVO);
        List<String> pointNosL = pageResult.getList().stream().map(item -> {
            return item.getPointNo();
        }).collect(Collectors.toList());
        return pageResult;
        Map<String, Object> currentValueMap = pointCollector.getCurrentValue(pointNosL);
        List<ApiPointDTO> dataList = new ArrayList<>();
        pageResult.getList().forEach(item -> {
            ApiPointDTO dto = new ApiPointDTO();
            dto.setPointNo(item.getPointNo());
            dto.setPointName(item.getPointName());
            dto.setCurrentValue(currentValueMap.get(item.getPointNo()).toString());
            dataList.add(dto);
        });
        return new PageResult<>(dataList, pageResult.getTotal());
    }
}