package com.cf.imes.module.plan.service.customplateno;

import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
import com.cf.imes.module.plan.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.plan.service.customplateno.vo.CustomPlateNoGenerateConfigVO;

/**
 * 自定义板编号生成服务
 *
 * @author Gqr
 * @since 2024/11/15 10:18
 */
public interface CustomPlateNoGenerateService {
    /**
     * 获取自定义板编号生成配置
     *
     * @param orderId
     * @return
     */
    CustomPlateNoGenerateConfigVO getPlateNoGenerateConfig(Long orderId);

    /**
     * 生成自定义板编号
     *
     * @param orderId        订单号
     * @param plateDO        板件
     * @param generateConfig 板编号生成配置
     * @param isFirstPlate   是否导入的第一块
     * @return 生成过程中的配置
     */
    void generateCustomPlateNo(Long orderId, PlateDO plateDO, CustomPlateNoGenerateConfigVO generateConfig, boolean isFirstPlate);

    /**
     * 生成结束后，更新板编号配置到对应订单
     *
     * @param generateConfig
     * @param orderDO
     */
    void updateCustomPlateNoGenerateConfig(CustomPlateNoGenerateConfigVO generateConfig, OrderDO orderDO);
}
