ZengTao
2025-05-22 b4ff04d7dd22f0e48bf386cd422e885aef08fed7
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import com.mes.common.config.Const;
@@ -9,15 +10,16 @@
import com.mes.pp.entity.OptimizeHeatLayout;
import com.mes.pp.service.OptimizeHeatDetailService;
import com.mes.pp.service.OptimizeHeatLayoutService;
import com.mes.s7.entity.S7DataGHOne;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.service.TemperingGlassInfoService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
@@ -38,6 +40,10 @@
    @Autowired
    private OptimizeHeatDetailService optimizeHeatDetailService;
    @Autowired
    @Qualifier("s7SerializerGHOne")
    private S7Serializer s7SerializerGHOne;
    /**
     * 摆片台请求进片逻辑处理
     * fixedRate : 上一个调用开始后再次调用的延时(不用等待上一次调用完成)
@@ -45,23 +51,37 @@
     */
    @Scheduled(fixedDelay = 1000)
    public void requestTemperingTask() throws Exception {
        ReadWriteEntity requestInTempering = miloService.readFromOpcUa("GH1S7.GH1S7.requestInTempering");//请求进片
        ReadWriteEntity requestTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.requestTemperingId");//请求进片 炉号ID
        Integer request = Integer.parseInt(requestInTempering.getValue().toString());
        Integer id = Integer.parseInt(requestTemperingId.getValue().toString());
        S7DataGHOne s7DataGHOne=s7SerializerGHOne.read(S7DataGHOne.class);
//        ReadWriteEntity requestInTempering = miloService.readFromOpcUa("GH1S7.GH1S7.requestInTempering");//请求进片
//        ReadWriteEntity requestTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.requestTemperingId");//请求进片 炉号ID
//        Integer request = Integer.parseInt(requestInTempering.getValue().toString());
//        Integer id = Integer.parseInt(requestTemperingId.getValue().toString());
        Integer request = (int)s7DataGHOne.getRequestInTempering();
        Integer id = (int)s7DataGHOne.getRequestTemperingId();
        if (request == 0) {
            miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 0));//允许送片清零
//            miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 0));//允许送片清零
            s7SerializerGHOne.write(
                    S7DataGHOne.builder().responseInTempering((short)0).build()
            );
        } else {
            if (id == 0){
                log.info("炉号不能为0");
                return;
            }
            ReadWriteEntity placedNumber = miloService.readFromOpcUa("GH1S7.GH1S7.placedNumber");//已摆片数量
//            ReadWriteEntity placedNumber = miloService.readFromOpcUa("GH1S7.GH1S7.placedNumber");//已摆片数量
            String placedNumber = s7DataGHOne.getPlacedNumber().toString();//已摆片数量
            List<TemperingGlassInfo> glassList = temperingAgoService.selectGlassInfoById(id);
            if (Integer.parseInt(placedNumber.getValue().toString()) == glassList.size()) {
                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 1));//写入允许送片
//            if (Integer.parseInt(placedNumber.getValue().toString()) == glassList.size()) {
            if (Integer.parseInt(placedNumber) == glassList.size()) {
//                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 1));//写入允许送片
                s7SerializerGHOne.write(
                        S7DataGHOne.builder().responseInTempering((short)1).build()
                );
            } else {
                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 2));//不满足进炉条件
//                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 2));//不满足进炉条件
                s7SerializerGHOne.write(
                        S7DataGHOne.builder().responseInTempering((short)2).build()
                );
            }
        }
    }
@@ -73,8 +93,11 @@
     */
    @Scheduled(fixedDelay = 1000)
    public void loadTemperingTask() throws Exception {
        ReadWriteEntity loadTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.loadTemperingId");//进片完成 炉号ID
        getNewTemperingID(Integer.parseInt(loadTemperingId.getValue().toString()));//进片完成 下发参数
        S7DataGHOne s7DataGHOne=s7SerializerGHOne.read(S7DataGHOne.class);
//        ReadWriteEntity loadTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.loadTemperingId");//进片完成 炉号ID
//        getNewTemperingID(Integer.parseInt(loadTemperingId.getValue().toString()));//进片完成 下发参数
        String loadTemperingId=s7DataGHOne.getLoadTemperingId().toString();//进片完成 炉号ID
        getNewTemperingID(Integer.parseInt(loadTemperingId));//进片完成 下发参数
    }
    /**
     * 更新钢化小片表内的玻璃状态
@@ -108,7 +131,7 @@
        }
        List<TemperingGlassInfo> glassList = temperingAgoService.selectGlassInfoById(temperingid);
        if (glassList != null && glassList.size() > 0) {
            int glasstype = GetGlassType(glassList.get(0).getFilmsid());//膜系
            int glasstype = GetGlassType(glassList.get(0).getFilmsId());//膜系
            int process = 0;//钢化类型
            int thiness = (int) glassList.get(0).getThickness();//厚度
            String engineerId = glassList.get(0).getEngineerId();