wuyouming666
2024-02-28 9ebd56f767376149ef5ec706e5816c23d53bf718
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
package com.mes.service;
 
import com.mes.entity.DownGlassInfo;
import com.mes.entity.DownStorageCageDetails;
 
import java.util.ArrayList;
import java.util.List;
 
public class GlassHandler {
 
    private List<DownGlassInfo> glassList; // 存放待处理的玻璃信息
    private List<DownStorageCageDetails> cageDetailsList; // 存放玻璃放置在缓存笼中的详细信息
 
    public void processGlass() {
        // 初始化两个机器手
        MachineHand hand1 = new MachineHand();
        MachineHand hand2 = new MachineHand();
 
        for (DownGlassInfo glass : glassList) {
            // 根据玻璃规格找到对应的缓存笼子详情
            DownStorageCageDetails cageDetails = findCageDetailsByGlassSpec(glass);
 
            if (cageDetails != null) {
                // 从缓存笼中取出玻璃放到机器手上
                hand1.placeGlass(cageDetails);
                hand2.placeGlass(cageDetails);
            }
 
            // 判断两个机器手是否都已经摆满
            if (hand1.isFull() && hand2.isFull()) {
                // 执行其他操作,比如发送指令等
                break;
            }
        }
    }
 
    private DownStorageCageDetails findCageDetailsByGlassSpec(DownGlassInfo glass) {
        // 根据玻璃规格找到对应的缓存笼子详情
        for (DownStorageCageDetails details : cageDetailsList) {
            if (details.getWidth() == glass.getWidth() &&
                    details.getHeight() == glass.getHeight() &&
                    details.getThickness() == glass.getThickness()) {
                return details;
            }
        }
        return null;
    }
 
    private class MachineHand {
        private List<DownStorageCageDetails> rack; // 存放玻璃的架子
 
        public MachineHand() {
            rack = new ArrayList<>();
        }
 
        public void placeGlass(DownStorageCageDetails details) {
            rack.add(details);
        }
 
        public boolean isFull() {
            return rack.size() >= 50; // 判断架子是否已经放满
        }
    }
}