From 49a0c619381dc61b8d26d5a5237605d3c325ff29 Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Tue, 18 Apr 2023 21:25:06 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E7=BA=B8=E7=AE=A1=E5=BA=93=E3=80=81?= =?UTF-8?q?=E7=AB=8B=E5=BA=93=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../paper_tube_device/ItemProtocol.java | 4 +++ .../PaperTubeConveyorDeviceDriver.java | 10 ++++-- .../SiemensConveyorDeviceDriver.java | 8 ++--- .../liKuData/OutConfirmReportResponse.java | 12 +++++++ .../ext/wms/liKuData/OutConfirmRequest.java | 14 ++++++++ .../acs/ext/wms/rest/AcsToLiKuController.java | 7 ++++ .../acs/ext/wms/rest/WmsToAcsController.java | 7 ++++ .../acs/ext/wms/service/AcsToLiKuService.java | 4 +++ .../acs/ext/wms/service/WmsToAcsService.java | 8 +++++ .../service/impl/AcsToLiKuServiceImpl.java | 16 ++++++++++ .../wms/service/impl/WmsToAcsServiceImpl.java | 32 +++++++++++++++++++ .../nl/acs/opc/DeviceOpcProtocolRunable.java | 31 +++++++++++++++++- .../acs/device/driver/paper_tube_conveyor.vue | 8 +---- 13 files changed, 146 insertions(+), 15 deletions(-) create mode 100644 acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmReportResponse.java create mode 100644 acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmRequest.java diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/ItemProtocol.java index 0404160bb..5f6d4454e 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/ItemProtocol.java @@ -112,6 +112,10 @@ public class ItemProtocol { return list; } + @Override + public String toString() { + return ""; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/PaperTubeConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/PaperTubeConveyorDeviceDriver.java index 11944f625..38928bf5e 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/PaperTubeConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/paper_tube_device/PaperTubeConveyorDeviceDriver.java @@ -149,12 +149,16 @@ public class PaperTubeConveyorDeviceDriver extends AbstractOpcDeviceDriver imple } else if (this.getMode() == 2) { mode = "联机"; } else if (this.getMode() == 3) { - mode = "运行中"; + mode = "入库中"; + } else if (this.getMode() == 4) { + mode = "出库中"; } jo.put("device_name", this.getDevice().getDevice_name()); jo.put("mode", mode); - jo.put("isOnline", this.getIsonline()); - jo.put("isError", this.getIserror()); + jo.put("inventory_qty", inventory_qty); + jo.put("out_finish", out_finish); + jo.put("material", material); + return jo; } 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 26e4394c7..605c7596f 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 @@ -870,10 +870,10 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) { message = "申请空盘入库任务中..."; - if(taskserver.querySameOriginTask(this.device_code) > 0 ){ - message = "已存在空盘出库任务不再请求"; - return; - } +// if(taskserver.querySameOriginTask(this.device_code) > 0 ){ +// message = "已存在空盘出库任务不再请求"; +// return; +// } JSONObject apply = new JSONObject(); apply.put("device_code", device_code); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmReportResponse.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmReportResponse.java new file mode 100644 index 000000000..9a088c0bc --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmReportResponse.java @@ -0,0 +1,12 @@ +package org.nl.acs.ext.wms.liKuData; + +import lombok.Data; + +/** + * 出库任务库位解锁Data类 + * @author: wangs + * @createDate: 2022/11/24 + */ +@Data +public class OutConfirmReportResponse extends BaseResponseData { +} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmRequest.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmRequest.java new file mode 100644 index 000000000..7217c6333 --- /dev/null +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/liKuData/OutConfirmRequest.java @@ -0,0 +1,14 @@ +package org.nl.acs.ext.wms.liKuData; + +import lombok.Data; + +/** + * 出库库位解锁 请求参数类 + * + * @author: wangs by + * @createDate: 2022/11/24 + */ +@Data +public class OutConfirmRequest extends BaseStoreRequest { + String outPortNo; +} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToLiKuController.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToLiKuController.java index 494393c02..beedf6fa4 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToLiKuController.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/AcsToLiKuController.java @@ -111,4 +111,11 @@ public class AcsToLiKuController { return new ResponseEntity<>(acsToLiKuService.queryTsjDeviceStatus(requestParam), HttpStatus.OK); } + @PostMapping("/outConfirm") + @Log(value = "下发解锁出库口",isInterfaceLog = true,interfaceLogType= InterfaceLogType.ACS_TO_LK) + @ApiOperation("下发解锁出库口") + public ResponseEntity outConfirm(@RequestBody OutConfirmRequest requestParam) { + return new ResponseEntity<>(acsToLiKuService.outConfirm(requestParam), HttpStatus.OK); + } + } 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 b004859c4..cf8012a22 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 @@ -39,6 +39,13 @@ public class WmsToAcsController { return new ResponseEntity<>(wmstoacsService.crateTask(whereJson), HttpStatus.OK); } + @PostMapping("/unLock") + @Log(value = "解锁立库点位",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) + @ApiOperation("解锁立库点位") + public ResponseEntity unLock(@RequestBody String whereJson) { + return new ResponseEntity<>(wmstoacsService.unLock(whereJson), HttpStatus.OK); + } + @PostMapping("/cancelTask") @Log(value = "WMS取消任务",isInterfaceLog = true,interfaceLogType= InterfaceLogType.LMS_TO_ACS) @ApiOperation("WMS取消任务") diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToLiKuService.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToLiKuService.java index 60c427e7b..58d5290ff 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToLiKuService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/AcsToLiKuService.java @@ -88,6 +88,10 @@ public interface AcsToLiKuService { * @return */ public Resp querySsxDeviceStatus(DeviceStatusRequest requestParam); + + + public Resp outConfirm(OutConfirmRequest requestParam); + } 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 7890352df..1aae7354d 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 @@ -19,6 +19,14 @@ public interface WmsToAcsService { CreateTaskResponse crateTask(String whereJson); + /** + * 解锁立库点位 + * + * @param jsonObject 条件 + * @return + */ + Map unLock(String jsonObject); + /** * 取消任务 * diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java index 1bdb2e8e9..3c2b00d47 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToLiKuServiceImpl.java @@ -204,6 +204,22 @@ public class AcsToLiKuServiceImpl implements AcsToLiKuService { } } + + @Override + public Resp outConfirm(OutConfirmRequest requestParam) { + try { + MDC.put(log_file_type, log_type); + log.info("outConfirm-----输入参数{}", JSON.toJSONString(requestParam)); + String api = addressService.findByCode("outConfirm").getMethods_url(); + String result = AcsUtil.notifyAcs(api, requestParam); + log.info("outConfirm-----输出参数{}", result); + return RespUtil.getResp(result, new OutConfirmRequest()); + } finally { + MDC.remove(log_file_type); + } + } + + @Override public Resp sendInst(String type, Instruction dto){ AcsToLiKuService acsToLiKuService = SpringContextHolder.getBean(AcsToLiKuService.class); 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 0ad6c223e..2904daced 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 @@ -23,6 +23,9 @@ import org.nl.acs.device_driver.basedriver.standard_conveyor_control_with_scanne import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDefination; import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.ext.wms.data.*; +import org.nl.acs.ext.wms.liKuData.DeviceStatusResponse; +import org.nl.acs.ext.wms.liKuData.OutConfirmReportResponse; +import org.nl.acs.ext.wms.liKuData.OutConfirmRequest; import org.nl.acs.ext.wms.liKuData.Resp; import org.nl.acs.ext.wms.service.AcsToLiKuService; import org.nl.acs.ext.wms.service.WmsToAcsService; @@ -769,6 +772,35 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { } + @Override + public Map unLock(String param) { + try { + MDC.put(log_file_type, log_type); + log.info("unLock--------------:输入参数" + param); + JSONObject jo = JSONObject.parseObject(param); + String task_code = String.valueOf(jo.get("task_code")); + String device_code = String.valueOf(jo.get("device_code")); + String vehicle_code = String.valueOf(jo.get("vehicle_code")); + OutConfirmRequest outConfirmRequest = new OutConfirmRequest(); + outConfirmRequest.setOutPortNo(device_code); + outConfirmRequest.setPalletCode(vehicle_code); + + Resp resp = acsToLiKuService.outConfirm(outConfirmRequest); + + + } catch (Exception e) { + e.printStackTrace(); + log.info("unLock--------------:输出参数" + e.getMessage()); + } finally { + MDC.remove(log_file_type); + } + JSONObject resultJson = new JSONObject(); + resultJson.put("status", HttpStatus.OK.value()); + resultJson.put("message", "操作成功"); + log.info("unLock--------------:输出参数" + resultJson); + return resultJson; + } + @Override public Map updateTask(String whereJson) { diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index 531f767cf..c020e6280 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -12,6 +12,8 @@ import org.openscada.opc.lib.da.ItemState; import org.openscada.opc.lib.da.Server; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; @Slf4j public class DeviceOpcProtocolRunable implements Runnable { @@ -20,6 +22,8 @@ public class DeviceOpcProtocolRunable implements Runnable { int error_num; String message; private Server server; + boolean flag =false; + public DeviceOpcProtocolRunable() { this.error_num = 0; @@ -172,10 +176,30 @@ public class DeviceOpcProtocolRunable implements Runnable { value = OpcUtl.getValue(item, itemState); his = accessor_value.getValue(item.getId()); if (!ObjectUtl.isEquals(itemState.getQuality(), QualityTypeValue.OPC_QUALITY_GOOD) && his != null) { + flag = true; log.warn("opc 值不健康 item: {}, 状态: {},当前读取值:{}, 系统内存值{} ", item.getId(), itemState.getQuality(), value, his); } + if(flag){ + if (this.server != null) { + try { + this.server.disconnect(); + } catch (Exception var25) { + log.warn("{} : server disconnect", var25); + } + } + DeviceOpcProtocolRunable runable = new DeviceOpcProtocolRunable(); + runable.setProtocols(protocols); + runable.setOpcServer(OpcServer); + ExecutorService executorService = Executors.newCachedThreadPool(); + executorService.submit(runable); + log.warn("opc 值不健康 item: {}, 重新创建连接,当前线程名:{}", item.getId(),tag); + break; + } } while (ObjectUtil.equal(value, his));//如果两次的值相等,不走下面的代码 + if(flag){ + break; + } OpcItemDto itemDto = this.getItem(item.getId()); //默认记录日志 if (true) { @@ -197,7 +221,12 @@ public class DeviceOpcProtocolRunable implements Runnable { // accessor_value.getHistoryUnifiedData(item.getId()); //设置值 accessor_value.setValue(item.getId(), value); - + if(flag){ + break; + } + } + if(flag){ + break; } } } catch (Exception var30) { diff --git a/acs/nladmin-ui/src/views/acs/device/driver/paper_tube_conveyor.vue b/acs/nladmin-ui/src/views/acs/device/driver/paper_tube_conveyor.vue index 6184e0f15..032907b97 100644 --- a/acs/nladmin-ui/src/views/acs/device/driver/paper_tube_conveyor.vue +++ b/acs/nladmin-ui/src/views/acs/device/driver/paper_tube_conveyor.vue @@ -369,9 +369,6 @@ export default { return } for (const val in this.data1) { - if (this.data1[val].code.indexOf('inventory_qty') !== -1) { - this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) - } if (this.data1[val].code.indexOf('inventory_qty') !== -1) { this.data1[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) } @@ -396,12 +393,9 @@ export default { return } for (const val in this.data2) { - if (this.data2[val].code.indexOf('to_target') !== -1) { + if (this.data2[val].code.indexOf('to_out_qty') !== -1) { this.data2[val].db = beforeStr + '.' + afterStr.substring(0, 1) + (parseInt(endNumber) + 2) } - if (this.data2[val].code.indexOf('to_task') !== -1) { - this.data2[val].db = beforeStr + '.' + 'D' + (parseInt(endNumber) + 6) - } } } },