ZengTao
4 天以前 21a76af55c4da5f1999e9dd24690b2449a7a18a7
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -1,29 +1,24 @@
package com.mes.edgstoragecage.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.damage.entity.Damage;
import com.mes.damage.service.DamageService;
import com.mes.edgstoragecage.entity.EdgStorageCage;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO;
import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO;
import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
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.HashMap;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -37,16 +32,13 @@
@Service
public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
    @Autowired
    @Resource
    EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
    @Autowired
    UpPattenUsageMapper upPattenUsageMapper;
    @Autowired
    DamageService damageService;
    @Override
    public EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag) {
    public EdgStorageCage selectNearestEmpty(Integer currentSlot, int deviceId, boolean flag) {
        List<EdgStorageCage> emptyList = this.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
                .selectAll(EdgStorageCage.class)
                .leftJoin(EdgStorageCageDetails.class, on -> on
@@ -54,6 +46,7 @@
                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
                .isNull(EdgStorageCageDetails::getSlot)
                .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
                .eq(EdgStorageCage::getDeviceId, deviceId)
                .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
        );
        if (flag && CollectionUtil.isNotEmpty(emptyList)) {
@@ -72,11 +65,17 @@
     */
    @Override
    public List<EdgStorageCageVO> selectEdgStorageCagesByDeviceId(int deviceId) {
        List<EdgStorageCageVO> storageCageVOS = this.selectJoinList(EdgStorageCageVO.class, new MPJLambdaWrapper<EdgStorageCage>().leftJoin(EdgStorageCageDetails.class, on -> on
                .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
                .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
                .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
                .eq(EdgStorageCage::getDeviceId, deviceId));
        List<EdgStorageCageVO> storageCageVOS = this.selectJoinList(EdgStorageCageVO.class, new MPJLambdaWrapper<EdgStorageCage>()
                .selectAll(EdgStorageCage.class)
                .selectCollection(EdgStorageCageDetails.class, EdgStorageCageVO::getDetails)
                .leftJoin(EdgStorageCageDetails.class, on -> on
                        .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
                .eq(EdgStorageCage::getDeviceId, deviceId)
                .orderByAsc(EdgStorageCage::getSlot)
                .orderByAsc(EdgStorageCageDetails::getId)
        );
        return storageCageVOS;
    }
@@ -147,5 +146,8 @@
        return baseMapper.getEdgStorageCageBySize(deviceId, width, height, slot);
    }
    @Override
    public void resetSlotRemainWidth(List<EdgSlotRemainVO> edgSlotRemainVOS) {
        baseMapper.resetSlotRemainWidth(edgSlotRemainVOS);
    }
}