package com.mes.edgstoragecage.service.impl;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.common.config.Const;
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
import com.mes.edgstoragecage.service.EdgStorageCageService;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
*
* 服务实现类
*
*
* @author zhoush
* @since 2024-04-07
*/
@Slf4j
@Service
public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl implements EdgStorageCageService {
@Autowired
EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
@Autowired
UpPattenUsageMapper upPattenUsageMapper;
@Override
public EdgStorageCage selectNearestEmpty(int currentSlot) {
return this.selectJoinOne(EdgStorageCage.class,new MPJLambdaWrapper()
.selectAll(EdgStorageCage.class)
.leftJoin(EdgStorageCageDetails.class,on->on
.eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)
.eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
.isNull(EdgStorageCageDetails::getSlot)
.last("order by abs(slot - 4) asc limit 1")
);
}
/**
* 查询笼内空格
* @return
*/
@Override
public List selectCacheEmpty(){
return baseMapper.selectJoinList(EdgStorageCage.class,new MPJLambdaWrapper()
.selectAll(EdgStorageCage.class)
.leftJoin(EdgStorageCageDetails.class,on->on
.eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)
.eq(EdgStorageCageDetails::getState,"100"))
.isNull(EdgStorageCageDetails::getSlot)
.last("order by abs(slot - 4) asc")
);
}
/**
* 查询笼内出片任务 按钢化版图号+版图内序号
* @return
*/
@Override
public List