package com.mes.edgstoragecage.service.impl;
import cn.hutool.core.collection.CollectionUtil;
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.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
*
* 服务实现类
*
*
* @author zhoush
* @since 2024-04-07
*/
@Slf4j
@Service
public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl implements EdgStorageCageService {
@Resource
EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
@Resource
UpPattenUsageMapper upPattenUsageMapper;
@Override
public EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag) {
List emptyList = this.selectJoinList(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)
.eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
.last("order by abs(t.slot - " + currentSlot + ") asc limit 2")
);
if (flag && CollectionUtil.isNotEmpty(emptyList)) {
return emptyList.get(0);
}
if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
return null;
}
return emptyList.get(0);
}
/**
* 查询笼内出片任务 按钢化版图号+版图内序号
*
* @return
*/
@Override
public List