自动化立体仓库 - WMS系统
#
zyx
2023-12-26 0b4036950ca61835a29ed0a13379a68af652fa59
#
3个文件已添加
416 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/Pla.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/pla/productionInfo.js 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pla/productionInfo.html 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Pla.java
New file
@@ -0,0 +1,98 @@
package com.zy.asrs.entity;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@TableName("asr_pla_detl")
public class Pla {
    @ApiModelProperty(value= "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    //入库时间
    private Date io_time;
    //批号
    private String batch;
    //包装号
    private String packageNo;
    //牌号
    private String brand;
    //重量
    private double weight;
    //车间
    private String workshop;
    //生产线
    private String line;
    //包装类型
    private String packageType;
    //托盘类型
    private String zpalletType;
    //缠膜
    private String filmWrap;
    //熔指
    private double fingerMelting;
    //熔点
    private double fusingPoint;
    //挥发份1
    private double vadf1;
    //挥发份2
    private double vadf2;
    //黄度
    private double yellowness;
    //不透明度
    private double opacity;
    //水分
    private double water;
    //L值
    private double l;
    //a值
    private double a;
    //b值
    private double b;
    //填充
    private double fillIn;
    //质量状态
    private String massState;
    //质量问题
    private String problem;
    //仓库
    private String stash;
    //库位
    private String locNo;
    //剩余重量
    private String weightAnfme;
    //状态
    private String status;
}
src/main/webapp/static/js/pla/productionInfo.js
New file
@@ -0,0 +1,212 @@
var initCountVal = 0;
var initAnfmeVal = "-";
var matCodeData = [];
var currLocNo;
var matCodeLayerIdx;
var data = [];
function getCol() {
    var cols = [
        {field: 'id', title: 'id', align: 'center',hide:true}
        ,{type: 'checkbox'}
        ,{field: 'ioTime', title: '入库时间', align: 'center'}
        ,{field: 'batch', align: 'center',title: '批号', edit: true}
        ,{field: 'packageNo', align: 'center',title: '包号', edit: true}
        ,{field: 'brand', align: 'center',title: '牌号', edit: true}
        ,{field: 'weight', align: 'center',title: '重量(KG)', edit: true}
        ,{field: 'workshop', align: 'center',title: '生产车间', edit: true}
        ,{field: 'line', align: 'center',title: '生产线', edit: true}
        ,{field: 'packageType', align: 'center',title: '包装类型', edit: true}
        ,{field: 'zpalletType', align: 'center',title: '托盘类型', edit: true}
    ];
    return cols;
}
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function() {
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    tableIns = table.render({
        elem: '#productionInfoTable',
        data: [],
        even: true,
        limit: 500,
        cellMinWidth: 50,
        toolbar: '#toolbar',
        cols: [getCol()],
        done: function (res, curr, count) {
            limit();
        }
    });
    // 页面修改
    table.on('edit(chooseData)', function (obj) {
        let index = obj.tr.attr("data-index");
        let data = matCodeData[index];
        let modify = true;
        if (obj.field === 'count'){
            let vle = Number(obj.value);
            if (isNaN(vle)) {
                layer.msg("请输入数字", {icon: 2});
                modify = false;
            } else {
                if (vle <= 0) {
                    layer.msg("数量必须大于零", {icon: 2});
                    modify = false;
                }
            }
        }
        if (modify) {
            data[obj.field] = obj.value;
        }
        tableIns.reload({data: matCodeData});
    });
    // 监听头工具栏事件
    table.on('toolbar(chooseData)', function (obj) {
        switch(obj.event) {
            case 'adjust':
                if (isEmpty(currLocNo)) {
                    layer.msg("请先检索库位", {icon: 2})
                    inputTip($("#searchLocNo"));
                    return;
                }
                if (matCodeData.length === 0) {
                    layer.msg("请先添加明细", {icon: 2});
                    return;
                }
                for (var i=0;i<matCodeData.length;i++){
                    if (isNaN(matCodeData[i].count)) {
                        layer.msg("请输入数字", {icon: 2});
                        return;
                    }
                    if (matCodeData[i].count < 0){
                        layer.msg("数量不能小于零", {icon: 2});
                        return;
                    }
                }
                layer.confirm('确定调整'+currLocNo+'库位的明细吗?', {shadeClose: true}, function(){
                    $.ajax({
                        url: baseUrl+"/manLocDetl/adjust/start",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify({
                            locNo: currLocNo,
                            list: matCodeData
                        }),
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        async: false,
                        success: function (res) {
                            if (res.code === 200){
                                layer.msg(currLocNo + res.msg, {icon: 1});
                                init(currLocNo)
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    })
                });
                break;
        }
    });
    // 监听行工具事件
    table.on('tool(chooseData)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'remove':
                let index = obj.tr.attr("data-index");
                matCodeData.splice(index, 1);
                tableIns.reload({data: matCodeData});
                break;
        }
    });
    // 检索事件
    form.on('submit(search)', function (data) {
        let loc_no = data.field.loc_no;
        if (loc_no === "") {
            inputTip($("#searchLocNo"));
            layer.msg("请输入库位号");
            return;
        }
        init(loc_no);
    });
    // 重置事件
    form.on('submit(reset)', function (data) {
        reset();
    });
    function init(locNo) {
        http.post(baseUrl + "/manLocDetl/list", {loc_no: locNo,limit: 1000}, function (res) {
            matCodeData = [];
            matCodeData = res.data.records;
            for (var i = 0; i<matCodeData.length; i++) {
                matCodeData[i]["count"] = matCodeData[i]["anfme"];
            }
            locTips(true, locNo);
            tableReload();
        })
    }
    function reset() {
        clearFormVal($('#search-box'));
        matCodeData = [];
        tableReload();
        locTips(false);
    }
    // 重载表格
    function tableReload() {
        tableIns.reload({data: matCodeData});
    }
    // 库位提示框
    function locTips(retrieve, locNo) {
        if (retrieve) {
            http.post(baseUrl+"/node/select/"+locNo+"/auth", null, function (res) {
                console.log(res);
                let data = res.data;
                if (data != null) {
                    $(".retrieve").show();
                    // $("#locMsg").html(locNo + "&nbsp;,库位状态:" + data.locSts$);
                    $("#locMsg").html(locNo + "&nbsp;");
                    $('.not-retrieve').hide();
                    currLocNo = locNo;
                } else {
                    layer.msg("请输入有效库位号", {icon: 2});
                    $('.not-retrieve').show();
                    $("#locMsg").html("");
                    $(".retrieve").hide();
                    currLocNo = null;
                    inputTip($("#searchLocNo"));
                }
            })
        } else {
            $('.not-retrieve').show();
            $("#locMsg").html("");
            $(".retrieve").hide();
            currLocNo = null;
        }
    }
    $(document).on('click','#add', function () {
        var strTime = "20"
        var now = new Date(year,month,date,hrs,min,sec);
        var newRow = {ioTime : now};
        data.push(newRow);
        table.reload('productionInfoTable',{
            data: data
        })
    })
})
src/main/webapp/views/pla/productionInfo.html
New file
@@ -0,0 +1,106 @@
<!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>
        html {
            height: 100%;
            padding: 10px;
            background-color: #f1f1f1;
            box-sizing: border-box;
        }
        body {
            background-color: #fff;
            border-radius: 5px;
            box-shadow: 0 0 3px rgba(0,0,0,.3);
        }
        /* search */
        .layui-card-header {
            border-bottom: none;
        }
        #search-box {
            padding: 30px 0 10px 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;
        }
        /* add */
        .function-area {
            padding: 15px 0 20px 40px;
        }
        .function-btn {
            font-size: 16px;
            padding: 1px 1px 1px 1px;
            width: 120px;
            height: 40px;
            border-color: #2b425b;
            border-radius: 4px;
            border-width: 1px;
            background: none;
            border-style: solid;
            transition: 0.4s;
            cursor: pointer;
        }
        .function-btn:hover {
            background-color: #2b425b;
            color: #fff;
        }
        #mat-query {
            /*display: none;*/
        }
        #btn-adjust {
            /*display: none;*/
        }
    </style>
</head>
<body style="padding-bottom: 30px">
<hr>
<!-- 功能区 -->
<div class="function-area">
    <button id="add" class="function-btn">新增</button>
    <button id="delete" class="function-btn">删除</button>
    <button id="submit" style="alignment: right" class="function-btn">提交</button>
</div>
<!-- 行 -->
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">移除</a>
</script>
<!-- 表格 -->
<table class="layui-table" id="productionInfoTable" lay-filter="productionInfoTable"></table>
<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>
<script type="text/javascript" src="../../static/js/pla/productionInfo.js" charset="utf-8"></script>
</body>
</html>