自动化立体仓库 - WMS系统
#
Junjie
2023-12-20 ca42a5047cb15ae63035f15a971a8e1ec858851f
src/main/webapp/views/home/console.html
@@ -31,11 +31,15 @@
            display: inline-block;
            width: 49%;
        }
        .chart-elem div {
            padding-top: 15px;
            padding-bottom: 5px;
        }
        .chart-elem:first-child {
            padding: 0 50px;
        }
        .chart-elem:last-child {
            padding-left: 20px;
            padding: 0 50px;
            border-left: 1px solid rgba(0,0,0,.1);
        }
        /*表格工具栏*/
@@ -81,6 +85,12 @@
        .layui-form.layui-border-box.layui-table-view {
            border-top: 1px solid rgba(0,0,0,.1);
        }
        #search-box {
            margin-left: 10px;
            z-index: 999;
            position: relative;
            padding: 0 30px 10px 30px;
        }
    </style>
</head>
<body>
@@ -99,6 +109,29 @@
<div class="home-elem loc-retention">
    <div class="layui-form">
        <div id="form-header">库存滞留时间统计表</div>
        <div class="layui-card" style="padding: 0 20px 1px 20px;">
            <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-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 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>
        </div>
        <table class="layui-hide" id="stayTime" lay-filter="stayTime"></table>
    </div>
</div>
@@ -127,7 +160,7 @@
                    text: '库位使用比例',
                    margin:1,
                    style: {fontSize: '18px',color: '#777',fontWeight: 'bold'},
                    y: 20
                    y: 5
                };
                var tooltip = {
                    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
@@ -150,13 +183,17 @@
                    name: '库位占比',
                    data: dataPie
                }];
                var loading = {
                    hideDuration: 3,
                    showDuration: 3
                };
                var json = {};
                json.chart = chart;
                json.title = title;
                json.tooltip = tooltip;
                json.series = series;
                json.plotOptions = plotOptions;
                json.loading = loading;
                json.credits = {enabled: false};
                $('#pie').highcharts(json);
@@ -181,7 +218,7 @@
                    text: '日入出库数量',
                    margin: 1,
                    style: {fontSize: '18px',color: '#777',fontWeight: 'bold'},
                    y: 20
                    y: 5
                };
                var xAxis = {
                    categories: [getDate(-11), getDate(-10), getDate(-9), getDate(-8), getDate(-7), getDate(-6),
@@ -204,6 +241,10 @@
                    verticalAlign: 'middle',
                    borderWidth: 0
                };
                var loading = {
                    hideDuration: 3,
                    showDuration: 3
                }
                var series = dataPie;
                var json = {};
                json.title = title;
@@ -211,6 +252,7 @@
                json.yAxis = yAxis;
                json.tooltip = tooltip;
                json.legend = legend;
                json.loading = loading;
                json.series = series;
                json.credits = {enabled: false};
                $('#line').highcharts(json);
@@ -220,10 +262,26 @@
    // 表格
    var pageCurr;
    function getCol() {
        var cols = [
            //{field: 'appeTime$', title: '入库时间', align: 'center', width: 165}
            {field: 'stay_time', align: 'center',title: '滞留天数',width: 90}
            //,{field: 'store_max_date', align: 'center',title: '库龄上限',width: 90}
            //,{field: 'store_min', title: '库存下限', align: 'center'}
            ,{field: 'sum_qty', title: '库存总数', align: 'center'}
            //,{field: 'store_max', title: '库存上限', align: 'center'}
            ,{field: 'loc_no', align: 'center',title: '库位号'}
        ];
        cols.push.apply(cols, detlCols);
        //cols.push({field: 'sum_qty', title: '库存总数', align: 'center'})
        return cols;
    }
    layui.use(['table','laydate', 'form'], function() {
        var table = layui.table;
        var $ = layui.jquery;
        var layer = layui.layer;
        var form = layui.form;
        // 数据渲染
        tableIns = table.render({
@@ -236,21 +294,7 @@
            even: true,
            cellMinWidth: 50,
            crossDomain: true,
            cols: [[
                {field: 'appe_time', title: '入库时间', align: 'center', width: 200}
                ,{field: 'stay_time', align: 'center',title: '滞留天数'}
                ,{field: 'loc_no', align: 'center',title: '库位号'}
                ,{field: 'matnr', align: 'center',title: '物料'}
                ,{field: 'maktx', align: 'center',title: '物料描述'}
                ,{field: 'lgnum', align: 'center',title: '仓库号'}
                ,{field: 'tbnum', align: 'center',title: '请求编号'}
                ,{field: 'zmatid', align: 'center',title: '物料标签ID'}
                ,{field: 'werks', align: 'center',title: '工厂'}
                ,{field: 'anfme', align: 'center',title: '数量'}
                ,{field: 'altme', align: 'center',title: '单位'}
                ,{field: 'zpallet', align: 'center',title: '托盘码'}
                ,{field: 'bname', align: 'center',title: '用户ID'}
            ]],
            cols: [getCol()],
            request: {
                pageName: 'curr',
                pageSize: 'limit'
@@ -267,8 +311,39 @@
                statusCode: 200
            },
            done: function(res, curr, count) {
                var that = this.elem.next();
                res.data.forEach(function (item, index) {
                    var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
                    if (item.store_max_date != null) {
                        if (item.stay_time > item.store_max_date) {
                            tr.css("background-color", "#ff6f00");
                            tr.css("color", "white");
                            tr.children()[1].style.backgroundColor="#ff0000"
                        }
                    }
                    //低于下限
                    if (item.sum_qty < item.store_min) {
                        tr.css("background-color", "#ff6f00");
                        tr.css("color", "white");
                        tr.children()[2].style.backgroundColor="rgb(255,0,0)"
                        tr.children()[2].style.color="white"
                        tr.children()[3].style.backgroundColor="#ff0000"
                        tr.children()[3].style.color="white"
                    }
                    //高于上限
                    if(item.store_max != null) {
                        if (item.sum_qty > item.store_max) {
                            tr.css("background-color", "#ff6f00");
                            tr.css("color", "white");
                            tr.children()[3].style.backgroundColor="#009c04"
                            tr.children()[3].style.color="white"
                            tr.children()[4].style.backgroundColor="#3da83f"
                            tr.children()[4].style.color="white"
                        }
                    }
                });
                if (res.code === 403) {
                    top.location.href = baseUrl;
                    top.location.href = baseUrl+"/";
                }
                pageCurr=curr;
            }
@@ -288,13 +363,53 @@
                    curr: 1
                },
                done: function (res, curr, count) {
                    var that = this.elem.next();
                    res.data.forEach(function (item, index) {
                        if (item.store_max_date != null) {
                            if (item.stay_time > item.store_max_date) {
                                var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
                                tr.css("background-color", "#FF5722");
                                tr.css("color", "white");
                            }
                        }
                    });
                    if (res.code === 403) {
                        top.location.href = baseUrl;
                        top.location.href = baseUrl+"/";
                    }
                    pageCurr=curr;
                }
            });
        });
        // 搜索栏搜索事件
        form.on('submit(search)', function (data) {
            tableReload();
        });
        // 搜索栏搜索事件
        form.on('submit(reset)', function (data) {
            $(':input', $('#search-box'))
                .val('')
                .removeAttr('checked')
                .removeAttr('selected');
            var searchData = {};
            $.each($('#search-box [name]').serializeArray(), function() {
                searchData[this.name] = this.value;
            });
            tableIns.reload({
                where: searchData
            });
        });
        function tableReload() {
            var searchData = {};
            $.each($('#search-box [name]').serializeArray(), function() {
                searchData[this.name] = this.value;
            });
            tableIns.reload({
                where: searchData
            });
        }
    });