自动化立体仓库 - WMS系统
zyx
2023-07-14 f1223c78a7b93d89017c26770390ef446cc57ac6
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
package com.zy.asrs.service.impl;
 
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.AgvBasDevp;
import com.zy.asrs.mapper.AgvBasDevpMapper;
import com.zy.asrs.service.AgvBasDevpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
@Service
@Transactional
public class AgvBasDevpServiceImpl extends ServiceImpl<AgvBasDevpMapper, AgvBasDevp> implements AgvBasDevpService {
 
    @Autowired
    AgvBasDevpMapper agvBasDevpMapper;
 
    public void clearBasDevp(){
        agvBasDevpMapper.deleteAll();
    }
 
    public void initBasDevp(){
 
        //初始化1楼缓存货架站点 2排5列3层
        this.insertBatch(getCacheBasDevpList(1,2,1,5,1,3,1));
        //初始化3楼缓存货架站点 3排5列3层
        this.insertBatch(getCacheBasDevpList(5,7,1,5,1,3,3));
        //初始化3楼输送线工作站点 4个站点
        this.insertBatch(getLineBasDevpList());
 
    }
 
    private List<AgvBasDevp> getLineBasDevpList(){
        List<AgvBasDevp> agvBasDevpList = new ArrayList<>();
        Date now = new Date();
        for(int row=1; row<=4; row++){
            agvBasDevpList.add(getAgvBasDevp(row,1,1,3,"N",now));
        }
        return agvBasDevpList;
    }
 
    //根据排列层获取AGV缓存货架站点列表
    private List<AgvBasDevp> getCacheBasDevpList(int rowIndex, int rowMax, int bayIndex, int bayMax, int levIndex, int levMax, int floor){
        List<AgvBasDevp> agvBasDevpList = new ArrayList<>();
        Date now = new Date();
        for(int row=rowIndex; row<=rowMax; row++){
            for(int bay=bayIndex; bay<=bayMax; bay++){
                for(int lev=levIndex; lev<=levMax; lev++){
//                    AgvBasDevp agvBasDevp = new AgvBasDevp();
//                    String devNo = "CS-" + floor + "0" + row + "-00" + bay + "-0" + lev + "@" + floor;
//                    String stationCode = "CS-" + floor + "0" + row;
//                    agvBasDevp.setDevNo(devNo);
//                    agvBasDevp.setStationCode(stationCode);
//                    agvBasDevp.setLocSts("O");
//                    agvBasDevp.setCacheShelves("Y");
//                    agvBasDevp.setFloor(floor);
//                    agvBasDevp.setModiTime(now);
//                    agvBasDevp.setAppeTime(now);
                    agvBasDevpList.add(getAgvBasDevp(row,bay,lev,floor,"Y",now));
 
                }
            }
        }
 
        return agvBasDevpList;
    }
 
    private AgvBasDevp getAgvBasDevp(int row, int bay, int lev, int floor, String cacheShelves, Date now){
        AgvBasDevp agvBasDevp = new AgvBasDevp();
        String devNo = "CS-" + floor + "0" + row + "-00" + bay + "-0" + lev + "@" + floor;
        String stationCode = "CS-" + floor + "0" + row;
        agvBasDevp.setDevNo(devNo);
        agvBasDevp.setStationCode(stationCode);
        agvBasDevp.setLocSts("O");
        agvBasDevp.setCacheShelves(cacheShelves);
        agvBasDevp.setFloor(floor);
        agvBasDevp.setModiTime(now);
        agvBasDevp.setAppeTime(now);
        return agvBasDevp;
    }
 
}