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