wuyouming666
2024-04-29 12787412b95db0187cf7bb05dc6cbdbdaf259143
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
package com.mes.downstorage.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.query.MPJQueryWrapper;
 
 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
import com.mes.downstorage.entity.DownStorageCage;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
 
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageDetailsService;
import com.mes.glassinfo.entity.GlassInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
 
    @Autowired
    private DownStorageCageMapper downStorageCageMapper;
    @Autowired
    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
    @Override
    public void addDownStorageCageDetails(DownStorageCageDetails details) {
        this.save(details);
    }
 
 
    @Override
    //修改理片笼内信息 功能:对笼内栅格玻璃 【添加/删除/更换】
    public boolean updatedownStorageCageDetails(DownStorageCageDetails details){
        baseMapper.updateById(details);
        return true;
    }
 
 
    @Override
    public List<DownStorageCageDetails> CacheOut(int start, int end) {
        log.info("单片情况根据传入的工位查询符合按照大小出片,并且优先出满架的小片");
        return downStorageCageDetailsMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
                        .select("t.*")
                        .leftJoin("(SELECT t1.* FROM down_storage_cage_details t1 "
                                + "JOIN (SELECT flow_card_id, MAX(width) AS max_width FROM glass_info GROUP BY flow_card_id) t "
                                + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width = t.max_width) t3"
                                + " ON t.glass_id = t3.glass_id")
                        .leftJoin("down_workstation t4 ON t3.flow_card_id = t4.flow_card_id")
                        .isNull(Boolean.parseBoolean("t.glass_id"), "SELECT glass_id FROM down_glass_info")
                        .between("t4.workstation_id", start, end)
                        // 根据 racks_number 排序
                        .orderByDesc("t4.racks_number")
 
        );
    }
 
 
 
 
 
 
 
 
 
 
 
 
 
    @Override
    public List<DownStorageCageDetails> getCacheOut(int start, int end) {
        log.info("根据传入的工位查询符合按照顺序和大小出片的小片");
        return  downStorageCageMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
                        .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id  and gi.flowcard_id=escd.flow_card_id ")
                        .isNotNull("escd.slot")
                        .between("dw.workstation_id", start, end)
                        .orderByDesc("escd.width")
                        .orderByDesc("escd.height")
        );
    }
 
 
 
 
 
    @Override
    public List<Map> getCacheInfo() {
        log.info(" 查询笼子内信息");
        return downStorageCageMapper.selectJoinList(
                Map.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .orderByAsc("t.slot")
        );
 
    }
 
 
 
    @Override
    public List<DownStorageCageDetails> getCacheLeisure() {
        log.info(" 查询笼子内空闲");
        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .isNull("escd.slot")
 
                        .orderByAsc("escd.slot")
        );
        return list;
    }
 
 
    @Override
    public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
        log.info("  查询可进此片玻璃的栅格号  找到空格");
 
        return downStorageCageMapper.selectJoinList(
                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                        .select("escd.*")
                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                        .isNull("escd.slot")
                        .apply("t.remain_width - " + width + " > 0")
                        .orderByAsc("escd.sequence")
        );
 
    }
 
 
 
 
 
 
 
 
 
 
 
 
 
}