From 32b11ad087036eaa054230f50041d52c83dd824c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=97=AD=E6=98=8E=5C73939?= <739390650@QQ.COM> Date: Fri, 21 Nov 2025 16:37:44 +0800 Subject: [PATCH] =?UTF-8?q?opt:=E4=BC=98=E5=8C=96=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9F=A5=E7=9C=8B=E5=B0=8F=E8=BD=A6=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 1 + .../acs/ext/wms/rest/WmsToAcsController.java | 24 ++++++ .../ext/wms/service/GetCarStatusResponse.java | 80 +++++++++++++++++++ .../acs/ext/wms/service/WmsToAcsService.java | 28 +++++++ .../wms/service/impl/WmsToAcsServiceImpl.java | 58 ++++++++++++++ 5 files changed, 191 insertions(+) create mode 100644 acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/GetCarStatusResponse.java diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 4b9c42b..cda1adb 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -720,6 +720,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic String status_name = this.status == 1 ? "关机" : this.status == 2 ? "工作中" : this.status == 3 ? "交通管制" : this.status == 4 ? "任务等待" : this.status == 5 ? "充电中" : this.status == 6 ? "故障中" : this.status == 7 ? "电量低" : "正常"; //agv状态 jo.put("status_name", status_name); + jo.put("status", this.getStatus()); //任务号 jo.put("task_code", ObjectUtil.isEmpty(instruction) ? "0" : instruction.getTask_code()); //异常 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index 5775403..2af95a8 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -43,6 +43,30 @@ public class WmsToAcsController { return new ResponseEntity<>(wmstoacsService.crateTask(whereJson), HttpStatus.OK); } + @PostMapping("/getCarStatus") + @Log(value = "获取小车状态") + @SaIgnore + public ResponseEntity getCarStatus( HttpServletRequest request) { + log.info("获取小车状态ip:{},端口号:{},地址:{}", request.getRemoteAddr(),request.getRemotePort(),request.getRemoteHost()); + return new ResponseEntity<>(wmstoacsService.getCarStatus(), HttpStatus.OK); + } + + @PostMapping("/suspend") + @Log(value = "停止") + @SaIgnore + public ResponseEntity suspend(@RequestBody String whereJson, HttpServletRequest request) { + log.info("wms下发任务的ip:{},端口号:{},地址:{}", request.getRemoteAddr(),request.getRemotePort(),request.getRemoteHost()); + return new ResponseEntity<>(wmstoacsService.suspend(whereJson), HttpStatus.OK); + } + + @PostMapping("/start") + @Log(value = "启动") + @SaIgnore + public ResponseEntity start(@RequestBody String whereJson, HttpServletRequest request) { + log.info("wms下发任务的ip:{},端口号:{},地址:{}", request.getRemoteAddr(),request.getRemotePort(),request.getRemoteHost()); + return new ResponseEntity<>(wmstoacsService.start(whereJson), HttpStatus.OK); + } + @PostMapping("/cancelTask") @Log(value = "WMS取消任务") @SaIgnore diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/GetCarStatusResponse.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/GetCarStatusResponse.java new file mode 100644 index 0000000..3ff30bf --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/GetCarStatusResponse.java @@ -0,0 +1,80 @@ +package org.nl.acs.ext.wms.service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.HashMap; +import java.util.Map; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class GetCarStatusResponse { + + /** + * 请求号 + */ + private String requestNo; + + /** + * 响应时间 + */ + private Object responseDate; + + /** + * 结果 200成功 + */ + private int code; + + /** + * 信息 + */ + private String message; + + + private Map parameters = new HashMap(); + + private Integer status = 0; + private JSONArray errArr = new JSONArray(); + + + + public Integer getstatus() { + return this.status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getMessage() { + return this.message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Map getParameters() { + return this.parameters; + } + + public void setParameters(Map parameters) { + this.parameters = parameters; + } + + public Object getParameter(String key) { + return this.parameters.get(key); + } + + public void putParameter(String key, String object) { + this.parameters.put(key, object); + } + + +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java index 054aafb..7428e4a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java @@ -25,6 +25,34 @@ public interface WmsToAcsService { */ CreateTaskResponse crateTask(List reqs); + /** + * 创建任务 + * + * @param reqs + * @return + */ + GetCarStatusResponse getCarStatus(); + + + /** + * 创建任务 + * + * @param reqs + * @return + */ + JSONObject suspend(String param); + + + /** + * 创建任务 + * + * @param reqs + * @return + */ + JSONObject start(String param); + + + /** * 更新任务点位状态 * diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 8880ece..41ac4f4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -18,9 +18,11 @@ import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; import org.nl.acs.device_driver.conveyor.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; import org.nl.acs.ext.wms.data.*; +import org.nl.acs.ext.wms.service.GetCarStatusResponse; import org.nl.acs.ext.wms.service.WmsToAcsService; import org.nl.acs.instruction.domain.Instruction; +import org.nl.acs.instruction.enums.InstructionStatusEnum; import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.storage_cell.domain.StorageCell; @@ -38,6 +40,7 @@ import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import java.util.*; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -402,6 +405,61 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return null; } + @Override + public GetCarStatusResponse getCarStatus() { + GetCarStatusResponse response = new GetCarStatusResponse(); + List agvDevices = deviceAppService.findAllDevice().stream().filter(a -> "agv_ndc_two".equals(a.getDevice_type())).collect(Collectors.toList()); + List instructions = instructionService.queryAll(new HashMap()).stream().filter(a -> InstructionStatusEnum.BUSY.getIndex().equals(a.getInstruction_status())).collect(Collectors.toList()); + List jsonObjectList = new ArrayList<>(); + + for (Device device : agvDevices) { + JSONObject car = new JSONObject(); + car.put("device_code", device.getDevice_code() ); + car.put("device_name", device.getDevice_code() + "号AGV"); + boolean isWorking = false; + for (Instruction instruction : instructions) { + if (device.getDevice_code().equals(instruction.getCarno())) { + isWorking = true; + car.put("start_point", instruction.getStart_point_code()); + car.put("end_point", instruction.getNext_point_code()); + car.put("vehicle_code", instruction.getVehicle_code()); + + } + } + if (!isWorking) { + + car.put("start_point", ""); + car.put("end_point", ""); + car.put("vehicle_code", ""); + + } + if (device.getDeviceDriver() instanceof AgvNdcTwoDeviceDriver) { + AgvNdcTwoDeviceDriver agvNdcTwoDeviceDriver = (AgvNdcTwoDeviceDriver) device.getDeviceDriver(); + car.put("electricity", agvNdcTwoDeviceDriver.getDeviceStatusName().get("electricity")); + car.put("status_name", agvNdcTwoDeviceDriver.getDeviceStatusName().get("status_name")); + car.put("fault", agvNdcTwoDeviceDriver.getDeviceStatusName().get("fault")); + car.put("status", agvNdcTwoDeviceDriver.getDeviceStatusName().get("status")); + } + jsonObjectList.add(car); + + } + response.setResponseDate(jsonObjectList); + response.setStatus(200); + response.setCode(200); + response.setMessage("success"); + return response; + } + + @Override + public JSONObject suspend(String param) { + return null; + } + + @Override + public JSONObject start(String param) { + return null; + } + @Override public Map updateTask(String whereJson) { JSONArray datas = JSONArray.parseArray(whereJson);