自动化立体仓库 - WMS系统
zyx
2023-07-14 f0bc3f22896893606867701aae50c70334fc923e
src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java
@@ -4,8 +4,83 @@
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;
    }
}