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