package com.klp.service; import com.klp.common.core.domain.PageQuery; import com.klp.common.core.page.TableDataInfo; import com.klp.domain.bo.WmsProcessSpecVersionBo; import com.klp.domain.vo.WmsProcessSpecVersionVo; import java.math.BigDecimal; import java.util.Collection; import java.util.List; /** * 规程版本Service * * @author klp */ public interface IWmsProcessSpecVersionService { WmsProcessSpecVersionVo queryById(Long versionId); TableDataInfo queryPageList(WmsProcessSpecVersionBo bo, PageQuery pageQuery); List queryList(WmsProcessSpecVersionBo bo); Boolean insertByBo(WmsProcessSpecVersionBo bo); Boolean updateByBo(WmsProcessSpecVersionBo bo); Boolean deleteWithValidByIds(Collection ids, Boolean isValid); /** * 将指定版本设为当前规程下唯一生效版本 */ Boolean activateVersion(Long versionId); /** * 根据L2实绩参数匹配最佳规程版本。 * 对所有 isActive=1 的版本评分(命中条件最多者胜出),返回匹配的版本VO(含specCode/specName),无匹配返回null。 * lineId 不为空时,只在属于该产线的规程版本中匹配。 */ WmsProcessSpecVersionVo matchBestVersion(BigDecimal entryThick, BigDecimal exitThick, BigDecimal entryWidth, BigDecimal exitWidth, String grade, Long lineId); /** * 加载所有生效版本并批量填充 specCode/specName,供分页列表一次性预加载使用。 * lineId 不为空时只返回属于该产线的版本。 */ List queryActiveVersionsEnriched(Long lineId); /** * 加载全部版本(含非生效版本)并批量填充 specCode/specName/lineId。 * 用于展示已绑定规程信息,避免钢卷绑定旧版本后查不到名称。 */ List queryAllVersionsEnriched(); }