package org.jeecg.modules.checkData.equipmentCheckData.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.checkData.equipmentCheckData.dto.MovementRecordsMasterDTO;
import org.jeecg.modules.checkData.equipmentCheckData.entity.MovementRecordsMaster;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.checkData.equipmentCheckData.vo.MovementRecordsMasterVO;

import java.math.BigDecimal;

/**
 * <p>
 * 动静态几何尺寸数据主表	 服务类
 * </p>
 *
 * @author hkl
 * @since 2023-07-11
 */
public interface IMovementRecordsMasterService extends IService<MovementRecordsMaster> {
    /**
     * 动静态几何尺寸列表-分页列表查询
     *
     * @param pageData
     * @param dto
     * @return
     */
    Page<MovementRecordsMasterVO> queryPageList(Page<MovementRecordsMasterVO> pageData, MovementRecordsMasterDTO dto);

    /**
     * 统计钢轨单元数量
     *
     * @param lightRailId
     * @param lineAliasId
     * @param startingMileage
     * @param endMileage
     * @return
     */
    Integer getRailNums(String sectionId, String lightRailId, String lineAliasId, BigDecimal startingMileage, BigDecimal endMileage);

    /**
     * 统计曲线数量
     *
     * @param sectionId       区间id
     * @param lightRailId     线路id
     * @param lineAliasId     线别id
     * @param startingMileage 开始里程
     * @param endMileage      结束里程
     * @return
     */
    Integer getCurveNums(String sectionId, String lightRailId, String lineAliasId, BigDecimal startingMileage, BigDecimal endMileage);
    /**
     * 统计竖曲线数量
     *
     * @param sectionId       区间id
     * @param lightRailId     线路id
     * @param lineAliasId     线别id
     * @param startingMileage 开始里程
     * @param endMileage      结束里程
     * @return
     */
    Integer getVerticalCurveNum(String sectionId, String lightRailId, String lineAliasId, BigDecimal startingMileage, BigDecimal endMileage);
    /**
     * 统计道岔数量
     *
     * @param sectionId       区间id
     * @param lightRailId     线路id
     * @param lineAliasId     线别id
     * @param startingMileage 开始里程
     * @param endMileage      结束里程
     * @return
     */
    Integer getSwitchNum(String sectionId, String lightRailId, String lineAliasId, BigDecimal startingMileage, BigDecimal endMileage);
}
