package com.jwipc.order.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jwipc.order.entity.ShortagePlan;
import com.jwipc.order.model.po.ShortagePlanReleasePO;
import com.jwipc.order.model.po.ShortagePlanPO;
import com.jwipc.order.model.query.BasicPlanQuery;

import java.util.List;

/**
 * <p>
 * 欠料标准预测计划 服务类
 * </p>
 *
 * @author swq
 * @since 2024-04-28
 */
public interface IShortagePlanService extends IService<ShortagePlan> {
    /**
     * 查询列表数据
     * @param dbPage
     * @param query
     * @return
     */
    List<ShortagePlanPO> selectListByPage(Page<ShortagePlan> dbPage, BasicPlanQuery query);

    long findMaxVersion();

    /**
     * 根据当前版本查询上个版本
     *
     * @param version 当前版本
     * @return 上个版本
     */
    Long findPreviousVersion(Long version);

    /**
     * 获取待发布的计划数据
     *
     * @param toPage 分页条件
     * @param query 查询条件
     * @return 结果
     */
    List<ShortagePlanReleasePO> findWaitReleaseData(Page<ShortagePlanReleasePO> toPage, BasicPlanQuery query);


    /**
     * 获取计划待发布总量，已发布总量和未发布总量
     *
     * @param query 查询条件
     * @return 结果
     */
    ShortagePlanReleasePO findPlanSituation(BasicPlanQuery query);
    /**
     * 获取最新的流水号
     *
     * @param excludePlanId 排除的计划
     */
    String findNewSerialNumber(Long excludePlanId);
}
