no message

main
HUOJIN\92525 2025-02-13 15:17:51 +08:00
parent 984d32e185
commit 096ed2f73b
4 changed files with 44 additions and 8 deletions

View File

@ -259,7 +259,7 @@ public class PickServiceImpl implements PickService {
pickDetail.getPick().getGdCode() + "-" + pickDetail.getItem().getCode(),
UrlApi.stock(),
resultJson,
"info",
"工单回传",
200,
"info");
}

View File

@ -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<String, Boolean> lastPollLogMessages = new ConcurrentHashMap<>();
// 存储日志添加顺序
private final ConcurrentLinkedQueue<String> logOrderQueue = new ConcurrentLinkedQueue<>();
// 集合最大容量
private static final int MAX_LOG_CAPACITY = 135;
@Override
public Map<String, Object> queryAll(TaskQueryCriteria criteria, Pageable pageable) {
@ -174,7 +182,11 @@ public class TaskServiceImpl implements TaskService {
List<Point> 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;
}
//起点

View File

@ -44,6 +44,6 @@ public interface QuartzLogRepository extends JpaRepository<QuartzLog,Long>, 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();
}

View File

@ -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<String> statuses = Arrays.asList(BizStatus.ALLOCATE);
List<String> statuses = Arrays.asList(BizStatus.ASSIGN, BizStatus.ALLOCATE);
List<Pick> 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));
}