| | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.lang.Assert; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer; |
| | |
| | | .eq(BigStorageCage::getEnableState, Const.SLOT_ON)); |
| | | //定义10个格子为阈值 |
| | | if (count <= 10) { |
| | | log.info("笼子超过阈值,执行4号笼子调度逻辑"); |
| | | //获取序号为1的格子 将格子内的所有玻璃送到对应的笼子 |
| | | BigStorageCage bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() |
| | | .eq(BigStorageCage::getRemainWidth, slotWidth) |
| | |
| | | .in(BigStorageCage::getDeviceId, Arrays.asList(5, 6)) |
| | | .orderByAsc(BigStorageCage::getDeviceId).orderByAsc(BigStorageCage::getSlot) |
| | | .last("limit 1")); |
| | | |
| | | list = bigStorageCageDetailsService.queryNeedDispatch(); |
| | | computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task", |
| | | bigStorageCage.getSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH); |
| | | List<Integer> slotList = new ArrayList<>(); |
| | | slotList.add(bigStorageCage.getSlot()); |
| | | slotList.add(list.get(0).getSlot()); |
| | | updateSlotRemainBySlots(slotList); |
| | | return; |
| | | if (null != bigStorageCage) { |
| | | list = bigStorageCageDetailsService.queryNeedDispatch(); |
| | | if (CollectionUtil.isNotEmpty(list)) { |
| | | computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task", |
| | | bigStorageCage.getSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH); |
| | | List<Integer> slotList = new ArrayList<>(); |
| | | slotList.add(bigStorageCage.getSlot()); |
| | | slotList.add(list.get(0).getSlot()); |
| | | updateSlotRemainBySlots(slotList); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | //生成调度任务按照组号组序由1开始依次往5号笼子送小片 |
| | | BigStorageSlotDTO slotDTO = bigStorageCageDetailsService.queryNeedDispatchSlotBySequence(); |