diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java index 7837fd1..075727d 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvService.java @@ -1,5 +1,6 @@ package org.nl.acs.agv.server; +import cn.hutool.http.HttpResponse; import org.nl.acs.agv.server.dto.AgvDto; import java.util.Map; @@ -17,6 +18,7 @@ public interface AgvService { */ public String requestOpenOrCloseDoor(String device, String param); + public HttpResponse queryMagicAgvDeviceStatus(); // diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/MagicAgvService.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/MagicAgvService.java index 165359c..0163d1b 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/MagicAgvService.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/MagicAgvService.java @@ -4,6 +4,7 @@ import cn.hutool.http.HttpResponse; import org.nl.acs.agv.server.dto.AgvDto; import org.nl.acs.instruction.service.dto.Instruction; +import java.util.List; import java.util.Map; /** @@ -13,6 +14,7 @@ import java.util.Map; */ public interface MagicAgvService { + Map findAllAgvFromCache(); /** * 查询自动门状态 @@ -39,8 +41,9 @@ public interface MagicAgvService { public HttpResponse sendAgvInstToMagic(String code) throws Exception; - - //查询AGV状态,故障、充电等 + /** + 查询AGV状态,故障、充电等 + */ public HttpResponse queryMagicAgvDeviceStatus(); /** diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java index 281ae20..e13a97f 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/AgvServiceImpl.java @@ -2,6 +2,8 @@ package org.nl.acs.agv.server.impl; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; @@ -11,14 +13,19 @@ import org.nl.acs.agv.server.dto.AgvDto; import org.nl.acs.config.AcsConfig; import org.nl.acs.config.server.AcsConfigService; import org.nl.acs.device_driver.autodoor.standard_autodoor.StandardAutodoorDeviceDriver; +import org.nl.acs.device_driver.standard_storage.StandardStorageDeviceDriver; import org.nl.acs.ext.wms.service.AcsToWmsService; 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.opc.Device; import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.opc.DeviceType; import org.nl.acs.task.service.TaskService; +import org.nl.acs.task.service.dto.TaskDto; import org.nl.exception.BadRequestException; +import org.nl.utils.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -77,15 +84,6 @@ public class AgvServiceImpl implements AgvService { AGVDeviceStatus.put(dto.getName(), dto); } - - - - - - - - - @Override public String requestOpenOrCloseDoor(String device_code, String param) { log.info("AGV请求开关门参数,设备:{},参数:{}", device_code, param); @@ -117,6 +115,59 @@ public class AgvServiceImpl implements AgvService { return null; } + @Override + public HttpResponse queryMagicAgvDeviceStatus() { + if (StrUtil.equals(acsConfigService.findConfigFromCache().get(AcsConfig.FORKAGV).toString(), "1")) { + String agvurl = acsConfigService.findConfigFromCache().get(AcsConfig.AGVURL); + String agvport = acsConfigService.findConfigFromCache().get(AcsConfig.AGVPORT); + + agvurl = agvurl + ":" + agvport + "/v1/vehicles"; + + HttpResponse result = HttpRequest.get(agvurl) + .timeout(20000)//超时,毫秒 + .execute(); + System.out.println("查询agv状态数据:" + result.body()); + log.info("查询agv状态数据:" + result.body()); + if (result.getStatus() == 200) { + net.sf.json.JSONArray ja = net.sf.json.JSONArray.fromObject(result.body()); + for (int i = 0; i < ja.size(); i++) { + net.sf.json.JSONObject jo = (net.sf.json.JSONObject) ja.get(i); + String name = jo.getString("name"); + String state = jo.getString("state"); + String energyLevel = jo.getString("energyLevel"); + String transportOrder = jo.getString("transportOrder"); + net.sf.json.JSONObject jo_p = jo.getJSONObject("properties"); + String positionAngle = null; + String positionX = null; + String positionY = null; + for (int j = 0; j < jo_p.size(); j++) { + positionAngle = jo_p.getString("positionAngle"); + positionX = jo_p.getString("positionX"); + positionY = jo_p.getString("positionY"); + } + AgvDto dto = new AgvDto(); + dto.setName(name); + dto.setEnergyLevel(energyLevel); + dto.setState(state); + dto.setPositionAngle(positionAngle); + dto.setPositionX(positionX); + dto.setPositionY(positionY); + dto.setTransportOrder(transportOrder); + + if (AGVDeviceStatus.containsKey(name)) { + AGVDeviceStatus.remove(name); + AGVDeviceStatus.put(name, dto); + } else { + AGVDeviceStatus.put(name, dto); + } + } + } + return result; + } else { + return null; + } + } + @Override public String queryAllDoorStatus() { diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java index 1191056..0324ca6 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/MagicAgvServiceImpl.java @@ -64,6 +64,8 @@ public class MagicAgvServiceImpl implements MagicAgvService { return nowAsISO; } + + @Override public HttpResponse sendAgvInstToMagic(String instcode) throws Exception { InstructionService instructionService = SpringContextHolder.getBean(InstructionService.class); diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/AcsConfig.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/AcsConfig.java index 657e8d5..2c20db0 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/AcsConfig.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/config/AcsConfig.java @@ -20,6 +20,8 @@ public interface AcsConfig { String AGVTYPE = "agvType"; //WMS系统接口地址 String WMSURL = "wmsurl"; + //MES系统接口地址 + String MESURL = "mesurl"; //WCS系统接口地址 String WCSURL = "wcsurl"; diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index cfedf7d..907b45f 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -849,7 +849,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { public HttpResponse feedbackAgv(JSONArray from) { try { MDC.put(log_file_type, log_type); - String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.WMSURL); + String wmsUrl = acsConfigService.findConfigFromCache().get(AcsConfig.MESURL); AddressDto addressDto = addressService.findByCode("feedbackAgv"); String methods_url = addressDto.getMethods_url(); String url = wmsUrl + methods_url; diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryMagicAgvDeviceStatus.java b/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryMagicAgvDeviceStatus.java new file mode 100644 index 0000000..3cd15df --- /dev/null +++ b/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/QueryMagicAgvDeviceStatus.java @@ -0,0 +1,35 @@ +package org.nl.modules.quartz.task; + +import cn.hutool.http.HttpResponse; +import lombok.extern.slf4j.Slf4j; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.nl.acs.agv.server.AgvService; +import org.nl.acs.instruction.service.InstructionService; +import org.nl.acs.opc.Device; +import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.opc.DeviceAppServiceImpl; +import org.nl.utils.SpringContextHolder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 查询AGV设备状态 + */ +@Slf4j +@Component("queryMagicAgvDeviceStatus") +public class QueryMagicAgvDeviceStatus { + + @Autowired + InstructionService instructionService; + + @Autowired + AgvService agvService; + + + public void run() throws Exception { + HttpResponse response = agvService.queryMagicAgvDeviceStatus(); + + } + +} diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/ToAgvDevice.java b/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/ToAgvDevice.java index 3576d83..72af367 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/ToAgvDevice.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/ToAgvDevice.java @@ -66,10 +66,6 @@ public class ToAgvDevice { row.put("positionAngle", agvDto.getPositionAngle()); agv_rows.add(row); } - json.put("agv_rows", agv_rows); - SocketMsg deviceInfo = new SocketMsg(json, MsgType.INFO); - WebSocketServer.sendInfo(deviceInfo, "toAgvDevice_data"); - acsToWmsService.feedbackAgv(agv_rows); } diff --git a/acs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml b/acs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml index f767fa7..690ae29 100644 --- a/acs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml +++ b/acs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml @@ -1,29 +1,32 @@ - - - - - - 1000 - - ${LOKI_URL} - - - - - ${log.pattern} - - true - + + + + + + ${LOG_HOME}/ACS请求WMS/%d{yyyy-MM-dd}.%i.log + + 15 + + 50MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + + + + - - + + diff --git a/acs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml b/acs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml index f862fe2..1c1b07c 100644 --- a/acs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml +++ b/acs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml @@ -1,28 +1,31 @@ - - - - - - 1000 - - ${LOKI_URL} - - - - - ${log.pattern} - - true - + + + + + + ${LOG_HOME}/自动创建指令/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + + + + - + diff --git a/acs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml b/acs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml deleted file mode 100644 index 625ba86..0000000 --- a/acs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - 1000 - - ${LOKI_URL} - - - - - ${log.pattern} - - true - - - - - - - - diff --git a/acs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml b/acs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml index c42a9d4..8ea9b07 100644 --- a/acs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml +++ b/acs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml @@ -1,27 +1,32 @@ - - - - - - 1000 - - ${LOKI_URL} - - - - - ${log.pattern} - - true - + + + + + + ${LOG_HOME}/查询AGV设备状态/%d{yyyy-MM-dd}.%i.log + + 15 + + 100MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + + - - + + + + + + diff --git a/acs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml b/acs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml deleted file mode 100644 index 4b1daf3..0000000 --- a/acs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - 1000 - - ${LOKI_URL} - - - - - ${log.pattern} - - true - - - - - - diff --git a/acs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml b/acs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml index 85f952c..08499c5 100644 --- a/acs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml +++ b/acs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml @@ -1,30 +1,32 @@ - - - - - - - + + + + + + + + + ${LOG_HOME}/WMS下发ACS/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + - - - - - - - - - - - - - - - - + - - - - - + + + + + + + diff --git a/acs/hd/nladmin-system/src/main/resources/logback-spring.xml b/acs/hd/nladmin-system/src/main/resources/logback-spring.xml index f811dcc..0708c45 100644 --- a/acs/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/acs/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -12,25 +12,15 @@ https://juejin.cn/post/6844903775631572999 nlAdmin + value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/> - - - - - - - + + @@ -39,6 +29,8 @@ https://juejin.cn/post/6844903775631572999 + + @@ -55,6 +47,7 @@ https://juejin.cn/post/6844903775631572999 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + @@ -64,44 +57,20 @@ https://juejin.cn/post/6844903775631572999 - - - 1000 - - ${LOKI_URL}/push - - - - - ${log.pattern} - - true - - + + + + + + + - - - - - - - - - - - - - - - @@ -112,6 +81,9 @@ https://juejin.cn/post/6844903775631572999 + + + @@ -122,6 +94,7 @@ https://juejin.cn/post/6844903775631572999 + @@ -130,48 +103,6 @@ https://juejin.cn/post/6844903775631572999 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -