自动化立体仓库 - WMS系统
zwl
22 小时以前 a1b99c6eb0e36c36f7696eff9bc23ecf57206661
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.zy.asrs.task.handler;
 
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WorkService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.support.AutoFrontLocMoveSettings;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
 
import java.util.Arrays;
import java.util.Collections;
 
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
 
@ExtendWith(MockitoExtension.class)
class AutoFrontLocMoveHandlerTest {
 
    @InjectMocks
    private AutoFrontLocMoveHandler handler;
    @Mock
    private BasCrnpService basCrnpService;
    @Mock
    private WrkMastService wrkMastService;
    @Mock
    private LocMastService locMastService;
    @Mock
    private LocDetlService locDetlService;
    @Mock
    private WorkService workService;
 
    @Test
    void shouldCreateMoveTaskForFirstFrontEmptyLoc() {
        AutoFrontLocMoveSettings settings = new AutoFrontLocMoveSettings();
        settings.setEnabled(true);
        settings.setUserId(9527L);
 
        AutoFrontLocMoveSettings.Rule rule = new AutoFrontLocMoveSettings.Rule();
        rule.setCrnNo(1);
        rule.setFrontRowList(Arrays.asList(1, 2));
        settings.setRules(Collections.singletonList(rule));
 
        BasCrnp basCrnp = new BasCrnp();
        basCrnp.setCrnNo(1);
        basCrnp.setInEnable("Y");
        basCrnp.setOutEnable("Y");
        basCrnp.setCrnSts(3);
        basCrnp.setCrnErr(0L);
        when(basCrnpService.selectById(1)).thenReturn(basCrnp);
        when(wrkMastService.selectList(any())).thenReturn(Collections.emptyList());
 
        LocMast targetLoc = buildLoc("0101010", 1, "O");
        LocMast incompatibleSource = buildLoc("0105010", 5, "F");
        incompatibleSource.setWhsType(2L);
        LocMast compatibleSource = buildLoc("0106010", 6, "F");
 
        when(locMastService.selectList(any()))
                .thenReturn(Collections.singletonList(targetLoc))
                .thenReturn(Arrays.asList(incompatibleSource, compatibleSource));
 
        LocDetl locDetl = new LocDetl();
        locDetl.setLocNo(compatibleSource.getLocNo());
        locDetl.setFrozen(0);
        when(locDetlService.selectList(any())).thenReturn(Collections.singletonList(locDetl));
 
        doNothing().when(workService).locMove(compatibleSource.getLocNo(), targetLoc.getLocNo(), 9527L);
 
        handler.start(settings);
 
        verify(workService).locMove(compatibleSource.getLocNo(), targetLoc.getLocNo(), 9527L);
    }
 
    private LocMast buildLoc(String locNo, Integer row, String locSts) {
        LocMast locMast = new LocMast();
        locMast.setLocNo(locNo);
        locMast.setCrnNo(1);
        locMast.setRow1(row);
        locMast.setBay1(1);
        locMast.setLev1(1);
        locMast.setGro1(1);
        locMast.setWhsType(1L);
        locMast.setLocType1((short) 1);
        locMast.setLocType2((short) 1);
        locMast.setLocType3((short) 1);
        locMast.setOutEnable("Y");
        locMast.setLocSts(locSts);
        locMast.setFrozen(0);
        return locMast;
    }
}