diff --git a/servo/src/main/java/com/galaxis/rcs/RCS.java b/servo/src/main/java/com/galaxis/rcs/RCSService.java similarity index 84% rename from servo/src/main/java/com/galaxis/rcs/RCS.java rename to servo/src/main/java/com/galaxis/rcs/RCSService.java index ee3c150..2317d67 100644 --- a/servo/src/main/java/com/galaxis/rcs/RCS.java +++ b/servo/src/main/java/com/galaxis/rcs/RCSService.java @@ -17,18 +17,49 @@ 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调用类 */ -public class RCS { - static { +@Slf4j +public class RCSService { + public static void ok() { } - 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); + } } /** @@ -83,12 +114,15 @@ public class RCS { 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; } @@ -174,7 +208,7 @@ public class RCS { request.setDescription("从rack1的0/1/0, 取货到地堆54"); request.setCreateBy("runDemo"); - AddTaskResult result = RCS.addTask(envId, request); + AddTaskResult result = RCSService.addTask(envId, request); LogisticsRuntime logisticsRuntime = LogisticsRuntimeService.INSTANCE.findByEnvCode(envId); RcsTaskBiz bizTask = logisticsRuntime.taskService.waitingTaskList.get(logisticsRuntime.taskService.waitingTaskList.size() - 1); 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();