1
duhe
2025-10-13 2009ecf034c96378fab922aeb37d873fd3c8ec37
WebTM/views/Éú²ú¹ÜÀí/Èռƻ®±¨±í/MaterialShorAnalysisReport.html
@@ -5,13 +5,15 @@
    <title>缺料分析报表</title>
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/ext/soulTable.css" media="all">
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <!--<script src="../../../layuiadmin/soulTable.slim.js"></script>-->
    <script src="../../../layuiadmin/SetColumn.js"></script>
</head>
<body>
    <div class="layui-fluid">
@@ -48,10 +50,93 @@
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">查询</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch">重置</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnExport" id="btnExport">导出</button>
                                <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                    </div>
                                    <!--<div class="layui-row" style="margin-top:10px;">
                                        <div class="layui-row" style=" margin-top: 10px; margin-left: 70px;">
                                            <div class="layui-inline">
                                                <label class="layui-form-label">过滤</label>
                                                <div class="layui-input-block">
                                                    <select name="ColName" id="ColName" class="ForFilteringSchemes" lay-filter="ColName" style="width:190px;">
                                                    </select>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <select name="Comparator" id="Comparator" class="ForFilteringSchemes" lay-filter="Comparator" style="width:190px;">
                                                    <option value="0" selected="selected"></option>
                                                    <option value="=">=</option>
                                                    <option value=">=">>=</option>
                                                    <option value=">">></option>
                                                    <option value="<="><=</option>
                                                    <option value="<"><</option>
                                                    <option value="<>"><></option>
                                                    <option value="7">包含</option>
                                                    <option value="8">左包含</option>
                                                    <option value="9">右包含</option>
                                                    <option value="10">不包含</option>
                                                </select>
                                            </div>
                                            <div class="layui-inline">
                                                <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent" id="ColContent">
                                            </div>
                                        </div>
                                        <div class="layui-row" style=" margin-top: 10px; margin-left: 70px;">
                                            <div class="layui-inline">
                                                <label class="layui-form-label">过滤</label>
                                                <div class="layui-input-block">
                                                    <select name="ColName1" id="ColName1" class="ForFilteringSchemes" lay-filter="ColName1" style="width:190px;">
                                                    </select>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <select name="Comparator1" id="Comparator1" class="ForFilteringSchemes" lay-filter="Comparator1" style="width:190px;">
                                                    <option value="0" selected="selected"></option>
                                                    <option value="=">=</option>
                                                    <option value=">=">>=</option>
                                                    <option value=">">></option>
                                                    <option value="<="><=</option>
                                                    <option value="<"><</option>
                                                    <option value="<>"><></option>
                                                    <option value="7">包含</option>
                                                    <option value="8">左包含</option>
                                                    <option value="9">右包含</option>
                                                    <option value="10">不包含</option>
                                                </select>
                                            </div>
                                            <div class="layui-inline">
                                                <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent1" id="ColContent1">
                                            </div>
                                        </div>
                                        <div class="layui-row" style=" margin-top: 10px; margin-left: 70px;">
                                            <div class="layui-inline">
                                                <label class="layui-form-label">过滤</label>
                                                <div class="layui-input-block">
                                                    <select name="ColName2" id="ColName2" class="ForFilteringSchemes" lay-filter="ColName2" style="width:190px;">
                                                    </select>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <select name="Comparator2" id="Comparator2" class="ForFilteringSchemes" lay-filter="Comparator2" style="width:190px;">
                                                    <option value="0" selected="selected"></option>
                                                    <option value="=">=</option>
                                                    <option value=">=">>=</option>
                                                    <option value=">">></option>
                                                    <option value="<="><=</option>
                                                    <option value="<"><</option>
                                                    <option value="<>"><></option>
                                                    <option value="7">包含</option>
                                                    <option value="8">左包含</option>
                                                    <option value="9">右包含</option>
                                                    <option value="10">不包含</option>
                                                </select>
                                            </div>
                                            <div class="layui-inline">
                                                <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent2" id="ColContent2">
                                            </div>
                                        </div>
                                    </div>-->
                                </div>
                            </div>
                        </div>
@@ -76,7 +161,8 @@
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index', //主入口模块
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util'], function () {
        soulTable: '../ext/soulTable'
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util','soulTable'], function () {
        //#region å…¬ç”¨å˜é‡
        var $ = layui.$
            , admin = layui.admin
@@ -89,9 +175,11 @@
            , util = layui.util
            , tree = layui.tree
            , util = layui.util
            , soulTable = layui.soulTable
        var sWhere = "";
        var option = [];
        var HModName = "MaterialShorAnalysisReport";
        var ins;                        //用于导出excel
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -108,7 +196,7 @@
            switch (obj.event) {
                //隐藏列设置
                case 'HideColumn':
                    get_HideColumn();
                    get_HideColumnNoPageForPlan(HModName, option, get_FastQuery);
                    break;
            };
        });
@@ -126,6 +214,17 @@
        });
        //#endregion
        //#region å¯¼å‡ºæŒ‰é’®
        form.on('submit(btnExport)', function (data) {
            getExportData();
        });
        //#endregion
        //双击表格事件
        table.on('rowDouble(mainTable)', function (obj) {
            btnrowDouble(obj.data);
        })
        //#endregion
        //#region æœ¬é¡µé¢è¢«è°ƒç”¨çš„æ‰€æœ‰æ–¹æ³•
@@ -137,11 +236,13 @@
            $("#HENDDATE").val(Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + 30), 'yyyy-MM-dd'));
            //生产组织加载
            Organ();
            //初始化表格
            set_InitGrid();
            ////初始化表格
            //set_InitGrid();
            //快速过滤
            get_FastQuery(1);
            DisPlay_HideColumn();
            //ColFilter();
        }
        //#endregion
@@ -149,13 +250,13 @@
        function set_InitGrid() {
            var columns = [];
            columns.push({ type: 'checkbox', fixed: 'left' });
            columns.push({ field: 'HOrgName', title: '采购组织' });
            columns.push({ field: 'FNUMBER', title: '物料编码' });
            columns.push({ field: 'HMaterName', title: '物料名称' });
            columns.push({ field: 'HMaterModel', title: '物料规格' });
            columns.push({ field: 'CountHQty', title: '合计' });
            columns.push({ field: 'FBASEQTY', title: '即时库存数量' });
            columns.push({ field: 'HOrgName', title: '采购组织', sort: false, filter: true });
            columns.push({ field: 'FNUMBER', title: '物料编码', sort: false, filter: true });
            columns.push({ field: 'HMaterName', title: '物料名称', sort: false, filter: true });
            columns.push({ field: 'HMaterModel', title: '物料规格', sort: false, filter: true });
            columns.push({ field: '在途数量', title: '在途数量', totalRow: true, filter: true });
            columns.push({ field: 'CountHQty', title: '合计', sort: false, filter: true });
            columns.push({ field: 'FBASEQTY', title: '即时库存数量', sort: false, totalRow: true, filter: true});
            //获取两个月期之间的相差
            var time1 = Date.parse(new Date($("#HBEGINDATE").val()));//开始时间
            var time2 = Date.parse(new Date($("#HENDDATE").val()));//结束时间
@@ -171,7 +272,7 @@
            var k = 0;//收集循环次数
            for (var j = 0; j <= (Days - k); j++) {
                columns.push({ field: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'MM.dd'), width: 70 })
                columns.push({ field: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'MM.dd'), width: 70, totalRow: true })
                //跨年的话 ä¼šä»Žä¸€æœˆä¸€å·å¼€å§‹
                if (MM == 12 && (HBEGINDATE + j) == 31) {
                    yyyy += 1;
@@ -194,11 +295,13 @@
                , height: 'full-50'
                , page: true
                , cellMinWidth: 90
                , limit: 50
                , limits: [50, 500, 5000, 20000]
                , totalRow: true
                , limit: 1000
                , limits: [50, 500,1000, 5000, 20000]
                , loading: false
                , cols: [columns]
                , done: function (res, page, count) {
                    soulTable.render(this);
                    var that = this.elem.next();
                    res.data.forEach(function (item, index) {
                        var NumCount = item.FBASEQTY;//获取总库存数量
@@ -206,11 +309,16 @@
                            var dateNowTime = Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + i), 'yyyy-MM-dd');
                            if (item[dateNowTime] != null) {
                                if (NumCount > parseFloat(item[dateNowTime])) {
                                    //库存数量>需求数量:剩余可用库存数量=库存数量-需求数量
                                    NumCount -= parseFloat(item[dateNowTime]);
                                } else {
                                    var num = 6;//即时库存与日期挨着  ä»Žå³æ—¶åº“存开始算
                                    //库存数量<需求数量:剩余可用库存数量=0
                                    NumCount = 0;
                                    var num = 7;//即时库存与日期挨着  ä»Žå³æ—¶åº“存开始算
                                    tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
                                    rq = tr.children()[num + 1 + i];
                                    //rq = tr.children()[num + 1 + i];
                                    rq = tr.children()[num + i];
                                    rq.style.color = '#f66161';//然后变色
                                    rq = tr.children()[num];
                                    rq.style.color = '#f66161';//然后变色
@@ -224,6 +332,21 @@
        }
        //#endregion
        //双击跳转齐套分析明细表
        function btnrowDouble(obj) {
            var HMaterID = obj["物料ID"];
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , maxmin: true //设置最大最小按钮是否显示
                , area: ['90%', '90%']//大小
                , title: '齐套物料分析明细表'//标题
                , shift: 2//弹出动画
                , content: ['../../生产管理/齐套分析/JIT_CompleteMaterlDetailList.html?OperationType=1&HMaterID=' + HMaterID, 'yes']
            })
        }
        //获取组织
        function Organ() {
@@ -257,6 +380,8 @@
                success: function (result) {
                    if (result.count == 1) {
                        option.data = result.data;
                        //列设置
                        DisPlay_HideColumnForPlan(HModName, sessionStorage["HUserName"], option);
                        table.render(option);
                        layer.close(ajaxLoad);
                        //layer.alert("查询成功", { icon: 1 });
@@ -271,6 +396,79 @@
            });
        }
        //#endregion
        //#region èŽ·å–å¯¼å‡ºæ•°æ®
        function getExportData() {
            var data;//导出的数据
            var ajaxLoad = layer.load();
            var HORGID = $("#HORGID").val();//组织
            var HBEGINDATE = $("#HBEGINDATE").val();//提料日期
            var HENDDATE = $("#HENDDATE").val();//至
            //var HMATERIALID = $("#HMATERIALID").val();//物料/产品
            //var HSUPPLIERID = $("#HSUPPLIERID").val();//供应商
            //var HXQD = $("#HXQD").val();//需求单号
            //var HPURORDERNO = $("#HPURORDERNO").val();//采购订单号
            var ColName = $("#ColName").val();//复选框
            var Comparator = $("#Comparator").val()
            var ColContent = $("#ColContent").val();
            var ColName1 = $("#ColName1").val();//复选框
            var Comparator1 = $("#Comparator1").val()
            var ColContent1 = $("#ColContent1").val();
            var ColName2 = $("#ColName2").val();//复选框
            var Comparator2 = $("#Comparator2").val()
            var ColContent2 = $("#ColContent2").val();
            if (HBEGINDATE > HENDDATE) {
                return layer.msg("开始日期不能小于结束日期!");
            }
            sWhere = {
                HORGID: HORGID
                , HBEGINDATE: HBEGINDATE
                , HENDDATE: HENDDATE
                //, HMATERIALID: HMATERIALID
                //, HSUPPLIERID: HSUPPLIERID
                //, HXQD: HXQD
                //, HPURORDERNO: HPURORDERNO
            }
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/MaterialShorAnalysisReport',
                type: "GET",
                data: { "sWhere": JSON.stringify(sWhere) },//, "user": sessionStorage["HUserName"]
                success: function (result) {
                    if (result.count == 1) {
                        data = result.data;
                        option.data = data;
                        ins = table.render(option);
                        data.forEach((item) => {
                            for (let itemobj in item) {
                                if (item[itemobj] == null) {
                                    item[itemobj] = "";
                                }
                                if (item[itemobj].length > 0) {  // å‡è®¾å­—段名为field
                                    item[itemobj] = item[itemobj].toString().replace(/[\r\n]+/g, '');  // å°†æ¢è¡Œç¬¦æ›¿æ¢ä¸ºç©ºå­—符串
                                }
                            }
                        });
                        table.exportFile(ins.config.id, data, "xls");
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(result.code + result.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
            sWhere = "";
        }
        //#endregion
        //#region å¿«é€Ÿè¿‡æ»¤
@@ -288,7 +486,80 @@
            //var HSUPPLIERID = $("#HSUPPLIERID").val();//供应商
            //var HXQD = $("#HXQD").val();//需求单号
            //var HPURORDERNO = $("#HPURORDERNO").val();//采购订单号
            var ColName = $("#ColName").val();//复选框
            var Comparator = $("#Comparator").val()
            var ColContent = $("#ColContent").val();
            var ColName1 = $("#ColName1").val();//复选框
            var Comparator1 = $("#Comparator1").val()
            var ColContent1 = $("#ColContent1").val();
            var ColName2 = $("#ColName2").val();//复选框
            var Comparator2 = $("#Comparator2").val()
            var ColContent2 = $("#ColContent2").val();
            if (ColName != 0 && Comparator != 0) {
                var com = "";
                switch (Comparator) {
                    case "7":
                        com = "like'%" + ColContent + "%'";
                        break;
                    case "8":
                        com = "like'%" + ColContent + "'";
                        break;
                    case "9":
                        com = "like'" + ColContent + "%'";
                        break;
                    case "10":
                        com = "not like'%" + ColContent + "%'";
                        break;
                    default:
                        com = "" + Comparator + "'" + ColContent + "'";
                        break;
                }
                sWhere += " and " + ColName + " " + com;
            }
            if (ColName1 != 0 && Comparator1 != 0) {
                var com1 = "";
                switch (Comparator1) {
                    case "7":
                        com1 = "like'%" + ColContent1 + "%'";
                        break;
                    case "8":
                        com1 = "like'%" + ColContent1 + "'";
                        break;
                    case "9":
                        com1 = "like'" + ColContent1 + "%'";
                        break;
                    case "10":
                        com1 = "not like'%" + ColContent1 + "%'";
                        break;
                    default:
                        com1 = "" + Comparator1 + "'" + ColContent1 + "'";
                        break;
                }
                sWhere += " and " + ColName1 + " " + com1;
            }
            if (ColName2 != 0 && Comparator2 != 0) {
                var com2 = "";
                switch (Comparator2) {
                    case "7":
                        com2 = "like'%" + ColContent2 + "%'";
                        break;
                    case "8":
                        com2 = "like'%" + ColContent2 + "'";
                        break;
                    case "9":
                        com2 = "like'" + ColContent2 + "%'";
                        break;
                    case "10":
                        com2 = "not like'%" + ColContent2 + "%'";
                        break;
                    default:
                        com2 = "" + Comparator + "'" + ColContent + "'";
                        break;
                }
                sWhere += " and " + ColName2 + " " + com2;
            }
            if (HBEGINDATE > HENDDATE) {
                return layer.msg("开始日期不能小于结束日期!");
            }
@@ -302,8 +573,7 @@
                //, HXQD: HXQD
                //, HPURORDERNO: HPURORDERNO
            }
            //初始化表格
            set_InitGrid();
            get_Display(JSON.stringify(sWhere));
            sWhere = "";//调用接口后清空sWhere缓存
        }
@@ -320,6 +590,15 @@
            //$("#HSUPPLIERNAME").val("");
            //$("#HXQD").val("");//需求单号
            //$("#HPURORDERNO").val("");//采购订单号
            $("#ColContent").val("");
            $("#ColName").val("0");
            $("#Comparator").val("0");
            $("#ColContent1").val("");
            $("#ColName1").val("0");
            $("#Comparator1").val("0");
            $("#ColContent2").val("");
            $("#ColName2").val("0");
            $("#Comparator2").val("0");
            form.render('select');
            sWhere = "";
        }
@@ -479,6 +758,23 @@
                }
            })
        }
        //列明显示下拉框
        function ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
            for (var i = 1; i < option.cols[0].length; i++) {
                if (option.cols[0][i].hide != true) {
                    Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
                }
            }
            $("#ColName").empty();
            $("#ColName").append(Organization);
            $("#ColName1").empty();
            $("#ColName1").append(Organization);
            $("#ColName2").empty();
            $("#ColName2").append(Organization);
            form.render('select');
        }
        //#endregion
        //以上是layui模块