From ae6879a7575f79d814c70781e6efc1b6218f3732 Mon Sep 17 00:00:00 2001
From: admin <15939171744@163.com>
Date: 星期五, 14 三月 2025 14:10:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java |  111 ++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 68 insertions(+), 43 deletions(-)

diff --git a/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java b/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
index da49e78..20c97d0 100644
--- a/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
+++ b/billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
@@ -134,6 +134,7 @@
                     OmOrderScheduling omOrderScheduling = new OmOrderScheduling();
                     Object SFCCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".SFCCode").getValue();
                     //涓婄嚎宸ヤ綅
+//                    if(Constants.ONLINE.contains(device) || Constants.TEST.equals(device) ){
                     if(Constants.ONLINE.contains(device)){
                         Object workOrderNumber = miloService.readFromOpcUa(thoroughfare + "." + device + ".WorkOrderNumber").getValue();
                         Object nowQty = miloService.readFromOpcUa(thoroughfare + "." + device + ".PalletID").getValue();
@@ -147,10 +148,22 @@
                         omOrderScheduling.setStatus("1");
                         //鎵樼洏缁戝畾SFCCode鍜屽伐鍗曞拰浜х嚎
                         if(Constants.OP005.equals(device)){
+                            omProductionOrderInfoService.updateBodyStatus1();
                             omOrderScheduling.setRemarks("Body");
+                            sysCountService.updateSerialNumber();
+                            OmProductionOrderInfo getBodyOrder2 = omProductionOrderInfoService.getBodyOrder();
+                            if (Objects.equals(getBodyOrder2.getBodyQty(), getBodyOrder2.getPlanQty())){
+                                omProductionOrderInfoService.updateBodyStatus2();
+                            }
                         }
                         if(Constants.C005.equals(device)){
+                            omProductionOrderInfoService.updateHeadStatus1();
                             omOrderScheduling.setRemarks("Head");
+                            sysCountService.updateHeadNumber();
+                            OmProductionOrderInfo getHeadOrder2 = omProductionOrderInfoService.getHeadOrder();
+                            if (Objects.equals(getHeadOrder2.getHeadQty(), getHeadOrder2.getPlanQty())){
+                                omProductionOrderInfoService.updateHeadStatus2();
+                            }
                         }
                         omOrderSchedulingService.insertOmOrderScheduling(omOrderScheduling);
                     }else if(Constants.OFFLINE.contains(device)){
@@ -158,7 +171,6 @@
                         ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");
                         Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString())));
                         omOrderScheduling.setOfflineTime(Time);
-                        omOrderScheduling.setStatus("2");
                         if(Constants.C060.equals(device)){
                             omOrderScheduling.setRemarks("Head");
                             omOrderScheduling.setSfcCode(SFCCode.toString());
@@ -171,7 +183,7 @@
                             if (nowQty == headQty){
                                 UpdateWrapper<OmProductionOrderInfo> updateWrapper = new UpdateWrapper<>();
                                 updateWrapper.eq("work_order_no", omProductionOrderInfoList.get(0).getWorkOrderNo());
-                                updateWrapper.set("head_status", "3");
+                                updateWrapper.set("head_status", "2");
                                 omProductionOrderInfoService.update(new OmProductionOrderInfo(),updateWrapper);
                             }
                         } else if (Constants.OP310.equals(device)) {
@@ -186,7 +198,7 @@
                             if (nowQty == bodyQty){
                                 UpdateWrapper<OmProductionOrderInfo> updateWrapper = new UpdateWrapper<>();
                                 updateWrapper.eq("work_order_no", omProductionOrderInfoList.get(0).getWorkOrderNo());
-                                updateWrapper.set("body_status", "3");
+                                updateWrapper.set("body_status", "2");
                                 omProductionOrderInfoService.update(new OmProductionOrderInfo(),updateWrapper);
                             }
                         }
@@ -206,8 +218,15 @@
                         if (nowQty == preQty){
                             UpdateWrapper<OmProductionOrderInfo> updateWrapper = new UpdateWrapper<>();
                             updateWrapper.eq("work_order_no", omProductionOrderInfoList.get(0).getWorkOrderNo());
-                            updateWrapper.set("pre_status", "3");
+                            updateWrapper.set("pre_status", "2");
                             omProductionOrderInfoService.update(new OmProductionOrderInfo(),updateWrapper);
+                        }
+
+                        sysCountService.updatePreNumber();
+                        omProductionOrderInfoService.updatePreStatus1();
+                        OmProductionOrderInfo getPreOrder2 = omProductionOrderInfoService.getPreOrder();
+                        if (Objects.equals(getPreOrder2.getPreQty(), getPreOrder2.getPlanQty())){
+                            omProductionOrderInfoService.updatePreStatus2();
                         }
                     }
                     //鏌ヨdescriptive瀛楁绛変簬1鐨勯噰闆嗛」淇濆瓨鍒版壂鐮佷繚瀛樺埌da_material_collection琛ㄩ噷
@@ -217,21 +236,29 @@
                     List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1);
                     for (DaCollectionParamConf conf : daCollectionParamConfList1) {
                         String gatherAddress = conf.getGatherAddress();
-                        String valueObj = miloService.readFromOpcUa(gatherAddress).getValue().toString(); // 鑾峰彇鍘熷鍊煎璞♀��:ml-citation{ref="4" data="citationList"}
-                        if (!Objects.equals(valueObj, "                                                  ")) {
-                            DaMaterialCollection materialCollection = new DaMaterialCollection();
-                            materialCollection.setSfcCode(SFCCode.toString());
-                            materialCollection.setLocationCode(device);
-                            materialCollection.setParamName(conf.getParameterSetName());
-                            materialCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString());
-                            Date Time = new Date();
-                            ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");
-                            Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString())));
-                            materialCollection.setCollectTime(Time);
-                            daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
-                        }
-                        else {
-                            log.debug("閲囬泦椤逛负绌�: {}", gatherAddress);
+
+                        String valueObj = null;
+                        ReadWriteEntity entity = miloService.readFromOpcUa(gatherAddress);
+                        if (entity != null) {
+                            Object value = entity.getValue();
+                            if (value != null) {
+                                valueObj = value.toString();  // 鏈�缁堣祴鍊�
+                                if (!Objects.equals(valueObj, "                                                  ")) {
+                                    DaMaterialCollection materialCollection = new DaMaterialCollection();
+                                    materialCollection.setSfcCode(SFCCode.toString());
+                                    materialCollection.setLocationCode(device);
+                                    materialCollection.setParamName(conf.getParameterSetName());
+                                    materialCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString());
+                                    Date Time = new Date();
+                                    ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime");
+                                    Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString())));
+                                    materialCollection.setCollectTime(Time);
+                                    daMaterialCollectionService.insertDaMaterialCollection(materialCollection);
+                                }
+                                else {
+                                    log.debug("閲囬泦椤逛负绌�: {}", gatherAddress);
+                                }
+                            }
                         }
                     }
 //                    鏌ヨdescriptive瀛楁绛変簬2鐨勯噰闆嗛」淇濆瓨鍒版壂鐮佷繚瀛樺埌da_param_collection琛ㄩ噷
@@ -280,6 +307,7 @@
             log.error(e.getMessage());
         }
 }
+
     //棣栧伐绔欎笅鍙戝伐鍗�,骞剁敓鎴怱N鐮�
     private static final String[] MONTH = {"A","B","C","D","E","F","G","H","I","J","K","L"};
     public void plackWorkOrder(String thoroughfare, String device, String tab, String valueString) {
@@ -308,7 +336,6 @@
                                 String SFCCode = A1 + A2 + A3+ A4 + A5;
                                 miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build());
                                 miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build());
-                                sysCountService.updateSerialNumber();
                             }else{
                                 sysCountService.clean();
                                 sysCountService.updateYear();
@@ -320,7 +347,6 @@
                                 String SFCCode = A1 + A2 + newA3+ A4 + A5;
                                 miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build());
                                 miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build());
-                                sysCountService.updateSerialNumber();
                             }
                             // 鏇存柊 WorkOrderRequestDone 鍦板潃鍧�
                             BsBomChildInfo bsbomChildInfo= new BsBomChildInfo();
@@ -328,13 +354,14 @@
                             bsbomChildInfo.setBomCode(getBodyOrder.getWorkOrderNo());
                             //鍙戜笅宸ヨ壓閰嶆柟
                             formula(thoroughfare, device, bsbomChildInfo);
-                            omProductionOrderInfoService.updateBodyStatus1();
+//                          omProductionOrderInfoService.updateBodyStatus1();
                             //鍒ゆ柇缂镐綋宸ュ崟瀹屾垚
-                            OmProductionOrderInfo getBodyOrder2 = omProductionOrderInfoService.getBodyOrder();
-                            if (Objects.equals(getBodyOrder2.getBodyQty(), getBodyOrder2.getPlanQty())){
-                                omProductionOrderInfoService.updateBodyStatus2();
-                            }
-                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getBodyOrder2.getBodyQty()).build());
+//                            OmProductionOrderInfo getBodyOrder2 = omProductionOrderInfoService.getBodyOrder();
+//                            if (Objects.equals(getBodyOrder2.getBodyQty(), getBodyOrder2.getPlanQty())){
+//                                omProductionOrderInfoService.updateBodyStatus2();
+//                            }
+                            String PalletID = String.valueOf(getBodyOrder.getBodyQty() + 1);
+                            miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(PalletID).build());
                             miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value(11).build());
                     }
                     else{
@@ -360,7 +387,6 @@
                             String SFCCode = A1 + A2 + A3+ A4 + A5;
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build());
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build());
-                            sysCountService.updateHeadNumber();
                         }else{
                             sysCountService.clean();
                             sysCountService.updateYear();
@@ -372,7 +398,6 @@
                             String SFCCode = A1 + A2 + newA3+ A4 + A5;
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build());
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build());
-                            sysCountService.updateHeadNumber();
                         }
                         // 鏇存柊 WorkOrderRequestDone 鍦板潃鍧�
                         BsBomChildInfo bsbomChildInfo= new BsBomChildInfo();
@@ -380,13 +405,14 @@
                         bsbomChildInfo.setBomCode(getHeadOrder.getWorkOrderNo());
                         //鍙戜笅宸ヨ壓閰嶆柟
                         formula(thoroughfare, device, bsbomChildInfo);
-                        omProductionOrderInfoService.updateHeadStatus1();
+//                        omProductionOrderInfoService.updateHeadStatus1();
                         //鍒ゆ柇缂镐綋宸ュ崟瀹屾垚
-                        OmProductionOrderInfo getHeadOrder2 = omProductionOrderInfoService.getHeadOrder();
-                        if (Objects.equals(getHeadOrder2.getHeadQty(), getHeadOrder2.getPlanQty())){
-                            omProductionOrderInfoService.updateHeadStatus2();
-                        }
-                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getHeadOrder2.getHeadQty()).build());
+//                        OmProductionOrderInfo getHeadOrder2 = omProductionOrderInfoService.getHeadOrder();
+//                        if (Objects.equals(getHeadOrder2.getHeadQty(), getHeadOrder2.getPlanQty())){
+//                            omProductionOrderInfoService.updateHeadStatus2();
+//                        }
+                        String PalletID = String.valueOf(getHeadOrder.getHeadQty() + 1);
+                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(PalletID).build());
                         miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value(11).build());
                     }
                     else{
@@ -411,7 +437,6 @@
                             String SFCCode = A1 + A2 + A3+ A4 + A5;
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build());
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build());
-                            sysCountService.updatePreNumber();
                         }else{
                             sysCountService.clean();
                             sysCountService.updateYear();
@@ -423,7 +448,6 @@
                             String SFCCode = A1 + A2 + newA3+ A4 + A5;
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".SFCCode").value(SFCCode).build());
                             miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MESSFCCode").value(SFCCode).build());
-                            sysCountService.updateHeadNumber();
                         }
                         // 鏇存柊 WorkOrderRequestDone 鍦板潃鍧�
                         BsBomChildInfo bsbomChildInfo= new BsBomChildInfo();
@@ -431,13 +455,14 @@
                         bsbomChildInfo.setBomCode(getPreOrder.getWorkOrderNo());
                         //鍙戜笅宸ヨ壓閰嶆柟
                         formula(thoroughfare, device, bsbomChildInfo);
-                        omProductionOrderInfoService.updatePreStatus1();
+//                        omProductionOrderInfoService.updatePreStatus1();
                         //鍒ゆ柇缂镐綋宸ュ崟瀹屾垚
-                        OmProductionOrderInfo getPreOrder2 = omProductionOrderInfoService.getPreOrder();
-                        if (Objects.equals(getPreOrder2.getPreQty(), getPreOrder2.getPlanQty())){
-                            omProductionOrderInfoService.updatePreStatus2();
-                        }
-                        miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(getPreOrder2.getPreQty()).build());
+//                        OmProductionOrderInfo getPreOrder2 = omProductionOrderInfoService.getPreOrder();
+//                        if (Objects.equals(getPreOrder2.getPreQty(), getPreOrder2.getPlanQty())){
+//                            omProductionOrderInfoService.updatePreStatus2();
+//                        }
+                        String PalletID = String.valueOf(getPreOrder.getPreQty() + 1);
+                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".PalletID").value(PalletID).build());
                         miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderRequestDone").value(11).build());
                     }
                     else{

--
Gitblit v1.9.3