自动化立体仓库 - WMS系统
8ea4c0fa09a08ec40e5f453bcde0fc7397b15b0d..f5c89a9b01b0cae70a7e0ccd878fb75121743929
10 小时以前 zzgtfwq
#
f5c89a 对比 | 目录
15 小时以前 zzgtfwq
#
4654f8 对比 | 目录
9个文件已修改
136 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MatController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/MatMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/MatService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MatMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/deviceOperate/wcsOperate.html 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MatController.java
@@ -58,16 +58,23 @@
        return R.ok().add(mats);
    }
//    @RequestMapping(value = "/mat/search/pda/auth")
//    @ManagerAuth
//    public R pdaSearch(@RequestParam(required = false)String condition){
//        EntityWrapper<Mat> wrapper = new EntityWrapper<>();
//        if (!Cools.isEmpty(condition)) {
////            wrapper.like("matnr", condition).or().like("maktx", condition);
//            wrapper.like("matnr", condition).or().like("specs", condition);
//        }
//        wrapper.orderBy("create_time", false);
//        List<Mat> mats = matService.selectList(wrapper);
//        return R.ok().add(mats);
//    }
    @RequestMapping(value = "/mat/search/pda/auth")
    @ManagerAuth
    public R pdaSearch(@RequestParam(required = false)String condition){
        EntityWrapper<Mat> wrapper = new EntityWrapper<>();
        if (!Cools.isEmpty(condition)) {
//            wrapper.like("matnr", condition).or().like("maktx", condition);
            wrapper.like("matnr", condition).or().like("specs", condition);
        }
        wrapper.orderBy("create_time", false);
        List<Mat> mats = matService.selectList(wrapper);
        List<Mat> mats = matService.selectByMatnrLink10(condition);
        return R.ok().add(mats);
    }
src/main/java/com/zy/asrs/mapper/MatMapper.java
@@ -21,6 +21,7 @@
    Mat selectLatest();
    List<Mat> selectByMatnrLink(@Param("matnr")String matnr);
    List<Mat> selectByMatnrLink10(@Param("matnr")String matnr);
    Mat selectNewUpdateTime();
src/main/java/com/zy/asrs/service/MatService.java
@@ -13,6 +13,7 @@
    Mat selectByMatnr(String matnr);
    List<Mat> selectByMatnrLink(String matnr);
    List<Mat> selectByMatnrLink10(String matnr);
    Mat selectLatest();
    Page<Mat> getMatTurnPage(Page<Mat> page);
src/main/java/com/zy/asrs/service/impl/MatServiceImpl.java
@@ -38,6 +38,12 @@
        return this.baseMapper.selectByMatnrLink(matnr);
    }
    @Override
    public List<Mat> selectByMatnrLink10(String matnr) {
        return this.baseMapper.selectByMatnrLink10(matnr);
    }
    @Override
    public Mat selectNewUpdateTime() {
        return this.baseMapper.selectNewUpdateTime();
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -555,8 +555,8 @@
            throw new CoolException(param.getBarcode() + "数据正在进行入库");
        }
        if(param.getBarcode().length()!=6){
            throw new CoolException("条码长度不是6位===>>" + param.getBarcode());
        if(param.getBarcode().length()!=8){
            throw new CoolException("条码长度不是8位===>>" + param.getBarcode());
        }
//        if (param.getCombMats().size()>1){
//            throw new CoolException("不允许混料===>>" + param.getBarcode());
src/main/java/com/zy/asrs/utils/Utils.java
@@ -208,6 +208,9 @@
     */
    public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) {
        int row = getRow(deepLoc);
        if (row==9 || row == 10){
            return deepLoc;
        }
        boolean deepLocLeft = isDeepLocLeft(slaveProperties, row);
        boolean deepLocRight = isDeepLocRight(slaveProperties, row);
        int targetRow;
@@ -234,6 +237,9 @@
     */
    public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) {
        int row = getRow(shallowLoc);
        if (row==9 || row == 10){
            return shallowLoc;
        }
        boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);
        boolean deepLocRight = isDeepLocRight(slaveProperties, row+1);
        int targetRow;
@@ -264,6 +270,9 @@
     * 获取 浅库位排对应的深库位排
     */
    public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) {
        if (shallowRow==9 || shallowRow == 10){
            return shallowRow;
        }
        boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1);
        boolean deepLocRight = isDeepLocRight(slaveProperties, shallowRow+1);
        int targetRow;
src/main/resources/application.yml
@@ -52,13 +52,13 @@
  # 双深
  doubleDeep: true
  # 双深库位排号
  doubleLocs: 1,4,5,8,9,12,13,16,17,20
  doubleLocs: 1,4,5,8,11,14
  # 一个堆垛机负责的货架排数
  groupCount: 4
  # 左深库位排号
  doubleLocsLeft: 1,5,9,13,17
  doubleLocsLeft: 1,5,11
  # 右深库位排号
  doubleLocsRight: 4,8,12,16,20
  doubleLocsRight: 4,8,14
# wms参数配置
wms-parameter:
  # 自动补空板功能开关
src/main/resources/mapper/MatMapper.xml
@@ -117,6 +117,14 @@
        </if>
    </select>
    <select id="selectByMatnrLink10" resultMap="BaseResultMap">
        select TOP 20 * from man_mat
        where 1=1
        <if test="matnr != null and matnr != ''">
            and mm.matnr like concat('%',#{matnr},'%')
        </if>
    </select>
    <select id="selectNewUpdateTime" resultMap="BaseResultMap">
        select top 1 * from man_mat
        where 1=1
src/main/webapp/views/deviceOperate/wcsOperate.html
@@ -48,23 +48,15 @@
        <svg class="container"
             viewBox="0 0 1200 850"
             preserveAspectRatio="xMidYMid meet">
            <path d="M 1200,750
                        L 1200,100
                        C 1200,100 1200,50 1150,50
                        C 1150,50 1100,50 1100,100
                        L 1100,700
                        C 1100,700 1100,750 1050,750
                        L 60,750
                        C 60,750 10,750 10,800
                        C 10,800 10,850 60,850
                        L 1100,850
                        C 1100,850 1200,850 1200,750"
            <path d="M 100,225 L 1100,225"
                  style="fill:none; stroke:blue; stroke-width:3; stroke-dasharray:10,1;"/>
            <path d="M 100,625 L 1100,625"
                  style="fill:none; stroke:blue; stroke-width:3; stroke-dasharray:10,1;"/>
        </svg>
        <div v-for="station in tableDataDev" class="station" :style="{
                top: convertToCSSPosition(station.valueX, station.valueY).y + 'px',
                left: convertToCSSPosition(station.valueX, station.valueY).x + 'px',
                top: convertToCSSPosition2(station.index,station.valueX, station.valueY).y + 'px',
                left: convertToCSSPosition2(station.index,station.valueX, station.valueY).x + 'px',
                backgroundColor: station.modeColor}">
            <div class="corner corner-tl"></div>
            <div class="corner corner-tr"></div>
@@ -84,7 +76,7 @@
    </div>
    <!-- Left Task Bar -->
    <div class="task-bar-left left-task-bar" >
    <!--<div class="task-bar-left left-task-bar" >
        <div>
            <el-tooltip :content="'Switch value: ' + valueLeft" placement="top">
                <el-switch
@@ -133,10 +125,10 @@
                        prop="crnEndTime"
                        label="执行结束时间">
                </el-table-column>
                <!--                    <el-table-column-->
                <!--                            prop="modiTime"-->
                <!--                            label="更新时间">-->
                <!--                    </el-table-column>-->
                &lt;!&ndash;                    <el-table-column&ndash;&gt;
                &lt;!&ndash;                            prop="modiTime"&ndash;&gt;
                &lt;!&ndash;                            label="更新时间">&ndash;&gt;
                &lt;!&ndash;                    </el-table-column>&ndash;&gt;
                <el-table-column
                        prop="rgvSts"
                        label="RGV状态">
@@ -213,7 +205,7 @@
        </div>
    </div>
    <!-- Right Task Bar -->
    &lt;!&ndash; Right Task Bar &ndash;&gt;
    <div class="task-bar-right right-task-bar">
        <div>
            <el-tooltip :content="'Switch value: ' + valueRight" placement="top">
@@ -298,7 +290,7 @@
                </el-table-column>
            </el-table>
        </div>
    </div>
    </div>-->
</div>
<script>
@@ -377,7 +369,7 @@
            mappedStations() {
                return this.tableDataDev.map(station => ({
                    ...station,
                    position: this.convertToCSSPosition(station.valueX, station.valueY)
                    position: this.convertToCSSPosition2(station.index,station.valueX, station.valueY)
                }));
            }
        },
@@ -437,8 +429,8 @@
            convertToCSSPositionWithOffset(svgX, svgY, radius) {
                const basePos = this.convertToCSSPosition(svgX, svgY);
                return {
                    x: basePos.x -16.5,
                    y: basePos.y -16.5
                    x: basePos.x-16.5,
                    y: basePos.y-16.5
                };
            },
            // 更新body尺寸
@@ -468,6 +460,48 @@
                };
            },
            // 坐标转换函数
            convertToCSSPosition2(devNo,svgX, svgY) {
                const svgWidth = 1200;  // SVG 原始宽度
                let svgWidthR = 0;  //
                const svgHeight = 850; // SVG 原始高度
                let svgHeightR = 0; //
                if (svgX>svgWidth/2){
                    svgWidthR = (((svgX-svgWidth/2)/svgWidth) * this.containerSize.width) + this.bodySize.width/2 - this.bodySize.width*((1-0.52)/2);
                } else {
                    svgWidthR = this.bodySize.width/2 - (((svgWidth/2 - svgX)/svgWidth) * this.containerSize.width)  - this.bodySize.width*((1-0.52)/2);
                }
                if (svgY>svgHeight/2){
                    svgHeightR = (((svgY-svgHeight/2)/svgHeight) * this.containerSize.height) + this.bodySize.height/2 - this.bodySize.height*((1-0.72)/2);
                } else {
                    svgHeightR = this.bodySize.height/2 - (((svgHeight/2 - svgY)/svgHeight) * this.containerSize.height)  - this.bodySize.height*((1-0.72)/2);
                }
                svgHeightR = svgHeightR-60;
                if(devNo>200){
                    if (devNo>216){
                        svgHeightR = svgHeightR+80;
                    }
                } else {
                    if (devNo>116){
                        svgHeightR = svgHeightR+80;
                    } else {
                        if(devNo === 114 || devNo === 112 ){
                            svgWidthR = svgWidthR-20;
                        } else {
                            svgWidthR = svgWidthR+40;
                        }
                    }
                }
                if(devNo === 116){
                    svgHeightR = svgHeightR-35;
                }
                return {
                    x: svgWidthR,
                    y: svgHeightR
                };
            },
            handleZoom(e) {
                const scaleDelta = e.deltaY > 0 ? 0.9 : 1.1;
                const currentScale = this.scale || 1;