chen.lin
昨天 42b24af07f1ec2d1a375232d754128ba41d56f0a
src/main/webapp/views/pda/materialReceiveOut.html
@@ -61,17 +61,11 @@
<header class="layui-form">
    <div class="layui-input-inline">
        <label class="layui-form-label" >生产单号</label>
        <label class="layui-form-label">生产单号/任务单号</label>
        <div class="layui-input-inline">
            <input id="soCode" class="layui-input" autocomplete="off" oninput="findCode(this, 'soCode')"
                   placeholder="扫码 / 输入"   style="width: 175px">
            <input id="soCodeOrFbillno" class="layui-input" autocomplete="off" oninput="findCode(this, 'soCodeOrFbillno')"
                   placeholder="扫码/输入,多个用|分隔" style="width: 200px">
        </div>
    </div>
    <div class="layui-input-inline">
        <label class="layui-form-label">任务单号</label>
        <input class="layui-input" id="fbillno" onkeyup="findCode(this, 'fbillno')" placeholder="扫码 / 输入"
               style="width: 175px"
               autocomplete="off">
    </div>
    <div class="layui-input-inline">
        <label class="layui-form-label">物料编码</label>
@@ -79,6 +73,14 @@
               style="width: 175px"
               autocomplete="off">
    </div>
<!--    <div class="layui-input-inline">-->
<!--        <label class="layui-form-label">开工日期</label>-->
<!--        <input class="layui-input" id="fplancommitdate" placeholder="选择或输入日期"-->
<!--               style="width: 175px"-->
<!--               autocomplete="off"-->
<!--               onkeyup="findCode(this, 'fplancommitdate')"-->
<!--               onchange="findCode(this, 'fplancommitdate')">-->
<!--    </div>-->
</header>
<main>
@@ -148,7 +150,7 @@
    // 表格数据
    var materialReceiveList = [];
    window.onload = function () {
        document.getElementById("soCode").focus();
        document.getElementById("soCodeOrFbillno").focus();
    }
    /**
@@ -165,11 +167,23 @@
    }
    var tableIns;
    layui.use(['table', 'form'], function () {
    layui.use(['table', 'form', 'laydate'], function () {
        var table = layui.table;
        var $ = layui.jquery;
        var layer = layui.layer;
        var form = layui.form;
        var laydate = layui.laydate;
        // 初始化日期选择器(支持选择日期和手动输入)
        laydate.render({
            elem: '#fplancommitdate',
            type: 'date',
            format: 'yyyy-MM-dd',
            done: function(value, date, endDate) {
                // 日期选择后触发查询
                findCode(null, 'fplancommitdate');
            }
        });
        tableIns = table.render({
            id: 'materialReceiveOut',
@@ -178,16 +192,14 @@
            limit: 500,
            cellMinWidth: 50,
            cols: [[
                {field: 'invCode', align: 'center', title: '编码', event: 'detail', width: 80},
                {field: 'soCode', align: 'center', title: '生成单号', event: 'detail', width: 100},
                {field: 'fbillno', align: 'center', title: '任务单号', event: 'detail', width: 100},
                {field: 'invName', align: 'center', title: '名称', event: 'detail'},
                {field: 'invCode', align: 'center', title: '物料编码', event: 'detail', width: 80},
                {field: 'whName', align: 'center', title: '库区', event: 'detail', width: 50},
                {
                    field: 'remainQty',
                    align: 'center',
                    title: '数量',
                    event: 'detail',
                    style: 'color: blue',
                    event: 'modify',
                    style: 'cursor: pointer;color: blue',
                    width: 50,
@@ -200,6 +212,24 @@
                        return d.remainQty || 0;
                    }
                },
                // {
                //     field: 'fplancommitdate',
                //     align: 'center',
                //     title: '开工日期',
                //     event: 'detail',
                //     width: 100,
                //     templet: function(d) {
                //         if (d.fplancommitdate) {
                //             // 格式化日期显示(如果后端返回的是完整日期时间,只显示日期部分)
                //             var dateStr = d.fplancommitdate;
                //             if (dateStr.indexOf(' ') > 0) {
                //                 return dateStr.split(' ')[0];
                //             }
                //             return dateStr;
                //         }
                //         return '';
                //     }
                // },
                {type: 'checkbox', fixed: 'right', width: 30},
            ]],
            done: function (res, curr, count) {
@@ -233,58 +263,62 @@
        });
    });
    var soCodeBar;
    var fbillnoBar;
    var soCodeOrFbillnoBar;
    var invCodeBar;
    var fplancommitdateBar;
    /* 扫码、输入生产单号、任务单号和物料编码 */
    /* 扫码、输入生产单号/任务单号(支持多个,用|分隔)、物料编码和开工日期 */
    function findCode(el, type) {
        soCodeBar = $('#soCode').val();
        fbillnoBar = $("#fbillno").val();
        soCodeOrFbillnoBar = $('#soCodeOrFbillno').val();
        invCodeBar = $("#invCode").val();
        fplancommitdateBar = $("#fplancommitdate").val();
        
        // 去除空格
        if (soCodeBar) {
            soCodeBar = soCodeBar.trim();
        }
        if (fbillnoBar) {
            fbillnoBar = fbillnoBar.trim();
        if (soCodeOrFbillnoBar) {
            soCodeOrFbillnoBar = soCodeOrFbillnoBar.trim();
        }
        if (invCodeBar) {
            invCodeBar = invCodeBar.trim();
        }
        if (fplancommitdateBar) {
            fplancommitdateBar = fplancommitdateBar.trim();
        }
        
        switch (type) {
            case 'soCode':
                break;
            case 'fbillno':
            case 'soCodeOrFbillno':
                break;
            case 'invCode':
                break;
            case 'fplancommitdate':
                break;
            default:
                break;
        }
        // 构建查询参数
        var params = {};
        if (soCodeBar) {
            params.soCode = soCodeBar;
        }
        if (fbillnoBar) {
            params.fbillno = fbillnoBar;
        }
        if (invCodeBar) {
            params.invCode = invCodeBar;
        }
        // 如果所有查询条件都为空,不执行查询
        if (!soCodeBar && !fbillnoBar && !invCodeBar) {
        // 如果生产单号/任务单号和物料编码都为空,不执行查询
        if (!soCodeOrFbillnoBar && !invCodeBar) {
            // 清空表格数据
            tableIns.reload({
                data: [],
            });
            materialReceiveList = [];
            return;
        }
        // 构建查询参数
        var params = {};
        // 处理生产单号/任务单号(支持多个,用|分隔)
        if (soCodeOrFbillnoBar) {
            // 直接传递原始值,后端会处理多个值的OR查询
            params.soCodeOrFbillno = soCodeOrFbillnoBar;
        }
        if (invCodeBar) {
            params.invCode = invCodeBar;
        }
        if (fplancommitdateBar) {
            params.fplancommitdate = fplancommitdateBar;
        }
        // PDA出库查询,添加pdaQuery参数,后端会过滤掉已全部出库的物料
@@ -461,12 +495,12 @@
            if (successCount > 0) {
                tips("成功出库 " + successCount + " 条记录");
                // 清空输入框并刷新列表
                $("#soCode").val("");
                $("#fbillno").val("");
                $("#soCodeOrFbillno").val("");
                $("#invCode").val("");
                $("#fplancommitdate").val("");
                materialReceiveList = [];
                tableIns.reload({data: materialReceiveList});
                document.getElementById("soCode").focus();
                document.getElementById("soCodeOrFbillno").focus();
            }
            if (failCount > 0) {
                tips("出库失败 " + failCount + " 条记录", true);
@@ -477,13 +511,13 @@
    }
    function reset() {
        $("#soCode").val(null);
        $("#fbillno").val(null);
        $("#soCodeOrFbillno").val(null);
        $("#invCode").val(null);
        $("#fplancommitdate").val(null);
        materialReceiveList = [];
        tableIns.reload({data: materialReceiveList});
        layer.closeAll();
        document.getElementById("soCode").focus();
        document.getElementById("soCodeOrFbillno").focus();
    }
</script>
</html>