dengzedong
2025-01-20 2cb72fa6266cc5892cf6d53c3d6ca0cf492a954d
指标查询:
getInfoByIds
queryIndItemHistoryValue bug
已修改6个文件
106 ■■■■ 文件已修改
iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/IndItemApi.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/ind/IndItemApiImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-api/src/main/java/com/iailab/module/data/api/ind/IndItemApi.java
@@ -10,6 +10,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Set;
/**
 * @author PanZhibao
@@ -33,4 +34,8 @@
    @GetMapping(PREFIX + "/info/id/{id}")
    @Operation(summary = "根据测点编号查询测点信息")
    ApiIndItemDTO getInfoById(@PathVariable("id") String id);
    @PostMapping(PREFIX + "/info/ids")
    @Operation(summary = "根据多个id查询指标数据信息")
    List<ApiIndItemDTO> getInfoByIds(@RequestParam("indIds") Set<String> indIds);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/api/ind/IndItemApiImpl.java
@@ -5,13 +5,17 @@
import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
import com.iailab.module.data.ind.collection.IndItemCollector;
import com.iailab.module.data.ind.item.entity.IndItemEntity;
import com.iailab.module.data.ind.item.service.IndItemService;
import com.iailab.module.data.ind.item.vo.IndItemValueVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
 * @author PanZhibao
@@ -31,17 +35,44 @@
    @Override
    public List<ApiIndItemValueDTO> queryIndItemDefaultValue(String itemNo){
        List<IndItemValueVO> list = indItemCollector.queryValue(itemNo);
        return ConvertUtils.sourceToTarget(list, ApiIndItemValueDTO.class);
        List<ApiIndItemValueDTO> result = new ArrayList<>(list.size());
        list.forEach(item -> {
            if (item != null) {
                ApiIndItemValueDTO indItemValueDTO = new ApiIndItemValueDTO();
                indItemValueDTO.setDataTime(item.getDataTime());
                indItemValueDTO.setDataValue(item.getDataValue().doubleValue());
                result.add(indItemValueDTO);
            }
        });
        return result;
    }
    @Override
    public List<ApiIndItemValueDTO> queryIndItemHistoryValue(ApiIndItemQueryDTO dto) {
        List<IndItemValueVO> list = indItemCollector.queryValue(dto.getItemNo(), dto.getStart(), dto.getEnd());
        return ConvertUtils.sourceToTarget(list, ApiIndItemValueDTO.class);
        List<ApiIndItemValueDTO> result = new ArrayList<>(list.size());
        list.forEach(item -> {
            if (item != null) {
                ApiIndItemValueDTO indItemValueDTO = new ApiIndItemValueDTO();
                indItemValueDTO.setDataTime(item.getDataTime());
                indItemValueDTO.setDataValue(item.getDataValue().doubleValue());
                result.add(indItemValueDTO);
            }
        });
        return result;
    }
    @Override
    public ApiIndItemDTO getInfoById(String id) {
        return ConvertUtils.sourceToTarget(indItemService.get(id), ApiIndItemDTO.class);
    }
    @Override
    public List<ApiIndItemDTO> getInfoByIds(Set<String> indIds) {
        if (CollectionUtils.isEmpty(indIds)) {
            return new ArrayList<>();
        }
        List<IndItemEntity> inds = indItemService.getInfoByIds(indIds);
        return ConvertUtils.sourceToTarget(inds,ApiIndItemDTO.class);
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/IndItemCollector.java
@@ -71,10 +71,10 @@
                result = atomItemHandler.queryValue(indItem.getId());
                break;
            case DER:
                result = derItemHandler.queryValue(itemNo, startTime, endTime);
                result = derItemHandler.queryValue(indItem.getId(), startTime, endTime);
                break;
            case CAL:
                result = calItemHandler.queryValue(itemNo, startTime, endTime);
                result = calItemHandler.queryValue(indItem.getId(), startTime, endTime);
                break;
            default:
                break;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java
@@ -139,7 +139,9 @@
                whereSql.append(indItem.getTimeLabel());
                whereSql.append(" <= '");
                whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                whereSql.append("' AND >= '");
                whereSql.append("' AND ");
                whereSql.append(indItem.getTimeLabel());
                whereSql.append(" >= '");
                calendar.add(Calendar.DAY_OF_YEAR, -7);
                whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                whereSql.append("'");
@@ -148,7 +150,9 @@
                whereSql.append(indItem.getTimeLabel());
                whereSql.append(" <= '");
                whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                whereSql.append("' AND >= '");
                whereSql.append("' AND ");
                whereSql.append(indItem.getTimeLabel());
                whereSql.append(" >= '");
                calendar.add(Calendar.DAY_OF_YEAR, -30);
                whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_DATE));
                whereSql.append("'");
@@ -183,10 +187,13 @@
                whereSql.append("'");
                break;
            case THIS_YEAR_MONTH:
                calendar.set(Calendar.MONTH, 11);
                whereSql.append(indItem.getTimeLabel());
                whereSql.append(" <= '");
                calendar.set(Calendar.MONTH, 11);
                whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_MON));
                whereSql.append("' AND >= '");
                whereSql.append("' AND ");
                whereSql.append(indItem.getTimeLabel());
                whereSql.append(" >= '");
                calendar.set(Calendar.MONTH, 0);
                whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_MON));
                whereSql.append("'");
@@ -248,12 +255,18 @@
        // 拼接SELECT
        StringBuilder selectSql = new StringBuilder();
        selectSql.append(indItem.getDimension());
        selectSql.append(", ");
        selectSql.append(result.getSelectSql());
        selectSql.append(", ");
        selectSql.append(indItem.getTimeLabel());
        selectSql.append(" data_time");
        if (StringUtils.isNotBlank(indItem.getDimension()) && StringUtils.isNotBlank(result.getIndItemAtom().getStatFunc())) {
            selectSql.append(indItem.getDimension());
            selectSql.append(", ");
            selectSql.append(result.getSelectSql());
        } else if (StringUtils.isBlank(indItem.getDimension()) && StringUtils.isNotBlank(result.getIndItemAtom().getStatFunc())) {
            selectSql.append(result.getSelectSql());
        } else {
            selectSql.append(result.getSelectSql());
            selectSql.append(", ");
            selectSql.append(indItem.getTimeLabel());
            selectSql.append(" data_time");
        }
        result.setSelectSql(selectSql.toString());
        // 拼接WHERE
@@ -261,22 +274,28 @@
        whereSql.append(" ");
        whereSql.append(indItem.getTimeLabel());
        whereSql.append(" <= '");
        whereSql.append(DateUtils.format(endTime, PATTERN_MON));
        whereSql.append("' AND >= '");
        whereSql.append(DateUtils.format(startTime, PATTERN_MON));
        whereSql.append(DateUtils.format(endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
        whereSql.append("' AND ");
        whereSql.append(indItem.getTimeLabel());
        whereSql.append(" >= '");
        whereSql.append(DateUtils.format(startTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
        whereSql.append("'");
        result.setWhereSql(whereSql.toString());
        // 拼接GROUP
        StringBuilder groupSql = new StringBuilder();
        groupSql.append(" GROUP BY ");
        groupSql.append(indItem.getDimension());
        if (StringUtils.isNotBlank(indItem.getDimension())) {
            groupSql.append(indItem.getDimension());
        }
        result.setGroupSql(groupSql.toString());
        // 拼接ORDER
        StringBuilder orderBySql = new StringBuilder();
        orderBySql.append(indItem.getTimeLabel());
        result.setOrderBySql(orderBySql.toString());
        if (StringUtils.isNotBlank(indItem.getDimension()) && indItem.getDimension().equals(indItem.getTimeLabel())) {
            orderBySql.append(indItem.getTimeLabel());
            result.setOrderBySql(orderBySql.toString());
        }
        return result;
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/IndItemService.java
@@ -8,6 +8,7 @@
import com.iailab.module.data.ind.item.vo.IndItemSaveReqVO;
import java.util.List;
import java.util.Set;
/**
 * @author PanZhibao
@@ -29,4 +30,6 @@
    void delete(String id);
    List<IndItemRespVO> getList(IndItemPageReqVO reqVO);
    List<IndItemEntity> getInfoByIds(Set<String> indIds);
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/service/impl/IndItemServiceImpl.java
@@ -23,6 +23,7 @@
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.UUID;
/**
@@ -127,4 +128,9 @@
    public List<IndItemRespVO> getList(IndItemPageReqVO reqVO) {
        return baseDao.getItemList(reqVO);
    }
    @Override
    public List<IndItemEntity> getInfoByIds(Set<String> indIds) {
        return baseDao.selectBatchIds(indIds);
    }
}