ScheduleRuleService.java 1.63 KB
package com.bsth.service.schedule.rules;

import com.bsth.entity.schedule.SchedulePlan;
import com.bsth.entity.schedule.SchedulePlanInfo;
import com.bsth.entity.schedule.temp.SchedulePlanRuleResult;
import com.bsth.service.schedule.rules.rerun.RerunRule_input;

import java.util.Date;
import java.util.List;

/**
 * 排班计划使用的service。
 */
public interface ScheduleRuleService {

    // TODO:之后所有排班使用的方法汇总到这里

    /**
     * 查找最近的历史排班记录
     * @param xlid 线路id
     * @param from 开始时间
     * @return
     */
    List<SchedulePlanRuleResult> findLastByXl(String xlid, Date from);

    /**
     * 生成排班计划。
     * @param schedulePlan 计划主表
     * @param schedulePlanInfos 计划明细表
     */
    void generateSchedulePlan(SchedulePlan schedulePlan, List<SchedulePlanInfo> schedulePlanInfos);

    /**
     * 生成排班规则结果。
     * @param schedulePlanRuleResults
     */
    void generateRuleResult(List<SchedulePlanRuleResult> schedulePlanRuleResults);

    /**
     * 删除排班计划。
     * @param id 排班计划id
     */
    void deleteSchedulePlanAll(Long id);

    /**
     * 删除指定时间范围的排班明细。
     * @param xlbm 线路编码
     * @param datefrom 开始日期
     * @param dateto 结束日期
     */
    void deleteSchedulePlanInfo(String xlbm, Date datefrom, Date dateto);

    /**
     * 查找线路的套跑规则,并封装成规则输入对象。
     * @param xlid
     * @return
     */
    List<RerunRule_input> findRerunrule(Integer xlid);

}