From 72b88ed0e33165e2c4992edcd88ab853850ad55b Mon Sep 17 00:00:00 2001
From: zgw <13623675548@163.com>
Date: Fri, 24 Jul 2026 08:51:41 +0800
Subject: [PATCH] chore: upload current WCS changes
---
pom.xml | 2 +-
.../main/java/com/ruoyi/MyStartupRunner.java | 21 +
.../main/java/com/ruoyi/RuoYiApplication.java | 4 +
.../algorithm/controller/TidyController.java | 30 +
.../ruoyi/algorithm/service/ITidyService.java | 8 +
.../service/impl/TidyServiceImpl.java | 29 +
.../ruoyi/api/controller/AgvController.java | 122 +-
.../api/controller/Wcs2WmsController.java | 9 +
.../ruoyi/api/domain/wcs2wms/ReceiveJob.java | 3 +
.../domain/wcs2wms/SrgvVehicleSnapshot.java | 23 +
.../com/ruoyi/api/service/IApiService.java | 20 +
.../ruoyi/api/service/IRequestLogService.java | 2 +
.../api/service/impl/ApiServiceImpl.java | 150 +-
.../service/impl/RequestLogServiceImpl.java | 77 +-
.../bas/srgvmap/mapper/WcsSrgvMapMapper.java | 6 +
.../srgvmap/service/IWcsSrgvMapService.java | 3 +
.../bas/srgvmap/service/RoadCacheService.java | 5 +-
.../service/impl/RoadCacheServiceImpl.java | 32 +-
.../service/impl/WcsSrgvMapServiceImpl.java | 42 +-
.../main/java/com/ruoyi/common/Constant.java | 14 +-
.../device/cdz/mapper/DeviceCdzMapper.java | 2 +
.../device/cdz/service/IDeviceCdzService.java | 2 +
.../service/impl/DeviceCdzServiceImpl.java | 5 +
.../ruoyi/device/ssj/domain/DeviceSsj.java | 2 +
.../job/controller/MydoJobController.java | 41 +-
.../java/com/ruoyi/job/domain/MydoJob.java | 14 +-
.../com/ruoyi/job/mapper/MydoJobMapper.java | 22 +
.../ruoyi/job/service/IMydoJobService.java | 20 +
.../job/service/impl/MydoJobServiceImpl.java | 51 +
.../queue/agv/mapper/AgvQueueMapper.java | 3 +
.../queue/agv/service/IAgvQueueService.java | 3 +
.../agv/service/impl/AgvQueueServiceImpl.java | 6 +
.../queue/srgv/mapper/WcsSrgvQueueMapper.java | 11 +
.../srgv/service/IWcsSrgvQueueService.java | 8 +
.../service/impl/WcsSrgvQueueServiceImpl.java | 47 +-
.../mapper/TsjDeviceExecutionQueueMapper.java | 2 +
.../ITsjDeviceExecutionQueueService.java | 2 +
.../TsjDeviceExecutionQueueServiceImpl.java | 5 +
.../schedule/plcRead/cdz/PlcCdzRead.java | 10 +-
.../schedule/plcRead/ddj/PlcDdjRead.java | 4 +-
.../schedule/plcRead/srgv/PlcSrgvRead.java | 60 +-
.../plcRead/srgv/roadUtil/PathFinder.java | 1 +
.../schedule/plcRead/ssj/PlcSsjRead.java | 28 +-
.../schedule/plcRead/tsj/PlcTsjRead.java | 4 +-
.../schedule/scheduleTask/cdz/CdzThread.java | 166 ++-
.../scheduleTask/monit/MonitoringThread.java | 6 +-
.../scheduleTask/srgv/BaseSRgvThread.java | 1325 ++++++++++++-----
.../schedule/scheduleTask/ssj/SsjThread.java | 189 ++-
.../schedule/scheduleTask/tsj/TsjThread.java | 136 +-
.../AgvContainerTaskController.java | 104 ++
.../ruoyi/system/domain/AgvContainerTask.java | 173 +++
.../system/mapper/AgvContainerTaskMapper.java | 68 +
.../service/IAgvContainerTaskService.java | 63 +
.../impl/AgvContainerTaskServiceImpl.java | 100 ++
.../java/com/ruoyi/tcp/GetDeviceSrgvMap.java | 8 +-
.../java/com/ruoyi/tcp/GetDeviceSsjMap.java | 21 +-
.../java/com/ruoyi/tcp/GetDeviceTsjMap.java | 2 +-
.../ruoyi/tcp/Wcs2wmsgetEmptyCargoSpace.java | 2 +
.../src/main/resources/application-druid.yml | 4 +-
.../src/main/resources/application.yml | 4 +-
.../resources/mapper/bas/WcsSrgvMapMapper.xml | 25 +
.../mapper/device/AgvQueueMapper.xml | 9 +
.../mapper/device/DeviceCdzMapper.xml | 5 +
.../mapper/device/DeviceSrgvMapper.xml | 4 +-
.../resources/mapper/job/MydoJobMapper.xml | 98 +-
.../queue/TsjDeviceExecutionQueueMapper.xml | 7 +
.../mapper/queue/WcsSrgvQueueMapper.xml | 43 +-
.../mapper/system/AgvContainerTaskMapper.xml | 116 ++
.../ruoyi/common/core/domain/AjaxResult.java | 4 +-
.../framework/config/SecurityConfig.java | 2 +-
ruoyi-ui/src/api/algorithm/tidy.js | 9 +
ruoyi-ui/src/views/algorithm/tidy/index.vue | 33 +
ruoyi-ui/vue.config.js | 1 +
73 files changed, 2989 insertions(+), 693 deletions(-)
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/TidyController.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/ITidyService.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/TidyServiceImpl.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/SrgvVehicleSnapshot.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/controller/AgvContainerTaskController.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/domain/AgvContainerTask.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/mapper/AgvContainerTaskMapper.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/service/IAgvContainerTaskService.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/AgvContainerTaskServiceImpl.java
create mode 100644 ruoyi-admin/src/main/resources/mapper/system/AgvContainerTaskMapper.xml
create mode 100644 ruoyi-ui/src/api/algorithm/tidy.js
create mode 100644 ruoyi-ui/src/views/algorithm/tidy/index.vue
diff --git a/pom.xml b/pom.xml
index 589d24f..950dfb5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
5.3.39
5.8.27
1.18.30
- 3.7.0
+ 2.0.0
3.5.2
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java b/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java
new file mode 100644
index 0000000..6ecbdd8
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java
@@ -0,0 +1,21 @@
+package com.ruoyi;
+
+import com.ruoyi.schedule.ScheduleThread;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.stereotype.Component;
+
+@Component
+public class MyStartupRunner implements CommandLineRunner {
+
+ @Autowired
+ private ScheduleThread scheduleThread;
+
+ @Override
+ public void run(String... args) throws Exception {
+ // 这里编写项目启动后要执行的方法逻辑
+ //System.out.println("项目启动成功后自动执行此方法");
+// scheduleThread.startAllThread();
+// scheduleThread.startAllThread2();
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
index e95a574..5bcd40a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -1,5 +1,6 @@
package com.ruoyi;
+import com.ruoyi.schedule.ScheduleThread;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -7,6 +8,8 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
+import javax.annotation.Resource;
+
/**
* 启动程序
*
@@ -17,6 +20,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAsync
public class RuoYiApplication
{
+
public static void main(String[] args)
{
// System.setProperty("spring.devtools.restart.enabled", "false");
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/TidyController.java b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/TidyController.java
new file mode 100644
index 0000000..b542fb3
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/TidyController.java
@@ -0,0 +1,30 @@
+package com.ruoyi.algorithm.controller;
+
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.algorithm.service.ITidyService;
+import com.ruoyi.common.core.domain.AjaxResult;
+
+@RestController
+@RequestMapping("/algorithm/tidy")
+public class TidyController {
+ @Autowired
+ private ITidyService tidyService;
+
+ @PreAuthorize("@ss.hasPermi('algorithm:tidy:query')")
+ @GetMapping("/status")
+ public AjaxResult status() { return AjaxResult.success(tidyService.getStatus()); }
+
+ @PreAuthorize("@ss.hasPermi('algorithm:tidy:edit')")
+ @PutMapping("/mode")
+ public AjaxResult mode(@RequestBody Map body) {
+ try { return AjaxResult.success(tidyService.updateMode(body == null ? null : body.get("mode"))); }
+ catch (IllegalArgumentException ex) { return AjaxResult.error(ex.getMessage()); }
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/ITidyService.java b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/ITidyService.java
new file mode 100644
index 0000000..b1aa956
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/ITidyService.java
@@ -0,0 +1,8 @@
+package com.ruoyi.algorithm.service;
+
+import java.util.Map;
+
+public interface ITidyService {
+ Map getStatus();
+ Map updateMode(String mode);
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/TidyServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/TidyServiceImpl.java
new file mode 100644
index 0000000..86741a6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/TidyServiceImpl.java
@@ -0,0 +1,29 @@
+package com.ruoyi.algorithm.service.impl;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
+import org.springframework.stereotype.Service;
+import com.ruoyi.algorithm.service.ITidyService;
+
+@Service
+public class TidyServiceImpl implements ITidyService {
+ private final AtomicReference mode = new AtomicReference<>("AUTO");
+
+ @Override
+ public Map getStatus() {
+ Map result = new LinkedHashMap<>();
+ result.put("mode", mode.get());
+ result.put("enabled", true);
+ return result;
+ }
+
+ @Override
+ public Map updateMode(String requestedMode) {
+ if (requestedMode == null || !("AUTO".equalsIgnoreCase(requestedMode) || "MANUAL".equalsIgnoreCase(requestedMode))) {
+ throw new IllegalArgumentException("mode must be AUTO or MANUAL");
+ }
+ mode.set(requestedMode.toUpperCase());
+ return getStatus();
+ }
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java
index 5c8f84c..6590360 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/AgvController.java
@@ -1,30 +1,43 @@
package com.ruoyi.api.controller;
+import cn.hutool.json.JSONObject;
+import com.mchange.v2.lang.ObjectUtils;
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackRequest;
import com.ruoyi.api.domain.agv.agvCallback.AgvCallbackResponse;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.queue.agv.service.impl.AgvQueueServiceImpl;
+import com.ruoyi.system.domain.AgvContainerTask;
+import com.ruoyi.system.mapper.AgvContainerTaskMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
* Agv操作请求
*/
@RestController
-@RequestMapping("/agv/api")
+@RequestMapping("/api/agv")
@Slf4j
public class AgvController extends BaseController {
@Autowired
private IApiService apiService;
+ @Autowired
+ private AgvQueueServiceImpl agvQueueService;
+ @Autowired
+ private AgvContainerTaskMapper agvContainerTaskMapper;
/**
* agv执行状态返回接口
+ *
* @param request
* @return
*/
@@ -34,15 +47,14 @@ public class AgvController extends BaseController {
}
-
/**
* agv搬运作业
- * @param param{
- * startPoint:起始点
- * endPoint:结束点
- * containerCode:容器编号
- * taskNo:任务号
- * }
+ *
+ * @param param{ startPoint:起始点
+ * endPoint:结束点
+ * containerCode:容器编号
+ * taskNo:任务号
+ * }
* @return
*/
@PostMapping("/receiveAgvMoveJob")
@@ -50,4 +62,98 @@ public class AgvController extends BaseController {
return apiService.receiveAgvMoveJob(param);
}
+
+ /**
+ * 获取AGV任务定时器
+ */
+
+ @Scheduled(fixedDelay = 5000)
+ public void queryAgvMoveJob() {
+ apiService.sendContarTask();
+ }
+
+ @Scheduled(fixedDelay = 5000)
+ public void finishAgvMoveJob() {
+ AgvContainerTask agvContainerTask= agvContainerTaskMapper.selectAgvContainerFinishOne();
+ if (agvContainerTask!=null){
+ apiService.finishAgvJob(agvContainerTask.getContainer());
+ }
+
+ }
+
+
+ /**任务下发
+ *
+ */
+ @Scheduled(fixedDelay = 1000)
+ public void sendAgvMoveJob() {
+ AgvContainerTask agvContainerTask = new AgvContainerTask();
+ agvContainerTask.setStatus("0");
+ List agvContainerTasks = agvContainerTaskMapper.selectAgvContainerTaskList(agvContainerTask);
+ if (agvContainerTasks.size() > 0) {
+ AgvContainerTask agvContainerTask1 = agvContainerTasks.get(0);
+ Map param = new HashMap<>();
+ param.put("FromStation", agvContainerTask1.getStartPoint());
+ param.put("ToStation", agvContainerTask1.getEndPoint());
+ param.put("Type", agvContainerTask1.getSpare1());
+ param.put("OrderId", agvContainerTask1.getContainer());
+// param.put("TaskGuideId", agvContainerTask1.getTaskNo());
+ AjaxResult ajaxResult = apiService.sendAgvCar(param);
+ Integer code = (Integer) ajaxResult.get("code");
+ if (200 == code) {
+ agvContainerTask1.setStatus("1");
+ agvContainerTaskMapper.updateAgvContainerTask(agvContainerTask1);
+ }
+ }
+ }
+
+
+ /***
+ * 请求取货放货接口
+ * @param jsonObject
+ * @return
+ */
+ @RequestMapping("/checkAllow")
+ public AjaxResult checkAllow(@RequestBody JSONObject jsonObject) {
+ // 取放货站点
+ String requestStation = String.valueOf(jsonObject.get("requestStation"));
+ // 表内主键
+ String orderId = String.valueOf(jsonObject.get("orderId"));
+ String Type = String.valueOf(jsonObject.get("type"));
+
+ HashMap map = new HashMap<>();
+ map.put("v_position", requestStation);
+ map.put("v_orderId", orderId);
+ map.put("v_type", Type);
+ agvQueueService.selectKx(map);
+ Integer vResult = (Integer) map.get("v_result");
+ if (vResult == 1) {
+ return new AjaxResult(1, Type.equals("1") ? "允许取货" : "允许放货");
+ } else {
+ return new AjaxResult(0, Type.equals("1") ? "不允许取货,请等待" : "不允许放货,请等待");
+ }
+ }
+
+
+ /**
+ * 取货放货完成返回接口
+ *
+ * @param jsonObject
+ * @return
+ */
+ @RequestMapping("/completionSignal")
+ public AjaxResult completionSignal(@RequestBody JSONObject jsonObject) {
+
+ String orderId = String.valueOf(jsonObject.get("orderId"));
+ String Type = String.valueOf(jsonObject.get("type"));
+
+
+ agvContainerTaskMapper.updateAgvContainerTaskByOrder(orderId);
+// agvContainerTaskMapper.insertAgvContainerTaskFinish(orderId);
+// agvContainerTaskMapper.deleteAgvContainerTaskByContainer(orderId);
+
+ return new AjaxResult(1, "返回成功");
+ }
+
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java
index e7c86d0..86df745 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/Wcs2WmsController.java
@@ -1,10 +1,12 @@
package com.ruoyi.api.controller;
+import cn.hutool.json.JSONObject;
import com.ruoyi.api.domain.wcs2wms.JobParam;
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -51,6 +53,13 @@ public class Wcs2WmsController {
return apiService.cancelMydoJob(jobParam);
}
+ /** Return a read-only snapshot of all S-RGV vehicles. */
+ @PostMapping("/tidyVehicleSnapshot")
+ public AjaxResult tidyVehicleSnapshot() {
+ return apiService.tidyVehicleSnapshot();
+ }
+
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/ReceiveJob.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/ReceiveJob.java
index a8d968a..879b0a2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/ReceiveJob.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/ReceiveJob.java
@@ -10,11 +10,14 @@ import lombok.NoArgsConstructor;
public class ReceiveJob {
private String taskNo;
private String cargoSpaceId;
+ private String targetCargoSpaceId;
private String exitId;
private String trayCode;
private String entranceId;
private String inOrOut;
private String jobId;
private String roadwayId;
+ private String classId;
+ private Long priority;
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/SrgvVehicleSnapshot.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/SrgvVehicleSnapshot.java
new file mode 100644
index 0000000..03fc6ce
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/wcs2wms/SrgvVehicleSnapshot.java
@@ -0,0 +1,23 @@
+package com.ruoyi.api.domain.wcs2wms;
+
+import lombok.Data;
+
+/** Read-only vehicle status snapshot exposed to WMS. */
+@Data
+public class SrgvVehicleSnapshot {
+ private String guid;
+ private Integer deviceId;
+ private String deviceName;
+ private String agvStatus;
+ private Boolean online;
+ private Boolean healthy;
+ private Boolean idle;
+ private Integer taskNo;
+ private Integer alarm;
+ private Integer errMsg;
+ private Integer chargeFlag;
+ private Integer locked;
+ private Integer battery;
+ private String currSite;
+ private Integer currFloor;
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java
index 6f13e91..45200c3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IApiService.java
@@ -121,6 +121,10 @@ public interface IApiService
*/
public AjaxResult createInMydoJob(Map param);
+ public AjaxResult sendCargoSpace(Map param);
+
+
+
public AjaxResult selectMydoJobByNoTrayCode(Map param);
AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob);
@@ -132,4 +136,20 @@ public interface IApiService
AjaxResult allotSpace(JobParam jobParam);
AjaxResult JobFinish(Map param);
+
+ AjaxResult OutMakeSure(HashMap map);
+
+ void updateLed(HashMap objectObjectHashMap);
+
+ void updateLedError(HashMap objectObjectHashMap);
+
+ void sendContarTask();
+
+ AjaxResult sendAgvCar(Map param);
+
+ AjaxResult insertAgvQuene(HashMap objectObjectHashMap);
+
+ void finishAgvJob(String container);
+
+ AjaxResult tidyVehicleSnapshot();
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java
index 25062d0..49d4047 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IRequestLogService.java
@@ -75,4 +75,6 @@ public interface IRequestLogService
* @return
*/
public RequestLog getRequestLog(String url, String param);
+
+ public RequestLog getRequestLogs(String url, String param, String endPoint);
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java
index 87e90ea..5a5a65f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ApiServiceImpl.java
@@ -17,6 +17,9 @@ import com.ruoyi.api.domain.agv.genAgvSchedulingTask.GenAgvSchedulingTaskRespons
import com.ruoyi.api.domain.agv.genAgvSchedulingTask.PositionCodeData;
import com.ruoyi.api.domain.wcs2wms.JobParam;
import com.ruoyi.api.domain.wcs2wms.ReceiveJob;
+import com.ruoyi.api.domain.wcs2wms.SrgvVehicleSnapshot;
+import com.ruoyi.device.srgv.domain.DeviceSrgv;
+import com.ruoyi.device.srgv.mapper.DeviceSrgvMapper;
import com.ruoyi.api.service.IApiService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
@@ -24,6 +27,8 @@ import com.ruoyi.job.domain.MydoJob;
import com.ruoyi.job.service.IMydoJobService;
import com.ruoyi.queue.agv.domain.AgvQueue;
import com.ruoyi.queue.agv.service.IAgvQueueService;
+import com.ruoyi.system.domain.AgvContainerTask;
+import com.ruoyi.system.service.IAgvContainerTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -51,7 +56,10 @@ public class ApiServiceImpl implements IApiService {
private IAgvQueueService agvQueueService;
@Autowired
private IMydoJobService mydoJobService;
-
+ @Autowired
+ private IAgvContainerTaskService agvContainerTaskService;
+ @Autowired
+ private DeviceSrgvMapper deviceSrgvMapper;
/**
@@ -138,10 +146,6 @@ public class ApiServiceImpl implements IApiService {
}
-
-
-
-
/**
* 处理agv状态返回
*
@@ -196,26 +200,24 @@ public class ApiServiceImpl implements IApiService {
public AjaxResult cancelMydoJob(JobParam jobParam) {
MydoJob mydoJob = mydoJobService.selectMydoJobByTaskNo(Convert.toLong(jobParam.getTaskNo()));
- if(mydoJob==null){
+ if (mydoJob == null) {
return AjaxResult.error("任务不存在");
}
- if("1".equals(mydoJob.getStatus())){
+ if ("1".equals(mydoJob.getStatus())) {
mydoJob.setStatus("5");
mydoJobService.insertHistory(mydoJob.getJobId());
mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
return AjaxResult.success();
- }else{
+ } else {
return AjaxResult.error("任务已开始");
}
}
-
-
@Override
public AjaxResult reAssign(JobParam jobParam) {
RequestLog requestLog = requestLogService.getRequestLog(RE_ASSIGN_URL, "重新分配货位", JSONUtil.toJsonStr(jobParam));
- if ("1".equals(requestLog.getIsSuccessful())){
+ if ("1".equals(requestLog.getIsSuccessful())) {
InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
MydoJob wmsMydoJob = BeanUtil.toBean(bean.getData(), MydoJob.class);
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(wmsMydoJob.getJobId());
@@ -229,7 +231,7 @@ public class ApiServiceImpl implements IApiService {
@Override
public AjaxResult reMaterial(JobParam jobParam) {
RequestLog requestLog = requestLogService.getRequestLog(RE_MATERIAL_URL, "重新分配物料", JSONUtil.toJsonStr(jobParam));
- if ("1".equals(requestLog.getIsSuccessful())){
+ if ("1".equals(requestLog.getIsSuccessful())) {
return AjaxResult.success();
}
return AjaxResult.error();
@@ -347,12 +349,26 @@ public class ApiServiceImpl implements IApiService {
}
+ @Override
+ public AjaxResult sendCargoSpace(Map param) {
+ // 访问请求路径,生成入库作业 ,如果生成返回信息
+ RequestLog requestLog = requestLogService.getRequestLog(SEND_CARGOSPACE, "请求分配货位", JSONUtil.toJsonStr(param));
+ if ("1".equals(requestLog.getIsSuccessful())) {
+ InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
+ return AjaxResult.success(bean.getData());
+ } else {
+ return AjaxResult.error();
+ }
+ }
+
+
@Override
public AjaxResult receiveOutMydoJob(ReceiveJob receiveOutJob) {
MydoJob mydoJob = new MydoJob();
mydoJob.setJobId(receiveOutJob.getJobId());
mydoJob.setTaskNo(receiveOutJob.getTaskNo());
mydoJob.setCargoSpaceId(receiveOutJob.getCargoSpaceId());
+ mydoJob.setTargetCargoSpaceId(receiveOutJob.getTargetCargoSpaceId());
mydoJob.setExitId(receiveOutJob.getExitId());
mydoJob.setInOrOut(receiveOutJob.getInOrOut());
mydoJob.setStatus("1");
@@ -360,10 +376,12 @@ public class ApiServiceImpl implements IApiService {
mydoJob.setRoadwayId(receiveOutJob.getRoadwayId());
mydoJob.setCreateTime(DateUtils.getNowDate());
mydoJob.setExecutionPhase("0");
+ mydoJob.setTheFloor(receiveOutJob.getClassId());
+ mydoJob.setPriority(receiveOutJob.getPriority());
int i = mydoJobService.insertMydoJob(mydoJob);
if (i > 0) {
return AjaxResult.success();
- }else{
+ } else {
return AjaxResult.error();
}
@@ -385,7 +403,7 @@ public class ApiServiceImpl implements IApiService {
int i = mydoJobService.insertMydoJob(mydoJob);
if (i > 0) {
return AjaxResult.success();
- }else{
+ } else {
return AjaxResult.error();
}
}
@@ -430,4 +448,108 @@ public class ApiServiceImpl implements IApiService {
}
+
+ @Override
+ public AjaxResult OutMakeSure(HashMap map) {
+ RequestLog requestLog = requestLogService.getRequestLog(OUT_MAKE_SURE, "线边直出请求过账", JSONUtil.toJsonStr(map));
+ if ("1".equals(requestLog.getIsSuccessful())) {
+ InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
+ return AjaxResult.success(bean.getData());
+ } else {
+ return AjaxResult.error();
+ }
+ }
+
+ @Override
+ public void updateLed(HashMap map) {
+ RequestLog requestLog = requestLogService.getRequestLog(UPDATE_LED, "出库到位更新LED", JSONUtil.toJsonStr(map));
+
+
+ }
+
+ @Override
+ public void updateLedError(HashMap map) {
+ RequestLog requestLog = requestLogService.getRequestLog(UPDATE_LED_ERROR, "更新线体报错信息", JSONUtil.toJsonStr(map));
+
+
+ }
+
+ @Override
+ public void sendContarTask() {
+ RequestLog requestLog = requestLogService.getRequestLog(QUERY_AGV_QUENE, "请求获取AGV执行队列", JSONUtil.toJsonStr(""));
+ if ("1".equals(requestLog.getIsSuccessful())) {
+ InterfaceReceive bean = JSONUtil.toBean(requestLog.getResponseBody(), InterfaceReceive.class);
+ AgvContainerTask bean1 = BeanUtil.toBean(bean.getData(), AgvContainerTask.class);
+ bean1.setStatus("0");
+ agvContainerTaskService.insertAgvContainerTask(bean1);
+ }
+ }
+
+ @Override
+ public AjaxResult sendAgvCar(Map param) {
+ RequestLog requestLog = requestLogService.getRequestLogs(SEND_AGV_CAR, "下发AGV执行对列", JSONUtil.toJsonStr(param));
+ if ("1".equals(requestLog.getIsSuccessful())) {
+ return AjaxResult.success();
+ }
+ {
+ return AjaxResult.error();
+ }
+ }
+
+ @Override
+ public AjaxResult insertAgvQuene(HashMap param) {
+ RequestLog requestLog = requestLogService.getRequestLog(INSERT_AGV_QUENE, "请求自动生成AGV执行队列", JSONUtil.toJsonStr(param));
+ if ("1".equals(requestLog.getIsSuccessful())) {
+ return AjaxResult.success();
+ }
+ {
+ return AjaxResult.error();
+ }
+ }
+
+ @Override
+ public void finishAgvJob(String container) {
+ HashMap