wuyouming666
2024-04-11 94c5d454d1c30bdea54dabe0843cc935ccb68064
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java
New file
@@ -0,0 +1,160 @@
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;//返回 存在
    }
}