no message
							parent
							
								
									984d32e185
								
							
						
					
					
						commit
						096ed2f73b
					
				| 
						 | 
				
			
			@ -259,7 +259,7 @@ public class PickServiceImpl implements PickService {
 | 
			
		|||
                pickDetail.getPick().getGdCode() + "-" + pickDetail.getItem().getCode(),
 | 
			
		||||
                UrlApi.stock(),
 | 
			
		||||
                resultJson,
 | 
			
		||||
                "info",
 | 
			
		||||
                "工单回传",
 | 
			
		||||
                200,
 | 
			
		||||
                "info");
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
        //保存日志
 | 
			
		||||
        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;
 | 
			
		||||
        }
 | 
			
		||||
        //起点
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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())) {
 | 
			
		||||
                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));
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue