From 8b7ae914554652266b31f3bb4237106f1b220cc7 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期一, 20 十月 2025 16:02:11 +0800
Subject: [PATCH] 阿尔及利亚代码逻辑修改,页面布局修改

---
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java |  153 ++++++++++++++++++++++++++++++--------------------
 1 files changed, 91 insertions(+), 62 deletions(-)

diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
index c239de4..395506a 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
@@ -62,7 +62,7 @@
     private S7Serializer s7SerializerSPOne;
 
     @Autowired
-    @Qualifier("s7SerializerSP1")
+    @Qualifier("s7SerializerSP2")
     private S7Serializer s7SerializerSPTwo;
 
     private static final List<Integer> LOAD_STATION_01 = Arrays.asList(101, 102);
@@ -81,7 +81,7 @@
     //2銆�1鍙蜂笂鐗囦綅鏄惁鏈夊師鐗囷紝鍘熺墖灏哄鏄惁鍜屼笂鐗囧緟涓婄墖鐨勫昂瀵镐竴鑷�
     //3銆�1鍙锋棤鍘熺墖锛屼笖娌℃湁鏋跺瓙锛�2鍙蜂笂鐗囦綅灏哄鏄惁鍜屽甫涓婄墖灏哄涓�鑷�
     //4銆佷笉涓�鑷村彲鑳藉嚭鐜扮幓鐠冪牬鎹熷鑷寸殑涓婁竴鏋跺師鐗囨暟閲忎笉澶�
-    @Scheduled(fixedDelay = 5000)
+    @Scheduled(fixedDelay = 2000)
     public void opcLoadGlassOne() {
         opcLoadGlassChild(LOAD_GLASS_DEVICE_ONE_TASK, LOAD_GLASS_ONE_DEVICE);
     }
@@ -91,7 +91,7 @@
         opcLoadGlassChild(LOAD_GLASS_DEVICE_TWO_TASK, LOAD_GLASS_TWO_DEVICE);
     }
 
-    @Scheduled(fixedDelay = 5000)
+    @Scheduled(fixedDelay = 2000)
     public void opcLoadGlassOneFinish() {
         opcLoadGlassFinishChid(LOAD_GLASS_DEVICE_ONE_TASK, LOAD_GLASS_ONE_DEVICE);
     }
@@ -125,33 +125,43 @@
 
     private void opcLoadGlassChild(String tableName, Integer deviceId) {
         S7DataSP s7DataSP = new S7DataSP();
+//        s7DataSP.setPlcRequest(1);
+//        s7DataSP.setMesConfirm(0);
         if (tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)) {
             s7DataSP = s7SerializerSPOne.read(S7DataSP.class);
         } else {
             s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
         }
         log.info("{}涓婄墖绾匡紝褰撳墠涓婄墖浣嶄俊鎭細{}", deviceId, s7DataSP);
+
+        if (s7DataSP.getPlcRequest() == 0) {
+            if (s7DataSP.getMesSend() != 0) {
+                S7DataSP resetSend = new S7DataSP();
+                resetSend.setMesSend(0);
+                s7SerializerSPOne.write(resetSend);
+                log.info("{}涓婄墖绾匡紝PLC璇锋眰娓呴浂锛孧ES鍚屾娓呴浂mesSend", deviceId);
+            }
+            return;
+        }
+
+        // 褰揚LC璇锋眰鏂颁换鍔★紙plcRequest=1锛変笖鏃犳湭纭姹囨姤锛坢esConfirm=0锛夋椂澶勭悊
+        if (s7DataSP.getPlcRequest() != 1 || s7DataSP.getMesConfirm() != 0) {
+            log.info("{}涓婄墖绾匡紝PLC鏈姹傛柊浠诲姟鎴栧瓨鍦ㄦ湭纭姹囨姤锛岃烦杩囨湰娆″鐞�", deviceId);
+            return;
+        }
+
         Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
-                .eq(Engineering::getState, Const.ENGINEERING_RUNNING).eq(Engineering::getStationCell, deviceId));
+                .eq(Engineering::getState, Const.ENGINEERING_RUNNING)
+                .eq(Engineering::getStationCell, deviceId));
         if (null == engineering) {
             log.info("{}涓婄墖绾匡紝娌℃湁宸ョ▼浠诲姟", deviceId);
             return;
         }
-        //浠诲姟鏆傚仠
-        S7DataSP task = new S7DataSP();
-        if ("0".equals(s7DataSP.getInkageState().toString())) {
-            log.info("{}涓婄墖绾匡紝澶勪簬绂荤嚎鐘舵�侊細{}锛岀粨鏉熸湰鍦颁笂鐗囪姹�", deviceId, s7DataSP.getInkageState().toString());
-            return;
-        }
-        if (s7DataSP.getTaskRunning()) {
-            log.info("{}涓婄墖绾匡紝鏈夋鍦ㄦ墽琛岀殑浠诲姟锛岀粨鏉熸湰鍦颁笂鐗囪姹�", deviceId);
-            return;
-        }
+
         List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(engineering.getEngineerId());
         log.info("鎸夌収褰撳墠鑾峰彇鍒版鍦ㄩ渶瑕佷笂鐗囩殑鍘熺墖淇℃伅鏈夛細{}", pattenUsageList);
         if (CollectionUtils.isEmpty(pattenUsageList)) {
             log.info("褰撳墠宸ョ▼闇�瑕佷笂鐗囩殑鍘熺墖淇℃伅涓虹┖锛屼换鍔″凡缁撴潫");
-            //todo锛氭槸鍚﹀皢宸ョ▼鐘舵�佹敼涓哄凡瀹屾垚
             return;
         }
         Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream()
@@ -162,7 +172,7 @@
         List<Integer> loadStation = LOAD_GLASS_DEVICE_ONE_TASK.equals(tableName) ? LOAD_STATION_01 : LOAD_STATION_02;
         List<RawGlassStorageDetails> loadStationList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
                 .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1")
-                .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
+                .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                 .eq(RawGlassStorageDetails::getDeviceId, deviceId));
         if (CollectionUtils.isEmpty(loadStationList)) {
             log.info("褰撳墠涓婄墖绾胯矾涓や釜涓婄墖浣嶉兘娌℃湁鍘熺墖淇℃伅锛岀粨鏉熸湰娆′笂鐗囦换鍔★紝绛夊緟浠撳偍璋冨害浠诲姟");
@@ -177,14 +187,18 @@
             }
             int number = Math.min(twoLoadStation.getRemainQuantity(), usageVOS.size());
             //鐢熸垚涓婄墖浠诲姟
+            LoadGlassDeviceTaskHistory task = new LoadGlassDeviceTaskHistory();
             task.setTotalCount(number);
-            task.setTaskRunning(Boolean.TRUE);
+            task.setTaskRunning(1);
             task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
             task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
-            task.setSlot(loadStation.get(1));
+            task.setSlot(loadStation.get(0));
+            task.setRawGlassFilmsId(usageVOS.get(0).getFilmsId());
+            task.setEngineeringId(usageVOS.get(0).getEngineeringId());
+            saveHistoryTask(task, deviceId);
+
             S7DataSP s7DataSPWrite = new S7DataSP();
-            s7DataSPWrite.setTotalCount(number);
-            s7DataSPWrite.setTaskRunning(Boolean.TRUE);
+            s7DataSPWrite.setMesSend(1);
             s7DataSPWrite.setRawGlassWidth((int) usageVOS.get(0).getWidth());
             s7DataSPWrite.setRawGlassHeight((int) usageVOS.get(0).getHeight());
             s7DataSPWrite.setSlot(loadStation.get(1));
@@ -193,7 +207,6 @@
             } else {
                 s7SerializerSPTwo.write(s7DataSPWrite);
             }
-            saveHistoryTask(task, deviceId);
             return;
         }
         //灏哄涓嶄竴鏍锋垨鑰呭師鐗囨暟閲忓ぇ浜�0
@@ -203,14 +216,23 @@
         }
         //鐢熸垚涓婄墖浠诲姟
         int number = Math.min(oneLoadStation.getRemainQuantity(), usageVOS.size());
+        LoadGlassDeviceTaskHistory task = new LoadGlassDeviceTaskHistory();
         task.setTotalCount(number);
-        task.setTaskRunning(Boolean.TRUE);
+        task.setTaskRunning(1);
         task.setRawGlassWidth((int) usageVOS.get(0).getWidth());
         task.setRawGlassHeight((int) usageVOS.get(0).getHeight());
+        task.setRawGlassThickness((int) usageVOS.get(0).getThickness());
         task.setSlot(loadStation.get(0));
+        task.setRawGlassFilmsId(usageVOS.get(0).getFilmsId());
+        task.setEngineeringId(usageVOS.get(0).getEngineeringId());
+        saveHistoryTask(task, deviceId);
+
+        UpPattenUsage upPattenUsage = upPattenUsageMapper.selectById(usageVOS.get(0).getId());
+        upPattenUsage.setState(101);
+        upPattenUsageMapper.updateById(upPattenUsage);
+
         S7DataSP s7DataSPWrite = new S7DataSP();
-        s7DataSPWrite.setTotalCount(number);
-        s7DataSPWrite.setTaskRunning(Boolean.TRUE);
+        s7DataSPWrite.setMesSend(1);
         s7DataSPWrite.setRawGlassWidth((int) usageVOS.get(0).getWidth());
         s7DataSPWrite.setRawGlassHeight((int) usageVOS.get(0).getHeight());
         s7DataSPWrite.setSlot(loadStation.get(0));
@@ -219,71 +241,78 @@
         } else {
             s7SerializerSPTwo.write(s7DataSPWrite);
         }
-        saveHistoryTask(task, deviceId);
     }
 
     private void opcLoadGlassFinishChid(String tableName, Integer deviceId) {
         S7DataSP s7DataSP = new S7DataSP();
+//        s7DataSP.setPlcReport(1);
+//        s7DataSP.setMesConfirm(0);
         if (tableName.equals(LOAD_GLASS_DEVICE_ONE_TASK)) {
             s7DataSP = s7SerializerSPOne.read(S7DataSP.class);
         } else {
             s7DataSP = s7SerializerSPTwo.read(S7DataSP.class);
         }
         log.info("{}涓婄墖绾匡紝褰撳墠涓婄墖浣嶄俊鎭細{}", deviceId, s7DataSP);
-        if (s7DataSP.getTaskRunning().toString().equals(Const.ENGINEERING_NEW)) {
-            log.info("鏃犱换鍔�,缁撴潫");
+
+        if (s7DataSP.getPlcReport() == 0) {
+            if (s7DataSP.getMesConfirm() != 0) {
+                S7DataSP resetConfirm = new S7DataSP();
+                resetConfirm.setMesConfirm(0);
+                s7SerializerSPOne.write(resetConfirm);
+                log.info("{}涓婄墖绾匡紝PLC姹囨姤娓呴浂锛孧ES鍚屾娓呴浂mesConfirm", deviceId);
+            }
             return;
         }
-        if (Integer.parseInt(s7DataSP.getTaskState().toString()) <= 1) {
-            log.info("浠诲姟姝e湪鎵ц,缁撴潫");
+
+        if (s7DataSP.getPlcReport() == 0 || s7DataSP.getMesConfirm() != 0) {
+            log.info("{}涓婄墖绾匡紝鏃燩LC姹囨姤鎴栧凡纭锛岃烦杩囨湰娆″鐞�", deviceId);
             return;
         }
-        //鑾峰彇浠诲姟瀹屾垚鎯呭喌
-//         宸插畬鎴愭暟閲�  鐮存崯鏁伴噺
-        Integer finishCount = Integer.parseInt(s7DataSP.getFinishCount().toString());
-        Integer damageCount = Integer.parseInt(s7DataSP.getDamageCount().toString());
-        Integer slot = Integer.parseInt(s7DataSP.getSlot().toString());
+        LoadGlassDeviceTaskHistory unconfirmedTask = loadGlassDeviceTaskHistoryService.getOne(
+                new LambdaQueryWrapper<LoadGlassDeviceTaskHistory>()
+                        .eq(LoadGlassDeviceTaskHistory::getStation, deviceId)
+                        .eq(LoadGlassDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_RUNNING)
+        );
+        String upUsageId = unconfirmedTask.getEngineeringId();
+        if (s7DataSP.getPlcReport() == 1) {
+            // 姹囨姤鎴愬姛锛氭洿鏂颁笂鐗囪褰曚负鈥滄垚鍔熲��
+            upPattenUsageMapper.update(null,
+                    new LambdaUpdateWrapper<UpPattenUsage>()
+                            .set(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS)
+                            .eq(UpPattenUsage::getEngineeringId, upUsageId)
+                            .eq(UpPattenUsage::getState, 101)
+            );
+            unconfirmedTask.setTaskState(Const.RAW_GLASS_TASK_SUCCESS);
+            unconfirmedTask.setFinishCount(unconfirmedTask.getFinishCount() + 1);
+            log.info("{}涓婄墖绾匡紝浠诲姟姹囨姤鎴愬姛锛屾洿鏂颁笂鐗囪褰昜{}]涓烘垚鍔�", deviceId, upUsageId);
+        } else if (s7DataSP.getPlcReport() == 2) {
+            // 姹囨姤鐮存崯
+            unconfirmedTask.setTaskState(200);
+            unconfirmedTask.setDamageCount(unconfirmedTask.getDamageCount() + 1);
+            log.warn("{}涓婄墖绾匡紝浠诲姟姹囨姤鐮存崯锛屼笂鐗囪褰昜{}]鏍囪涓虹牬鎹�", deviceId,  upUsageId);
+        }
+        unconfirmedTask.setUpdateTime(new Date());
+        loadGlassDeviceTaskHistoryService.updateById(unconfirmedTask);
 
         //鏇存柊褰撳墠鏋跺瓙涓婄殑鍘熺墖鍓╀綑鎯呭喌
         rawGlassStorageDetailsService.update(new UpdateWrapper<RawGlassStorageDetails>()
                 .inSql("slot", "select slot from raw_glass_storage_station where enable_state = 1")
 //                .eq("slot", task.getSlot())
-                .eq("slot", slot)
+                .eq("slot", unconfirmedTask.getSlot())
                 .eq("state", Const.RAW_GLASS_STATE_IN)
-                .setSql("remain_quantity = remain_quantity - " + (finishCount + damageCount)));
-        //鏇存柊宸ョ▼涓嬬殑鍘熺墖鏁伴噺 todo:sql寰呬紭鍖�
-
-        if (finishCount > 0) {
-            List<Integer> ids = upPattenUsageMapper.queryFinishByEngineering(deviceId, finishCount);
-            upPattenUsageMapper.update(null, new LambdaUpdateWrapper<UpPattenUsage>()
-                    .in(UpPattenUsage::getId, ids)
-                    .set(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS));
-        }
-        //浠诲姟琛ㄦ暟鎹儏鍐�
+                .setSql("remain_quantity = GREATEST(remain_quantity - 1, 0)"));
+        //姹囨姤瀛楃粰1
         S7DataSP s7DataSPWrite = new S7DataSP();
-        s7DataSPWrite.setTaskRunning(Boolean.FALSE);
-        s7DataSPWrite.setTotalCount(0);
-        s7DataSPWrite.setRawGlassWidth(0);
-        s7DataSPWrite.setRawGlassHeight(0);
-        s7DataSPWrite.setSlot(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)
-                .eq(LoadGlassDeviceTaskHistory::getStation, deviceId)
-        );
+        s7DataSPWrite.setMesConfirm(1);
+        s7SerializerSPOne.write(s7DataSPWrite);
     }
 
-    private boolean saveHistoryTask(S7DataSP task, Integer deviceId) {
+    private boolean saveHistoryTask(LoadGlassDeviceTaskHistory task, Integer deviceId) {
         LoadGlassDeviceTaskHistory taskHistory = new LoadGlassDeviceTaskHistory();
         BeanUtils.copyProperties(task, taskHistory);
         taskHistory.setStation(deviceId);
         taskHistory.setCreateTime(new Date());
-        taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
+        taskHistory.setTaskState(Const.RAW_GLASS_TASK_RUNNING);
         loadGlassDeviceTaskHistoryService.save(taskHistory);
         return Boolean.TRUE;
     }

--
Gitblit v1.8.0