From 4d7a570e19413608e81b705af4a2debc5e473fc9 Mon Sep 17 00:00:00 2001
From: cl <418351270@qq.com>
Date: 星期一, 29 七月 2024 08:52:05 +0800
Subject: [PATCH] 修改采集

---
 jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java |   72 +++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 25 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
index 0bec478..ad675a7 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -311,33 +311,19 @@
     {
         String paramProductNum = "";
         try {
-            // 鏌ヨ鏈�鏂扮殑宸ュ崟淇℃伅
-            OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder();
 
-            log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俤evice{},materialCode锛歿}", device, materialCode);
-            String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode);
-            JSONObject jsonObject = new JSONObject(orderJsonString);
-            // 浠嶫SONObject涓幏鍙杁ata瀵硅薄
-            JSONObject dataObject = jsonObject.getJSONObject("data");
-            String code = jsonObject.getStr("code");
-            // 鍒ゆ柇鎺ュ崟鏄惁鎴愬姛
-            if(code.equals("success")) {
-                log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俻ack{}鍑哄弬pack锛歿}", paramProductNum, dataObject.getStr("productNum"));
-                OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo();
-                omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum"));
-                omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum"));
-                omProductionOrdeInfo.setStationCode(device);
-                omProductionOrdeInfo.setProductCode(dataObject.getStr("materialCode"));
-                omProductionOrdeInfo.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity")));
-                omProductionOrdeInfo.setOnlineCompletionMark("0");
-                omProductionOrdeInfo.setSfResult("0");
-                omProductionOrdeInfo.setProductModel(dataObject.getStr("model"));
-                omProductionOrdeInfo.setCreateTime(new Date());
-                omProductionOrdeInfo.setCreateUser("宸ュ巶MES");
-                omProductionOrdeInfoService.save(omProductionOrdeInfo);
+            //鍏堟煡璇㈣〃涓槸鍚︽湁鍓╀綑宸ュ崟
+            List<OmProductionOrdeInfo> orderList = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>()
+                    .eq(OmProductionOrdeInfo::getOrderStatus, Constants.ONE)
+                    .eq(OmProductionOrdeInfo::getStationCode,device)//宸ヤ綅
+                    .eq(OmProductionOrdeInfo::getProductCode,materialCode));//浜у搧绫诲瀷
+            if (CollUtil.isNotEmpty(orderList)){
+                Long id = orderList.get(0).getId();
+                String productNum = orderList.get(0).getProductNum();//妯$粍鐮�
+                String orderNum = orderList.get(0).getWorkOrderNo();
 
-                String productNum = dataObject.getStr("productNum");
-                String orderNum = dataObject.getStr("productionOrderNum");
+                paramProductNum = productNum;
+
                 //涓嬪彂浜у搧妯$粍鐮�
                 miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ModuleCode").value(productNum).build());
                 miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(orderNum).build());
@@ -345,8 +331,44 @@
                 //灏嗕骇鍝丼N鍙戦�佸埌鍓嶅彴
                 productNum = "productNum,"+ productNum;
                 WebSocketUsers.sendMessageToUserByText(map.get(device), productNum);
+            }else{
+                // 鏌ヨ鏈�鏂扮殑宸ュ崟淇℃伅
+                OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder();
 
+                log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俤evice{},materialCode锛歿}", device, materialCode);
+                String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode);
+                JSONObject jsonObject = new JSONObject(orderJsonString);
+                // 浠嶫SONObject涓幏鍙杁ata瀵硅薄
+                JSONObject dataObject = jsonObject.getJSONObject("data");
+                String code = jsonObject.getStr("code");
+                // 鍒ゆ柇鎺ュ崟鏄惁鎴愬姛
+                if(code.equals("success")) {
+                    log.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俻ack{}鍑哄弬pack锛歿}", paramProductNum, dataObject.getStr("productNum"));
+                    OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo();
+                    omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum"));
+                    omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum"));
+                    omProductionOrdeInfo.setStationCode(device);
+                    omProductionOrdeInfo.setProductCode(dataObject.getStr("materialCode"));
+                    omProductionOrdeInfo.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity")));
+                    omProductionOrdeInfo.setOnlineCompletionMark("0");
+                    omProductionOrdeInfo.setSfResult("0");
+                    omProductionOrdeInfo.setProductModel(dataObject.getStr("model"));
+                    omProductionOrdeInfo.setCreateTime(new Date());
+                    omProductionOrdeInfo.setCreateUser("宸ュ巶MES");
+                    omProductionOrdeInfoService.save(omProductionOrdeInfo);
+
+                    String productNum = dataObject.getStr("productNum");
+                    String orderNum = dataObject.getStr("productionOrderNum");
+                    //涓嬪彂浜у搧妯$粍鐮�
+                    miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ModuleCode").value(productNum).build());
+                    miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(orderNum).build());
+
+                    //灏嗕骇鍝丼N鍙戦�佸埌鍓嶅彴
+                    productNum = "productNum,"+ productNum;
+                    WebSocketUsers.sendMessageToUserByText(map.get(device), productNum);
+                }
             }
+
         } catch (Exception e) {
             throw new RuntimeException(e);
         }

--
Gitblit v1.9.3