package com.mes.bigstorage.service; import com.baomidou.mybatisplus.extension.service.IService; import com.mes.base.entity.vo.BigStorageVO; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.entity.dto.*; import com.mes.bigstorage.entity.vo.BigStorageQueryVO; import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO; import com.mes.glassinfo.entity.GlassInfo; import com.mes.pp.entity.OptimizeProject; import java.util.List; import java.util.Map; /** *

* 服务类 *

* * @author zhoush * @since 2024-03-27 */ public interface BigStorageCageDetailsService extends IService { List selectFeedTask(); List selectOutTask(); double selectGetBoard(String plcFeedReqLine); void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails); void damageBigStorageCageDetails(String glassId, int status); List selectBigStorageCageDetails(String glassId); void insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails); void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails); void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails); /** * 查询进片格子信息:优先工程最少、剩余格子最多的笼子内的格子 * @param EngineerId * @param glassId * @param thickness * @return */ BigStorageDTO queryTargetSlot(String EngineerId, String glassId, int thickness); /** * 按照版图信息获取进片笼子信息 * * @param glassInfo */ BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo); /** * 指定工程的版图是否到齐 * @param engineerId * @param temperingLayoutId * @return */ List temperingIsAllByTemperingLayoutId(String engineerId, Integer temperingLayoutId); /** * 获取钢化版图已经到齐的工程号及版图id * * @return */ List temperingIsAll(); /** * 获取每个钢化版图占用的格子数量 * * @return */ List queryTemperingOccupySlot(); /** * 获取版图每个格子的最大最小序号 * * @param engineerId * @param temperingLayoutId * @return */ List queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId); boolean temperingGlass(String temperingLayoutId, String engineerId, String temperingFeedSequence); List selectTemperingGlass(int isTempering); void updateBySlot(List glassList, int state); String temperingSwitch(Boolean flag); boolean appointTemperingEngineerId(String engineerId); List queryIsAllNeedDispatchVirtualSlot(List deviceIdList); List dispatchBigStorageGlassInfo(BigStorageRelationDTO bigStorageRelationDTO); String dispatchSwitch(Boolean flag); /** * 按照工程信息及钢化id(炉号)获取缺少的玻璃信息 * * @param bigStorageQueryVO * @return */ List queryLackGlassInfo(BigStorageQueryVO bigStorageQueryVO); String bigStorageGlassDamageByGlassId(String glassId); /** * 按照格子号更新详情表内的格子对应的设备id * * @param slotList */ void updateDeviceIdBySlot(List slotList); /** * 按照工程信息及钢化id(炉号)获取实际笼内的玻璃信息 * * @param bigStorageQueryVO * @return */ List queryRealGlassInfo(BigStorageQueryVO bigStorageQueryVO); Map> querybigStorageCageDetail(); /** * 取消钢化任务 * * @return */ boolean cancelTemperingTask(); /** * 查询工程待排序信息 * @return */ List queryEngineer(); /** * 查询4号笼可往5-6号笼不满格却满足个别的调度 * @return */ List queryNeedDispatch(); BigStorageSlotDTO queryNeedDispatchSlotBySequence(); /** * 查询钢化排产顺序 * @return OptimizeProject 钢化排产顺序 */ List queryTemperingOrder(); }