ZengTao
2025-05-22 b4ff04d7dd22f0e48bf386cd422e885aef08fed7
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -17,12 +17,14 @@
import com.mes.rawglassstation.service.RawGlassStorageStationService;
import com.mes.rawglasstask.entity.RawGlassStorageTask;
import com.mes.rawglasstask.service.RawGlassStorageTaskService;
import com.mes.s7.entity.S7Data;
import com.mes.s7.entity.S7DataCC;
import com.mes.s7.entity.S7DataSP;
import com.mes.uppattenusage.entity.UpPattenUsage;
import com.mes.uppattenusage.entity.vo.UpPattenUsageVO;
import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
import lombok.extern.slf4j.Slf4j;
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 org.springframework.util.CollectionUtils;
@@ -59,8 +61,17 @@
    @Autowired(required = false)
    private MiloService miloService;
    @Autowired(required = false)
    S7Serializer s7Serializer;
    @Autowired
    @Qualifier("s7SerializerCC")
    S7Serializer s7SerializerCC;
    @Autowired
    @Qualifier("s7SerializerSPOne")
    private S7Serializer s7SerializerSPOne;
    @Autowired
    @Qualifier("s7SerializerSPTwo")
    private S7Serializer s7SerializerSPTwo;
    private static final String LOAD_GLASS_DEVICE_ONE_TASK = "load_glass_device_one_task";
@@ -77,7 +88,7 @@
    @Scheduled(fixedDelay = 1000)
    public void rawStorageTask() throws Exception {
        S7Data S7DataCCOne = s7Serializer.read(S7Data.class);
        S7DataCC S7DataCCOne = s7SerializerCC.read(S7DataCC.class);
        String requestWord = S7DataCCOne.getRequest().toString();
        String confireWord = S7DataCCOne.getConfirmation().toString();
        String reportWord = S7DataCCOne.getReportWord().toString();
@@ -91,20 +102,20 @@
        if ("0".equals(requestValue)) {
            if ("1".equals(confireWord) && "0".equals(reportWord)) {
//            if ("1".equals(confireWord.getValue() + "") && "0".equals(reportWord.getValue() + "")) {
                S7Data s7Data = new S7Data();
                S7DataCC s7Data = new S7DataCC();
                s7Data.setConfirmation((short) 0);
                s7Serializer.write(s7Data);
                s7SerializerCC.write(s7Data);
//                List<ReadWriteEntity> list = new ArrayList<>();
//                list.add(generateReadWriteEntity("CC.CC.confirmation", 0));
//                miloService.writeToOpcWord(list);
            }
            if ("1".equals(taskWord)) {
//          if ("1".equals(taskWord.getValue() + "")) {
                S7Data s7Data = new S7Data();
                S7DataCC s7Data = new S7DataCC();
                s7Data.setTaskWord((short) 0);
                s7Data.setStartSlot((short) 0);
                s7Data.setEndSlot((short) 0);
                s7Serializer.write(s7Data);
                s7SerializerCC.write(s7Data);
//                List<ReadWriteEntity> list = new ArrayList<>();
//                list.add(generateReadWriteEntity("CC.CC.taskWord", 0));
//                list.add(generateReadWriteEntity("CC.CC.startSlot", 0));
@@ -149,7 +160,7 @@
    @Scheduled(fixedDelay = 1000)
    public void rawStorageInCar() throws Exception {
        S7Data S7DataCCOne = s7Serializer.read(S7Data.class);
        S7DataCC S7DataCCOne = s7SerializerCC.read(S7DataCC.class);
        String value = S7DataCCOne.getInCar().toString();
//        ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.inCar");
//        String value = entity.getValue() + "";
@@ -170,7 +181,7 @@
    @Scheduled(fixedDelay = 1000)
    public void rawStorageFinish() throws Exception {
        S7Data S7DataCCOne = s7Serializer.read(S7Data.class);
        S7DataCC S7DataCCOne = s7SerializerCC.read(S7DataCC.class);
        String value = S7DataCCOne.getReportWord().toString();
//        ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.reportWord");
//        String value = entity.getValue() + "";
@@ -236,9 +247,9 @@
                    .set(RawGlassStorageTask::getTaskState, Const.RAW_GLASS_TASK_FAILURE));
        }
        S7Data s7Data = new S7Data();
        S7DataCC s7Data = new S7DataCC();
        s7Data.setConfirmation((short) 1);
        s7Serializer.write(s7Data);
        s7SerializerCC.write(s7Data);
//        List<ReadWriteEntity> list = new ArrayList<>();
//        list.add(generateReadWriteEntity("CC.CC.confirmation", 1));
//        miloService.writeToOpcWord(list);
@@ -488,7 +499,13 @@
                    RawGlassStorageDetails twoLoadStation = loadStationList.stream().filter(e -> e.getSlot().equals(loadStation.get(1))).findFirst().orElse(null);
                    if (null == twoLoadStation) {
                        //按照尺寸生成二号位上片任务信息
                        LoadGlassDeviceTask loadTask = loadGlassDeviceTaskService.queryTaskMessage(tableName);
//                        LoadGlassDeviceTask loadTask = loadGlassDeviceTaskService.queryTaskMessage(tableName);
                        S7DataSP loadTask=new S7DataSP();
                        if(stationCell == 5){
                            loadTask=s7SerializerSPOne.read(S7DataSP.class);
                        }else{
                            loadTask=s7SerializerSPTwo.read(S7DataSP.class);
                        }
                        RawGlassStorageDetails rawDetails = null;
                        if (oneLoadStation.getRemainQuantity() > (loadTask.getTotalCount() + loadTask.getDamageCount())) {
                            usageVOS = upListMap.get("2");
@@ -514,7 +531,13 @@
                    } else {
                        //todo:当二号为的尺寸大于0时,是否执行调度任务,更换当前原片的尺寸,等待下一次任务的直接执行;还是继续等待,当尺寸不一样,等待一号工位的进出库调度任务。
                        if (twoLoadStation.getRemainQuantity() > 0) {
                            LoadGlassDeviceTask loadTask = loadGlassDeviceTaskService.queryTaskMessage(tableName);
//                            LoadGlassDeviceTask loadTask = loadGlassDeviceTaskService.queryTaskMessage(tableName);
                            S7DataSP loadTask=new S7DataSP();
                            if(stationCell == 5){
                                loadTask=s7SerializerSPOne.read(S7DataSP.class);
                            }else{
                                loadTask=s7SerializerSPTwo.read(S7DataSP.class);
                            }
                            if (oneLoadStation.getRemainQuantity() > (loadTask.getTotalCount() + loadTask.getDamageCount())) {
                                usageVOS = upListMap.get("2");
                                if (CollectionUtils.isEmpty(usageVOS)) {