wangfei
2025-11-24 e08c30f6a36a15be4e019b5e0d631f32f6d06029
Merge branch 'master' of http://10.153.19.25:10105/r/YiWuProject
11个文件已修改
3个文件已添加
331 ■■■■ 已修改文件
UI-Project/src/views/ReportWork/reportWork.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipment.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipmenthree.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/hollow/hollowequipmenttwo.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/dto/DamageDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/ProcessCardReport.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/ReportWork/reportWork.vue
@@ -36,15 +36,15 @@
        <el-table height="700" ref="table" :data="reportData"
          :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
          <el-table-column prop="teamsGroupsName" align="center" :label="$t('reportmanage.reporteam')"
            min-width="135" />
            min-width="100" />
          <el-table-column prop="deviceName" align="center" :label="$t('reportmanage.reportingequipment')"
            min-width="156" />
            min-width="100" />
          <el-table-column prop="line" align="center" :label="$t('reportmanage.line')" min-width="120" />
          <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="120" />
          <el-table-column prop="glassId" align="center" :label="$t('reportmanage.glassID')" min-width="130" />
          <el-table-column prop="engineerId" align="center" :label="$t('reportmanage.projectnumber')" min-width="120" />
          <el-table-column prop="workingProcedure" align="center" :label="$t('reportmanage.process')" min-width="100" />
          <el-table-column prop="glassId" align="center" :label="$t('reportmanage.glassID')" min-width="100" />
          <el-table-column prop="engineerId" align="center" :label="$t('reportmanage.projectnumber')" min-width="100" />
          <el-table-column prop="temperingLayoutId" align="center" :label="$t('reportmanage.layoutID')"
            min-width="120" />
            min-width="100" />
          <el-table-column prop="formattedCreateTime" align="center" :label="$t('reportmanage.productiontime')"
            min-width="230" />
          <el-table-column
@@ -71,10 +71,12 @@
        </el-tag>  
      </template> 
          </el-table-column>
          <el-table-column prop="processId" align="center" :label="$t('reportmanage.processcards')" min-width="140" />
          <el-table-column prop="orderNumber" align="center" :label="$t('reportmanage.number')" min-width="120" />
          <el-table-column prop="technologyNumber" align="center" :label="$t('reportmanage.layer')" min-width="120" />
          <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="180">
          <el-table-column prop="processId" align="center" :label="$t('reportmanage.processcards')" min-width="100" />
          <el-table-column prop="orderNumber" align="center" :label="$t('reportmanage.number')" min-width="100" />
          <el-table-column prop="technologyNumber" align="center" :label="$t('reportmanage.layer')" min-width="50" />
          <el-table-column prop="width" align="center" :label="$t('processCard.width')" min-width="70" />
          <el-table-column prop="height" align="center" :label="$t('processCard.height')" min-width="70" />
          <el-table-column prop="breakageType" align="center" :label="$t('reportmanage.typebreakage')" min-width="100">
            <template #default="{ row }">
              <el-select v-model="row.breakageType" filterable :placeholder="$t('reportmanage.pcausebreakage')" :disabled="selectedType"
                clearable @input="handleInputChangea($event, row.id)">
UI-Project/src/views/hollow/hollowequipment.vue
@@ -1885,7 +1885,9 @@
const blinde = ref(false)
const labelPrint = ref(false);
const handleBinde = (flowCard) => {
  const summary = flowCard.reduce((map, item) => {
  const summary = flowCard
        .filter(item => item.isPair !== 0)
        .reduce((map, item) => {
        const key = `${item.hollowSequence}`;
        if (!map[key]) {
          map[key] = {
@@ -1898,6 +1900,7 @@
        return map;
      }, {});
      listFlow.value = Object.values(summary);
      console.log(listFlow.value)
  blinde.value = true;
  getTags();
  hiprint.init();
UI-Project/src/views/hollow/hollowequipmenthree.vue
@@ -1144,7 +1144,9 @@
const blinde = ref(false)
const labelPrint = ref(false);
const handleBinde = (flowCard) => {
  const summary = flowCard.reduce((map, item) => {
  const summary = flowCard
        .filter(item => item.isPair !== 0)
        .reduce((map, item) => {
        const key = `${item.hollowSequence}`;
        if (!map[key]) {
          map[key] = {
UI-Project/src/views/hollow/hollowequipmenttwo.vue
@@ -681,7 +681,9 @@
  blindc.value = true;
};
const handleBinde = (flowCard) => {
  const summary = flowCard.reduce((map, item) => {
  const summary = flowCard
        .filter(item => item.isPair !== 0)
        .reduce((map, item) => {
        const key = `${item.hollowSequence}`;
        if (!map[key]) {
          map[key] = {
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mes.damage.entity.Damage;
import com.mes.damage.entity.DamagePrint;
import com.mes.damage.entity.dto.DamageDTO;
import com.mes.damage.service.DamageService;
import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
import com.mes.utils.Result;
@@ -34,7 +35,7 @@
    @ApiOperation("报工数据查询")
    @PostMapping("/selectDamage")
    public Result<Page<Damage>> selectDamage(@RequestBody Map map) {
    public Result<Page<DamageDTO>> selectDamage(@RequestBody Map map) {
        String startTime = map.get("startTime").toString();
        String endTime = map.get("endTime").toString();
        int type = Integer.parseInt(map.get("type").toString());
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/dto/DamageDTO.java
New file
@@ -0,0 +1,29 @@
package com.mes.damage.entity.dto;
import com.mes.damage.entity.Damage;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * <p>
 *
 * </p>
 *
 * @author wu
 * @since 2024-06-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class DamageDTO extends Damage {
    /**
     * 宽
     */
    private Integer width;
    /**
     * 宽
     */
    private Integer height;
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.damage.entity.Damage;
import com.mes.damage.entity.dto.DamageDTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -19,4 +20,12 @@
public interface DamageMapper extends MPJBaseMapper<Damage> {
    List<Damage> queryUnTempByFlowCardId(@Param("flowCardId") String flowCardId);
    List<DamageDTO> selectDamageList(
            @Param("startTime") String startTime,
            @Param("endTime") String endTime,
            @Param("type") int type,
            @Param("status") int status,
            @Param("workingProcedure") String workingProcedure
    );
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -4,6 +4,7 @@
import com.github.yulichang.base.MPJBaseService;
import com.mes.damage.entity.Damage;
import com.mes.damage.entity.DamagePrint;
import com.mes.damage.entity.dto.DamageDTO;
import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
import com.mes.pp.entity.ReportingWork;
import com.mes.pp.entity.ReportingWorkDetail;
@@ -21,7 +22,7 @@
 */
public interface DamageService extends MPJBaseService<Damage> {
    Page<Damage> selectDamage(
    Page<DamageDTO> selectDamage(
            String startTime,
            String endTime,
            int type,
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -11,6 +12,7 @@
import com.mes.common.config.Const;
import com.mes.damage.entity.Damage;
import com.mes.damage.entity.DamagePrint;
import com.mes.damage.entity.dto.DamageDTO;
import com.mes.damage.mapper.DamageMapper;
import com.mes.damage.service.DamageService;
import com.mes.glassinfo.entity.GlassInfo;
@@ -36,6 +38,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -67,17 +70,18 @@
    /**
     * 分页查询损坏记录
     * @param startTime 开始时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param endTime 结束时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param type 损坏类型(0表示查询所有类型)
     * @param status 状态(0表示查询所有状态)
     *
     * @param startTime        开始时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param endTime          结束时间(格式:yyyy-MM-dd HH:mm:ss)
     * @param type             损坏类型(0表示查询所有类型)
     * @param status           状态(0表示查询所有状态)
     * @param workingProcedure 工序("0"表示查询所有工序)
     * @param pageNum 页码(从1开始)
     * @param pageSize 每页条数
     * @param pageNum          页码(从1开始)
     * @param pageSize         每页条数
     * @return 分页后的损坏记录列表
     */
    @Override
    public Page<Damage> selectDamage(
    public Page<DamageDTO> selectDamage(
            String startTime,
            String endTime,
            int type,
@@ -86,15 +90,27 @@
            int pageNum,  // 新增:动态页码
            int pageSize  // 新增:动态每页条数
    ) {
        Page<Damage> page = new Page<>(pageNum, pageSize);
        LambdaQueryWrapper<Damage> damageSelectWrapper = new LambdaQueryWrapper<>();
        damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime)
                .eq(type != 0, Damage::getType, type)
                .eq(status != 0, Damage::getStatus, status)
                .eq(!"0".equals(workingProcedure), Damage::getWorkingProcedure, workingProcedure);
        return this.page(page, damageSelectWrapper);
        if (workingProcedure == null || workingProcedure.trim().isEmpty() || "0".equals(workingProcedure)) {
            workingProcedure = null;
        }
        Page<DamageDTO> page = new Page<>(pageNum, pageSize);
        List<DamageDTO> damages = this.baseMapper.selectDamageList(
                startTime,
                endTime,
                type,
                status,
                workingProcedure
        );
        page.setTotal(damages.size());
        int startIndex = (int) ((pageNum - 1) * pageSize);
        int endIndex = Math.min((int) (pageNum * pageSize), damages.size());
        if (startIndex < endIndex) {
            List<DamageDTO> pageRecords = damages.subList(startIndex, endIndex);
            page.setRecords(pageRecords);
        } else {
            page.setRecords(Collections.emptyList());
        }
        return page;
    }
    /**
@@ -432,7 +448,7 @@
    }
    @Override
    public List<Damage> queryUnTempByFlowCardId(String flowCardId){
    public List<Damage> queryUnTempByFlowCardId(String flowCardId) {
        return baseMapper.queryUnTempByFlowCardId(flowCardId);
    }
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/ProcessCardReport.java
New file
@@ -0,0 +1,89 @@
package com.mes.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
 * <p>
 *
 * </p>
 *
 * @author wu
 * @since 2024-06-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ProcessCardReport implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * <订单表>
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 订单Id
     */
    private String orderId;
    /**
     * 流程卡号
     */
    private String processId;
    /**
     * 订单序号
     */
    private Integer orderNumber;
    /**
     * 层号
     */
    private Integer technologyNumber;
    /**
     * 工艺
     */
    private String process;
    /**
     * 累计报工数
     */
    private Integer reportWorkNumCount;
    /**
     * 报工数
     */
    private Integer reportWorkNum;
    /**
     * 破损数量
     */
    private Integer brokenNum;
    /**
     * 创建时间
     */
    private Data createTime;
    /**
     * 最后一次报工时间
     */
    private Data updateTime;
    /**
     * 流程卡数量
     */
    private Integer quantity;
    /**
     * 缺片数量
     */
    private Integer lackQuantity;
}
hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml
New file
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mes.damage.mapper.DamageMapper">
    <select id="queryUnTempByFlowCardId" resultType="com.mes.damage.entity.Damage">
        SELECT glass_id,
               order_number,
               technology_number,
               working_procedure
        FROM (
                 SELECT glass_id,
                        order_number,
                        technology_number,
                        working_procedure,
                        ROW_NUMBER() OVER (
      PARTITION BY glass_id
      ORDER BY damage_time DESC
    ) AS rn
                 FROM damage
                 WHERE process_id = #{flowCardId}
                   AND glass_id NOT IN (
                     SELECT DISTINCT glass_id
                     FROM damage
                     WHERE process_id = #{flowCardId}
                       AND working_procedure = "钢化"
                 )
             ) t
        WHERE rn = 1;
    </select>
    <select id="selectDamageList" resultType="com.mes.damage.entity.dto.DamageDTO">
        SELECT
        t.*,t1.width,t1.height
        FROM
        damage t left join glass_info t1 on t.glass_id=t1.glass_id
        <where>
            damage_time BETWEEN #{startTime} AND #{endTime}
            <if test="type != null and type != 0">
                AND t.type = #{type}
            </if>
            <if test="status != null and status != 0">
                AND t.status = #{status}
            </if>
            <if test="workingProcedure != null">
                AND t.working_procedure = #{workingProcedure}
            </if>
        </where>
    </select>
</mapper>
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -3,8 +3,8 @@
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;
import com.github.yulichang.toolkit.JoinWrappers;
import com.kangaroohy.milo.model.ReadWriteEntity;
@@ -414,6 +414,8 @@
                LambdaQueryWrapper<BigStorageCage> queryWrapper = new LambdaQueryWrapper<BigStorageCage>()
                        .eq(BigStorageCage::getRemainWidth, slotWidth)
                        .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
                        .le(BigStorageCage::getMinThickness, info.getThickness())
                        .ge(BigStorageCage::getMaxThickness, info.getThickness())
                        .orderByAsc(BigStorageCage::getDeviceId).orderByAsc(BigStorageCage::getSlot)
                        .last("limit 1");
@@ -478,13 +480,30 @@
            String temperingEngineerId = redisUtil.getCacheObject("temperingEngineerId");
            if (StringUtils.isNotBlank(temperingEngineerId)) {
                TemperingGlassInfo temperingGlassInfo = temperingGlassInfoService.getOne(new QueryWrapper<TemperingGlassInfo>()
                        .select("Top 1 *")
                        .eq("engineer_id", temperingEngineerId)
                        .orderByDesc("tempering_layout_id"));
                List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(
                        new LambdaQueryWrapper<TemperingGlassInfo>()
                                .eq(TemperingGlassInfo::getEngineerId, temperingEngineerId)
                                .orderByAsc(TemperingGlassInfo::getId)
                );
                int temperingLayoutId = 1;
                if (temperingGlassInfo != null) {
                    temperingLayoutId = temperingGlassInfo.getTemperingLayoutId() + 1;
                if (CollectionUtils.isEmpty(temperingGlassInfoList)) {
                    temperingLayoutId = 1;
                } else {
                    List<Integer> tempIds = temperingGlassInfoList.stream()
                            .map(TemperingGlassInfo::getTemperingLayoutId)
                            .distinct()
                            .sorted()
                            .collect(Collectors.toList());
                    int expected = 1;
                    for (int current : tempIds) {
                        if (current > expected) {
                            break; // 找到第一个缺失值,跳出循环
                        } else if (current == expected) {
                            expected++; // 连续则递增期望的值
                        }
                    }
                    temperingLayoutId = expected; // 缺失则为expected,连续则为max+1
                }
                List<GlassInfo> glassInfos = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getEngineerId, temperingEngineerId).eq(GlassInfo::getTemperingLayoutId, temperingLayoutId));
                if (CollectionUtil.isEmpty(glassInfos)) {
@@ -575,6 +594,7 @@
                    .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)
@@ -582,15 +602,18 @@
                        .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();
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -308,7 +308,7 @@
        FROM big_storage_cage_details
        WHERE STATE = 100
          AND SLOT =
              (SELECT SLOT FROM big_storage_cage_details WHERE STATE = 100 AND sequence = 1 order by slot desc LIMIT 1)
              (SELECT SLOT FROM big_storage_cage_details WHERE STATE = 100 AND sequence = 1 AND device_id = 4 order by slot desc LIMIT 1)
        ORDER BY tempering_feed_sequence
    </select>
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -1079,7 +1079,7 @@
    }
    private List<HollowGlassQueueInfo> computeOutHollowQueue(List<HollowGlassQueueInfo> queueInfoList, HollowGlassOutRelationInfo hollowGlassOutRelationInfo) {
        if (CollectionUtil.isNotEmpty(queueInfoList)) {
        if (CollectionUtil.isEmpty(queueInfoList)) {
            return new ArrayList<>();
        }
        //任务为强制,只直接返回原有的队列
@@ -1093,11 +1093,6 @@
        List<HollowGlassQueueInfo> resultQueue = new ArrayList<>();
        for (List<HollowGlassQueueInfo> items : gridGroups.values()) {
            // 情况1:格子内只有一个数据且未配对 - 过滤掉
            if (items.size() == 1 && 0 == items.get(0).getSlot()) {
                continue;
            }
            // 情况2:格子内全部为未配对的数据 - 过滤掉
            boolean allUnpaired = items.stream().noneMatch(e -> e.getIsPair() == 1);
            if (allUnpaired) {
@@ -1106,6 +1101,7 @@
            // 否则保留这个格子内的所有数据
            resultQueue.addAll(items);
        }
        Collections.sort(resultQueue, Comparator.comparing(HollowGlassQueueInfo::getId));
        return resultQueue;
    }