package cn.estsh.i3plus.ext.mes.api.base.jx;

import cn.estsh.i3plus.ext.mes.pojo.bean.MesTimeSegmentStatistics;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;

import java.util.List;

/**
 * @Description : 分时段统计方式
 * @Reference :
 * @Author : wangjie
 * @CreateDate : 2023/02/06 13:42
 * @Modify:
 **/
public interface IJxTimeSegmentStatisticsService {

    /**
     * 查询
     */
    ListPager<MesTimeSegmentStatistics> queryTimeSegmentStatisticsByPager(MesTimeSegmentStatistics timeSegmentStatistics, Pager pager);

    /**
     * 新增
     */
    void insertTimeSegmentStatistics(MesTimeSegmentStatistics timeSegmentStatistics);

    /**
     * 修改
     */
    void updateTimeSegmentStatistics(MesTimeSegmentStatistics timeSegmentStatistics);

    /**
     * 禁用
     */
    void doDisable(Long[] ids, String userName);

    /**
     * 启用
     */
    void doEnable(Long[] ids, String organizeCode, String userName);

    /**
     * 删除
     */
    void deleteByIds(Long[] ids, String userName);

    /**
     * 检查时间格式
     */
    Boolean checkTimeFormat(String time);

    /**
     * 检查开始结束时间有效性
     */
    Boolean checkTimeStartBeforeEnd(String startTime, String endTime);

    /**
     * 开始结束时间与已存在数据进行比较
     */
    MesTimeSegmentStatistics checkTimeCompareToDataList(List<MesTimeSegmentStatistics> timeSegmentStatisticsList, MesTimeSegmentStatistics timeSegmentStatistics);

    /**
     * 验证开始结束时间间隔分钟
     */
    Boolean checkTimeLengthIsValid(MesTimeSegmentStatistics timeSegmentStatistics, String today);

    /**
     * 拼接代码
     */
    String getTimeSegmentCode(MesTimeSegmentStatistics timeSegmentStatistics);

    /**
     * 获取生产线班次分时配置信息
     */
    List<MesTimeSegmentStatistics> getTimeSegmentStatisticsList(String organizeCode, String workCenterCode, String shiftCode);

}
