1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package com.mes.bigstorage.service;
 
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.base.entity.vo.BigStorageVO;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.entity.dto.*;
import com.mes.bigstorage.entity.vo.BigStorageQueryVO;
import com.mes.bigstoragetask.entity.UpdateBigStorageCageDTO;
import com.mes.glassinfo.entity.GlassInfo;
 
import java.util.List;
import java.util.Map;
 
/**
 * <p>
 * 服务类
 * </p>
 *
 * @author zhoush
 * @since 2024-03-27
 */
public interface BigStorageCageDetailsService extends IService<BigStorageCageDetails> {
 
    List<BigStorageCageDetails> selectFeedTask();
 
    List<BigStorageCageDetails> selectOutTask();
 
    double selectGetBoard(String plcFeedReqLine);
 
    void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
 
    void damageBigStorageCageDetails(String glassId, int status);
 
    List<BigStorageCageDetails> selectBigStorageCageDetails(String glassId);
 
    void insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
 
    void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
 
    void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
 
    /**
     * 查询进片格子信息:优先工程最少、剩余格子最多的笼子内的格子
     * @param EngineerId
     * @param glassId
     * @param thickness
     * @return
     */
    BigStorageDTO queryTargetSlot(String EngineerId, String glassId, int thickness);
 
    /**
     * 按照版图信息获取进片笼子信息
     *
     * @param glassInfo
     */
    BigStorageDTO queryTargetSlotByTempering(GlassInfo glassInfo);
 
    /**
     * 指定工程的版图是否到齐
     * @param engineerId
     * @param temperingLayoutId
     * @return
     */
    List<TemperingLayoutDTO> temperingIsAllByTemperingLayoutId(String engineerId, Integer temperingLayoutId);
    /**
     * 获取钢化版图已经到齐的工程号及版图id
     *
     * @return
     */
    List<TemperingLayoutDTO> temperingIsAll();
 
    /**
     * 获取每个钢化版图占用的格子数量
     *
     * @return
     */
    List<TemperingLayoutDTO> queryTemperingOccupySlot();
 
    /**
     * 获取版图每个格子的最大最小序号
     *
     * @param engineerId
     * @param temperingLayoutId
     * @return
     */
    List<SlotSequenceDTO> queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId);
 
    boolean temperingGlass(String temperingLayoutId, String engineerId, String temperingFeedSequence);
 
    List<TemperingGlassCountDTO> selectTemperingGlass(int isTempering);
 
    void updateBySlot(List<UpdateBigStorageCageDTO> glassList, int state);
 
    String temperingSwitch(Boolean flag);
 
    boolean appointTemperingEngineerId(String engineerId);
 
    List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot();
 
    List<BigStorageSequenceDTO> dispatchBigStorageGlassInfo(BigStorageRelationDTO bigStorageRelationDTO);
 
    String dispatchSwitch(Boolean flag);
 
    /**
     * 按照工程信息及钢化id(炉号)获取缺少的玻璃信息
     *
     * @param bigStorageQueryVO
     * @return
     */
    List<GlassInfoLackDTO> queryLackGlassInfo(BigStorageQueryVO bigStorageQueryVO);
 
    String bigStorageGlassDamageByGlassId(String glassId);
 
    /**
     * 按照格子号更新详情表内的格子对应的设备id
     *
     * @param slotList
     */
    void updateDeviceIdBySlot(List<Integer> slotList);
 
    /**
     * 按照工程信息及钢化id(炉号)获取实际笼内的玻璃信息
     *
     * @param bigStorageQueryVO
     * @return
     */
    List<BigStorageCageDetails> queryRealGlassInfo(BigStorageQueryVO bigStorageQueryVO);
 
    Map<Integer, List<BigStorageVO>> querybigStorageCageDetail();
 
    /**
     * 取消钢化任务
     *
     * @return
     */
    boolean cancelTemperingTask();
}