package com.prolog.rdc.tms.service.basicData;

import com.prolog.framework.common.message.RestMessage;
import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.basicData.StartingStationViewDTO;
import com.prolog.rdc.tms.model.dto.basicData.StationDistanceDTO;
import com.prolog.rdc.tms.model.dto.basicData.StationPageDTO;
import com.prolog.rdc.tms.model.dto.basicData.StationViewDTO;
import com.prolog.rdc.tms.model.vo.basicData.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 
 *
 * 基础数据-站点资料服务层
 *
 * @className :ItemService
 * @author :lhb
 * @creationTime :2023/03/25
 * @description :
 *
 * @modifier :lhb
 * @modifyTime :2023/03/25
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
public interface StationService {

	/**
	 * 站点资料分页查询
	 * 
	 * @param vo
	 * @return
	 */
	Page<StationPageDTO> pageStationData(StationQueryVO vo);

	/**
	 * 站点资料弹窗
	 *
	 * @param vo
	 * @return
	 */
	Page<StationPageDTO> popupStationData(StationQueryVO vo);

	/**
	 * 根据行政区查询站点资料
	 *
	 * @param vo
	 * @return
	 */
	StationPageDTO queryStationByAdministrativeData(StationQueryByAreasVO vo);

	/**
	 * 站点资料查看
	 *
	 * @param vo
	 * @return
	 */
	StationViewDTO viewStationData(StationQueryVO vo);

	/**
	 * 站点资料查看
	 *
	 * @param vo
	 * @return
	 */
	StationViewDTO viewStationByNameData(StationQueryVO vo);

	/**
	 * 始发站点资料查询
	 *
	 * @param vo
	 * @return
	 */
	List<StartingStationViewDTO> queryStartingStationData(StationQueryVO vo);

	/**
	 * 站点资料新增
	 *
	 * @param vo
	 * @return
	 */
	void addStationData(StationAddVO vo);

	/**
	 * 站点资料修改
	 *
	 * @param vo
	 * @return
	 */
	void updateStationData(StationUpdateVO vo);

	/**
	 * 停用
	 *
	 * @param ids
	 */
	void disableData(List<Long> ids);

	/**
	 * 启用
	 *
	 * @param ids
	 */
	void activeData(List<Long> ids);

	/**
	 * 站点距离查询
	 *
	 * @param vos
	 */
	List<StationDistanceDTO> queryStationDistanceData(List<StationDistanceVO> vos);

}
