diff --git a/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java b/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java index a621959..6002baf 100644 --- a/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java +++ b/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java @@ -22,13 +22,11 @@ import com.yvan.event.AgvEventManager; import com.yvan.event.AgvEventType; import com.yvan.pusher.FrontendMessagePushService; import com.yvan.redis.LccRedisService; -import com.yvan.workbench.SpringContext; -import com.yvan.workbench.autoconfigure.LccConfigProperties; -import com.yvan.workbench.service.LccMapService; -import lombok.Getter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.time.DateFormatUtils; import org.clever.core.BannerUtils; import org.clever.core.Conv; +import org.clever.core.DateUtils; import org.clever.data.jdbc.DaoFactory; import org.clever.data.jdbc.QueryDSL; import org.clever.data.redis.Redis; @@ -215,6 +213,16 @@ public class LogisticsRuntime { }); } + public void writeLog(String type, String content, Object... args) { + StringBuilder sb = new StringBuilder(); + // 获取 时分秒.毫秒 HH:mm:ss.SSS + String time = DateFormatUtils.format(new Date(), "HH:mm:ss.SSS"); + sb.append(time).append(" [").append(type).append("] - ").append( + String.format(content, args) + ); + FrontendMessagePushService.INSTANCE.pushLogs(this, type, sb.toString()); + } + /** * 库存转移 AGV->货架 */ diff --git a/servo/src/main/java/com/yvan/pusher/FrontendMessagePushService.java b/servo/src/main/java/com/yvan/pusher/FrontendMessagePushService.java index 376b3ec..90a3532 100644 --- a/servo/src/main/java/com/yvan/pusher/FrontendMessagePushService.java +++ b/servo/src/main/java/com/yvan/pusher/FrontendMessagePushService.java @@ -163,7 +163,7 @@ public class FrontendMessagePushService implements MqttCallback { * 推送任务更新 * /lcc/{proj_id}/{env_id}/task * - * @param runtime 运行时环境 + * @param runtime 运行时环境 * @param taskData 任务数据 */ public void pushTaskUpdate(LogisticsRuntime runtime, Object taskData) { @@ -175,11 +175,11 @@ public class FrontendMessagePushService implements MqttCallback { * 推送库存更新 * /lcc/{proj_id}/{env_id}/inv * - * @param runtime 运行时环境 - * @param lpn 容器号 - * @param before 更新前库存 - * @param after 更新后库存 - * @param qty 更新数量 + * @param runtime 运行时环境 + * @param lpn 容器号 + * @param before 更新前库存 + * @param after 更新后库存 + * @param qty 更新数量 */ public void pushInvUpdate(LogisticsRuntime runtime, String lpn, BasLocationVo before, BasLocationVo after, int qty) { String topic = buildTopic(runtime, "inv"); @@ -208,7 +208,7 @@ public class FrontendMessagePushService implements MqttCallback { /** * 推送设备存活状态 * - * @param runtime 运行时环境 + * @param runtime 运行时环境 * @param deviceId 设备ID * @param type 设备类型 * @param online 是否在线 @@ -228,20 +228,20 @@ public class FrontendMessagePushService implements MqttCallback { * 推送日志 * /lcc/{proj_id}/{env_id}/log/{type} * - * @param runtime 运行时环境 + * @param runtime 运行时环境 * @param logType 日志类型 - * @param logData 日志数据 + * @param log 日志数据 */ - public void pushLogs(LogisticsRuntime runtime, String logType, Object logData) { + public void pushLogs(LogisticsRuntime runtime, String logType, String log) { String topic = buildTopic(runtime, "log/" + logType); - publishJson(topic, logData); + publish(topic, log); } /** * 推送告警 * /lcc/{proj_id}/{env_id}/alarm * - * @param runtime 运行时环境 + * @param runtime 运行时环境 * @param alarmData 告警数据 */ public void pushAlarm(LogisticsRuntime runtime, Object alarmData) { 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 5909344..c9b2006 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/RcsController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/RcsController.java @@ -75,6 +75,8 @@ public class RcsController { ps.agv.logicY = ps.fromItem.logicY; ps.agv.dispatchTask(ps.planSequence); + ps.runtime.writeLog("biz", "agvToCharger任务:%s", ps.planSequence.toPrettyMap()); + return R.success(ps.planSequence.toPrettyMap()); } @@ -117,6 +119,8 @@ public class RcsController { ps.agv.logicY = ps.fromItem.logicY; ps.agv.dispatchTask(ps.planSequence); + ps.runtime.writeLog("biz", "agvMove任务:%s", ps.planSequence.toPrettyMap()); + return R.success(ps.planSequence.toPrettyMap()); } @@ -235,6 +239,8 @@ public class RcsController { ps.agv.logicY = ps.fromItem.logicY; ps.agv.dispatchTask(ps.planSequence); + ps.runtime.writeLog("biz", "agvCarry任务:%s", ps.planSequence.toPrettyMap()); + return R.success(ps.planSequence.toPrettyMap()); } @@ -267,7 +273,7 @@ public class RcsController { } // ==================== 找到托盘号 ==================== - BasLocationVo executorVo = new BasLocationVo(ps.agv); + BasLocationVo executorVo = new BasLocationVo(ps.agv); String lpn = ps.runtime.queryDSL .select(lccInvLpn.lpn) .from(lccInvLpn) @@ -301,6 +307,8 @@ public class RcsController { ps.agv.logicY = ps.fromItem.logicY; ps.agv.dispatchTask(ps.planSequence); + ps.runtime.writeLog("biz", "agvUnload任务:%s", ps.planSequence.toPrettyMap()); + return R.success(ps.planSequence.toPrettyMap()); } @@ -366,6 +374,8 @@ public class RcsController { ps.agv.logicY = ps.fromItem.logicY; ps.agv.dispatchTask(ps.planSequence); + ps.runtime.writeLog("biz", "agvLoad任务:%s", ps.planSequence.toPrettyMap()); + return R.success(ps.planSequence.toPrettyMap()); } @@ -378,6 +388,9 @@ public class RcsController { RcsCommonParam ps = (RcsCommonParam) ret; ps.agv.cancelTask(); + + ps.runtime.writeLog("biz", "cancelTasks"); + return R.success("AGV tasks cancelled successfully"); }