wuyouming666
2024-04-11 94c5d454d1c30bdea54dabe0843cc935ccb68064
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
153
154
155
156
157
158
159
package com.mes.taskcache.service;
 
import java.util.List;
 
import com.mes.common.PLCAutoMes;
import com.mes.common.PlcParameterObject;
import com.mes.common.S7object;
import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.taskcache.mapper.HangzhouMesMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
 
 
 
@Service
public class LogicService {
    @Autowired
    private HangzhouMesMapper hangzhouMesMapper;
 
//    //理片
//    public void Process(){
//        String Result= S7object.getinstance().plccontrol.ReadWord("DB14.0", 1).get(0)+"";
//        String Number=S7object.getinstance().plccontrol.ReadWord("DB14.2", 1).get(0)+"";
//        if(Result=="1"){//进片请求
//            processInto(Number);
//        }else if(Result=="2"){//出片请求
//            processOut();
//        }else if(Result=="3"){//进出片请求
//            if (!processOut()) {   //先出后进
//                processInto(Number);
//            }
//        }
//    }
    //理片 进
    public boolean processInto(String Number){
        //查询消息队列里的玻璃
        GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
        PlcParameterObject plcmes= PLCAutoMes.PlcMesObject;
        if(GlassInfo!=null){//存在此玻璃编号
            //同钢化版图内的栅格号
            List<EdgStorageCageDetails> list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getTemperingFeedSequence(),GlassInfo.getWidth());
            //空栅格号
            if (list.size()==0) {
                list=hangzhouMesMapper.selectCacheLeisure();
            }
            //小于此玻璃钢化版图序号的栅格号
            if(list.size()==0){
                list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getWidth());
            }
            if(list.size()>0){
                //存在空格
                //1.生成任务:  起始位置0   结束位置this.slot  任务类型 1   (进片任务)
                //2.回复 1进片
                EdgStorageCageDetails item=list.get(0);
                hangzhouMesMapper.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1");
                S7object.getinstance().plccontrol.WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
                return true;
            }
 
        }else{
            // ID编号不存在   不处理/回复PLC  进行报警提示
        }
        //返回结果
        return false;
    }
//    //理片 出
//    public boolean processOut(){
//        //查询任务
//        String A09=S7object.getinstance().plccontrol.ReadWord("DB14.56", 1).get(0)+"";
//        String A10=S7object.getinstance().plccontrol.ReadWord("DB14.58", 1).get(0)+"";
//        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
//        List<EdgStorageCageDetails> list=hangzhouMesMapper.selectCacheOut();
//        boolean isOut=true;//其他情况条件 如:后续设备故障禁止理片出片 等
//        if (list.size()>0&&isOut) {
//            EdgStorageCageDetails item=list.get(0);
//            if(A09=="0"&&A10=="1"){
//                //出到  A09
//                hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","09","2");
//                S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
//                S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
//                return true;
//            }else if(A09=="1"&&A10=="0"){
//                //出到  A10
//                hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","10","2");
//                S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
//                S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
//                return true;
//            }else if(A09=="0"&&A10=="0"){
//                //都允许    A09/A10  上一片是否和此片玻璃尺寸尺寸相同
//                String endcell="09";
//                String SendEndcell="1";
//                boolean If_=false;
//                GlassInfo glassInfo09= hangzhouMesMapper.selectLastOutCacheInfo("09");
//                GlassInfo glassInfo10= hangzhouMesMapper.selectLastOutCacheInfo("10");
//                if(glassInfo10!=null&&glassInfo10.getWidth()==item.getWidth()&&glassInfo10.getHeight()==item.getHeight()){
//                    endcell="10";
//                    SendEndcell="2";
//                }else if(glassInfo10!=null&&If_){
//                    //其他条件
//                }
//                hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0",endcell,"2");
//                S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
//                S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
//                return true;
//            }
//        }
//        //返回结果
//        return false;
//    }
 
//    //磨边   不交互  理片和磨边机自己交互
//    public void processMb(String Number){
//        //查询任务
//        GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
//        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
//        if(GlassInfo!=null){
//            //发送任务   ID   长 宽 厚 倒角 工艺功能等
//            S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.22").getAddress(),"N10000");
//            S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.24").getAddress(), "1000");
//            S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.26").getAddress(),"800");
//            S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(),"60");
//            S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.30").getAddress(), "2");
//            S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
//        }
//        //返回结果
//    }
 
    //查询消息队列里此玻璃ID的数据   
    public boolean SelectMessageId(String num){
        //查询是否存在
        GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num);
        if(glassInfo==null){
            return false;//返回 不存在
        }
        return true;//返回 存在
    }
    //删除消息队列里此玻璃ID的数据   
    public boolean DeleteMessageId(String num){
        //查询是否存在
        GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num);
        if(glassInfo==null){
            return false;//返回 不存在
        }
        return true;//返回 存在
    }
 
    //是否存在此编号玻璃 
    public boolean isExist(String num){
        //查询是否存在
        GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num);
        if(glassInfo==null){
            return false;//返回 不存在
        }
        return true;//返回 存在
    }
    
}