inventoryTransaction.html 13 KB
<!DOCTYPE HTML>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 select-info">
            <form id="inventory-form">
                <div class="select-list">
                    <ul>
                        <li>
                            库位编码:<input type="text" name="locationCode"/>
                        </li>
                        <li>
                            容器编码:<input type="text" name="containerCode"/>
                        </li>
                        <li>
                            货主:<input type="text" name="companyCode"/>
                        </li>
                        <li>
                            出入库单编码:<input type="text" name="billCode"/>
                        </li>

                        <li>
                            物料编码:<input type="text" name="materialCode"/>
                        </li>
                        <li>
                            物料名称:<input type="text" name="materialName"/>
                        </li>
                        <li>
                            物料规格:<input type="text" name="materialSpec"/>
                        </li>
                        <li>
                            库存状态:
                            <select name="inventorySts" th:with="inventoryStatus=${@dict.getType('inventoryStatus')}">
                                <option value="">所有</option>
                                <option th:each="e : ${inventoryStatus}" th:text="${e['dictLabel']}"
                                        th:value="${e['dictValue']}"></option>
                            </select>
                        </li>
                        <li>
                            供应商编码:<input type="text" name="supplierCode"/>
                        </li>

                        <li>
                            属性号:<input type="text" name="attributeId"/>
                        </li>
                        <li>
                            上游单号:<input type="text" name="referCode"/>
                        </li>
                        <li>
                            批号:<input type="text" name="lot"/>
                        </li>
                        <li>
                            批次:<input type="text" name="batch"/>
                        </li>
                        <li>
                            项 目 号:<input type="text" name="projectNo"/>
                        </li>
                        <li>
                            交易类型:<select name="type" th:with="type=${@dict.getType('inventoryTransactionType')}">
                            <option value="">所有</option>
                            <option th:each="e : ${type}" th:text="${e['dictLabel']}" th:value="${e['dictValue']}"></option>
                        </select>
                        </li>
                        <li class="time">
                            <label>创建时间: </label>
                            <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="createdBegin"/>
                            <span>-</span>
                            <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="createdEnd"/>
                        </li>
                        <li>
                            <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
                            <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('inventory-form')"><i class="fa fa-refresh"></i>&nbsp;重置</a>
                            <!--<a class="btn btn-success btn-rounded btn-sm" onclick="$.table.exportExcel()" shiro:hasPermission="general:inventoryHeader:export"><i class="fa fa-download"></i>&nbsp;导出</a>-->
                        </li>
                    </ul>
                </div>
            </form>
        </div>
        <div class="col-sm-12 select-info">
            <div class="btn-group hidden-xs" id="toolbar" role="group">
                <!--<a class="btn btn-outline btn-success btn-rounded" onclick="report()"
                   shiro:hasPermission="inventory:inventoryTransaction:report">
                    <i class="fa fa-plus"></i> 打印
                </a>-->
            </div>
            <table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap" ></table>
        </div>
    </div>
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
    var editFlag = [[${@permission.hasPermi('inventoryHeader:inventoryTransaction:edit')}]];
    var prefix = ctx + "inventory/inventoryTransaction";
    var inventoryStatus=[[${@dict.getType('inventorySts')}]];
    var inventoryTransactionType = [[${@dict.getType('inventoryTransactionType')}]];

    // 核心:默认时间范围改为近7天(按你的要求)
    function setDefaultTimeRange() {
        var endDate = new Date();
        var startDate = new Date();
        startDate.setDate(endDate.getDate() - 7); // 近7天,不修改

        function formatDate(date) {
            var year = date.getFullYear();
            var month = (date.getMonth() + 1).toString().padStart(2, '0');
            var day = date.getDate().toString().padStart(2, '0');
            return year + '-' + month + '-' + day;
        }

        $("#startTime").val(formatDate(startDate));
        $("#endTime").val(formatDate(endDate));
    }

    $(function() {
        // 初始化默认时间(近7天)
        setDefaultTimeRange();

        $("#bootstrap-table").bootstrapTable({
            url: prefix + "/inventoryTransactionList",
            modalName: "库存交易",
            method:"post",
            contentType: "application/x-www-form-urlencoded",
            search: false,
            showRefresh: true,
            showToggle:true,
            showColumns:true,
            clickToSelect: true,
            sortable: true,
            sortStable: true,
            sortName: "id",
            sortOrder: "desc",
            showExport: true,
            exportDataType: "all",
            pagination:true,
            pageNumber: 1,
            pageSize: 10,
            pageList: [10, 25, 50],
            iconSize: 'outline',
            toolbar: '#toolbar',
            // 解决全表查询卡顿的核心:服务端分页
            sidePagination: "server",
            // 序列化查询参数(分页+表单条件)
            queryParams: function(params) {
                var formData = {};
                $.each($("#inventory-form").serializeArray(), function(i, item) {
                    formData[item.name] = item.value;
                });
                return $.extend({}, formData, {
                    pageNum: params.pageNumber,
                    pageSize: params.pageSize,
                    sort: params.sort,
                    order: params.order
                });
            },
            // 核心修复:数据格式转换,让bootstrapTable识别后端返回结果
            responseHandler: function(res) {
                // 容错处理:避免后端返回异常导致表格报错
                if (!res || res.code !== 200) {
                    return {
                        rows: [],
                        total: 0
                    };
                }
                // 格式映射:后端data → 表格rows,后端total → 表格total
                return {
                    rows: res.data || [],
                    total: res.total || 0
                };
            },
            columns: [
                {
                    field : 'id',
                    title : 'ID'
                },
                {
                    field : 'locationCode',
                    title : '库位编号'
                },
                {
                    field : 'containerCode',
                    title : '容器编号'
                },
                {
                    field : 'transactionType',
                    title : '交易类型',
                    formatter: function(value, row, index) {
                        return $.table.selectDictLabel(inventoryTransactionType, value);
                    }
                },
                {
                    field : 'companyCode',
                    title : '货主编码',
                    visible:true
                },
                {
                    field : 'supplierCode',
                    title : '供应商',
                    visible:true
                },
                {
                    field : 'materialCode',
                    title : '物料编码'
                },
                {
                    field : 'materialName',
                    title : '物料名称'
                },
                {
                    field : 'materialSpec',
                    title : '物料规格'
                },
                {
                    field : 'materialUnit',
                    title : '物料单位'
                },
                {
                    field : 'billCode',
                    title : '出入库单号'
                },
                {
                    field : 'billDetailId',
                    title : '出入库明细ID',
                    visible:false
                },
                {
                    field : 'taskQty',
                    title : '任务数量'
                },
                {
                    field : 'batch',
                    title : '批次',
                    visible:false
                },
                {
                    field : 'lot',
                    title : '批号',
                    visible:false
                },
                {
                    field : 'projectNo',
                    title : '项目号',
                    visible:true
                },
                {
                    field : 'referCode',
                    title : '上游单号'
                },
                {
                    field : 'referDetailId',
                    title : '上游单号明细ID',
                    visible:false
                },
                {
                    field : 'qcCheck',
                    title : '质检',
                    visible:false
                },
                {
                    field : 'weight',
                    title : '重量'
                },
                {
                    field : 'manufactureDate',
                    title : '生产日期',
                    visible:false
                },
                {
                    field : 'expirationDate',
                    title : '失效日期',
                    visible:false
                },
                {
                    field : 'inventorySts',
                    title : '库存状态',
                    align: 'center',
                    formatter: function(value, row, index) {
                        return $.table.selectDictLabel(inventoryStatus, value);
                    }
                },
                {
                    field : 'created',
                    title : '交易时间',
                    sortable:true
                },
                {
                    field : 'createdBy',
                    title : '创建用户'
                },
                {
                    field : 'attributeId',
                    title : '属性号',
                    visible:true
                },
                {
                    field : 'attribute1',
                    title : '属性1',
                    visible:false
                },
                {
                    field : 'attribute2',
                    title : '属性2',
                    visible:false
                },
                {
                    field : 'attribute3',
                    title : '属性3',
                    visible:false
                },
                {
                    field : 'attribute4',
                    title : '属性4',
                    visible:false
                },
                {
                    field : 'lockCode',
                    title : '交易锁',
                    visible:false
                },
                {
                    field : 'processStamp',
                    title : '处理标记',
                    visible:false
                }
            ]
        });
    });

    function report() {
        var rows=$("#bootstrap-table").bootstrapTable('getSelections');
        if (rows.length == 0) {
            $.modal.alertWarning("请至少选择一条记录");
            return;
        }
        var ids = "";
        for(var i=0; i<rows.length; i++) {
            ids = ids + rows[i].id + ","
        }
        let url=prefix+'/report/' + ids;
        $.modal.open("打印",url);
    }
</script>
</body>
</html>