From 3386dfab4dbc1ae4506d46111e3699c64e597d6a Mon Sep 17 00:00:00 2001 From: yanps Date: Tue, 25 Feb 2025 17:22:52 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=B7=BB=E5=8A=A0=E4=B8=80=E6=9C=9F?= =?UTF-8?q?=E5=86=85=E5=8C=85=E9=97=B4=E5=BC=82=E5=B8=B8=E5=8D=B7=E5=8F=8D?= =?UTF-8?q?=E9=A6=88LMS,LMS=E6=9F=A5=E8=AF=A2RGV=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndoorManipulatorDeviceDriver.java | 29 ++++++---- .../data/ApplyManipulatorActionRequest.java | 2 + .../acs/ext/wms/rest/WmsToAcsController.java | 34 ++++++----- .../acs/ext/wms/service/WmsToAcsService.java | 13 +++++ .../wms/service/impl/WmsToAcsServiceImpl.java | 57 +++++++++++++++++++ 5 files changed, 110 insertions(+), 25 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java index 8617f3bec..d8a26efed 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java @@ -37,6 +37,7 @@ import org.nl.modules.system.service.ParamService; import org.nl.modules.system.service.impl.ParamServiceImpl; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import java.util.*; @@ -616,16 +617,22 @@ public class IndoorManipulatorDeviceDriver extends AbstractOpcDeviceDriver imple //异常气胀轴反馈 if (action == 9) { try { - instructionService.cancel(inst1.getInstruction_id()); - logServer.deviceExecuteLog(this.device_code, "", "", "取消指令完成"); - TaskDto byTaskCode = taskserver.findByTaskCode(inst1.getTask_code()); - taskserver.cancel(byTaskCode.getTask_id()); - logServer.deviceExecuteLog(this.device_code, "", "", "取消任务完成"); - Map map = new LinkedHashMap<>(); - map.put("to_command", "9"); - this.writing(map); - feedbackSucess = true; - message = "异常气胀轴任务取消成功"; + String task_code = inst1.getTask_code(); + applyManipulatorActionRequest.setType("10"); + applyManipulatorActionRequest.setTask_code1(task_code); + applyManipulatorActionResponse = acsToWmsService.applyManipulatorActionRequest(applyManipulatorActionRequest); + if(applyManipulatorActionResponse.getstatus() == HttpStatus.OK.value()) { + instructionService.cancel(inst1.getInstruction_id()); + logServer.deviceExecuteLog(this.device_code, "", "", "取消指令完成"); + TaskDto byTaskCode = taskserver.findByTaskCode(inst1.getTask_code()); + taskserver.cancel(byTaskCode.getTask_id()); + logServer.deviceExecuteLog(this.device_code, "", "", "取消任务完成"); + Map map = new LinkedHashMap<>(); + map.put("to_command", "9"); + this.writing(map); + feedbackSucess = true; + message = "异常气胀轴任务取消成功"; + } } catch (Exception e) { message = "取消任务或指令失败,失败原因"+ e.getMessage(); feedbackSucess = false; @@ -1105,8 +1112,6 @@ public class IndoorManipulatorDeviceDriver extends AbstractOpcDeviceDriver imple rgv1 = (RgvDeviceDriver) agv1.getDeviceDriver(); rgv2 = (RgvDeviceDriver) agv2.getDeviceDriver(); if ((rgv1.getMode() == 2 && rgv1.getMove1() == 1 && rgv1.getMove2() == 0) || (rgv2.getMode() == 2 && rgv2.getMove1() == 1 && rgv2.getMove2() == 0)) { - /*logServer.deviceExecuteLog(device_code, "", "", "mode1" + rgv1.getMode() + "mode2" + - rgv2.getMode() + "rgv1的move2" + rgv1.getMove2() + "rgv2的move2" + rgv2.getMove2());*/ return true; } else { notCreateInstMessage = "rgv信号不符合"; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java index 13a342c3d..9c0689641 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java @@ -14,6 +14,8 @@ public class ApplyManipulatorActionRequest extends BaseRequest { * 6-套轴申请 * 7-套轴完成 * 8-拔轴完成 + * 9-反馈重量 + * 10-反馈异常子卷 */ private String type; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index 884ee1b27..f6cb2d0af 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + /** * @author ludj * @date 2021-07-21 @@ -40,7 +42,7 @@ public class WmsToAcsController { @PostMapping("/unLock") @Log(value = "解锁立库点位",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity unLock(@RequestBody String whereJson) { return new ResponseEntity<>(wmstoacsService.unLock(whereJson), HttpStatus.OK); @@ -48,7 +50,7 @@ public class WmsToAcsController { @PostMapping("/cancelTask") @Log(value = "WMS取消任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity cancelFromWms(@RequestBody String whereJson) throws Exception { return new ResponseEntity<>(wmstoacsService.cancelFromWms(whereJson), HttpStatus.OK); @@ -56,7 +58,7 @@ public class WmsToAcsController { @PostMapping("/updateDeviceGoodsFromWms") @Log(value = "WMS修改点位状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity updateDeviceGoodsFromWms(@RequestBody String whereJson) { return new ResponseEntity<>(wmstoacsService.updateDeviceGoodsFromWms(whereJson), HttpStatus.OK); @@ -64,7 +66,7 @@ public class WmsToAcsController { @PostMapping("/areaControl") @Log(value = "区域控制",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity areaControl(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(wmstoacsService.areaControl(whereJson), HttpStatus.OK); @@ -79,7 +81,7 @@ public class WmsToAcsController { @PostMapping("/querydevice") // @Log(value = "WMS查询设备状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity queryDevice(@RequestBody String whereJson) throws Exception { return new ResponseEntity<>(wmstoacsService.queryDevice(whereJson), HttpStatus.OK); @@ -87,7 +89,7 @@ public class WmsToAcsController { @PostMapping("/queryDeviceDBValue") @Log(value = "WMS查询设备DB值",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity queryDeviceDBValue(@RequestBody String whereJson){ return new ResponseEntity<>(wmstoacsService.queryDeviceDBValue(whereJson), HttpStatus.OK); @@ -96,7 +98,7 @@ public class WmsToAcsController { @PostMapping("/putPlusPullAction") @Log(value = "WMS下发插拔轴动作",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity putPlusPullAction(@RequestBody String whereJson){ return new ResponseEntity<>(wmstoacsService.putPlusPullAction(whereJson), HttpStatus.OK); @@ -104,7 +106,6 @@ public class WmsToAcsController { @PostMapping("/updateTask") @Log(value = "WMS更新任务点位状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - @SaIgnore public ResponseEntity updateTask(@RequestBody String whereJson){ return new ResponseEntity<>(wmstoacsService.updateTask(whereJson), HttpStatus.OK); @@ -112,7 +113,7 @@ public class WmsToAcsController { @PostMapping("/sendAgvChargeTask") @Log(value = "LMS下发agv充电任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity sendAgvChargeTask(@RequestBody JSONObject param){ return new ResponseEntity<>(wmstoacsService.sendAgvChargeTask(param), HttpStatus.OK); @@ -120,7 +121,7 @@ public class WmsToAcsController { @PostMapping("/queryDeviceInfo") @Log(value = "查询agv车辆信息",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity queryDeviceInfo(@RequestBody JSONObject param){ return new ResponseEntity<>(wmstoacsService.queryDeviceInfo(param), HttpStatus.OK); @@ -128,7 +129,7 @@ public class WmsToAcsController { @PostMapping("/syncfaultInfo") @Log(value = "LMS同步报警码信息",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity syncfaultInfo(){ return new ResponseEntity<>(wmstoacsService.syncfaultInfo(), HttpStatus.OK); @@ -136,7 +137,7 @@ public class WmsToAcsController { @PostMapping("/realTimefaultInfo") @Log(value = "查询所有设备报警信息",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - + @SaIgnore public ResponseEntity realTimefaultInfo(@RequestBody JSONObject param){ return new ResponseEntity<>(wmstoacsService.realTimefaultInfo(param), HttpStatus.OK); @@ -144,9 +145,16 @@ public class WmsToAcsController { @PostMapping("/paperTubeAction") @Log(value = "下发纸管库动作",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) - @SaIgnore public ResponseEntity paperTubeAction(@RequestBody JSONObject param){ return new ResponseEntity<>(wmstoacsService.paperTubeAction(param), HttpStatus.OK); } + + + @PostMapping("/queryRGVStatus") + @Log(value = "WMS查询RGV状态",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) + @SaIgnore + public ResponseEntity queryRGVStatus(@RequestBody JSONObject jsonObject){ + return new ResponseEntity<>(wmstoacsService.queryRGVStatus(jsonObject),HttpStatus.OK); + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java index 08f717eea..ea17f6e26 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import org.nl.acs.ext.wms.data.CancelTaskResponse; import org.nl.acs.ext.wms.data.CreateTaskResponse; import org.nl.acs.ext.wms.data.PutActionResponse; +import org.springframework.http.ResponseEntity; import java.util.Map; @@ -110,4 +111,16 @@ public interface WmsToAcsService { Map paperTubeAction(JSONObject param); + /** + * 查询RGV状态 + * @param whereJson + * @return + */ + Map queryRGVStatus(JSONObject jsonObject); + + + + + + } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 26a76bc1f..30489084f 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -74,6 +74,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.slf4j.MDC; import org.springframework.context.ApplicationContext; import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -1431,4 +1432,60 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return resp; } + @Override + public Map queryRGVStatus(JSONObject jsonObject) { + log.info("paperTubeAction--------------:输入参数" + jsonObject.toString()); + JSONObject resp = new JSONObject(); + if (StrUtil.isEmpty(jsonObject.getString("device_code"))) { + resp.put("status", 400); + resp.put("message", "未传递设备号:" + jsonObject.getString("device_code") + "无法查询设备状态信息"); + log.info("paperTubeAction--------------:输出参数" + resp.toString()); + return resp; + } + String device_code = jsonObject.getString("device_code"); + Device deviceByCode = deviceAppService.findDeviceByCode(device_code); + if (ObjectUtil.isEmpty(deviceByCode)) { + resp.put("status", 400); + resp.put("message", "设备:" + device_code + "不存在"); + log.info("paperTubeAction--------------:输出参数" + resp.toString()); + return resp; + } + StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; + RgvDeviceDriver rgv1; + RgvDeviceDriver rgv2; + if (deviceByCode.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { + standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) deviceByCode.getDeviceDriver(); + List linkDeviceCode = standardOrdinarySiteDeviceDriver.getExtraDeviceCodes("link_device_code"); + if (linkDeviceCode.size() > 1) { + Device agv1 = deviceAppService.findDeviceByCode(linkDeviceCode.get(0)); + Device agv2 = deviceAppService.findDeviceByCode(linkDeviceCode.get(1)); + if (agv1.getDeviceDriver() instanceof RgvDeviceDriver && agv2.getDeviceDriver() instanceof RgvDeviceDriver) { + rgv1 = (RgvDeviceDriver) agv1.getDeviceDriver(); + rgv2 = (RgvDeviceDriver) agv2.getDeviceDriver(); + if ((rgv1.getMode() == 2 && rgv1.getMove1() == 1 && rgv1.getMove2() == 0) && (rgv2.getMode() == 2 && rgv2.getMove1() == 1 && rgv2.getMove2() == 0)) { + resp.put("status", 200); + resp.put("qty", 2); + log.info("paperTubeAction--------------:输出参数" + resp.toString()); + return resp; + } else if ((rgv1.getMode() == 2 && rgv1.getMove1() == 1 && rgv1.getMove2() == 0) || (rgv2.getMode() == 2 && rgv2.getMove1() == 1 && rgv2.getMove2() == 0)) { + resp.put("status", 200); + resp.put("qty", 1); + log.info("paperTubeAction--------------:输出参数" + resp.toString()); + return resp; + } else { + resp.put("status", 201); + resp.put("message", "设备:" + device_code + "信号不满足,mode:" + rgv1.getMode() + ",move1:" + rgv1.getMove1() + ",move2:" + rgv1.getMove2() + + ",mode:" + rgv2.getMode() + ",move1:" + rgv2.getMove1() + ",move2:" + rgv2.getMove2()); + log.info("paperTubeAction--------------:输出参数" + resp.toString()); + return resp; + } + } + } + } + resp.put("status", 400); + resp.put("message", "设备:" + device_code + "驱动不符"); + log.info("paperTubeAction--------------:输出参数" + resp.toString()); + return resp; + } + }