From eac56c4dcc4e1739f39437787bec3b0b7b2b86c7 Mon Sep 17 00:00:00 2001 From: luoyifan Date: Thu, 26 Jun 2025 12:42:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=90=AF=E5=8A=A8,=20?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=20=E7=8E=AF=E5=A2=83=E5=92=8C=E6=A5=BC?= =?UTF-8?q?=E5=B1=82=E7=9A=84=20auto=5Fstart=20=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servo/src/main/java/com/galaxis/rcs/RCS.java | 214 ------------------ .../src/main/java/com/galaxis/rcs/RCSService.java | 248 +++++++++++++++++++++ .../java/com/galaxis/rcs/RcsRootController.java | 23 -- .../com/galaxis/rcs/common/entity/LccEnvInfo.java | 2 + .../com/galaxis/rcs/common/query/QLccEnvInfo.java | 11 +- .../amrCommunication/AmrMessageHandler.java | 9 +- .../autoconfigure/AppAutoConfiguration.java | 16 +- .../yvan/workbench/controller/EnvController.java | 11 +- .../yvan/workbench/controller/LccController.java | 4 +- .../yvan/workbench/controller/RcsController.java | 8 +- .../yvan/workbench/model/entity/LccModelFloor.java | 3 +- .../yvan/workbench/model/query/QLccModelFloor.java | 29 ++- servo/src/main/resources/application-dev.yml | 2 +- .../test/java/com/yvan/workbench/CodegenTest.java | 2 +- 14 files changed, 299 insertions(+), 283 deletions(-) delete mode 100644 servo/src/main/java/com/galaxis/rcs/RCS.java create mode 100644 servo/src/main/java/com/galaxis/rcs/RCSService.java delete mode 100644 servo/src/main/java/com/galaxis/rcs/RcsRootController.java diff --git a/servo/src/main/java/com/galaxis/rcs/RCS.java b/servo/src/main/java/com/galaxis/rcs/RCS.java deleted file mode 100644 index ee3c150..0000000 --- a/servo/src/main/java/com/galaxis/rcs/RCS.java +++ /dev/null @@ -1,214 +0,0 @@ -package com.galaxis.rcs; - -import com.galaxis.rcs.common.entity.AddTaskRequest; -import com.galaxis.rcs.common.entity.AddTaskResult; -import com.galaxis.rcs.common.entity.RcsTaskBiz; -import com.galaxis.rcs.common.entity.StoreLocation; -import com.galaxis.rcs.common.enums.BizTaskStatus; -import com.galaxis.rcs.common.enums.BizTaskType; -import com.galaxis.rcs.common.enums.LCCDirection; -import com.galaxis.rcs.plan.planner.Planner; -import com.galaxis.rcs.plan.TaskPlannerFactory; -import com.galaxis.rcs.plan.PlanTaskSequence; -import com.galaxis.rcs.plan.task.CarryTask; -import com.google.common.base.Strings; -import com.yvan.logisticsEnv.EnvStartParam; -import com.yvan.logisticsModel.LogisticsRuntime; -import com.yvan.logisticsModel.LogisticsRuntimeService; -import com.yvan.workbench.model.query.QLccModelFloor; -import lombok.SneakyThrows; -import org.clever.core.json.JsonWrapper; -import org.clever.data.jdbc.DaoFactory; -import org.clever.data.jdbc.QueryDSL; - -/** - * RCS 对外API调用类 - */ -public class RCS { - static { - } - - public static void ok() { - } - - /** - * 添加任务, 示例 - *
-     * {
-     *   type: 'carry',          // 任务类型
-     *   agv: 'cl2',             // 指定车辆
-     *   lpn: 'pallet1124',      // 托盘ID, 用于校验
-     *   from: '27',             // 起始点位
-     *   priority: 1,            // 优先级
-     *   from: {
-     *     item: '27', bay: 0, level: 1, cell: 0 // 起始点位的详细信息
-     *   },
-     *   to:{
-     *     item: '20'
-     *   }
-     * }
-     * 
- */ - public static AddTaskResult addTask(long envId, AddTaskRequest request) { - AddTaskResult result = new AddTaskResult(); - - LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); - String bizTaskId = logisticsRuntime.taskService.addBizTask(request); - result.bizTaskId = bizTaskId; - - return result; - } - - /** - * 加载项目的楼层数据 (只加载物理生产环境) - */ - @SneakyThrows - public static boolean loadFloor(String projectUUID, String catalogCode, long envId) { - LogisticsRuntime runtime = LogisticsRuntimeService.INSTANCE.findByProjectFloor(projectUUID, catalogCode); - if (runtime == null) { - QueryDSL queryDsl = DaoFactory.getQueryDSL(); - String floorPayload = queryDsl.select(QLccModelFloor.lccModelFloor.items) - .from(QLccModelFloor.lccModelFloor) - .where(QLccModelFloor.lccModelFloor.projectUuid.eq(projectUUID)) - .where(QLccModelFloor.lccModelFloor.catalogCode.eq(catalogCode)) - .fetchFirst(); - - if (Strings.isNullOrEmpty(floorPayload)) { - throw new RuntimeException("not found floor data for projectUUID: " + projectUUID + ", catalogCode: " + catalogCode); - } - - JsonWrapper jw = new JsonWrapper("{ \"catalogCode\": \"" + catalogCode + "\", \"t\": \"floor\", \"items\": " + floorPayload + "}"); - - LogisticsRuntimeService.INSTANCE.createEnv(envId); - runtime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); - runtime.projectUUID = projectUUID; - runtime.catalogCode = catalogCode; - runtime.loadMap(jw); - - EnvStartParam param = new EnvStartParam(); - param.setTimeRate(1); - param.setVirtual(false); - runtime.start(param); - } - return true; - } - - public static Object runPath() { - String executorId = "10"; // 执行器ID - String lpn = "pallet1124"; - long envId = 1; - - LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); - RcsTaskBiz bizTask = new RcsTaskBiz(); - bizTask.setBizTaskId(100L); - bizTask.setEnvId(envId); - bizTask.setBizType(BizTaskType.CARRY.toString()); - bizTask.setLpn(lpn); - bizTask.setPriority(1); - bizTask.setTaskFrom("rack1_0_1_0"); - bizTask.setTaskTo("54_0_0_0"); - bizTask.setAllocatedExecutorId(executorId); - bizTask.setBizTaskPayload("N/A"); - bizTask.setBizTaskErrorInfo("N/A"); - bizTask.setBizTaskDescription("N/A"); - bizTask.setBizTaskStatus(BizTaskStatus.WAITING_FOR_DISPATCH.toString()); - - PlanTaskSequence planSequence = new PlanTaskSequence(executorId, logisticsRuntime, bizTask, "demo"); - - CarryTask carryTask = new CarryTask( - executorId, lpn, 1, - new StoreLocation("rack1", 0, 1, 0), - new StoreLocation("54", 0, 0, 0) - ); - - logisticsRuntime.pathPlannerMap.get("cl2") - .planCarryTask(planSequence, "17", LCCDirection.DOWN, carryTask); - return planSequence.toPrettyMap(); - } - - public static Object runPath2() { - String executorId = "10"; // 执行器ID - String lpn = "pallet1124"; - long envId = 1; - - LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); - RcsTaskBiz bizTask = new RcsTaskBiz(); - bizTask.setBizTaskId(100L); - bizTask.setEnvId(envId); - bizTask.setBizType(BizTaskType.CARRY.toString()); - bizTask.setLpn(lpn); - bizTask.setPriority(1); - bizTask.setTaskFrom("rack1_0_1_0"); - bizTask.setTaskTo("54_0_0_0"); - bizTask.setAllocatedExecutorId(executorId); - bizTask.setBizTaskPayload("N/A"); - bizTask.setBizTaskErrorInfo("N/A"); - bizTask.setBizTaskDescription("N/A"); - bizTask.setBizTaskStatus(BizTaskStatus.WAITING_FOR_DISPATCH.toString()); - - PlanTaskSequence planSequence = new PlanTaskSequence(executorId, logisticsRuntime, bizTask, "demo"); - - CarryTask carryTask = new CarryTask( - executorId, lpn, 1, - new StoreLocation("rack1", 0, 1, 0), - new StoreLocation("54", 0, 0, 0) - ); - - logisticsRuntime.pathPlannerMap.get("cl2") - .planCarryTask(planSequence, "27", LCCDirection.UP, carryTask); - return planSequence.toPrettyMap(); - } - - public static void runDemo() { - String executorId = "10"; // 执行器ID - String lpn = "pallet1124"; - long envId = 1; - - AddTaskRequest request = new AddTaskRequest(); - request.setType(BizTaskType.CARRY); - request.setTaskExecutorId(executorId); - request.setLpn(lpn); - request.setPriority(1); - request.setFrom(new StoreLocation("rack1", 0, 1, 0)); - request.setTo(new StoreLocation("54", 0, 0, 0)); - request.setDescription("从rack1的0/1/0, 取货到地堆54"); - request.setCreateBy("runDemo"); - - AddTaskResult result = RCS.addTask(envId, request); - - LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); - RcsTaskBiz bizTask = logisticsRuntime.taskService.waitingTaskList.get(logisticsRuntime.taskService.waitingTaskList.size() - 1); - - - Planner planner = TaskPlannerFactory.getPlanner("cl2"); - - // 规划任务序列 - PlanTaskSequence planSequence = new PlanTaskSequence(executorId, logisticsRuntime, bizTask, "demo"); - planSequence.addMoveTo("20"); - planSequence.addMoveTo("21"); - planSequence.addMoveTo("22"); - planSequence.addMoveTo("23"); - planSequence.addRotationTo(90); - planSequence.addMoveTo("24"); - planSequence.addMoveTo("25"); - planSequence.addMoveTo("26"); - planSequence.addMoveTo("27"); - planSequence.addLoad(lpn, "rack1", 0, 1, 0); - planSequence.addMoveTo("26"); - planSequence.addMoveTo("25"); - planSequence.addMoveTo("24"); - planSequence.addMoveTo("23"); - planSequence.addRotationTo(-90); - planSequence.addMoveTo("22"); - planSequence.addMoveTo("21"); - planSequence.addMoveTo("20"); - planSequence.addUnload("54", 0, 0, 0); - planSequence.addFinish(); - - planner.appendSequence(planSequence); - } - - public static LogisticsRuntime getDemo() { - return LogisticsRuntimeService.INSTANCE.findByEnvCode(1L); - } -} diff --git a/servo/src/main/java/com/galaxis/rcs/RCSService.java b/servo/src/main/java/com/galaxis/rcs/RCSService.java new file mode 100644 index 0000000..2317d67 --- /dev/null +++ b/servo/src/main/java/com/galaxis/rcs/RCSService.java @@ -0,0 +1,248 @@ +package com.galaxis.rcs; + +import com.galaxis.rcs.common.entity.AddTaskRequest; +import com.galaxis.rcs.common.entity.AddTaskResult; +import com.galaxis.rcs.common.entity.RcsTaskBiz; +import com.galaxis.rcs.common.entity.StoreLocation; +import com.galaxis.rcs.common.enums.BizTaskStatus; +import com.galaxis.rcs.common.enums.BizTaskType; +import com.galaxis.rcs.common.enums.LCCDirection; +import com.galaxis.rcs.plan.planner.Planner; +import com.galaxis.rcs.plan.TaskPlannerFactory; +import com.galaxis.rcs.plan.PlanTaskSequence; +import com.galaxis.rcs.plan.task.CarryTask; +import com.google.common.base.Strings; +import com.yvan.logisticsEnv.EnvStartParam; +import com.yvan.logisticsModel.LogisticsRuntime; +import com.yvan.logisticsModel.LogisticsRuntimeService; +import com.yvan.workbench.model.query.QLccModelFloor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.clever.core.Conv; +import org.clever.core.json.JsonWrapper; +import org.clever.data.jdbc.DaoFactory; +import org.clever.data.jdbc.QueryDSL; +import org.clever.data.jdbc.querydsl.utils.QueryDslUtils; + +import java.util.Map; + +import static com.galaxis.rcs.common.query.QLccEnvInfo.lccEnvInfo; +import static com.yvan.workbench.model.query.QLccModelFloor.lccModelFloor; + +/** + * RCS 对外API调用类 + */ +@Slf4j +public class RCSService { + public static void ok() { + } + + public void init() { + QueryDSL queryDSL = DaoFactory.getQueryDSL(); + var list = queryDSL.select(QueryDslUtils.linkedMap( + lccEnvInfo.envId, + lccEnvInfo.worldId, + lccEnvInfo.envPayload, + lccModelFloor.catalogCode + + )).from(lccEnvInfo) + .innerJoin(lccModelFloor).on( + lccEnvInfo.worldId.eq(lccModelFloor.projectUuid) + ) + .where(lccEnvInfo.autoStart.eq(true)) + .where(lccModelFloor.autoStart.eq(true)) + .fetch(); + + for (Map map : list) { + long envId = Conv.asLong(map.get("env_id")); + String projectUuid = Conv.asString(map.get("world_id")); + String catalogCode = Conv.asString(map.get("catalog_code")); + + loadFloor(projectUuid, catalogCode, envId); + } + } + + /** + * 添加任务, 示例 + *
+     * {
+     *   type: 'carry',          // 任务类型
+     *   agv: 'cl2',             // 指定车辆
+     *   lpn: 'pallet1124',      // 托盘ID, 用于校验
+     *   from: '27',             // 起始点位
+     *   priority: 1,            // 优先级
+     *   from: {
+     *     item: '27', bay: 0, level: 1, cell: 0 // 起始点位的详细信息
+     *   },
+     *   to:{
+     *     item: '20'
+     *   }
+     * }
+     * 
+ */ + public static AddTaskResult addTask(long envId, AddTaskRequest request) { + AddTaskResult result = new AddTaskResult(); + + LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); + String bizTaskId = logisticsRuntime.taskService.addBizTask(request); + result.bizTaskId = bizTaskId; + + return result; + } + + /** + * 加载项目的楼层数据 (只加载物理生产环境) + */ + @SneakyThrows + public static boolean loadFloor(String projectUUID, String catalogCode, long envId) { + LogisticsRuntime runtime = LogisticsRuntimeService.INSTANCE.findByProjectFloor(projectUUID, catalogCode); + if (runtime == null) { + QueryDSL queryDsl = DaoFactory.getQueryDSL(); + String floorPayload = queryDsl.select(QLccModelFloor.lccModelFloor.items) + .from(QLccModelFloor.lccModelFloor) + .where(QLccModelFloor.lccModelFloor.projectUuid.eq(projectUUID)) + .where(QLccModelFloor.lccModelFloor.catalogCode.eq(catalogCode)) + .fetchFirst(); + + if (Strings.isNullOrEmpty(floorPayload)) { + throw new RuntimeException("not found floor data for projectUUID: " + projectUUID + ", catalogCode: " + catalogCode); + } + + JsonWrapper jw = new JsonWrapper("{ \"catalogCode\": \"" + catalogCode + "\", \"t\": \"floor\", \"items\": " + floorPayload + "}"); + + LogisticsRuntimeService.INSTANCE.createEnv(envId); + runtime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); + runtime.projectUUID = projectUUID; + runtime.catalogCode = catalogCode; + + log.info("loadFloor: projectUUID={}, catalogCode={}, envId={}", projectUUID, catalogCode, envId); + runtime.loadMap(jw); + + EnvStartParam param = new EnvStartParam(); + param.setTimeRate(1); + param.setVirtual(false); + runtime.start(param); + log.info("startDispatch: projectUUID={}, catalogCode={}, envId={}", projectUUID, catalogCode, envId); + } + return true; + } + + public static Object runPath() { + String executorId = "10"; // 执行器ID + String lpn = "pallet1124"; + long envId = 1; + + LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); + RcsTaskBiz bizTask = new RcsTaskBiz(); + bizTask.setBizTaskId(100L); + bizTask.setEnvId(envId); + bizTask.setBizType(BizTaskType.CARRY.toString()); + bizTask.setLpn(lpn); + bizTask.setPriority(1); + bizTask.setTaskFrom("rack1_0_1_0"); + bizTask.setTaskTo("54_0_0_0"); + bizTask.setAllocatedExecutorId(executorId); + bizTask.setBizTaskPayload("N/A"); + bizTask.setBizTaskErrorInfo("N/A"); + bizTask.setBizTaskDescription("N/A"); + bizTask.setBizTaskStatus(BizTaskStatus.WAITING_FOR_DISPATCH.toString()); + + PlanTaskSequence planSequence = new PlanTaskSequence(executorId, logisticsRuntime, bizTask, "demo"); + + CarryTask carryTask = new CarryTask( + executorId, lpn, 1, + new StoreLocation("rack1", 0, 1, 0), + new StoreLocation("54", 0, 0, 0) + ); + + logisticsRuntime.pathPlannerMap.get("cl2") + .planCarryTask(planSequence, "17", LCCDirection.DOWN, carryTask); + return planSequence.toPrettyMap(); + } + + public static Object runPath2() { + String executorId = "10"; // 执行器ID + String lpn = "pallet1124"; + long envId = 1; + + LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); + RcsTaskBiz bizTask = new RcsTaskBiz(); + bizTask.setBizTaskId(100L); + bizTask.setEnvId(envId); + bizTask.setBizType(BizTaskType.CARRY.toString()); + bizTask.setLpn(lpn); + bizTask.setPriority(1); + bizTask.setTaskFrom("rack1_0_1_0"); + bizTask.setTaskTo("54_0_0_0"); + bizTask.setAllocatedExecutorId(executorId); + bizTask.setBizTaskPayload("N/A"); + bizTask.setBizTaskErrorInfo("N/A"); + bizTask.setBizTaskDescription("N/A"); + bizTask.setBizTaskStatus(BizTaskStatus.WAITING_FOR_DISPATCH.toString()); + + PlanTaskSequence planSequence = new PlanTaskSequence(executorId, logisticsRuntime, bizTask, "demo"); + + CarryTask carryTask = new CarryTask( + executorId, lpn, 1, + new StoreLocation("rack1", 0, 1, 0), + new StoreLocation("54", 0, 0, 0) + ); + + logisticsRuntime.pathPlannerMap.get("cl2") + .planCarryTask(planSequence, "27", LCCDirection.UP, carryTask); + return planSequence.toPrettyMap(); + } + + public static void runDemo() { + String executorId = "10"; // 执行器ID + String lpn = "pallet1124"; + long envId = 1; + + AddTaskRequest request = new AddTaskRequest(); + request.setType(BizTaskType.CARRY); + request.setTaskExecutorId(executorId); + request.setLpn(lpn); + request.setPriority(1); + request.setFrom(new StoreLocation("rack1", 0, 1, 0)); + request.setTo(new StoreLocation("54", 0, 0, 0)); + request.setDescription("从rack1的0/1/0, 取货到地堆54"); + request.setCreateBy("runDemo"); + + AddTaskResult result = RCSService.addTask(envId, request); + + LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); + RcsTaskBiz bizTask = logisticsRuntime.taskService.waitingTaskList.get(logisticsRuntime.taskService.waitingTaskList.size() - 1); + + + Planner planner = TaskPlannerFactory.getPlanner("cl2"); + + // 规划任务序列 + PlanTaskSequence planSequence = new PlanTaskSequence(executorId, logisticsRuntime, bizTask, "demo"); + planSequence.addMoveTo("20"); + planSequence.addMoveTo("21"); + planSequence.addMoveTo("22"); + planSequence.addMoveTo("23"); + planSequence.addRotationTo(90); + planSequence.addMoveTo("24"); + planSequence.addMoveTo("25"); + planSequence.addMoveTo("26"); + planSequence.addMoveTo("27"); + planSequence.addLoad(lpn, "rack1", 0, 1, 0); + planSequence.addMoveTo("26"); + planSequence.addMoveTo("25"); + planSequence.addMoveTo("24"); + planSequence.addMoveTo("23"); + planSequence.addRotationTo(-90); + planSequence.addMoveTo("22"); + planSequence.addMoveTo("21"); + planSequence.addMoveTo("20"); + planSequence.addUnload("54", 0, 0, 0); + planSequence.addFinish(); + + planner.appendSequence(planSequence); + } + + public static LogisticsRuntime getDemo() { + return LogisticsRuntimeService.INSTANCE.findByEnvCode(1L); + } +} diff --git a/servo/src/main/java/com/galaxis/rcs/RcsRootController.java b/servo/src/main/java/com/galaxis/rcs/RcsRootController.java deleted file mode 100644 index db2029f..0000000 --- a/servo/src/main/java/com/galaxis/rcs/RcsRootController.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.galaxis.rcs; - -import com.galaxis.rcs.communication.amrCommunication.MqttService; -import org.eclipse.paho.mqttv5.common.MqttException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class RcsRootController { - - @Autowired - private MqttService mqttService; - - @GetMapping("/ok") - public String ok() throws MqttException { - mqttService.subscribe("/agv_robot/status"); - mqttService.publish("status", "OK"); -// mqttService.publish("rcs/root/ok", "OK"); - return "OK"; - } - -} diff --git a/servo/src/main/java/com/galaxis/rcs/common/entity/LccEnvInfo.java b/servo/src/main/java/com/galaxis/rcs/common/entity/LccEnvInfo.java index cf5a65d..40bb666 100644 --- a/servo/src/main/java/com/galaxis/rcs/common/entity/LccEnvInfo.java +++ b/servo/src/main/java/com/galaxis/rcs/common/entity/LccEnvInfo.java @@ -19,6 +19,8 @@ public class LccEnvInfo implements Serializable { private Boolean isVirtual; /** 环境负载信息 */ private String envPayload; + /** 是否自动启动 */ + private Boolean autoStart; /** 创建时间 */ private Date createAt; /** 创建人 */ diff --git a/servo/src/main/java/com/galaxis/rcs/common/query/QLccEnvInfo.java b/servo/src/main/java/com/galaxis/rcs/common/query/QLccEnvInfo.java index f90eaf6..9c08ea7 100644 --- a/servo/src/main/java/com/galaxis/rcs/common/query/QLccEnvInfo.java +++ b/servo/src/main/java/com/galaxis/rcs/common/query/QLccEnvInfo.java @@ -26,6 +26,8 @@ public class QLccEnvInfo extends RelationalPathBase { public final BooleanPath isVirtual = createBoolean("isVirtual"); /** 环境负载信息 */ public final StringPath envPayload = createString("envPayload"); + /** 是否自动启动 */ + public final BooleanPath autoStart = createBoolean("autoStart"); /** 创建时间 */ public final DateTimePath createAt = createDateTime("createAt", Date.class); /** 创建人 */ @@ -66,9 +68,10 @@ public class QLccEnvInfo extends RelationalPathBase { addMetadata(envName, ColumnMetadata.named("env_name").withIndex(3).ofType(Types.VARCHAR).withSize(50)); addMetadata(isVirtual, ColumnMetadata.named("is_virtual").withIndex(4).ofType(Types.BIT).withSize(3)); addMetadata(envPayload, ColumnMetadata.named("env_payload").withIndex(5).ofType(Types.VARCHAR).withSize(3000)); - addMetadata(createAt, ColumnMetadata.named("create_at").withIndex(6).ofType(Types.TIMESTAMP)); - addMetadata(createBy, ColumnMetadata.named("create_by").withIndex(7).ofType(Types.VARCHAR).withSize(50)); - addMetadata(updateAt, ColumnMetadata.named("update_at").withIndex(8).ofType(Types.TIMESTAMP)); - addMetadata(updateBy, ColumnMetadata.named("update_by").withIndex(9).ofType(Types.VARCHAR).withSize(50)); + addMetadata(autoStart, ColumnMetadata.named("auto_start").withIndex(6).ofType(Types.BIT).withSize(3)); + addMetadata(createAt, ColumnMetadata.named("create_at").withIndex(7).ofType(Types.TIMESTAMP)); + addMetadata(createBy, ColumnMetadata.named("create_by").withIndex(8).ofType(Types.VARCHAR).withSize(50)); + addMetadata(updateAt, ColumnMetadata.named("update_at").withIndex(9).ofType(Types.TIMESTAMP)); + addMetadata(updateBy, ColumnMetadata.named("update_by").withIndex(10).ofType(Types.VARCHAR).withSize(50)); } } diff --git a/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java b/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java index 7a8a364..badeac2 100644 --- a/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java +++ b/servo/src/main/java/com/galaxis/rcs/communication/amrCommunication/AmrMessageHandler.java @@ -3,7 +3,7 @@ package com.galaxis.rcs.communication.amrCommunication; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; -import com.galaxis.rcs.RCS; +import com.galaxis.rcs.RCSService; import com.galaxis.rcs.communication.JacksonUtils; import com.galaxis.rcs.connector.cl2.receiveEntity.*; import com.galaxis.rcs.connector.cl2.receiveEntity.base.TaskCompletedData; @@ -21,14 +21,9 @@ import org.clever.data.redis.Redis; import org.eclipse.paho.mqttv5.client.MqttClient; import org.eclipse.paho.mqttv5.common.MqttException; import org.eclipse.paho.mqttv5.common.MqttMessage; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; @Slf4j @Service @@ -196,7 +191,7 @@ public class AmrMessageHandler { } static { - RCS.ok(); + RCSService.ok(); } public static PtrAgvItem getPtrAgvItem(String vehicleId) { diff --git a/servo/src/main/java/com/yvan/workbench/autoconfigure/AppAutoConfiguration.java b/servo/src/main/java/com/yvan/workbench/autoconfigure/AppAutoConfiguration.java index f47830f..c43d3ef 100644 --- a/servo/src/main/java/com/yvan/workbench/autoconfigure/AppAutoConfiguration.java +++ b/servo/src/main/java/com/yvan/workbench/autoconfigure/AppAutoConfiguration.java @@ -1,6 +1,7 @@ package com.yvan.workbench.autoconfigure; import com.fasterxml.jackson.databind.ObjectMapper; +import com.galaxis.rcs.RCSService; import io.javalin.config.JavalinConfig; import io.javalin.json.JavalinJackson; import io.javalin.json.JsonMapper; @@ -56,6 +57,13 @@ public class AppAutoConfiguration { private final Environment environment; @Bean + public RCSService rcsService() { + RCSService rcsService = new RCSService(); + rcsService.init(); + return rcsService; + } + + @Bean public AppBasicsConfig appBasicsConfig() { AppBasicsConfig appBasicsConfig = AppBasicsConfig.create(environment); appBasicsConfig.init(); @@ -113,10 +121,10 @@ public class AppAutoConfiguration { public MultipartConfigElement multipartConfigElement(AppBasicsConfig appBasicsConfig, WebConfig webConfig) { HttpConfig.Multipart multipart = webConfig.getHttp().getMultipart(); return new MultipartConfigElement( - ResourcePathUtils.getAbsolutePath(appBasicsConfig.getRootPath(), multipart.getLocation()), - multipart.getMaxFileSize().toBytes(), - multipart.getMaxTotalRequestSize().toBytes(), - (int) multipart.getMaxInMemoryFileSize().toBytes() + ResourcePathUtils.getAbsolutePath(appBasicsConfig.getRootPath(), multipart.getLocation()), + multipart.getMaxFileSize().toBytes(), + multipart.getMaxTotalRequestSize().toBytes(), + (int) multipart.getMaxInMemoryFileSize().toBytes() ); } diff --git a/servo/src/main/java/com/yvan/workbench/controller/EnvController.java b/servo/src/main/java/com/yvan/workbench/controller/EnvController.java index 146d183..aed0be2 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/EnvController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/EnvController.java @@ -1,13 +1,12 @@ package com.yvan.workbench.controller; -import com.galaxis.rcs.RCS; +import com.galaxis.rcs.RCSService; import com.yvan.workbench.model.entity.Model; import org.clever.core.Conv; import org.clever.data.jdbc.DaoFactory; import org.clever.data.jdbc.QueryDSL; import org.clever.data.jdbc.querydsl.utils.QueryDslUtils; import org.clever.web.mvc.annotation.RequestBody; -import org.springframework.web.bind.annotation.ResponseBody; import java.util.LinkedHashMap; import java.util.List; @@ -28,19 +27,19 @@ public class EnvController { } public static Model runDemo() { - RCS.runDemo(); + RCSService.runDemo(); return Model.newSuccess(true); } public static Model runPath() { - return Model.newSuccess(RCS.runPath()); + return Model.newSuccess(RCSService.runPath()); } public static Model runPath2() { - return Model.newSuccess(RCS.runPath2()); + return Model.newSuccess(RCSService.runPath2()); } public static Model getDemo() { - return Model.newSuccess(RCS.getDemo()); + return Model.newSuccess(RCSService.getDemo()); } } diff --git a/servo/src/main/java/com/yvan/workbench/controller/LccController.java b/servo/src/main/java/com/yvan/workbench/controller/LccController.java index 9bbbb56..1b10476 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/LccController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/LccController.java @@ -1,6 +1,6 @@ package com.yvan.workbench.controller; -import com.galaxis.rcs.RCS; +import com.galaxis.rcs.RCSService; import com.yvan.workbench.model.entity.Model; import org.clever.core.Conv; import org.clever.web.mvc.annotation.RequestBody; @@ -16,7 +16,7 @@ public class LccController { String projectUUID = Conv.asString(params.get("projectUUID")); String catalogCode = Conv.asString(params.get("catalogCode")); Long envId = Conv.asLong(params.get("envId")); - boolean result = RCS.loadFloor(projectUUID, catalogCode, envId); + boolean result = RCSService.loadFloor(projectUUID, catalogCode, envId); return Model.newSuccess(result); } diff --git a/servo/src/main/java/com/yvan/workbench/controller/RcsController.java b/servo/src/main/java/com/yvan/workbench/controller/RcsController.java index 5d5436a..51a5bdb 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/RcsController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/RcsController.java @@ -1,6 +1,6 @@ package com.yvan.workbench.controller; -import com.galaxis.rcs.RCS; +import com.galaxis.rcs.RCSService; import com.galaxis.rcs.common.entity.RcsTaskBiz; import com.galaxis.rcs.common.entity.StoreLocation; import com.galaxis.rcs.common.enums.BizTaskStatus; @@ -62,7 +62,7 @@ public class RcsController { return Model.newFail("targetWayPointId Must not be empty"); } - RCS.loadFloor(projectUUID, catalogCode, envId); + RCSService.loadFloor(projectUUID, catalogCode, envId); LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByProjectFloor(projectUUID, catalogCode); StaticItem toItem = logisticsRuntime.getStaticItemById(targetWayPointId); @@ -135,7 +135,7 @@ public class RcsController { return Model.newFail("agvId Must not be empty"); } - RCS.loadFloor(projectUUID, catalogCode, envId); + RCSService.loadFloor(projectUUID, catalogCode, envId); LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByProjectFloor(projectUUID, catalogCode); @@ -169,7 +169,7 @@ public class RcsController { return Model.newFail("targetStoreLoc Must not be empty"); } - RCS.loadFloor(projectUUID, catalogCode, envId); + RCSService.loadFloor(projectUUID, catalogCode, envId); LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByProjectFloor(projectUUID, catalogCode); StaticItem sourceItem = logisticsRuntime.getStaticItemById(fromStoreLoc); diff --git a/servo/src/main/java/com/yvan/workbench/model/entity/LccModelFloor.java b/servo/src/main/java/com/yvan/workbench/model/entity/LccModelFloor.java index c1261c4..0903212 100644 --- a/servo/src/main/java/com/yvan/workbench/model/entity/LccModelFloor.java +++ b/servo/src/main/java/com/yvan/workbench/model/entity/LccModelFloor.java @@ -1,7 +1,6 @@ package com.yvan.workbench.model.entity; import lombok.Data; - import java.io.Serializable; import java.util.Date; @@ -20,6 +19,8 @@ public class LccModelFloor implements Serializable { private String catalogCode; /** 楼层数据 */ private String items; + /** */ + private Boolean autoStart; /** 创建时间,默认为当前时间 */ private Date createAt; /** 创建人 */ diff --git a/servo/src/main/java/com/yvan/workbench/model/query/QLccModelFloor.java b/servo/src/main/java/com/yvan/workbench/model/query/QLccModelFloor.java index 64c2e13..8643b25 100644 --- a/servo/src/main/java/com/yvan/workbench/model/query/QLccModelFloor.java +++ b/servo/src/main/java/com/yvan/workbench/model/query/QLccModelFloor.java @@ -1,19 +1,13 @@ package com.yvan.workbench.model.query; -import com.querydsl.core.types.Path; -import com.querydsl.core.types.PathMetadata; -import com.querydsl.core.types.dsl.DateTimePath; -import com.querydsl.core.types.dsl.NumberPath; -import com.querydsl.core.types.dsl.StringPath; -import com.querydsl.sql.ColumnMetadata; -import com.querydsl.sql.RelationalPathBase; -import com.yvan.workbench.model.entity.LccModelFloor; - +import static com.querydsl.core.types.PathMetadataFactory.*; +import com.querydsl.core.types.dsl.*; +import com.querydsl.core.types.*; +import com.querydsl.sql.*; import java.sql.Types; +import com.yvan.workbench.model.entity.LccModelFloor; import java.util.Date; -import static com.querydsl.core.types.PathMetadataFactory.forVariable; - /** * (lcc_model_floor) */ @@ -32,6 +26,8 @@ public class QLccModelFloor extends RelationalPathBase { public final StringPath catalogCode = createString("catalogCode"); /** 楼层数据 */ public final StringPath items = createString("items"); + /** */ + public final BooleanPath autoStart = createBoolean("autoStart"); /** 创建时间,默认为当前时间 */ public final DateTimePath createAt = createDateTime("createAt", Date.class); /** 创建人 */ @@ -71,10 +67,11 @@ public class QLccModelFloor extends RelationalPathBase { addMetadata(projectUuid, ColumnMetadata.named("project_uuid").withIndex(2).ofType(Types.VARCHAR).withSize(36)); addMetadata(projectVersion, ColumnMetadata.named("project_version").withIndex(3).ofType(Types.BIGINT).withSize(19)); addMetadata(catalogCode, ColumnMetadata.named("catalogCode").withIndex(4).ofType(Types.VARCHAR).withSize(255)); - addMetadata(items, ColumnMetadata.named("items").withIndex(5).ofType(Types.LONGVARCHAR).withSize(65535)); - addMetadata(createAt, ColumnMetadata.named("create_at").withIndex(6).ofType(Types.TIMESTAMP)); - addMetadata(createBy, ColumnMetadata.named("create_by").withIndex(7).ofType(Types.VARCHAR).withSize(255)); - addMetadata(updateAt, ColumnMetadata.named("update_at").withIndex(8).ofType(Types.TIMESTAMP)); - addMetadata(updateBy, ColumnMetadata.named("update_by").withIndex(9).ofType(Types.VARCHAR).withSize(255)); + addMetadata(items, ColumnMetadata.named("items").withIndex(5).ofType(Types.LONGVARCHAR).withSize(16777215)); + addMetadata(autoStart, ColumnMetadata.named("auto_start").withIndex(6).ofType(Types.BIT).withSize(3)); + addMetadata(createAt, ColumnMetadata.named("create_at").withIndex(7).ofType(Types.TIMESTAMP)); + addMetadata(createBy, ColumnMetadata.named("create_by").withIndex(8).ofType(Types.VARCHAR).withSize(255)); + addMetadata(updateAt, ColumnMetadata.named("update_at").withIndex(9).ofType(Types.TIMESTAMP)); + addMetadata(updateBy, ColumnMetadata.named("update_by").withIndex(10).ofType(Types.VARCHAR).withSize(255)); } } diff --git a/servo/src/main/resources/application-dev.yml b/servo/src/main/resources/application-dev.yml index 43057c6..bb62578 100644 --- a/servo/src/main/resources/application-dev.yml +++ b/servo/src/main/resources/application-dev.yml @@ -42,7 +42,7 @@ redis: mqtt: broker-url: 'tcp://180.100.199.56:7097' - client-id: 'yvan-rcs-dev' + client-id: 'luoyifan' username: 'galaxis' password: 'Admin1234_' #mqtt: diff --git a/servo/src/test/java/com/yvan/workbench/CodegenTest.java b/servo/src/test/java/com/yvan/workbench/CodegenTest.java index 9a1845e..816112b 100644 --- a/servo/src/test/java/com/yvan/workbench/CodegenTest.java +++ b/servo/src/test/java/com/yvan/workbench/CodegenTest.java @@ -29,7 +29,7 @@ public class CodegenTest { // .addTable("rcs_task_biz") // .addTable("rcs_task_device") // .addTable("rcs_task_plan"); - .addTable("rcs_task_plan"); + .addTable("lcc_model_floor"); CodegenUtils.genCode(jdbc, config); log.info("-->"); jdbc.close();