ZengTao
2025-05-22 b4ff04d7dd22f0e48bf386cd422e885aef08fed7
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
@@ -122,9 +122,9 @@
    private void opcLoadGlassChild(String tableName, Integer deviceId) {
        S7DataSP s7DataSP = new S7DataSP();
        if(tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)){
        if (tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)) {
            s7DataSP = s7SerializerSPOne.read(S7DataSP.class);
        }else{
        } else {
            s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
        }
        Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
@@ -134,11 +134,18 @@
            return;
        }
        //任务暂停
        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
        S7DataSP task=new S7DataSP();
        if(LOAD_GLASS_ONE_DEVICE.equals(deviceId)){
            s7SerializerSPOne.read(S7DataSP.class);
        }else{
            s7SerializerSPTwo.read(S7DataSP.class);
        }
//        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
        ;
        if ("0".equals(s7DataSP.getInkageState().toString())) {
            log.info("{}上片线,处于离线状态:{},结束本地上片请求", deviceId, s7DataSP.getInkageState().toString());
//        if (0 == task.getInkageState()) {
            log.info("{}上片线,处于离线状态:{},结束本地上片请求", deviceId, task.getInkageState());
//            log.info("{}上片线,处于离线状态:{},结束本地上片请求", deviceId, task.getInkageState());
            return;
        }
        if (s7DataSP.getTaskRunning().toString().equals(Const.ENGINEERING_RUNNING)) {
@@ -176,12 +183,23 @@
            }
            int number = Math.min(twoLoadStation.getRemainQuantity(), usageVOS.size());
            //生成上片任务
            task.setTotalCount(number);
            task.setTaskRunning(Const.ENGINEERING_RUNNING);
            task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
            task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
            task.setSlot(loadStation.get(1));
            loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
            task.setTotalCount((short)number);
            task.setTaskRunning(Boolean.TRUE);
            task.setRawGlassWidth((short) usageVOS.get(0).getWidth());
            task.setRawGlassHeight((short) usageVOS.get(0).getHeight());
            task.setSlot(loadStation.get(1).shortValue());
//            loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
            S7DataSP s7DataSPWrite = new S7DataSP();
            s7DataSPWrite.setTotalCount((short) number);
            s7DataSPWrite.setTaskRunning(Boolean.TRUE);
            s7DataSPWrite.setRawGlassWidth((short) usageVOS.get(0).getWidth());
            s7DataSPWrite.setRawGlassHeight((short) usageVOS.get(0).getHeight());
            s7DataSPWrite.setSlot(loadStation.get(1).shortValue());
            if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) {
                s7SerializerSPOne.write(s7DataSPWrite);
            } else {
                s7SerializerSPTwo.write(s7DataSPWrite);
            }
            saveHistoryTask(task, deviceId);
            return;
        }
@@ -192,23 +210,34 @@
        }
        //生成上片任务
        int number = Math.min(oneLoadStation.getRemainQuantity(), usageVOS.size());
        task.setTotalCount(number);
        task.setTaskRunning(Const.ENGINEERING_RUNNING);
        task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
        task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
        task.setSlot(loadStation.get(0));
        loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
        task.setTotalCount((short)number);
        task.setTaskRunning(Boolean.TRUE);
        task.setRawGlassWidth((short) usageVOS.get(0).getWidth());
        task.setRawGlassHeight((short) usageVOS.get(0).getHeight());
        task.setSlot(loadStation.get(0).shortValue());
//        loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
        S7DataSP s7DataSPWrite = new S7DataSP();
        s7DataSPWrite.setTotalCount((short) number);
        s7DataSPWrite.setTaskRunning(Boolean.TRUE);
        s7DataSPWrite.setRawGlassWidth((short) usageVOS.get(0).getWidth());
        s7DataSPWrite.setRawGlassHeight((short) usageVOS.get(0).getHeight());
        s7DataSPWrite.setSlot(loadStation.get(0).shortValue());
        if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) {
            s7SerializerSPOne.write(s7DataSPWrite);
        } else {
            s7SerializerSPTwo.write(s7DataSPWrite);
        }
        saveHistoryTask(task, deviceId);
    }
    private void opcLoadGlassFinishChid(String tableName, Integer deviceId) {
        S7DataSP s7DataSP = new S7DataSP();
        if(tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)){
        if (tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)) {
            s7DataSP = s7SerializerSPOne.read(S7DataSP.class);
        }else{
        } else {
            s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
        }
        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
//        LoadGlassDeviceTask task = loadGlassDeviceTaskService.queryTaskMessage(tableName);
        if (s7DataSP.getTaskRunning().toString().equals(Const.ENGINEERING_NEW)) {
//        if (task.getTaskRunning().equals(Const.ENGINEERING_NEW)) {
            log.info("无任务,结束");
@@ -223,13 +252,15 @@
//         已完成数量  破损数量
        Integer finishCount = Integer.parseInt(s7DataSP.getFinishCount().toString());
        Integer damageCount = Integer.parseInt(s7DataSP.getDamageCount().toString());
        Integer slot = Integer.parseInt(s7DataSP.getSlot().toString());
//        Integer finishCount = task.getFinishCount();
//        Integer damageCount = task.getDamageCount();
        //更新当前架子上的原片剩余情况
        rawGlassStorageDetailsService.update(new UpdateWrapper<RawGlassStorageDetails>()
                .inSql("slot", "select slot from raw_glass_storage_station where enable_state = 1")
                .eq("slot", task.getSlot())
//                .eq("slot", task.getSlot())
                .eq("slot", slot)
                .eq("state", Const.RAW_GLASS_STATE_IN)
                .setSql("remain_quantity = remain_quantity - " + (finishCount + damageCount)));
        //更新工程下的原片数量 todo:sql待优化
@@ -241,12 +272,23 @@
                    .set(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS));
        }
        //任务表数据情况
        task.setTaskRunning(0);
        task.setTotalCount(0);
        task.setRawGlassWidth(0);
        task.setRawGlassHeight(0);
        task.setSlot(0);
        loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
//        task.setTaskRunning(0);
//        task.setTotalCount(0);
//        task.setRawGlassWidth(0);
//        task.setRawGlassHeight(0);
//        task.setSlot(0);
//        loadGlassDeviceTaskService.updateTaskMessage(tableName, task);
        S7DataSP s7DataSPWrite = new S7DataSP();
        s7DataSPWrite.setTaskRunning(Boolean.FALSE);
        s7DataSPWrite.setTotalCount((short) 0);
        s7DataSPWrite.setRawGlassWidth((short) 0);
        s7DataSPWrite.setRawGlassHeight((short) 0);
        s7DataSPWrite.setSlot((short) 0);
        if (LOAD_GLASS_ONE_DEVICE.equals(deviceId)) {
            s7SerializerSPOne.write(s7DataSPWrite);
        } else {
            s7SerializerSPTwo.write(s7DataSPWrite);
        }
        loadGlassDeviceTaskHistoryService.update(new LambdaUpdateWrapper<LoadGlassDeviceTaskHistory>()
                .set(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_SUCCESS)
                .eq(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
@@ -254,7 +296,7 @@
        );
    }
    private boolean saveHistoryTask(LoadGlassDeviceTask task, Integer deviceId) {
    private boolean saveHistoryTask(S7DataSP task, Integer deviceId) {
        LoadGlassDeviceTaskHistory taskHistory = new LoadGlassDeviceTaskHistory();
        BeanUtils.copyProperties(task, taskHistory);
        taskHistory.setStation(deviceId);