package com.iailab.module.data.ind.value.dao;

import com.iailab.framework.common.pojo.PageResult;
import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
import com.iailab.module.data.ind.item.vo.IndItemValueVO;
import com.iailab.module.data.ind.value.dto.QuerySourceValueDTO;
import com.iailab.module.data.ind.value.entity.IndItemValueEntity;
import com.iailab.module.data.ind.value.vo.IndItemValuePageReqVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年09月11日
 */
@TenantDS
@Mapper
public interface IndItemValueDao extends BaseMapperX<IndItemValueEntity> {

    default PageResult<IndItemValueEntity> selectPage(IndItemValuePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<IndItemValueEntity>()
                .eq(IndItemValueEntity::getItemNo, reqVO.getItemNo())
                .geIfPresent(IndItemValueEntity::getDataTime, reqVO.getStartTime())
                .leIfPresent(IndItemValueEntity::getDataTime, reqVO.getEndTime())
                .orderByDesc(IndItemValueEntity::getDataTime));
    }

    List<IndItemValueVO> getSourceValue(QuerySourceValueDTO dto);
}