From 4ac7e7fa60d9da937b6180c4b300535583625dd5 Mon Sep 17 00:00:00 2001 From: lishuai <1793460677@qq.com> Date: Mon, 12 Aug 2024 16:02:39 +0800 Subject: [PATCH] =?UTF-8?q?add:=20agv=E4=B8=8A=E4=B8=8B=E6=96=99=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- acs/nladmin-system/package-lock.json | 3 - .../org/nl/acs/agv/server/AgvWaitUtil.java | 10 +- .../device/device_driver/DriverTypeEnum.java | 4 +- .../agv_conveyor/AgvConveyorDefinition.java | 6 +- .../AgvConveyorDeviceDriver.java} | 25 +- .../{agv => }/agv_conveyor/ItemProtocol.java | 6 +- .../amb/service/impl/HFHandServiceImpl.java | 14 +- .../src/views/acs/device/config.vue | 4 +- .../acs/device/driver/agv/agv_conveyor.vue | 102 ---- .../views/acs/device/driver/agv_conveyor.vue | 487 ++++++++++++++++++ 10 files changed, 525 insertions(+), 136 deletions(-) delete mode 100644 acs/nladmin-system/package-lock.json rename acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/{agv => }/agv_conveyor/AgvConveyorDefinition.java (86%) rename acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/{agv/agv_conveyor/AgvConveyorConveyorDeviceDriver.java => agv_conveyor/AgvConveyorDeviceDriver.java} (90%) rename acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/{agv => }/agv_conveyor/ItemProtocol.java (93%) delete mode 100644 acs/nladmin-ui/src/views/acs/device/driver/agv/agv_conveyor.vue create mode 100644 acs/nladmin-ui/src/views/acs/device/driver/agv_conveyor.vue diff --git a/acs/nladmin-system/package-lock.json b/acs/nladmin-system/package-lock.json deleted file mode 100644 index 48e341a..0000000 --- a/acs/nladmin-system/package-lock.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lockfileVersion": 1 -} diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java index 73f0d70..6e8a9a9 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java @@ -7,7 +7,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.common.StandardOrdinarySiteDevice; import org.nl.acs.device_driver.RequestMethodEnum; -import org.nl.acs.device_driver.basedriver.agv.agv_conveyor.AgvConveyorConveyorDeviceDriver; +import org.nl.acs.device_driver.basedriver.agv_conveyor.AgvConveyorDeviceDriver; import org.nl.acs.device_driver.nl4.station.NL4StationDeviceDriver; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.opc.Device; @@ -123,8 +123,8 @@ public class AgvWaitUtil { String executeCode = task.getExecute_code(); if (StrUtil.isNotEmpty(executeCode)) { Device executeDevice = this.deviceAppService.findDeviceByCode(executeCode); - if (executeDevice.getDeviceDriver() instanceof AgvConveyorConveyorDeviceDriver) { - AgvConveyorConveyorDeviceDriver driver = (AgvConveyorConveyorDeviceDriver) executeDevice.getDeviceDriver(); + if (executeDevice.getDeviceDriver() instanceof AgvConveyorDeviceDriver) { + AgvConveyorDeviceDriver driver = (AgvConveyorDeviceDriver) executeDevice.getDeviceDriver(); if ("down".equals(task.getExecute_message())) { driver.writing("to_down_finished", 1); } @@ -312,8 +312,8 @@ public class AgvWaitUtil { String executeCode = task.getExecute_code(); if (StrUtil.isNotEmpty(executeCode)) { Device executeDevice = this.deviceAppService.findDeviceByCode(executeCode); - if (executeDevice.getDeviceDriver() instanceof AgvConveyorConveyorDeviceDriver) { - AgvConveyorConveyorDeviceDriver driver = (AgvConveyorConveyorDeviceDriver) executeDevice.getDeviceDriver(); + if (executeDevice.getDeviceDriver() instanceof AgvConveyorDeviceDriver) { + AgvConveyorDeviceDriver driver = (AgvConveyorDeviceDriver) executeDevice.getDeviceDriver(); if ("up".equals(task.getExecute_message())) { driver.writing("to_up_finished", 1); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java b/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java index 25b6b96..50598f3 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java @@ -11,7 +11,9 @@ import com.alibaba.fastjson.JSONObject; public enum DriverTypeEnum { ORDINARY_SITE(1, "standard_ordinary_site", "普通站点", "station"), - NL4_STATION(2, "nl4_station", "诺力四期-对接位", "station"); + NL4_STATION(2, "nl4_station", "诺力四期-对接位", "station"), + AGV_CONVEYOR(3, "agv_conveyor", "上下料任务管理驱动", "conveyor"), + STANDAR_ORDINARY_SITE(4, "standard_ordinary_site", "上下料agv对接位", "conveyor"); //驱动索引 private int index; //驱动编码 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/AgvConveyorDefinition.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDefinition.java similarity index 86% rename from acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/AgvConveyorDefinition.java rename to acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDefinition.java index 83fd814..0a78483 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/AgvConveyorDefinition.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDefinition.java @@ -1,4 +1,4 @@ -package org.nl.acs.device_driver.basedriver.agv.agv_conveyor; +package org.nl.acs.device_driver.basedriver.agv_conveyor; import org.nl.acs.device.device_driver.standard_inspect.ItemDTO; import org.nl.acs.device_driver.DeviceDriver; @@ -32,12 +32,12 @@ public class AgvConveyorDefinition implements OpcDeviceDriverDefinition { @Override public DeviceDriver getDriverInstance(Device device) { - return (new AgvConveyorConveyorDeviceDriver()).setDevice(device).setDriverDefinition(this); + return (new AgvConveyorDeviceDriver()).setDevice(device).setDriverDefinition(this); } @Override public Class getDeviceDriverType() { - return AgvConveyorConveyorDeviceDriver.class; + return AgvConveyorDeviceDriver.class; } @Override diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/AgvConveyorConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDeviceDriver.java similarity index 90% rename from acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/AgvConveyorConveyorDeviceDriver.java rename to acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDeviceDriver.java index 83b4128..bb73128 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/AgvConveyorConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDeviceDriver.java @@ -1,19 +1,14 @@ -package org.nl.acs.device_driver.basedriver.agv.agv_conveyor; +package org.nl.acs.device_driver.basedriver.agv_conveyor; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.map.MapUtil; import com.alibaba.fastjson.JSONObject; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.nl.acs.agv.server.AgvService; -import org.nl.acs.device.device_driver.standard_inspect.ReadUtil; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; @@ -22,7 +17,6 @@ import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.service.InstructionService; -import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; @@ -32,8 +26,8 @@ import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.system.service.ParamService; +import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; -import org.openscada.opc.lib.da.Server; import java.util.*; @@ -44,7 +38,7 @@ import java.util.*; @Getter @Setter @RequiredArgsConstructor -public class AgvConveyorConveyorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { +public class AgvConveyorDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { protected ItemProtocol itemProtocol = new ItemProtocol(this); @@ -140,11 +134,18 @@ public class AgvConveyorConveyorDeviceDriver extends AbstractOpcDeviceDriver imp return false; } else { this.instruction_require_time = date; + WQLObject wo = WQLObject.getWQLObject("acs_device_runpoint"); + JSONObject json = wo.query("device_code ='" + on_off_site + "'").uniqueResult(0); + if (MapUtil.isNotEmpty(json) && "0".equals(json.get("hasgoods"))){ + logServer.deviceExecuteLog(this.device_code, "", "", on_off_site + "无上下料货物"); + return false; + } //请求下料 if (down_request == 1){ - List routeLineDtos = routeLineService.getPathLinesByCode(on_off_site,"normal"); + List routeLineDtos = routeLineService.getsByCode(on_off_site,"normal"); if (CollUtil.isEmpty(routeLineDtos) || routeLineDtos.size() < 1) { logServer.deviceExecuteLog(this.device_code, "", "", "没有"+ on_off_site + "的路由"); + return false; } RouteLineDto routeLineDto = routeLineDtos.get(0); TaskDto taskDto = new TaskDto(); @@ -158,7 +159,7 @@ public class AgvConveyorConveyorDeviceDriver extends AbstractOpcDeviceDriver imp } //请求上料 if (up_request == 1){ - List routeLineDtos = routeLineService.getsByCode(on_off_site,"normal"); + List routeLineDtos = routeLineService.getPathLinesByCode(on_off_site,"normal"); if (CollUtil.isEmpty(routeLineDtos) || routeLineDtos.size() < 1) { logServer.deviceExecuteLog(this.device_code, "", "", "没有"+ on_off_site + "的路由"); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/ItemProtocol.java similarity index 93% rename from acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/ItemProtocol.java rename to acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/ItemProtocol.java index 87f8601..f830602 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/agv_conveyor/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/ItemProtocol.java @@ -1,4 +1,4 @@ -package org.nl.acs.device_driver.basedriver.agv.agv_conveyor; +package org.nl.acs.device_driver.basedriver.agv_conveyor; import lombok.Getter; import lombok.Setter; @@ -23,9 +23,9 @@ public class ItemProtocol { - private AgvConveyorConveyorDeviceDriver driver; + private AgvConveyorDeviceDriver driver; - public ItemProtocol(AgvConveyorConveyorDeviceDriver driver) { + public ItemProtocol(AgvConveyorDeviceDriver driver) { this.driver = driver; } diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java index 9cb6aa1..043b3f8 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java @@ -2,7 +2,9 @@ package org.nl.hand.amb.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -28,6 +30,7 @@ import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; +import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.acs.task.service.impl.TaskServiceImpl; @@ -44,10 +47,7 @@ import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; /** @@ -63,6 +63,10 @@ public class HFHandServiceImpl implements HFHandService { private final DeviceService deviceService; private final DeviceAppService deviceAppService; private final DictService dictService; + private final TaskService taskserver; + private final RouteLineService routeLineService; + + InstructionService instructionService = null; @@ -83,7 +87,7 @@ public class HFHandServiceImpl implements HFHandService { throw new BadRequestException("区域不能为空!"); } - JSONArray devices = WQLObject.getWQLObject("acs_device").query("region = '" + region + "' AND device_type = 'station' AND is_config = 'true' ", "seq_num").getResultJSONArray(0); + JSONArray devices = WQLObject.getWQLObject("acs_device").query("region = '" + region + "' AND (device_type = 'station' || device_type = 'conveyor') AND is_config = 'true' ", "seq_num").getResultJSONArray(0); JSONArray resultArr = new JSONArray(); for (int i = 0; i < devices.size(); i++) { JSONObject device = devices.getJSONObject(i); diff --git a/acs/nladmin-ui/src/views/acs/device/config.vue b/acs/nladmin-ui/src/views/acs/device/config.vue index 1cf17d6..e8d55e7 100644 --- a/acs/nladmin-ui/src/views/acs/device/config.vue +++ b/acs/nladmin-ui/src/views/acs/device/config.vue @@ -103,7 +103,7 @@ import conveyor_ssx_barcode from '@/views/acs/device/driver/lnsh/conveyor_ssx_ba import conveyor_press_station from '@/views/acs/device/driver/lnsh/conveyor_press_station' import agv_ndc_one from '@/views/acs/device/driver/agv/agv_ndc_one' import agv_ndc_two from '@/views/acs/device/driver/agv/agv_ndc_two' -import agv_conveyor from '@/views/acs/device/driver/agv/agv_conveyor' +import agv_conveyor from './driver/agv_conveyor.vue' import package_site from './driver/lnsh/package_site.vue' import nl4_station from '@/views/acs/device/driver/nl4/nl4_station.vue' @@ -114,7 +114,7 @@ export default { standard_conveyor_control, standard_conveyor_monitor, lnsh_mixing_mill, lnsh_press, lnsh_palletizing_manipulator, lnsh_fold_disc_site, lnsh_kiln_lane, lnsh_kiln_truss, lnsh_package_line, lnsh_out_kiln_truss, lnsh_package_pallet_manipulator, lnsh_pallet_storage, lnsh_labeling_machine, lnsh_split_manipulator, lnsh_rgv, lnsh_station, lnsh_Laminating_machine, lnsh_package_site, lnsh_crusher, lnsh_palletizing_manipulator_site, conveyor_ssx_barcode, conveyor_press_station, - agv_ndc_one, agv_ndc_two, package_site, nl4_station,agv_conveyor }, + agv_ndc_one, agv_ndc_two, package_site, nl4_station, agv_conveyor }, dicts: ['device_type'], mixins: [crud], data() { diff --git a/acs/nladmin-ui/src/views/acs/device/driver/agv/agv_conveyor.vue b/acs/nladmin-ui/src/views/acs/device/driver/agv/agv_conveyor.vue deleted file mode 100644 index 1d07bec..0000000 --- a/acs/nladmin-ui/src/views/acs/device/driver/agv/agv_conveyor.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - - - diff --git a/acs/nladmin-ui/src/views/acs/device/driver/agv_conveyor.vue b/acs/nladmin-ui/src/views/acs/device/driver/agv_conveyor.vue new file mode 100644 index 0000000..7db5a97 --- /dev/null +++ b/acs/nladmin-ui/src/views/acs/device/driver/agv_conveyor.vue @@ -0,0 +1,487 @@ + + + + +