add: agv上下料开发
This commit is contained in:
3
acs/nladmin-system/package-lock.json
generated
3
acs/nladmin-system/package-lock.json
generated
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"lockfileVersion": 1
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
//驱动编码
|
||||
|
||||
@@ -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<? extends DeviceDriver> getDeviceDriverType() {
|
||||
return AgvConveyorConveyorDeviceDriver.class;
|
||||
return AgvConveyorDeviceDriver.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -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<RouteLineDto> routeLineDtos = routeLineService.getPathLinesByCode(on_off_site,"normal");
|
||||
List<RouteLineDto> 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<RouteLineDto> routeLineDtos = routeLineService.getsByCode(on_off_site,"normal");
|
||||
List<RouteLineDto> routeLineDtos = routeLineService.getPathLinesByCode(on_off_site,"normal");
|
||||
if (CollUtil.isEmpty(routeLineDtos) || routeLineDtos.size() < 1) {
|
||||
logServer.deviceExecuteLog(this.device_code, "", "", "没有"+ on_off_site + "的路由");
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user