cl
2024-07-12 ab63141eaf175c6c544d2ef37833dea9016d0d26
jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -160,9 +160,10 @@
                        Object productTypeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".ProductType").getValue();//产品类型
                        if (ObjectUtil.isNotNull(productTypeObjcet)){
                            String productType = productTypeObjcet.toString();//产品类型
                            String materialCode = Constants.materialMap.get(productType);
                            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                                //调用工厂MES,保存到数据库,并且将工单传给PLC (目前临时用该方法)
                                receivingWorkOrders(thoroughfare, device);
                                receivingWorkOrders(thoroughfare, device,materialCode);
                            });
                            miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build());
@@ -207,7 +208,7 @@
                        WebSocketUsers.sendMessageToUserByText(map.get(device), "END");
                    } else {
                        Integer result = 21;
                        Object productTypeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".ProductType").getValue();//产品类型
                        //Object productTypeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".ProductType").getValue();//产品类型
                        Object modulCodeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCode").getValue();
                        if (ObjectUtil.isNull(modulCodeObjcet)){
                            result = 23;
@@ -227,7 +228,7 @@
            log.error(e.getMessage());
        }
    }
    public void receivingWorkOrders(String thoroughfare ,String device) {
/*    public void receivingWorkOrders(String thoroughfare ,String device) {
        String paramProductNum = "";
        try {
@@ -240,7 +241,7 @@
                String orderNum = orderList.get(0).getWorkOrderNo();
                //下发产品模组码
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ModuleCode").value(productNum).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(productNum).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(orderNum).build());
                //miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordSNDone").value(1).build());
                //更新工单状态为执行中
@@ -252,21 +253,21 @@
                //将产品SN发送到前台
                productNum = "productNum,"+ productNum;
                WebSocketUsers.sendMessageToUserByText(map.get(device), productNum);
            }/*else{
            }*//*else{
                miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordSNDone").value(2).build());//没有要生产的工单
            }*/
            }*//*
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    }*/
   /* public void receivingWorkOrders(String thoroughfare ,String device)
    public void receivingWorkOrders(String thoroughfare ,String device ,String materialCode)
    {
        String paramProductNum = "";
        try {
            // 查询最新的工单信息
            OmProductionOrdeInfo lastOrder = omProductionOrdeInfoService.getLastOrder();
            String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "MOP100");
            String orderJsonString = RestfulService.getProductionWorkOrderRequest(lastOrder.getProductNum(), "M1OP100",materialCode);
            JSONObject jsonObject = new JSONObject(orderJsonString);
            // 从JSONObject中获取data对象
            JSONObject dataObject = jsonObject.getJSONObject("data");
@@ -279,6 +280,7 @@
                omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum"));
                omProductionOrdeInfo.setStationCode(dataObject.getStr("stationCode"));
                omProductionOrdeInfo.setMaterialCode(dataObject.getStr("materialCode"));
                omProductionOrdeInfo.setPlanQty(Long.valueOf(dataObject.getStr("plannedQuantity")));
                omProductionOrdeInfo.setOnlineCompletionMark("0");
                omProductionOrdeInfo.setSfResult("0");
                omProductionOrdeInfo.setProductCode(dataObject.getStr("model"));
@@ -290,14 +292,14 @@
                WebSocketUsers.sendMessageToUserByText(map.get(device), dataObject.getStr("productNum"));
                //写PLC
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_ModuleCode").value(dataObject.getStr("productNum")).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".MES_WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".ModuleCode").value(dataObject.getStr("productNum")).build());
                miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".WorkOrderNumber").value(dataObject.getStr("productionOrderNum")).build());
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }*/
    }
    /**
     * 读取电芯码