From 096ed2f73b0792a3fd11617888e02a51541906c6 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" Date: Thu, 13 Feb 2025 15:17:51 +0800 Subject: [PATCH] no message --- .../service/impl/PickServiceImpl.java | 2 +- .../service/impl/TaskServiceImpl.java | 36 ++++++++++++++++--- .../repository/QuartzLogRepository.java | 2 +- .../modules/quartz/task/pickTask.java | 12 +++++-- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java index eca5b2b..aa44161 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java @@ -259,7 +259,7 @@ public class PickServiceImpl implements PickService { pickDetail.getPick().getGdCode() + "-" + pickDetail.getItem().getCode(), UrlApi.stock(), resultJson, - "info", + "工单回传", 200, "info"); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java index f9564d7..21d18c8 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/TaskServiceImpl.java @@ -38,6 +38,8 @@ import org.springframework.data.domain.Pageable; import java.util.*; import java.io.IOException; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedQueue; import javax.servlet.http.HttpServletResponse; /** @@ -62,6 +64,12 @@ public class TaskServiceImpl implements TaskService { private final InventoryService inventoryService; private final InventoryLogService inventoryLogService; private final StockTypeToAreaMap stockTypeToAreaMap; + // 存储日志信息 + private final ConcurrentHashMap lastPollLogMessages = new ConcurrentHashMap<>(); + // 存储日志添加顺序 + private final ConcurrentLinkedQueue logOrderQueue = new ConcurrentLinkedQueue<>(); + // 集合最大容量 + private static final int MAX_LOG_CAPACITY = 135; @Override public Map queryAll(TaskQueryCriteria criteria, Pageable pageable) { @@ -174,7 +182,11 @@ public class TaskServiceImpl implements TaskService { List pointList = pointService.queryPoints(null, BaseStatus.FREE, BaseStatus.BOX, areaName); if (pointList.isEmpty()) { - logService.saveLogInfo(pick.getCode(), pick.getCode(), "/pick/allocatePick", "分配失败,翻包区没有空闲点位!", "出库单分配", 200, "info"); + String logMessage = pick.getCode() + "工单分配失败,翻包区没有空闲点位!"; + if (!lastPollLogMessages.containsKey(logMessage)) { + logService.saveLogInfo(pick.getCode(), pick.getCode(), "/pick/allocatePick", logMessage, "出库单分配", 200, "info"); + addLog(logMessage); + } return; } endPoint = pointList.get(0); @@ -206,7 +218,23 @@ public class TaskServiceImpl implements TaskService { //保存日志 - logService.saveLogInfo(pick.getCode(), pick.getCode(), "/pick/allocatePick", msgList.toString(), "出库单分配", 200, "info"); + String logMessage = msgList.toString(); + if (!lastPollLogMessages.containsKey(logMessage)) { + logService.saveLogInfo(pick.getCode(), pick.getCode(), "/pick/allocatePick", msgList.toString(), "出库单分配", 200, "info"); + addLog(logMessage); + } + + } + + private void addLog(String logMessage) { + if (lastPollLogMessages.size() >= MAX_LOG_CAPACITY) { + String oldestLog = logOrderQueue.poll(); + if (oldestLog != null) { + lastPollLogMessages.remove(oldestLog); + } + } + lastPollLogMessages.put(logMessage, true); + logOrderQueue.offer(logMessage); } @Override @@ -242,8 +270,8 @@ public class TaskServiceImpl implements TaskService { String dstAreaCode = AreaNameDic.XJJLQ.equals(point.getArea().getName()) ? AreaNameDic.XJFBCQ : AreaNameDic.DJFBCQ; //容器 - Stock stock=stockService.findByPointCode(point.getCode()); - if (stock==null) { + Stock stock = stockService.findByPointCode(point.getCode()); + if (stock == null) { return; } //起点 diff --git a/youchain-system/src/main/java/com/youchain/modules/quartz/repository/QuartzLogRepository.java b/youchain-system/src/main/java/com/youchain/modules/quartz/repository/QuartzLogRepository.java index 431e426..8f6e561 100644 --- a/youchain-system/src/main/java/com/youchain/modules/quartz/repository/QuartzLogRepository.java +++ b/youchain-system/src/main/java/com/youchain/modules/quartz/repository/QuartzLogRepository.java @@ -44,6 +44,6 @@ public interface QuartzLogRepository extends JpaRepository, JpaS */ @Modifying @Transactional - @Query(value = "delete from sys_quartz_log where log_id in (SELECT log_id FROM (SELECT log_id FROM sys_quartz_log WHERE create_time < DATE_SUB(NOW(),INTERVAL 1 MONTH) LIMIT 10000) tmp) ", nativeQuery = true) + @Query(value = "TRUNCATE TABLE sys_quartz_log ", nativeQuery = true) void cleanQuartzLog(); } diff --git a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java index 606a39b..5039c9b 100644 --- a/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java +++ b/youchain-system/src/main/java/com/youchain/modules/quartz/task/pickTask.java @@ -1,5 +1,7 @@ package com.youchain.modules.quartz.task; +import com.youchain.basicdata.domain.Point; +import com.youchain.basicdata.service.PointService; import com.youchain.businessdata.domain.AgvTask; import com.youchain.businessdata.domain.Pick; import com.youchain.businessdata.domain.Task; @@ -25,6 +27,9 @@ import java.util.*; @Service public class pickTask { + @Autowired + public PointService pointService; + @Autowired public PickService pickService; @@ -57,7 +62,7 @@ public class pickTask { */ public void pickAgvTask() { /*查询分配完成的出库单*/ - List statuses = Arrays.asList(BizStatus.ALLOCATE); + List statuses = Arrays.asList(BizStatus.ASSIGN, BizStatus.ALLOCATE); List pickList = pickService.findByPickStatus(statuses, null); if (pickList.isEmpty()) { throw new BadRequestException("无已分配的出库单,下发任务失败!"); @@ -92,7 +97,10 @@ public class pickTask { } for (AgvTask agvTask : agvTaskList) { if (BizStatus.PICK.equals(agvTask.getType())) { - kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); + Point point = pointService.validatePoint(agvTask.getEndSlotCode()); + if(BaseStatus.FREE.equalsIgnoreCase(point.getStatus())){ + kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskCcJson(agvTask)); + } } else { kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskHjJson(agvTask)); }