From 6a53e63fa18c97232420ab58163a9b79fbb5a228 Mon Sep 17 00:00:00 2001
From: cl <418351270@qq.com>
Date: 星期四, 25 七月 2024 18:27:05 +0800
Subject: [PATCH] 1、100工位报工前,先将工单状态改为3执行中 2、手动接收工单,修改为先查表中是否有剩余工单, 3、OP030电芯检测放开 4、接收工单时,将两个工位区分开存工单

---
 jcdm-framework/src/main/java/com/jcdm/framework/websocket/WebSocketUsers.java                           |    2 
 jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java |    9 ++
 jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java  |   92 +++++++++++++++++++-----------
 jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java                              |   66 ++++++++++-----------
 4 files changed, 98 insertions(+), 71 deletions(-)

diff --git a/jcdm-framework/src/main/java/com/jcdm/framework/websocket/WebSocketUsers.java b/jcdm-framework/src/main/java/com/jcdm/framework/websocket/WebSocketUsers.java
index db0c715..de9c0d5 100644
--- a/jcdm-framework/src/main/java/com/jcdm/framework/websocket/WebSocketUsers.java
+++ b/jcdm-framework/src/main/java/com/jcdm/framework/websocket/WebSocketUsers.java
@@ -116,7 +116,7 @@
     /**
      * 鍙戦�佹枃鏈秷鎭�
      *
-     * @param userName 鑷繁鐨勭敤鎴峰悕
+     * @param session 鑷繁鐨勭敤鎴峰悕
      * @param message 娑堟伅鍐呭
      */
     public static void sendMessageToUserByText(Session session, String message)
diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
index 384eb56..0b93010 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -311,9 +311,16 @@
                 miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("MOZU1."+daParamCollection.getLocationCode()+".RecordDataDone").value(21).build());
                 if(daParamCollection.getLocationCode().equals("M1OP100-1") || daParamCollection.getLocationCode().equals("M1OP100-2") ){
                     try{
+                        //鏇存柊宸ュ崟鐘舵�佷负宸叉墽琛�
+                        LambdaUpdateWrapper<OmProductionOrdeInfo> updateWrapper = new LambdaUpdateWrapper<>();
+                        updateWrapper.set(OmProductionOrdeInfo::getOrderStatus,"3");
+                        updateWrapper.eq(OmProductionOrdeInfo::getProductNum,daParamCollection.getProductBarcode());
+                        omProductionOrdeInfoService.update(new OmProductionOrdeInfo(),updateWrapper);
+
+                        //涓婁紶宸ュ巶MES鎶ュ伐
                         CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                             logger.info("OP100鎶ュ伐寮�濮�-宸ュ巶MES寮傛鏂规硶");
-                            String stationCode = "M1P100";//鍥犱负涓婂眰绯荤粺鍙敮鎸�6涓猴紝鎵�鏈夋姤宸ュ伐浣嶄负M1P100
+                            String stationCode = "M1P100";//鍥犱负涓婂眰绯荤粺鍙敮鎸�6浣嶏紝鎵�鏈夋姤宸ュ伐浣嶄负M1P100
                             String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), stationCode, format.format(new Date()));
                             JSONObject jsonObject = new JSONObject(reportResult);
                             String code = jsonObject.getStr("code");
diff --git a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
index 93ac1dd..4ee78c6 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/om/productionOrde/controller/OmProductionOrdeInfoController.java
@@ -6,6 +6,7 @@
 import java.util.concurrent.CompletableFuture;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -128,48 +129,69 @@
         if (ObjectUtil.isNull(productTypeObjcet)) {
             return AjaxResult.error("鎺ュ崟澶辫触,PLC鏈紶杈撶敓浜х被鍨嬶紝璇疯仈绯荤鐞嗗憳!");
         }
+
         String productType = productTypeObjcet.toString();//浜у搧绫诲瀷
         String materialCode = Constants.materialMap.get(productType);
 
-        OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder();
-        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")){
-            logger.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俻ack{}鍑哄弬pack锛歿}",paramProductNum,dataObject.getStr("productNum"));
-            List<OmProductionOrdeInfo> check = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum,dataObject.getStr("productNum")));
-            if(check.isEmpty()){
-                try {
-                    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(dataObject.getStr("stationCode"));
-                    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);
 
-                    //鍐橮LC
-                    miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build());
-                    miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".ModuleCode").value(dataObject.getStr("productNum")).build());
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
+        //鍏堟煡璇㈣〃涓槸鍚︽湁鍓╀綑宸ュ崟
+        List<OmProductionOrdeInfo> orderList = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>()
+                .eq(OmProductionOrdeInfo::getOrderStatus, Constants.ONE)
+                .eq(OmProductionOrdeInfo::getStationCode,paramOrder.getLineCode())//宸ヤ綅
+                .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();
+
+            paramProductNum = productNum;
+            //涓嬪彂浜у搧妯$粍鐮�
+            miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".WorkOrderNumber").value(orderNum).build());
+            miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".ModuleCode").value(productNum).build());
+
+        }else{
+            OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder();
+            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")){
+                logger.info("璇锋眰宸ュ巶MES宸ュ崟锛氬叆鍙俻ack{}鍑哄弬pack锛歿}",paramProductNum,dataObject.getStr("productNum"));
+                List<OmProductionOrdeInfo> check = omProductionOrdeInfoService.list(new LambdaQueryWrapper<OmProductionOrdeInfo>().eq(OmProductionOrdeInfo::getProductNum,dataObject.getStr("productNum")));
+                if(check.isEmpty()){
+                    try {
+                        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(paramOrder.getLineCode());//宸ヤ綅
+                        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);
+
+                        paramProductNum = dataObject.getStr("productNum");
+                        //鍐橮LC
+                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build());
+                        miloService.writeToOpcUa(ReadWriteEntity.builder().identifier("MOZU1." + paramOrder.getLineCode() + ".ModuleCode").value(dataObject.getStr("productNum")).build());
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                }else{
+                    return AjaxResult.error("宸ュ崟閲嶅,璇烽噸鏂版帴鏀�");
                 }
-            }else{
-                return AjaxResult.error("宸ュ崟閲嶅,璇烽噸鏂版帴鏀�");
+            }else {
+                return AjaxResult.error("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳");
             }
-        }else {
-            return AjaxResult.error("鎺ュ崟澶辫触,璇疯仈绯荤鐞嗗憳");
         }
-        return AjaxResult.success(dataObject.getStr("productNum"));
+
+        return AjaxResult.success(paramProductNum);
     }
 
     @GetMapping(value = "/jieBang/{id}")
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 d5288ca..5899843 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
@@ -130,13 +130,13 @@
                             String cellCode = value1.toString();
                             scanResult = 11;
                             //鍙嶉鐢佃姱ocv妫�娴嬬粨鏋�,杩欓噷涓嶇敤鍐嶈繘琛屾娴嬶紝鍙鐮佹病闂灏卞彲浠ヤ簡
-                            /*boolean b = OCVResultFeedBack(thoroughfare, device,cellCode);//瀵规浛鎹㈢數鑺牎楠�
+                            boolean b = OCVResultFeedBack(thoroughfare, device,cellCode);//瀵规浛鎹㈢數鑺牎楠�
                             //鍥涗釜鐢佃姱鐨勭姸鎬�
                             if (b){
                                 scanResult = 11;
                             }else {
                                 scanResult = 12;
-                            }*/
+                            }
                         }else {
                             scanResult = 12;
                         }
@@ -181,7 +181,7 @@
                         if (ObjectUtil.isNotNull(productTypeObjcet)){
                             String productType = productTypeObjcet.toString();//浜у搧绫诲瀷
                             String materialCode = Constants.materialMap.get(productType);
-                            //璋冪敤宸ュ巶MES锛屼繚瀛樺埌鏁版嵁搴�,骞朵笖灏嗗伐鍗曚紶缁橮LC
+                            //鎺ユ敹宸ュ崟锛屼繚瀛樺埌鏁版嵁搴�,骞朵笖灏嗗伐鍗曚紶缁橮LC
                             CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                                 receivingWorkOrders(thoroughfare, device,materialCode);
                             });
@@ -326,7 +326,7 @@
                 OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo();
                 omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum"));
                 omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum"));
-                omProductionOrdeInfo.setStationCode(dataObject.getStr("stationCode"));
+                omProductionOrdeInfo.setStationCode(device);
                 omProductionOrdeInfo.setProductCode(dataObject.getStr("materialCode"));
                 omProductionOrdeInfo.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity")));
                 omProductionOrdeInfo.setOnlineCompletionMark("0");
@@ -830,36 +830,6 @@
     }
 
     /**
-     * 030宸ヤ綅杩斿洖ocv娴嬭瘯缁撴灉
-     * @param thoroughfare
-     * @param device
-     * @param cellCode
-     * @throws Exception
-     */
-    private boolean OCVResultFeedBack(String thoroughfare, String device,String cellCode) throws Exception {
-        boolean flag = true;
-
-        List<DaTestDeviceInterfaceTemp> list = daTestDeviceInterfaceTempService.list(new LambdaQueryWrapper<DaTestDeviceInterfaceTemp>()
-                .eq(DaTestDeviceInterfaceTemp::getStationCode, "M1OP020")
-                .eq(DaTestDeviceInterfaceTemp::getProductNum,cellCode)
-                .orderByDesc(DaTestDeviceInterfaceTemp::getCreateTime)
-        );
-        if (CollUtil.isNotEmpty(list)){
-            DaTestDeviceInterfaceTemp daTestDeviceInterfaceTemp = list.get(0);
-            if (Constants.ONE.equals(daTestDeviceInterfaceTemp.getTotalResult())){
-                flag = true;
-            }else {
-                flag = false;
-            }
-            daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode);
-        }else {
-            flag = false;
-            log.info("璇诲彇鍒板伐浣峽},娴嬭瘯璁惧杩斿洖鐨勬暟鎹煡璇笉鍒帮紝鐢佃姱鐮佷负锛歿}",device,cellCode);
-        }
-        return flag;
-    }
-
-    /**
      * OP020鏍¢獙鐢佃姱鎸′綅
      * @param thoroughfare
      * @param device
@@ -898,6 +868,34 @@
      * 030宸ヤ綅杩斿洖ocv娴嬭瘯缁撴灉
      * @param thoroughfare
      * @param device
+     * @param cellCode
+     * @throws Exception
+     */
+    private boolean OCVResultFeedBack(String thoroughfare, String device,String cellCode) throws Exception {
+        boolean flag = true;
+        List<DaTestDeviceInterfaceTemp> list = daTestDeviceInterfaceTempService.list(new LambdaQueryWrapper<DaTestDeviceInterfaceTemp>()
+                //.eq(DaTestDeviceInterfaceTemp::getStationCode, "M1OP020")
+                .eq(DaTestDeviceInterfaceTemp::getProductNum,cellCode)
+                .orderByDesc(DaTestDeviceInterfaceTemp::getCreateTime)
+        );
+        if (CollUtil.isNotEmpty(list)){
+            DaTestDeviceInterfaceTemp daTestDeviceInterfaceTemp = list.get(0);
+            if (Constants.ONE.equals(daTestDeviceInterfaceTemp.getTotalResult())){
+                flag = true;
+            }else {
+                flag = false;
+            }
+            //daTestDeviceInterfaceTempService.deleteDaTestDeviceInterfaceTempByProductNum(cellCode);
+        }else {
+            flag = false;
+            log.info("璇诲彇鍒板伐浣峽},娴嬭瘯璁惧杩斿洖鐨勬暟鎹煡璇笉鍒帮紝鐢佃姱鐮佷负锛歿}",device,cellCode);
+        }
+        return flag;
+    }
+    /**
+     * 030宸ヤ綅杩斿洖ocv娴嬭瘯缁撴灉
+     * @param thoroughfare
+     * @param device
      * @throws Exception
      */
     private boolean OCVResultFeedBack(String thoroughfare, String device) throws Exception {

--
Gitblit v1.9.3