TTInfoDetailService.java 3.22 KB
package com.bsth.service.schedule;

import com.bsth.entity.schedule.TTInfoDetail;
import com.bsth.service.schedule.datatools.TTInfoDetailForEdit;
import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData;
import com.bsth.service.schedule.exception.ScheduleException;
import com.bsth.service.schedule.timetable.TimetableExcelFormatType;
import com.bsth.service.schedule.utils.DataToolsFile;
import com.bsth.service.schedule.utils.DataToolsFileType;

import java.util.List;
import java.util.Map;

/**
 * Created by xu on 16/7/2.
 */
public interface TTInfoDetailService extends BService<TTInfoDetail, Long> {

    /**
     * 获取待编辑的数据。
     * @param xlid 线路id
     * @param ttid 时刻表id
     * @param maxfcno 最大发车顺序号
     * @return
     */
    TTInfoDetailForEdit.EditInfo getEditInfo(Integer xlid, Long ttid, Long maxfcno) throws ScheduleException;

    /**
     * export动态时刻表。
     * @param dtInfos
     * @return
     * @throws ScheduleException
     */
    DataToolsFile exportDynamicTTinfo(TTinfoDetailDynamicData.DTInfos dtInfos, DataToolsFileType type) throws ScheduleException;

    /**
     * export时刻表预览视图信息。
     * @param ttInfoId 时刻表Id
     * @return
     * @throws ScheduleException
     */
    DataToolsFile exportPvInfo(Long ttInfoId) throws ScheduleException;

    /**
     * 添加路牌(默认添加一个班次)。
     * @param ttInfoId 时刻表Id
     * @param lpId 路牌Id
     */
    void addLp(Long ttInfoId, Long lpId);

    /**
     * 删除指定路牌的所有班次。
     * @param ttInfoId 时刻表Id
     * @param lpId 路牌Id
     */
    void removeBcByLp(Long ttInfoId, Long lpId);

    /**
     * 将路牌A的班次和路牌B的班次调换。
     * @param ttInfoId 时刻表Id
     * @param lpAId 路牌AId
     * @param lpBId 路牌BId
     */
    void switchBcByLp(Long ttInfoId, Long lpAId, Long lpBId);

    /**
     * 获取时刻表最大发车顺序号
     * @param xlid 线路id
     * @param ttinfoid 时刻表id
     * @return
     */
    Long findMaxFcno(Integer xlid, Long ttinfoid);

    /**
     * 验证sheet(以后放到规则引擎里去做)。
     * @param filename excel文件全路径名
     * @param sheetname sheet名字
     * @param lineid 线路id
     * @param lineversion 线路版本
     * @param timetableExcelFormatType 时刻表excel格式类型
     */
    void validateExcelSheet(
            String filename,
            String sheetname,
            Integer lineid,
            String linename,
            Integer lineversion,
            TimetableExcelFormatType timetableExcelFormatType) throws ScheduleException;

    /**
     * 验证关联的线路标准信息(以后放到规则引擎里去做)。
     * @param lineinfoid 线路id
     */
    void validateAssoLineInfo(Integer lineinfoid) throws ScheduleException;

    // TODO:这个方法可以用通用方法解决,以后改
    List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId);

    Map<String, Object> skbDetailMxSave(Map<String, Object> map);

    List<Map<String, Object>> findZdAndTcc(int lineid, int xldir, int lineversion);
}