自动化立体仓库 - WMS系统
#
whycq
2024-04-23 071f3021f4ba872c572a4c59dd8ce9ea2d3c9106
#
5个文件已修改
133 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/AgvLocMastController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvMapController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/AgvLocMastService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/home/agvMap.html 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/AgvLocMastController.java
@@ -153,11 +153,11 @@
    @ManagerAuth(memo = "初始化库位")
    public R init(LocMastInitParam param) {
        //清空原有库位
        agvLockMastService.clearLoc();
//        agvLockMastService.clearLoc();
        //初始化二楼库位
        agvLockMastService.initLocFloor2();
//        agvLockMastService.initLocFloor2();
        //初始化三楼站点
        //agvLockMastService.initLocFloor3();
        agvLockMastService.initLocFloor3();
        return R.ok();
    }
src/main/java/com/zy/asrs/controller/AgvMapController.java
@@ -51,7 +51,7 @@
    public String getMapData(@PathVariable("floor") Integer floor, @PathVariable("lev") Integer lev) {
        //to do
        floor = 2;
//        floor = 2;
        BasMap basMap = agvBasMapService.selectLatestMap(1,floor);
        //解析json地图数据
src/main/java/com/zy/asrs/service/AgvLocMastService.java
@@ -14,6 +14,8 @@
    public void initLocFloor2();
    public void initLocFloor3();
    List<AgvLocMast> queryFreeLocMast2(Short locType1, Integer rowBeg, Integer rowEnd, Integer bayBeg, Integer bayEnd, Integer levBeg, Integer levEnd);
    void updateLocType2ByRBL(Integer locType2, AgvLocRule locRule);
src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
@@ -36,6 +36,10 @@
        //2楼 1-25排 1-33列 1层
        this.insertBatch(getLocMastList(1, 25, 1, 33, 1, 1, 2));
    }
    public void initLocFloor3() {
        //2楼 1-25排 1-33列 1层
        this.insertBatch(getLocMastList(1, 26, 1, 34, 1, 1, 3));
    }
    //根据排列层获取AGV库位列表
    private List<AgvLocMast> getLocMastList(int rowIndex, int rowMax, int bayIndex, int bayMax, int levIndex, int levMax, int floor){
@@ -45,7 +49,7 @@
            for (int bay = bayIndex; bay <= bayMax; bay++) {
                for (int lev = levIndex; lev <= levMax; lev++) {
                    if(!checkLocExistFloor2(row,bay)){
                    if(!checkLocExistFloor3(row,bay)){
                        continue;
                    }
@@ -63,7 +67,7 @@
                    loc.setModiTime(now);
                    loc.setFirstTime(now);
                    loc.setAppeTime(now);
                    loc.setLocType1(initLocMastSts(row,bay));
                    loc.setLocType1(initLocMastSts3(row,bay));
                    agvLocMastList.add(loc);
                }
            }
@@ -120,6 +124,79 @@
        return 2;
    }
    private boolean checkLocExistFloor3(int row, int bay){
        if(row == 1 && (bay <= 15 || bay >= 30)){
            return false;
        }
        if(row <= 6 && bay >= 29){
            return false;
        }
        if((row >= 9 && row <= 16) && (bay <= 4 || bay >= 33)){
            return false;
        }
        if(row == 17 && (bay <= 3 || bay >= 33)){
            return false;
        }
        if(row <= 21 && bay >= 33){
            return false;
        }
        if(row <= 24 && bay >= 34){
            return false;
        }
        if(row <= 26 && bay >= 29){
            return false;
        }
        if((row != 8 && row != 21  && row != 23 && row != 24 && row != 25 && row != 26) && bay == 15){
            return  false;
        }
        if((row != 22 && row != 23  && row != 24 && row != 25 ) && bay == 16){
            return  false;
        }
        if (row == 4 && (bay == 3 || bay == 4 || bay == 9 || bay == 14 || bay == 19 || bay == 20 || bay == 25)) {
            return  false;
        }
        if ((row == 13 || row == 17) && (bay == 8 || bay == 14 || bay == 19 || bay == 24 )) {
            return  false;
        }
        if (row == 22 && (bay == 4 || bay == 9 || bay == 14 || bay == 20 || bay == 25 )) {
            return  false;
        }
        return true;
    }
    private short initLocMastSts3(int row, int bay){
        if(row <= 8){
            return 1;
        }
        if(row <= 17){
            return 2;
        }
        if(row <= 18 && bay <= 8){
            return 2;
        }
        if(row <= 21){
            return 4;
        }
        if(row >= 22){
            return 3;
        }
        return 2;
    }
    private boolean checkLocExist(int row, int bay, int floor){
        //if(floor == 1 && (row == 2)){
src/main/webapp/views/home/agvMap.html
@@ -381,9 +381,9 @@
</head>
<body>
<div id="app" style="display: flex;justify-content: space-around;margin-top: 0px;flex-wrap: wrap;" @click="bgClick()">
    <!--<div style="margin-top: 20px;"><button class="layui-btn" @click="currentFloor = 1" :style="{background: currentFloor==1?'red':''}">1楼</button></div>-->
    <!--<div style="margin-top: 20px;"><button class="layui-btn" @click="currentFloor = 3" :style="{background: currentFloor==3?'red':''}">3楼</button></div>-->
    <div style="margin-top: 20px;"><button class="layui-btn" @click="currentFloor = 1" :style="{background: currentFloor==1?'red':''}">1楼</button></div>
    <div style="margin-top: 20px;"><button class="layui-btn" @click="currentFloor = 2" :style="{background: currentFloor==2?'red':''}">2楼</button></div>
    <div style="margin-top: 20px;"><button class="layui-btn" @click="currentFloor = 3" :style="{background: currentFloor==3?'red':''}">3楼</button></div>
    <div style="flex: 18;display: flex;justify-content: center;" :style="{zoom:showScale/100.0,marginTop:(showScale)*3 + 'px'}">
        <div style="margin-top: -110px;">
@@ -523,24 +523,24 @@
                <button class="card-button">库位状态</button>
            </div>
<!--            <div class="hoverCard">-->
<!--                <div class="card-details">-->
<!--                    <p class="text-title" style="text-align: center;">楼层 {{currentLev}}F</p>-->
<!--                    <div class="text-body" style="display: flex;">-->
<!--                        <div class="floorSelect">-->
<!--                            <label for="01">1F</label>-->
<!--                            <input id="01" type="radio" name="r" v-model="currentLev" value="1" checked="">-->
<!--                            <label for="02">2F</label>-->
<!--                            <input id="02" type="radio" v-model="currentLev" name="r" value="2">-->
<!--                            <label for="03">3F</label>-->
<!--                            <input id="03" type="radio" v-model="currentLev" name="r" value="3">-->
<!--                            <label for="04">4F</label>-->
<!--                            <input id="04" type="radio" v-model="currentLev" name="r" value="4">-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
<!--                <button class="card-button">楼层 {{currentLev}}F</button>-->
<!--            </div>-->
            <div class="hoverCard">
                <div class="card-details">
                    <p class="text-title" style="text-align: center;">楼层 {{currentLev}}F</p>
                    <div class="text-body" style="display: flex;">
                        <div class="floorSelect">
                            <label for="01">1F</label>
                            <input id="01" type="radio" name="r" v-model="currentLev" value="1" checked="">
                            <label for="02">2F</label>
                            <input id="02" type="radio" v-model="currentLev" name="r" value="2">
                            <label for="03">3F</label>
                            <input id="03" type="radio" v-model="currentLev" name="r" value="3">
                            <label for="04">4F</label>
                            <input id="04" type="radio" v-model="currentLev" name="r" value="4">
                        </div>
                    </div>
                </div>
                <button class="card-button">楼层 {{currentLev}}F</button>
            </div>
        </div>
    </div>