From 72666b45a64cdf4cdb10a27b6a56626694f69647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=B1=9F=E7=8E=AE?= Date: Wed, 9 Aug 2023 17:25:21 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=8F=8D=E9=A6=88=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/ndcone/AgvNdcOneDeviceDriver.java | 16 +++++++++++++ .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 16 +++++++++++++ .../DeviceStatusDeviceDriver.java | 12 ++++++++++ .../OvenGantryManipulatorDeviceDriver.java | 14 ++++++++++- .../SiemensConveyorDeviceDriver.java | 19 ++++++++++++++- .../SlitTwoManipulatorDeviceDriver.java | 14 ++++++++++- .../acs/ext/wms/service/AcsToWmsService.java | 2 ++ .../wms/service/impl/AcsToWmsServiceImpl.java | 24 +++++++++++++++++++ .../src/main/resources/config/application.yml | 2 +- .../acs/device/driver/siemens_conveyor.vue | 8 ++++++- 10 files changed, 122 insertions(+), 5 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index a84caa9c3..571e07595 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -72,6 +72,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic int angle = 0; //角度 int electric_qty = 0; //电量 int status = 0; //三色灯状态 + int last_status = 0; //三色灯状态 int error = 0; int last_error = 0; String error_message = ""; @@ -442,6 +443,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic dto.setError_code(String.valueOf(error_code)); dto.setError_info(error_message); deviceErrorLogService.create(dto); + + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("error", error); + param.put("error_msg", this.getError_message()); + acsToWmsService.sendDeviceStatus(param); } data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); last_error = error; @@ -460,6 +467,15 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic } else if (phase == 0x74) { //三色灯状态 status = ikey; + + if (status != last_status) { + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("mode", status); + acsToWmsService.sendDeviceStatus(param); + } + + last_status = status; } if (!ObjectUtil.isEmpty(data)) { phase = 0; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 6a6118704..ae697c853 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -80,6 +80,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic int angle = 0; //角度 int electric_qty = 0; //电量 int status = 0; //三色灯状态 + int last_status = 0; //三色灯状态 String error_message = ""; String error_type = "agv_error_type"; private Instruction instruction; @@ -685,6 +686,12 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic dto.setError_code(String.valueOf(error_code)); dto.setError_info(error_message); deviceErrorLogService.create(dto); + + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("error", error); + param.put("error_msg", this.getError_message()); + acsToWmsService.sendDeviceStatus(param); } data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); last_error = error; @@ -703,6 +710,15 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } else if (phase == 0x74) { //三色灯状态 status = ikey; + + if (status != last_status) { + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("mode", status); + acsToWmsService.sendDeviceStatus(param); + } + + last_status = status; } //进入区域(phase值) else if (phase == 0x50) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/device_status/DeviceStatusDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/device_status/DeviceStatusDeviceDriver.java index d949b9a23..725422341 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/device_status/DeviceStatusDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/device_status/DeviceStatusDeviceDriver.java @@ -76,6 +76,7 @@ public class DeviceStatusDeviceDriver extends AbstractOpcDeviceDriver implements String task_id = ""; Boolean iserror = false; + Boolean last_iserror = false; Boolean hasGoods = false; @Override @@ -115,4 +116,15 @@ public class DeviceStatusDeviceDriver extends AbstractOpcDeviceDriver implements jo.put("hasGoods", this.getHasGoods()); return jo; } + public void setIserror(Boolean iserror) { + this.iserror = iserror; + if (this.iserror != this.last_iserror && this.iserror && device_id.startsWith("RGV")) { + JSONObject param = new JSONObject(); + param.put("device_code", this.device_id); + param.put("error", alarm); + param.put("error_msg", ErrorUtil.getDictDetail("ssx_error_type", alarm)); + acsToWmsService.sendDeviceStatus(param); + } + this.last_iserror = iserror; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index e9b680cb0..4e332d911 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -177,6 +177,11 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + last_to_task + "->" + to_task); } if (mode != last_mode) { + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("mode", mode); + acsToWmsService.sendDeviceStatus(param); + if (mode == 2) { logServer.deviceExecuteLog(this.device_code, "", "", "信号复位前requireSuccess:" + requireSucess); this.setRequireSucess(false); @@ -208,8 +213,15 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i DeviceErrorLogDto dto = new DeviceErrorLogDto(); dto.setDevice_code(device_code); dto.setError_code(String.valueOf(error)); - dto.setError_info(ErrorUtil.getDictDetail("hxhj_error_type", String.valueOf(error))); + String errorInfo = ErrorUtil.getDictDetail("hxhj_error_type", String.valueOf(error)); + dto.setError_info(errorInfo); deviceErrorLogService.create(dto); + + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("error", error); + param.put("error_msg", errorInfo); + acsToWmsService.sendDeviceStatus(param); } logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java index 2885a683a..d304d3d90 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java @@ -228,6 +228,14 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme requireSucess = false; requireEmptyInSuccess = false; } + + if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("mode", mode); + acsToWmsService.sendDeviceStatus(param); + } + logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode + "复位请求标记:" + requireSucess); logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } @@ -258,8 +266,17 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme DeviceErrorLogDto dto = new DeviceErrorLogDto(); dto.setDevice_code(device_code); dto.setError_code(String.valueOf(error)); - dto.setError_info(ErrorUtil.getDictDetail("ssx_error_type", String.valueOf(error))); + String errorInfo = ErrorUtil.getDictDetail("ssx_error_type", String.valueOf(error)); + dto.setError_info(errorInfo); deviceErrorLogService.create(dto); + + if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("error", error); + param.put("error_msg", errorInfo); + acsToWmsService.sendDeviceStatus(param); + } } logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index 32fd2cdf5..ce7e8642c 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -230,6 +230,11 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl // logServer.deviceExecuteLog(this.device_code, "", "", "heartbeat:" + last_heartbeat + "->" + heartbeat); // } if (mode != last_mode) { + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("mode", mode); + acsToWmsService.sendDeviceStatus(param); + inst_type = null; cache_inst = null; if (mode == 2) { @@ -252,8 +257,15 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl DeviceErrorLogDto dto = new DeviceErrorLogDto(); dto.setDevice_code(device_code); dto.setError_code(String.valueOf(error)); - dto.setError_info(ErrorUtil.getDictDetail("fqhj_error_type", String.valueOf(error))); + String errorInfo = ErrorUtil.getDictDetail("fqhj_error_type", String.valueOf(error)); + dto.setError_info(errorInfo); deviceErrorLogService.create(dto); + + JSONObject param = new JSONObject(); + param.put("device_code", this.device_code); + param.put("error", error); + param.put("error_msg", errorInfo); + acsToWmsService.sendDeviceStatus(param); } logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index b30190077..8fab0c4a7 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -104,4 +104,6 @@ public interface AcsToWmsService { // 输送线有货变成无货时向lms请求 HttpResponse shipDeviceUpdate(JSONObject param); + + void sendDeviceStatus(JSONObject param); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 67d7dc93a..e0659ac70 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -538,4 +538,28 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } return null; } + + @Override + public void sendDeviceStatus(JSONObject param) { + try { + MDC.put(log_file_type, log_type); + + if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) { + String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); + AddressDto addressDto = addressService.findByCode("sendDeviceStatus"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; +// log.info("sendDeviceStatus - 请求参数 {}", param); + HttpRequest + .post(url) + .body(param.toString()) + .execute(); +// log.info("sendDeviceStatus - 返回参数 {}", response.body()); + } + } catch (Throwable ignored) { + + } finally { + MDC.remove(log_file_type); + } + } } diff --git a/acs/nladmin-system/src/main/resources/config/application.yml b/acs/nladmin-system/src/main/resources/config/application.yml index cfc52fe40..f943602c7 100644 --- a/acs/nladmin-system/src/main/resources/config/application.yml +++ b/acs/nladmin-system/src/main/resources/config/application.yml @@ -2,7 +2,7 @@ spring: freemarker: check-template-location: false profiles: - active: prod + active: dev jackson: time-zone: GMT+8 data: diff --git a/acs/nladmin-ui/src/views/acs/device/driver/siemens_conveyor.vue b/acs/nladmin-ui/src/views/acs/device/driver/siemens_conveyor.vue index 1dafcd3d6..50e0323fa 100644 --- a/acs/nladmin-ui/src/views/acs/device/driver/siemens_conveyor.vue +++ b/acs/nladmin-ui/src/views/acs/device/driver/siemens_conveyor.vue @@ -147,6 +147,11 @@ + + + + + @@ -320,7 +325,8 @@ export default { is_release: true, link_device_code: [], ship_device_update: true, - special_flag: true + special_flag: true, + sendDeviceStatus: true }, rules: {} }