From a0b49b0d11220c7fefcbe0ca0e938827c16edae4 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 02 四月 2026 19:09:18 +0800
Subject: [PATCH] #预调度堆垛机2

---
 /dev/null                                                           |  397 -------------------------------------------------
 src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java |    2 
 src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java         |   26 ++-
 3 files changed, 17 insertions(+), 408 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java b/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java
index 0018484..4c09b6b 100644
--- a/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java
+++ b/src/main/java/com/zy/asrs/task/InboundCrnMoveDispatchScheduler.java
@@ -105,7 +105,7 @@
 
         // 鍚屽爢鍨涙満娌℃湁闇�瑕佸弬涓庡綋鍓嶈皟搴﹀垽鏂殑鍑哄簱浠诲姟鏃讹紝浼樺厛鐩存帴鍒板綋鍓嶅叆搴撲换鍔″彇璐т綅绛夊緟銆�
         if (!hasBlockingOutboundTask(crnNo)) {
-            boolean dispatched = crnOperateProcessUtils.dispatchCrnMove(crnNo, inboundPickupLocNo);
+            boolean dispatched = crnOperateProcessUtils.dispatchCrnMove(crnNo, inboundPickupLocNo, true);
             if (dispatched) {
                 News.info("妫�娴嬪埌浠呮湁鍏ュ簱浠诲姟锛屽凡瑙﹀彂鍫嗗灈鏈虹洿鎺ョЩ鍔ㄥ埌鍏ュ簱浠诲姟鍙栬揣浣嶇瓑寰咃紝宸ヤ綔鍙�={}锛屽爢鍨涙満鍙�={}锛屽彇璐т綅={}",
                         wrkMast.getWrkNo(), crnNo, inboundPickupLocNo);
diff --git a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
index 32caee7..889589e 100644
--- a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -1122,6 +1122,10 @@
 
     //璋冨害鍫嗗灈鏈虹Щ鍔�
     public synchronized boolean dispatchCrnMove(Integer crnNo, String targetLocNo) {
+        return dispatchCrnMove(crnNo, targetLocNo, false);
+    }
+
+    public synchronized boolean dispatchCrnMove(Integer crnNo, String targetLocNo, boolean allowQueueWhenBusy) {
         if (crnNo == null || Cools.isEmpty(targetLocNo)) {
             return false;
         }
@@ -1156,16 +1160,18 @@
             return false;
         }
 
-        long runningCount = wrkMastService.count(new QueryWrapper<WrkMast>()
-                .eq("crn_no", crnNo)
-                .in("wrk_sts",
-                        WrkStsType.INBOUND_RUN.sts,
-                        WrkStsType.OUTBOUND_RUN.sts,
-                        WrkStsType.LOC_MOVE_RUN.sts,
-                        WrkStsType.CRN_MOVE_RUN.sts));
-        if (runningCount > 0) {
-            News.info("鍫嗗灈鏈�:{} 瀛樺湪鎵ц涓殑浠诲姟锛屾殏涓嶇敓鎴愮Щ鍔ㄤ换鍔�", crnNo);
-            return false;
+        if (!allowQueueWhenBusy) {
+            long runningCount = wrkMastService.count(new QueryWrapper<WrkMast>()
+                    .eq("crn_no", crnNo)
+                    .in("wrk_sts",
+                            WrkStsType.INBOUND_RUN.sts,
+                            WrkStsType.OUTBOUND_RUN.sts,
+                            WrkStsType.LOC_MOVE_RUN.sts,
+                            WrkStsType.CRN_MOVE_RUN.sts));
+            if (runningCount > 0) {
+                News.info("鍫嗗灈鏈�:{} 瀛樺湪鎵ц涓殑浠诲姟锛屾殏涓嶇敓鎴愮Щ鍔ㄤ换鍔�", crnNo);
+                return false;
+            }
         }
 
         WrkMast activeTask = wrkMastService.getOne(new QueryWrapper<WrkMast>()
diff --git a/src/test/java/com/zy/core/utils/CrnOperateProcessUtilsTest.java b/src/test/java/com/zy/core/utils/CrnOperateProcessUtilsTest.java
deleted file mode 100644
index 3fab458..0000000
--- a/src/test/java/com/zy/core/utils/CrnOperateProcessUtilsTest.java
+++ /dev/null
@@ -1,397 +0,0 @@
-package com.zy.core.utils;
-
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.zy.asrs.entity.BasCrnp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpService;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkAnalysisService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.utils.NotifyUtils;
-import com.zy.common.service.CommonService;
-import com.zy.common.utils.RedisUtil;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.CrnModeType;
-import com.zy.core.enums.CrnStatusType;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.enums.WrkIoType;
-import com.zy.core.enums.WrkStsType;
-import com.zy.core.model.Task;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.protocol.CrnProtocol;
-import com.zy.core.thread.CrnThread;
-import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentCaptor;
-import org.springframework.test.util.ReflectionTestUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-class CrnOperateProcessUtilsTest {
-
-    @AfterEach
-    void tearDown() {
-        safeClearQueue(1);
-        safeClearQueue(2);
-        SlaveConnection.remove(SlaveType.Crn, 1);
-        SlaveConnection.remove(SlaveType.Crn, 2);
-        SlaveConnection.remove(SlaveType.Devp, 101);
-    }
-
-    @Test
-    void dispatchCrnMove_createsFormalTaskOnly() {
-        CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
-        WrkMastService wrkMastService = mock(WrkMastService.class);
-        CommonService commonService = mock(CommonService.class);
-        WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
-        CrnThread crnThread = mock(CrnThread.class);
-
-        ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
-        ReflectionTestUtils.setField(utils, "commonService", commonService);
-        ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
-        when(wrkMastService.count(any())).thenReturn(0L);
-        when(wrkMastService.getOne(any())).thenReturn(null);
-        when(commonService.getWorkNo(WrkIoType.CRN_MOVE.id)).thenReturn(30001);
-        AtomicReference<WrkMast> savedSnapshot = new AtomicReference<>();
-        when(wrkMastService.save(any(WrkMast.class))).thenAnswer(invocation -> {
-            WrkMast source = invocation.getArgument(0);
-            WrkMast snapshot = new WrkMast();
-            snapshot.setWrkNo(source.getWrkNo());
-            snapshot.setIoType(source.getIoType());
-            snapshot.setWrkSts(source.getWrkSts());
-            snapshot.setLocNo(source.getLocNo());
-            snapshot.setCrnNo(source.getCrnNo());
-            savedSnapshot.set(snapshot);
-            return true;
-        });
-
-        MessageQueue.init(SlaveType.Crn, 1);
-        CrnProtocol protocol = buildProtocol(1, CrnStatusType.IDLE.id, 0);
-        protocol.setBay(8);
-        protocol.setLevel(3);
-        when(crnThread.getStatus()).thenReturn(protocol);
-        SlaveConnection.put(SlaveType.Crn, 1, crnThread);
-
-        boolean dispatched = utils.dispatchCrnMove(1, "2-1-1");
-
-        assertTrue(dispatched);
-
-        verify(wrkMastService).save(any(WrkMast.class));
-        WrkMast saved = savedSnapshot.get();
-        assertNotNull(saved);
-        assertEquals(30001, saved.getWrkNo());
-        assertEquals(WrkIoType.CRN_MOVE.id, saved.getIoType());
-        assertEquals(WrkStsType.NEW_CRN_MOVE.sts, saved.getWrkSts());
-        assertEquals("2-1-1", saved.getLocNo());
-        assertEquals(1, saved.getCrnNo());
-
-        verify(wrkMastService, never()).updateById(any(WrkMast.class));
-        verify(wrkAnalysisService, never()).markCraneStart(any(WrkMast.class), any());
-        assertNull(MessageQueue.peek(SlaveType.Crn, 1));
-    }
-
-    @Test
-    void dispatchCrnMove_returnsFalseWhenOtherTaskRunning() {
-        CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
-        WrkMastService wrkMastService = mock(WrkMastService.class);
-        CommonService commonService = mock(CommonService.class);
-        WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
-
-        ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
-        ReflectionTestUtils.setField(utils, "commonService", commonService);
-        ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
-        when(wrkMastService.count(any())).thenReturn(1L);
-        when(wrkMastService.getOne(any())).thenReturn(null);
-        when(wrkMastService.save(any(WrkMast.class))).thenReturn(true);
-        when(commonService.getWorkNo(WrkIoType.CRN_MOVE.id)).thenReturn(30001);
-
-        boolean dispatched = utils.dispatchCrnMove(1, "2-1-1");
-
-        assertFalse(dispatched);
-        verify(wrkMastService, never()).save(any(WrkMast.class));
-        verify(commonService, never()).getWorkNo(anyInt());
-        verify(wrkAnalysisService, never()).initForTask(any(WrkMast.class));
-    }
-
-    @Test
-    void crnIoExecuteNormal_prioritizesCrnMoveTask() {
-        CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
-        BasCrnpService basCrnpService = mock(BasCrnpService.class);
-        WrkMastService wrkMastService = mock(WrkMastService.class);
-        RedisUtil redisUtil = mock(RedisUtil.class);
-        LocMastService locMastService = mock(LocMastService.class);
-        NotifyUtils notifyUtils = mock(NotifyUtils.class);
-        WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
-        CrnThread crnThread = mock(CrnThread.class);
-
-        ReflectionTestUtils.setField(utils, "basCrnpService", basCrnpService);
-        ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
-        ReflectionTestUtils.setField(utils, "redisUtil", redisUtil);
-        ReflectionTestUtils.setField(utils, "locMastService", locMastService);
-        ReflectionTestUtils.setField(utils, "notifyUtils", notifyUtils);
-        ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
-        when(basCrnpService.list(anyWrapper())).thenReturn(List.of(buildBasCrnp(1, "[[2,3]]", "[2]")));
-        when(redisUtil.get(anyString())).thenReturn(null);
-        when(wrkMastService.count(any())).thenReturn(0L);
-        when(wrkMastService.updateById(any(WrkMast.class))).thenReturn(true);
-
-        WrkMast crnMoveTask = new WrkMast();
-        crnMoveTask.setWrkNo(30001);
-        crnMoveTask.setCrnNo(1);
-        crnMoveTask.setIoType(WrkIoType.CRN_MOVE.id);
-        crnMoveTask.setWrkSts(WrkStsType.NEW_CRN_MOVE.sts);
-        crnMoveTask.setLocNo("2-1-1");
-        crnMoveTask.setIoPri(999D);
-
-        WrkMast locMoveTask = new WrkMast();
-        locMoveTask.setWrkNo(20001);
-        locMoveTask.setCrnNo(1);
-        locMoveTask.setIoType(WrkIoType.LOC_MOVE.id);
-        locMoveTask.setWrkSts(WrkStsType.NEW_LOC_MOVE.sts);
-        locMoveTask.setSourceLocNo("3-1-1");
-        locMoveTask.setLocNo("4-1-1");
-        locMoveTask.setIoPri(1D);
-
-        when(wrkMastService.list(anyWrapper()))
-                .thenReturn(new ArrayList<>(List.of(crnMoveTask)))
-                .thenReturn(new ArrayList<>(List.of(locMoveTask, crnMoveTask)));
-
-        LocMast sourceLoc = new LocMast();
-        sourceLoc.setLocNo("3-1-1");
-        sourceLoc.setLocSts("R");
-        LocMast targetLoc = new LocMast();
-        targetLoc.setLocNo("4-1-1");
-        targetLoc.setLocSts("S");
-        when(locMastService.getById("3-1-1")).thenReturn(sourceLoc);
-        when(locMastService.getById("4-1-1")).thenReturn(targetLoc);
-
-        CrnProtocol protocol = buildProtocol(1, CrnStatusType.IDLE.id, 0);
-        protocol.setBay(1);
-        protocol.setLevel(1);
-        when(crnThread.getStatus()).thenReturn(protocol);
-
-        CrnCommand moveCommand = new CrnCommand();
-        moveCommand.setCrnNo(1);
-        moveCommand.setTaskNo(30001);
-        when(crnThread.getMoveCommand("2-1-1", 30001, 1)).thenReturn(moveCommand);
-
-        CrnCommand locMoveCommand = new CrnCommand();
-        locMoveCommand.setCrnNo(1);
-        locMoveCommand.setTaskNo(20001);
-        when(crnThread.getPickAndPutCommand("3-1-1", "4-1-1", 20001, 1)).thenReturn(locMoveCommand);
-
-        MessageQueue.init(SlaveType.Crn, 1);
-        SlaveConnection.put(SlaveType.Crn, 1, crnThread);
-
-        utils.crnIoExecuteNormal();
-
-        ArgumentCaptor<WrkMast> updateCaptor = ArgumentCaptor.forClass(WrkMast.class);
-        verify(wrkMastService).updateById(updateCaptor.capture());
-        assertEquals(30001, updateCaptor.getValue().getWrkNo());
-        assertEquals(WrkStsType.CRN_MOVE_RUN.sts, updateCaptor.getValue().getWrkSts());
-        verify(wrkAnalysisService).markCraneStart(any(WrkMast.class), any());
-
-        Task task = MessageQueue.peek(SlaveType.Crn, 1);
-        assertNotNull(task);
-        assertSame(moveCommand, task.getData());
-    }
-
-    @Test
-    void crnIoExecuteNormal_allowsOtherCraneToRunWhenOneCraneHasMoveTask() {
-        CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
-        BasCrnpService basCrnpService = mock(BasCrnpService.class);
-        WrkMastService wrkMastService = mock(WrkMastService.class);
-        RedisUtil redisUtil = mock(RedisUtil.class);
-        LocMastService locMastService = mock(LocMastService.class);
-        NotifyUtils notifyUtils = mock(NotifyUtils.class);
-        WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
-        CrnThread crnThread1 = mock(CrnThread.class);
-        CrnThread crnThread2 = mock(CrnThread.class);
-
-        ReflectionTestUtils.setField(utils, "basCrnpService", basCrnpService);
-        ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
-        ReflectionTestUtils.setField(utils, "redisUtil", redisUtil);
-        ReflectionTestUtils.setField(utils, "locMastService", locMastService);
-        ReflectionTestUtils.setField(utils, "notifyUtils", notifyUtils);
-        ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
-        when(basCrnpService.list(anyWrapper())).thenReturn(List.of(
-                buildBasCrnp(1, "[[2,3]]", "[2]"),
-                buildBasCrnp(2, "[[4,5]]", "[4]")
-        ));
-        when(redisUtil.get(anyString())).thenReturn(null);
-        when(wrkMastService.count(any())).thenReturn(0L);
-        when(wrkMastService.updateById(any(WrkMast.class))).thenReturn(true);
-
-        WrkMast crnMoveTask = new WrkMast();
-        crnMoveTask.setWrkNo(30001);
-        crnMoveTask.setCrnNo(1);
-        crnMoveTask.setIoType(WrkIoType.CRN_MOVE.id);
-        crnMoveTask.setWrkSts(WrkStsType.NEW_CRN_MOVE.sts);
-        crnMoveTask.setLocNo("2-1-1");
-
-        WrkMast locMoveTask = new WrkMast();
-        locMoveTask.setWrkNo(20002);
-        locMoveTask.setCrnNo(2);
-        locMoveTask.setIoType(WrkIoType.LOC_MOVE.id);
-        locMoveTask.setWrkSts(WrkStsType.NEW_LOC_MOVE.sts);
-        locMoveTask.setSourceLocNo("4-1-1");
-        locMoveTask.setLocNo("5-1-1");
-        locMoveTask.setIoPri(1D);
-
-        when(wrkMastService.list(anyWrapper()))
-                .thenReturn(new ArrayList<>(List.of(crnMoveTask)))
-                .thenReturn(new ArrayList<>(List.of(crnMoveTask)))
-                .thenReturn(new ArrayList<>(List.of(locMoveTask)));
-
-        LocMast sourceLoc = new LocMast();
-        sourceLoc.setLocNo("4-1-1");
-        sourceLoc.setLocSts("R");
-        LocMast targetLoc = new LocMast();
-        targetLoc.setLocNo("5-1-1");
-        targetLoc.setLocSts("S");
-        when(locMastService.getById("4-1-1")).thenReturn(sourceLoc);
-        when(locMastService.getById("5-1-1")).thenReturn(targetLoc);
-
-        CrnProtocol protocol1 = buildProtocol(1, CrnStatusType.IDLE.id, 0);
-        when(crnThread1.getStatus()).thenReturn(protocol1);
-        CrnProtocol protocol2 = buildProtocol(2, CrnStatusType.IDLE.id, 0);
-        when(crnThread2.getStatus()).thenReturn(protocol2);
-
-        CrnCommand moveCommand = new CrnCommand();
-        moveCommand.setCrnNo(1);
-        moveCommand.setTaskNo(30001);
-        when(crnThread1.getMoveCommand("2-1-1", 30001, 1)).thenReturn(moveCommand);
-
-        CrnCommand locMoveCommand = new CrnCommand();
-        locMoveCommand.setCrnNo(2);
-        locMoveCommand.setTaskNo(20002);
-        when(crnThread2.getPickAndPutCommand("4-1-1", "5-1-1", 20002, 2)).thenReturn(locMoveCommand);
-
-        MessageQueue.init(SlaveType.Crn, 1);
-        MessageQueue.init(SlaveType.Crn, 2);
-        SlaveConnection.put(SlaveType.Crn, 1, crnThread1);
-        SlaveConnection.put(SlaveType.Crn, 2, crnThread2);
-
-        utils.crnIoExecuteNormal();
-
-        ArgumentCaptor<WrkMast> updateCaptor = ArgumentCaptor.forClass(WrkMast.class);
-        verify(wrkMastService, times(2)).updateById(updateCaptor.capture());
-        List<WrkMast> updatedList = updateCaptor.getAllValues();
-        assertEquals(30001, updatedList.get(0).getWrkNo());
-        assertEquals(WrkStsType.CRN_MOVE_RUN.sts, updatedList.get(0).getWrkSts());
-        assertEquals(20002, updatedList.get(1).getWrkNo());
-        assertEquals(WrkStsType.LOC_MOVE_RUN.sts, updatedList.get(1).getWrkSts());
-
-        Task task1 = MessageQueue.peek(SlaveType.Crn, 1);
-        assertNotNull(task1);
-        assertSame(moveCommand, task1.getData());
-
-        Task task2 = MessageQueue.peek(SlaveType.Crn, 2);
-        assertNotNull(task2);
-        assertSame(locMoveCommand, task2.getData());
-    }
-
-    @Test
-    void crnIoExecuteFinish_marksCrnMoveTaskComplete() {
-        CrnOperateProcessUtils utils = new CrnOperateProcessUtils();
-        BasCrnpService basCrnpService = mock(BasCrnpService.class);
-        WrkMastService wrkMastService = mock(WrkMastService.class);
-        RedisUtil redisUtil = mock(RedisUtil.class);
-        WrkAnalysisService wrkAnalysisService = mock(WrkAnalysisService.class);
-        CrnThread crnThread = mock(CrnThread.class);
-
-        ReflectionTestUtils.setField(utils, "basCrnpService", basCrnpService);
-        ReflectionTestUtils.setField(utils, "wrkMastService", wrkMastService);
-        ReflectionTestUtils.setField(utils, "redisUtil", redisUtil);
-        ReflectionTestUtils.setField(utils, "wrkAnalysisService", wrkAnalysisService);
-
-        when(basCrnpService.list(anyWrapper())).thenReturn(List.of(buildBasCrnp(1, "[[2,3]]", "[2]")));
-        when(redisUtil.get(anyString())).thenReturn(null);
-        when(wrkMastService.updateById(any(WrkMast.class))).thenReturn(true);
-
-        CrnProtocol protocol = buildProtocol(1, CrnStatusType.WAITING.id, 30001);
-        when(crnThread.getStatus()).thenReturn(protocol);
-
-        WrkMast wrkMast = new WrkMast();
-        wrkMast.setWrkNo(30001);
-        wrkMast.setIoType(WrkIoType.CRN_MOVE.id);
-        wrkMast.setWrkSts(WrkStsType.CRN_MOVE_RUN.sts);
-        wrkMast.setCrnNo(1);
-        when(wrkMastService.selectByWorkNo(30001)).thenReturn(wrkMast);
-
-        CrnCommand resetCommand = new CrnCommand();
-        resetCommand.setCrnNo(1);
-        resetCommand.setTaskNo(30001);
-        when(crnThread.getResetCommand(30001, 1)).thenReturn(resetCommand);
-
-        MessageQueue.init(SlaveType.Crn, 1);
-        SlaveConnection.put(SlaveType.Crn, 1, crnThread);
-
-        utils.crnIoExecuteFinish();
-
-        ArgumentCaptor<WrkMast> updateCaptor = ArgumentCaptor.forClass(WrkMast.class);
-        verify(wrkMastService, times(1)).updateById(updateCaptor.capture());
-        assertEquals(WrkStsType.COMPLETE_CRN_MOVE.sts, updateCaptor.getValue().getWrkSts());
-        verify(wrkAnalysisService).markCraneComplete(any(WrkMast.class), any(), eq(WrkStsType.COMPLETE_CRN_MOVE.sts));
-
-        Task task = MessageQueue.peek(SlaveType.Crn, 1);
-        assertNotNull(task);
-        assertSame(resetCommand, task.getData());
-    }
-
-    private BasCrnp buildBasCrnp(int crnNo, String controlRows, String deepRows) {
-        BasCrnp basCrnp = new BasCrnp();
-        basCrnp.setCrnNo(crnNo);
-        basCrnp.setControlRows(controlRows);
-        basCrnp.setDeepRows(deepRows);
-        return basCrnp;
-    }
-
-    private CrnProtocol buildProtocol(int crnNo, int status, int taskNo) {
-        CrnProtocol protocol = new CrnProtocol();
-        protocol.setCrnNo(crnNo);
-        protocol.setMode(CrnModeType.AUTO.id);
-        protocol.setTaskNo(taskNo);
-        protocol.setStatus(status);
-        protocol.setLoaded(0);
-        protocol.setForkPos(0);
-        protocol.setAlarm(0);
-        return protocol;
-    }
-
-    private void safeClearQueue(int crnNo) {
-        try {
-            MessageQueue.clear(SlaveType.Crn, crnNo);
-        } catch (Exception ignore) {
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private <T> Wrapper<T> anyWrapper() {
-        return any(Wrapper.class);
-    }
-}

--
Gitblit v1.9.1