自动化立体仓库 - WMS系统
#1
dubin
2025-11-08 02f6a947fa68d10be6c1d55909b7d9d783268a70
#1
1个文件已添加
5个文件已修改
389 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/LocDetl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocMast.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/pakStore/emptyOut.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/clampDetlQuery.html 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/clampDetlQuery_old.html 266 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -182,6 +182,7 @@
    @TableField("i_no")
    private String i_no;
    /*托盘类型*/
    private String temp1;
src/main/java/com/zy/asrs/entity/LocMast.java
@@ -230,12 +230,16 @@
    public String getLocType2$() {
        if (null == this.locType2){ return null; }
        switch (this.locType2){
            case 0:
                return "未知";
            case 1:
                return "窄库位";
            case 2:
                return "宽库位";
            case 4:
                return "第一种托盘";
            case 5:
                return "第二种托盘";
            case 6:
                return "第三种托盘";
            case 7:
                return "第四种托盘";
            case 8:
                return "第五种托盘";
            default:
                return String.valueOf(this.locType2);
        }
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -111,7 +111,7 @@
                            locDetl.setAppeTime(now);
                            locDetl.setModel(wrkDetl.getModel());
                            locDetl.setSPgNO(wrkDetl.getZpallet().substring(0,1));//并板出库根据托盘类型去选择
                            locDetl.setTemp1(wrkDetl.getZpallet().substring(0,1));//并板出库根据托盘类型去选择
                            if (!locDetlService.insert(locDetl)) {
//                                exceptionHandle("全板入库 ===>> 添加库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
@@ -228,7 +228,7 @@
                            locDetl.setModiTime(now);
                            locDetl.setAppeTime(now);
                            locDetl.setSPgNO(wrkDetl.getZpallet().substring(0,1));//并板出库根据托盘类型去选择
                            locDetl.setTemp1(wrkDetl.getZpallet().substring(0,1));//并板出库根据托盘类型去选择
                            if (!locDetlService.insert(locDetl)) {
//                                exceptionHandle("并板入库 ===>> 新增库存明细失败;[workNo={0}],[matnr={1}]", wrkMast.getWrkNo(), wrkDetl.getMatnr());
src/main/webapp/static/js/pakStore/emptyOut.js
@@ -51,7 +51,8 @@
            ,{field: 'locNo', align: 'center',title: '库位号',sort:true}
            ,{field: 'locSts$', align: 'center',title: '库位状态',width:200}
            // ,{field: 'whsType$', align: 'center',title: '库位类型'}
            ,{field: 'locType3$', align: 'center',title: '堆垛机号'}
            ,{field: 'locType2$', align: 'center',title: '托盘类型'}
            ,{field: 'crnNo', align: 'center',title: '堆垛机号'}
            ,{field: 'row1', align: 'center',title: '排'}
            ,{field: 'bay1', align: 'center',title: '列'}
            ,{field: 'lev1', align: 'center',title: '层'}
src/main/webapp/views/pakStore/clampDetlQuery.html
@@ -12,7 +12,6 @@
    <link rel="stylesheet" href="../../static/css/common.css" media="all">
    <style>
        body {
            padding: 0 20px;
        }
        .layui-table-box {
            border-right: 1px solid #9F9F9F;
@@ -36,35 +35,27 @@
        #data-search-btn.layui-btn-container .layui-btn {
            margin-right: 20px;
        }
    </style>
</head>
<body>
<div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
    <span style="font-size: large; font-weight: bold">提取库存商品</span>
</div>
<!-- 搜索栏 -->
<fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
    <legend>搜索栏</legend>
    <!-- 搜索栏 -->
    <div id="search-box" class="layui-form layui-card-header">
        <!--        <div class="layui-input-inline" style="margin-top: -10px">-->
        <!--            <select id="crnNo" name="crnNo">-->
        <!--                <option value="" style="display: none">请选择巷道</option>-->
        <!--                <option value="1">1号</option>-->
        <!--                <option value="2">2号</option>-->
        <!--                <option value="3">3号</option>-->
        <!--                <option value="4">4号</option>-->
        <!--            </select>-->
        <!--        </div>-->
        <div class="layui-inline">
<!--            <div class="layui-input-inline cool-auto-complete">-->
<!--                <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="请输入" autocomplete="off" style="display: none">-->
<!--                <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="堆垛机号" onfocus=this.blur()>-->
<!--                <div class="cool-auto-complete-window">-->
<!--                    <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
<!--                    <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
<!--                    </select>-->
<!--                </div>-->
<!--            </div>-->
            <div class="layui-input-inline cool-auto-complete">
                <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="请输入" autocomplete="off" style="display: none">
                <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="堆垛机号" onfocus=this.blur()>
                <div class="cool-auto-complete-window">
                    <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
                    <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                    </select>
                </div>
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
@@ -76,41 +67,19 @@
                <input class="layui-input" type="text" name="matnr" placeholder="商品编码"  autocomplete="off">
            </div>
        </div>
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input" type="text" name="specs" placeholder="规格"  autocomplete="off">-->
<!--            </div>-->
<!--        </div>-->
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input" type="text" name="maktx" placeholder="物料描述" autocomplete="off">-->
<!--            </div>-->
<!--        </div>-->
        <!-- 日期范围 -->
<!--        <div class="layui-inline" style="width: 300px">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">-->
<!--            </div>-->
<!--        </div>-->
        <!--        <div class="layui-inline">-->
        <!--            <div class="layui-input-inline">-->
        <!--                <input class="layui-input" type="text" name="sPgNO" placeholder="派工单号" autocomplete="off">-->
        <!--            </div>-->
        <!--        </div>-->
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input" type="text" name="outOrderNo" placeholder="合同号" autocomplete="off">-->
<!--            </div>-->
<!--        </div>-->
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="zpallet" placeholder="托盘条码" autocomplete="off">
                <input class="layui-input" type="text" name="specs" placeholder="规格"  autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <select name="sPgNO">
                <input class="layui-input" type="text" name="zpallet" placeholder="托盘码"  autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <select name="temp1" type="text">
                    <option value="">请选择托盘类型</option>
                    <option value="4">第一种</option>
                    <option value="5">第二种</option>
@@ -120,10 +89,30 @@
                </select>
            </div>
        </div>
        <!--<div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="temp1" placeholder="总称" autocomplete="off">
            </div>
        </div>-->
        <!--<div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="temp2" placeholder="客户图号" autocomplete="off">
            </div>
        </div>-->
        <!--<div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="outOrderNo" placeholder="合同号" autocomplete="off">
            </div>
        </div>-->
        <!-- 日期范围 -->
        <!--<div class="layui-inline" style="width: 300px">
            <div class="layui-input-inline">
                <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
            </div>
        </div>-->
        <!-- 待添加 -->
        <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        </div>
    </div>
</fieldset>
@@ -175,8 +164,8 @@
            headers: {token: localStorage.getItem('token')},
            url: baseUrl+'/clamp/out/list/auth',
            page: true,
            limit: 20,
            limits: [20, 50, 100, 200, 500],
            limits: [16, 30, 50, 100, 200, 500],
            limit: 16,
            even: true,
            toolbar: '#toolbar',
            cellMinWidth: 50,
@@ -260,7 +249,5 @@
            where: searchData
        });
    }
</script>
</html>
</html>
src/main/webapp/views/pakStore/clampDetlQuery_old.html
New file
@@ -0,0 +1,266 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/common.css" media="all">
    <style>
        body {
            padding: 0 20px;
        }
        .layui-table-box {
            border-right: 1px solid #9F9F9F;
            border-left: 1px solid #9F9F9F;
        }
        #search-box {
            padding: 30px 0 20px 0;
        }
        #search-box .layui-inline:first-child {
            margin-left: 30px;
        }
        #search-box .layui-inline {
            margin-right: 5px;
        }
        #data-search-btn {
            margin-left: 10px;
            display: inline-block;
        }
        #data-search-btn.layui-btn-container .layui-btn {
            margin-right: 20px;
        }
    </style>
</head>
<body>
<!-- 搜索栏 -->
<fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
    <legend>搜索栏</legend>
    <!-- 搜索栏 -->
    <div id="search-box" class="layui-form layui-card-header">
        <!--        <div class="layui-input-inline" style="margin-top: -10px">-->
        <!--            <select id="crnNo" name="crnNo">-->
        <!--                <option value="" style="display: none">请选择巷道</option>-->
        <!--                <option value="1">1号</option>-->
        <!--                <option value="2">2号</option>-->
        <!--                <option value="3">3号</option>-->
        <!--                <option value="4">4号</option>-->
        <!--            </select>-->
        <!--        </div>-->
        <div class="layui-inline">
<!--            <div class="layui-input-inline cool-auto-complete">-->
<!--                <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="请输入" autocomplete="off" style="display: none">-->
<!--                <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="堆垛机号" onfocus=this.blur()>-->
<!--                <div class="cool-auto-complete-window">-->
<!--                    <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
<!--                    <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
<!--                    </select>-->
<!--                </div>-->
<!--            </div>-->
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="loc_no" placeholder="库位号" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="matnr" placeholder="商品编码"  autocomplete="off">
            </div>
        </div>
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input" type="text" name="specs" placeholder="规格"  autocomplete="off">-->
<!--            </div>-->
<!--        </div>-->
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input" type="text" name="maktx" placeholder="物料描述" autocomplete="off">-->
<!--            </div>-->
<!--        </div>-->
        <!-- 日期范围 -->
<!--        <div class="layui-inline" style="width: 300px">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">-->
<!--            </div>-->
<!--        </div>-->
        <!--        <div class="layui-inline">-->
        <!--            <div class="layui-input-inline">-->
        <!--                <input class="layui-input" type="text" name="sPgNO" placeholder="派工单号" autocomplete="off">-->
        <!--            </div>-->
        <!--        </div>-->
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input" type="text" name="outOrderNo" placeholder="合同号" autocomplete="off">-->
<!--            </div>-->
<!--        </div>-->
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="zpallet" placeholder="托盘条码" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <select name="pg_no">
                    <option value="">请选择托盘类型</option>
                    <option value="4">第一种</option>
                    <option value="5">第二种</option>
                    <option value="6">第三种</option>
                    <option value="7">第四种</option>
                    <option value="8">第五种</option>
                </select>
            </div>
        </div>
        <!-- 待添加 -->
        <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        </div>
    </div>
</fieldset>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="">提取</button>
    </div>
</script>
<div class="layui-form">
    <table class="layui-hide" id="stockOut" lay-filter="stockOut"></table>
</div>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
</body>
<script>
    function getCol() {
        let cols = [
            {type: 'checkbox', merge: ['locNo']}
            ,{field: 'locNo', align: 'center',title: '库位号', merge: true, style: 'font-weight: bold'}
        ];
        cols.push.apply(cols, detlCols);
        cols.push({field: 'modiUser$', align: 'center',title: '修改人员', hide: true}
            ,{field: 'modiTime$', align: 'center',title: '修改时间'})
        return cols;
    }
    layui.config({
        base: baseUrl + "/static/layui/lay/modules/"
    }).use(['table','laydate', 'form', 'admin', 'tableMerge'], function() {
        var table = layui.table;
        var $ = layui.jquery;
        var layer = layui.layer;
        var layDate = layui.laydate;
        var form = layui.form;
        var admin = layui.admin;
        var tableMerge = layui.tableMerge;
        // 数据渲染
        locDetlTableIns = table.render({
            elem: '#stockOut',
            headers: {token: localStorage.getItem('token')},
            url: baseUrl+'/clamp/out/list/auth',
            page: true,
            limit: 20,
            limits: [20, 50, 100, 200, 500],
            even: true,
            toolbar: '#toolbar',
            cellMinWidth: 50,
            cols: [getCol()],
            request: {
                pageName: 'curr',
                pageSize: 'limit'
            },
            parseData: function (res) {
                return {
                    'code': res.code,
                    'msg': res.msg,
                    'count': res.data.total,
                    'data': res.data.records
                }
            },
            response: {
                statusCode: 200
            },
            done: function(res, curr, count) {
                tableMerge.render(this);
                if (res.code === 403) {
                    top.location.href = baseUrl+"/";
                }
            }
        });
        // 监听头工具栏事件
        table.on('toolbar(stockOut)', function (obj) {
            var checkStatus = table.checkStatus(obj.config.id);
            var data = checkStatus.data;
            switch(obj.event) {
                case 'confirm':
                    if (data.length === 0){
                        layer.msg("请选择数据", {icon: 2});
                        return;
                    }
                    let locNos = [];
                    data.forEach(function(elem) {
                        locNos.push(elem.locNo);
                    });
                    $.ajax({
                        url: baseUrl+"/locDetl/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: {locNos:locNos},
                        method: 'POST',
                        async: false,
                        success: function (res) {
                            if (res.code === 200) {
                                data = res.data;
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                layer.msg(res.msg)
                            }
                        }
                    })
                    parent.addTableData(data);
                    break;
            }
        });
        // 搜索栏搜索事件
        form.on('submit(search)', function (data) {
            tableReload();
        });
        layDate.render({
            elem: '.layui-laydate-range'
            ,type: 'datetime'
            ,range: true
        });
    })
    function tableReload() {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        locDetlTableIns.reload({
            where: searchData
        });
    }
</script>
</html>