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;//返回 存在
|
}
|
|
}
|