1
wtt
2025-12-08 81d1261b908d586b1d078a5d712fcbefddf1cfbf
WebTM/views/Éú²ú¹ÜÀí/Ç·ÁÏÔËËã/JIT_MaterialLevelShorAnalysisReport.html
@@ -37,35 +37,28 @@
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">生产车间</label>
                                    <div class="layui-input-block" style="margin-left: 77px;">
                                        <input type="hidden" class="layui-input" lay-verify="HWorkShopID" name="HWorkShopID" id="HWorkShopID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <input type="text" class="layui-input" lay-verify="HWorkShopIDName" name="HWorkShopIDName" id="HWorkShopIDName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;">
                                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHWorkShopID" id="btnHWorkShopID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                        </button>
                                    <label class="layui-form-label">生产车间</label>
                                    <div class="layui-input-block">
                                        <select name="HWorkShopID" id="HWorkShopID" lay-verify="required" lay-search class="layui-input ForFilteringSchemes">
                                            <!--动态渲染车间-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">产品编码</label>
                                    <div class="layui-input-block" style="margin-left: 77px;">
                                        <input type="hidden" class="layui-input" lay-verify="HMATERIALID" name="HMATERIALID" id="HMATERIALID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <input type="text" class="layui-input" lay-verify="HMATERIALNAME" name="HMATERIALNAME" id="HMATERIALNAME" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHMATERIALID" id="btnHMATERIALID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                        </button>
                                    <label class="layui-form-label">需求车间</label>
                                    <div class="layui-input-block">
                                        <select name="HWorkShopID2" id="HWorkShopID2" lay-verify="required" lay-search class="layui-input ForFilteringSchemes">
                                            <!--动态渲染车间-->
                                        </select>
                                    </div>
                                </div>
                                    <!--<div class="layui-inline">
                                <label class="layui-form-label" style="width: 85px;">齐套类型</label>
                                <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                    <select name="HType" id="HType" lay-verify="HType">
                                        <option value="齐套" selected="selected">齐套</option>
                                        <option value="未齐套">未齐套</option>-->
                                                        <!--<option value="采购订单">采购订单</option> æš‚时没有-->
                                                        <!--</select>
                                <div class="layui-inline">
                                    <label class="layui-form-label">日期间隔</label>
                                    <div class="layui-input-block">
                                        <select name="HInitTimeCycle" id="HInitTimeCycle" class="ForFilteringSchemes" lay-filter="HInitTimeCycle" style="width:190px;">
                                        </select>
                                    </div>
                                </div>
                            </div>-->
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">欠料日期</label>
                                    <div class="layui-input-block" style="margin-left: 120px;">
@@ -78,10 +71,34 @@
                                        <input type="date" class="layui-input" lay-verify="HENDDATE" name="HENDDATE" id="HENDDATE" style="padding-left: 78px;">
                                    </div>
                                </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>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="bthHideColumn" id="bthHideColumn">列设置</button>
                                <div class="layui-row">
                                    <div class="layui-inline">
                                        <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">产品编码</label>
                                        <div class="layui-input-block" style="margin-left: 77px;">
                                            <input type="hidden" class="layui-input" lay-verify="HMATERIALID" name="HMATERIALID" id="HMATERIALID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                            <input type="text" class="layui-input" lay-verify="HMATERIALNAME" name="HMATERIALNAME" id="HMATERIALNAME" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;">
                                            <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHMATERIALID" id="btnHMATERIALID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                            </button>
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">物料属性</label>
                                        <div class="layui-input-block">
                                            <select name="HMaterClsID" id="HMaterClsID" lay-verify="HMaterClsID">
                                                <option value="0" selected>全部</option>
                                                <option value="1">外购</option>
                                                <option value="2">自制</option>
                                                <option value="3">委外</option>
                                            </select>
                                        </div>
                                    </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>
                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="bthHideColumn" id="bthHideColumn">列设置</button>
                                </div>
                                <!--<div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
        <div class="layui-row" style="margin-top:10px;">
            <div class="layui-inline">
@@ -152,15 +169,17 @@
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        //#endregion è¾“入框回车监听
        //$('input[type="text"]').on('keydown', function (event) {
        //    if (event.keyCode == 13) {
        //        $("#btnSearch").click();
        //    }
        //});
        //#endregion
        //#region äº§å“ç¼–码
        form.on('submit(btnHMATERIALID)', function (data) {
            btnHMATERIALID();
        });
        //#endregion
        //#region  ç”Ÿäº§è½¦é—´
        form.on('submit(btnHWorkShopID)', function (data) {
            btnHWorkShopID();
        });
        //#endregion
@@ -187,26 +206,49 @@
            get_HideColumnNoPageForPlan(HModName, option, get_FastQuery);
        });
        //#region åŒå‡»è¡Œå¼¹å‡ºå¼¹æ¡†ï¼Œç»´æŠ¤ä¸åŒç”Ÿäº§èµ„源的小时产能
        //#region åŒå‡»è¡Œå¼¹å‡ºå¼¹æ¡†
        table.on('rowDouble(mainTable)', function (obj) {
            var HOrgID = $("#HORGID").val();
            var HMaterID = obj.data.物料ID;
            var HWorkShopID = obj.data.需求车间ID;
            layer.open({
                type: 2
                , skin: 'layui-layer-rim'//加上边框
                , area: ['90%', '90%']
                , title: '上层缺料情况'
                , shift: 2//弹出动画
                , shade: 0.6 //遮罩透明度
                //, maxmin: true //允许全屏最小化
                , anim: 0 //0-6的动画形式,-1不开启
                , content: ['../../生产管理/欠料运算/JIT_MaterialLevelShorAnalysisDetailReport.html?type=2&HOrgID=' + HOrgID + "&HMaterID=" + HMaterID + "&HWorkShopID=" + HWorkShopID, 'yes']
            })
            var HBEGINDATE = $("#HBEGINDATE").val();//欠料日期
            var HENDDATE = $("#HENDDATE").val();//至
            window.open('../../生产管理/欠料运算/JIT_MaterialLevelShorAnalysisDetailReport.html?type=2&HOrgID=' + HOrgID + "&HMaterID=" + HMaterID + "&HWorkShopID=" + HWorkShopID + "&HBEGINDATE=" + HBEGINDATE + "&HENDDATE=" + HENDDATE);
            //layer.open({
            //    type: 2
            //    , skin: 'layui-layer-rim'//加上边框
            //    , area: ['90%', '90%']
            //    , title: '上层缺料情况'
            //    , shift: 2//弹出动画
            //    , shade: 0.6 //遮罩透明度
            //    //, maxmin: true //允许全屏最小化
            //    , anim: 0 //0-6的动画形式,-1不开启
            //    , content: ['../../生产管理/欠料运算/JIT_MaterialLevelShorAnalysisDetailReport.html?type=2&HOrgID=' + HOrgID + "&HMaterID=" + HMaterID + "&HWorkShopID=" + HWorkShopID + "&HBEGINDATE=" + HBEGINDATE + "&HENDDATE=" + HENDDATE, 'yes']
            //})
        })
            //#endregion
        //#endregion
        //日期间隔下拉列表监听
        form.on('select(HInitTimeCycle)', function (data) {
            var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
            //若日期间隔不为 ä»»æ„é—´éš”,则禁用开始日期与结束日期的选择
            if (HInitTimeCycle !=0) {
                //$('#HBeginDate').prop('disabled', true);
                //$('#HEndDate').prop('disabled', true);
                $("#HBEGINDATE").val(Format(new Date().setDate(new Date().getDate()), "yyyy-MM-dd"));//欠料日期
                $("#HENDDATE").val(Format(new Date().setDate(new Date().getDate() + HInitTimeCycle), "yyyy-MM-dd"));//至
                //执行查询方法
                get_FastQuery();
            }
            else {
                $('#HBeginDate').prop('disabled', false);
                $('#HEndDate').prop('disabled', false);
            }
        });
        //#endregion
@@ -214,36 +256,21 @@
        //#region åˆå§‹åŒ–界面
        function set_ClearBill() {
            //部门输入框
           //物料表格下拉搜索框
            tableSelect.render({
                elem: '#HWorkShopIDName',//输入框dom选择
                searchKey: '部门名称,HItemID',//查询的列名
                sWhere: '',//table搜索sWhere条件 //默认筛选项
                ajaxSelect: function (sWhere) {
                    var data = '';
                    $.ajax({
                        url: GetWEBURL() + '/Gy_Department/list',
                        type: "GET",
                        data: { "sWhere": sWhere, "user": sessionStorage["HMaker"], "Organization": sessionStorage["Organization"] },
                        async: false,
                        success: function (data1) {
                            if (data1.count == 1) {
                                data = data1.data
                            }
                        },
                        error: function () {
                            layer.alert('获取列表失败!', { icon: 15, title: '通信错误' });
                        }
                    });
                    return data;
                },//设置前端分页时可以设置的
                elem: '#HMATERIALNAME',
                checkedKey: 'HItemID',
                searchKey: '物料代码,物料名称',
                sWhere: '',//table搜索sWhere条件
                table: {
                    //url: GetWEBURL() + 'Gy_Supplier/page',
                    //where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                    url: GetWEBURL() + 'Gy_Material/page',
                    where: { user: sessionStorage["HMaker"], "Organization": sessionStorage["Organization"] } ,
                    cols: [[
                        { type: 'radio', fixed: 'left' },//需要加这个fixed属性不然点击checkbox会触发行点击导致无法正确点击
                        { type: 'checkbox',fixed:'left' },
                        { field: 'HItemID', title: 'HItemID' },
                        { field: '部门名称', title: '部门名称' },
                        { field: '物料代码', title: '物料代码' },
                        { field: '物料名称', title: '物料名称' },
                    ]],
                    page: true,
                    limit: 5,
@@ -251,19 +278,31 @@
                },
                done: function (elem, data) {
                    if (data != []) {
                        $("#HWorkShopIDName").val(data.data[0]['部门名称']);
                        $("#HWorkShopID").val(data.data[0]['HItemID']);
                        //获取数据
                        /*$("#HMATERIALNAME").blur();//单元格失去焦点*/
                        $("#HMATERIALID").val(data.data[0].HItemID);
                        $("#HMATERIALNAME").val(data.data[0].物料名称);
                        get_FastQuery()
                    }
                }
            })
            //初始化日期
            $("#HBEGINDATE").val(Format(new Date(new Date()), "yyyy-MM-dd"));//欠料日期
            $("#HENDDATE").val(Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + 30), "yyyy-MM-dd"));//至
            //初始化日期间隔、开始日期、结束日期
            setSelect_HInitTimeCycle();
            //若日期间隔不为 ä»»æ„é—´éš”,则禁用开始日期与结束日期的选择
            var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
            if (HInitTimeCycle !=0) {
                $("#HBEGINDATE").val(Format(new Date().setDate(new Date().getDate()), "yyyy-MM-dd"));//欠料日期
                $("#HENDDATE").val(Format(new Date().setDate(new Date().getDate() + HInitTimeCycle), "yyyy-MM-dd"));//至
            }
            //生产组织加载
            Organ();
            //车间
            get_Dept();
            //初始化表格
            set_InitGrid();
            //设置页码
            DisPlay_HideColumn_GetPageSize(HModName, sessionStorage["HUserName"], option)
            //快速过滤
            get_FastQuery();
        }
@@ -273,58 +312,66 @@
        function set_InitGrid() {
            var columns = [];
            columns.push({ type: 'checkbox', fixed: 'left', sort: true });
            columns.push({ field: '需求车间ID', title: '需求车间ID', sort: true, filter: true });
            columns.push({ field: '需求车间编码', title: '需求车间编码', sort: true, filter: true });
            columns.push({ field: '需求车间名称', title: '需求车间名称', sort: true, filter: true });
            columns.push({ field: '物料ID', title: '物料ID', sort: true, filter: true });
            columns.push({ field: '物料编码', title: '物料编码', sort: true, filter: true });
            columns.push({ field: '物料名称', title: '物料名称', sort: true, filter: true });
            columns.push({ field: '物料属性', title: '物料属性', sort: true, filter: true });
            columns.push({ field: '供货车间ID', title: '供货车间ID', sort: true, filter: true  });
            columns.push({ field: '供货车间编码', title: '供货车间编码', sort: true,  filter: true  });
            columns.push({ field: '供货车间名称', title: '供货车间名称', sort: true, filter: true });
            columns.push({ field: '是否匹配到订单', title: '是否匹配到订单', sort: true, filter: true, templet: function (d) { return d.是否匹配到订单 ? '否' : '是'; }  });
            //columns.push({ field: 'HPOOrderBillRemark', title: '摘要' });
            //columns.push({ field: 'HPOOrderBillNote', title: '备注' });
            //columns.push({ field: '采购员', title: '采购员' });
            columns.push({ field: '是否匹配到要料计划信息', title: '是否匹配到要料计划信息', sort: true, filter: true, templet: function (d) { return d.是否匹配到要料计划信息 ? '否' : '是'; } });
            /*columns.push({ field: '层级', title: '层级', sort: true, filter: true });*/
            //columns.push({ field: '计量单位名称', title: '计量单位', sort: true, filter: true });
            //columns.push({ field: 'TQSUM', title: '欠料拖期数量', sort: true, totalRow: true, filter: true });
            //获取两个月期之间的相差
            var time1 = Date.parse(new Date($("#HBEGINDATE").val()));//开始时间
            var time2 = Date.parse(new Date($("#HENDDATE").val()));//结束时间
            var Days = Math.abs(parseInt((time2 - time1) / 1000 / 3600 / 24));
            //获取年
            var yyyy = new Date($("#HBEGINDATE").val()).getFullYear();
            //获取月份
            var MM = new Date($("#HBEGINDATE").val()).getMonth() + 1;
            //获取开始月份的最大天数
            var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差
            //获取开始日期的天数
            var HBEGINDATE = new Date(new Date($("#HBEGINDATE").val())).getDate(); //获取开始日期天数
            //columns.push({ type: 'checkbox', fixed: 'left', sort: true });
            //columns.push({ field: '需求车间ID', title: '需求车间ID', sort: true, filter: true });
            //columns.push({ field: '需求车间编码', title: '需求车间编码', sort: true, filter: true });
            //columns.push({ field: '需求车间名称', title: '需求车间名称', sort: true, filter: true });
            //columns.push({ field: '物料ID', title: '物料ID', sort: true, filter: true });
            //columns.push({ field: '物料编码', title: '物料编码', sort: true, filter: true });
            //columns.push({ field: '物料名称', title: '物料名称', sort: true, filter: true });
            //columns.push({ field: '物料属性', title: '物料属性', sort: true, filter: true });
            //columns.push({ field: '供货车间ID', title: '供货车间ID', sort: true, filter: true  });
            //columns.push({ field: '供货车间编码', title: '供货车间编码', sort: true,  filter: true  });
            //columns.push({ field: '供货车间名称', title: '供货车间名称', sort: true, filter: true });
            //columns.push({ field: '是否匹配到订单', title: '是否匹配到订单', sort: true, filter: true, templet: function (d) { return d.是否匹配到订单 ? '否' : '是'; }  });
            ////columns.push({ field: 'HPOOrderBillRemark', title: '摘要' });
            ////columns.push({ field: 'HPOOrderBillNote', title: '备注' });
            ////columns.push({ field: '采购员', title: '采购员' });
            //columns.push({ field: '是否匹配到要料计划信息', title: '是否匹配到要料计划信息', sort: true, filter: true, templet: function (d) { return d.是否匹配到要料计划信息 ? '否' : '是'; } });
            //    columns.push({ field: '日计划需求数量', title: '日计划需求数量', sort: true, filter: true });
            //columns.push({ field: '即时库存总数量', title: '即时库存总数量', sort: true, filter: true });
            //columns.push({ field: '领料数量', title: '领料数量', sort: true, filter: true });
            //columns.push({ field: '可用总数量', title: '可用总数量', sort: true, filter: true });
            //columns.push({ field: '库存已占用总数量', title: '库存已占用总数量', sort: true, filter: true });
            //columns.push({ field: '库存剩余可用数量', title: '库存剩余可用数量', sort: true, filter: true });
            //columns.push({ field: '供货提前期', title: '供货提前期', sort: true, filter: true });
            //columns.push({ field: '到货前置期', title: '到货前置期', sort: true, filter: true });
            ///*columns.push({ field: '层级', title: '层级', sort: true, filter: true });*/
            ////columns.push({ field: '计量单位名称', title: '计量单位', sort: true, filter: true });
            ////columns.push({ field: 'TQSUM', title: '欠料拖期数量', sort: true, totalRow: true, filter: true });
            ////获取两个月期之间的相差
            //var time1 = Date.parse(new Date($("#HBEGINDATE").val()));//开始时间
            //var time2 = Date.parse(new Date($("#HENDDATE").val()));//结束时间
            //var Days = Math.abs(parseInt((time2 - time1) / 1000 / 3600 / 24));
            ////获取年
            //var yyyy = new Date($("#HBEGINDATE").val()).getFullYear();
            ////获取月份
            //var MM = new Date($("#HBEGINDATE").val()).getMonth() + 1;
            ////获取开始月份的最大天数
            //var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差
            ////获取开始日期的天数
            //var HBEGINDATE = new Date(new Date($("#HBEGINDATE").val())).getDate(); //获取开始日期天数
            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, totalRow: true, filter: true })
                //跨年的话 ä¼šä»Žä¸€æœˆä¸€å·å¼€å§‹
                if (MM == 12 && (HBEGINDATE + j) == 31) {
                    yyyy += 1;
                    MM = 1;
                    SumMonth = new Date(yyyy, MM, 0).getDate();
                    HBEGINDATE = 0;
                    k += j;
                    j = 0;
                } else if ((HBEGINDATE + j) == SumMonth) { //跨月 æœˆæ•°åР䏀  å¤©æ•°ä»Žä¸€å¼€å§‹
                    HBEGINDATE = 0;
                    MM += 1;
                    SumMonth = new Date(yyyy, MM, 0).getDate();
                    k += j;
                    j = 0;
                }
            }
            /*columns.push({ field: '欠料计划合计', title: '欠料计划合计', filter: true  });*/
            //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, totalRow: true, filter: true })
            //    //跨年的话 ä¼šä»Žä¸€æœˆä¸€å·å¼€å§‹
            //    if (MM == 12 && (HBEGINDATE + j) == 31) {
            //        yyyy += 1;
            //        MM = 1;
            //        SumMonth = new Date(yyyy, MM, 0).getDate();
            //        HBEGINDATE = 0;
            //        k += j;
            //        j = 0;
            //    } else if ((HBEGINDATE + j) == SumMonth) { //跨月 æœˆæ•°åР䏀  å¤©æ•°ä»Žä¸€å¼€å§‹
            //        HBEGINDATE = 0;
            //        MM += 1;
            //        SumMonth = new Date(yyyy, MM, 0).getDate();
            //        k += j;
            //        j = 0;
            //    }
            //}
            //columns.push({ field: 'Total', title: '欠料计划合计', filter: true });
            option = {
                elem: '#mainTable'
@@ -339,6 +386,14 @@
                , cols: [columns]
                , done: function (res, curr, count) {
                    soulTable.render(this);
                    for (var i in res.data) {
                        var item = res.data[i];
                        if (item["未匹配订单数量"] > 0) {
                            $("tr[data-index='" + i + "']").attr({ "style": "background:red;color:black;" });
                        }
                    }
                }
            };
        }
@@ -367,6 +422,42 @@
            })
        }
        //生产车间
        function get_Dept() {
            //获取车间列
            var HDeptID = '<option value="0" style="color:red;" selected>全部车间</option>';
            var sql = "exec h_p_Gy_GetHDeptListISWorkShop " + sessionStorage["OrganizationID"]
            $.ajax({
                type: "get",
                url: GetWEBURL() + "/Gy_SOPBillList/WindowPrintList",
                async: false,
                data: { "sWhere": sql},
                success: function (result) {
                    if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                        var data = result.data;
                        for (var i = 0; i < data.length; i++) {
                            HDeptID += '<option  style="color:blue;"  value="' + data[i].HItemID + '" >' + data[i].HName + '</option>';
                        }
                        $("#HWorkShopID").append(HDeptID);
                        $("#HWorkShopID2").append(HDeptID);
                        if (sessionStorage["HDeptID"] != "0") {
                            $("#HWorkShopID").val(sessionStorage["HDeptID"]);
                            //用户绑定的车间不存在,则默认显示全部车间
                            if ($("#HWorkShopID").val() == null || $("#HWorkShopID").val() == undefined) {
                                $("#HWorkShopID").val(0);
                            }
                        }
                        //$("#HDeptName").val("0");
                        form.render('select');
                    }
                    layer.closeAll("loading");
                }
            })
        }
        //#region æŸ¥è¯¢
        function get_Display(sWhere) {
            var ajaxLoad = layer.load();
@@ -379,6 +470,68 @@
                data: { "sWhere": sWhere, "HBEGINDATE": HBEGINDATE, "HENDDATE": HENDDATE, user: sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = [];//列字段数据
                        var col = [];
                        var totalArray = [];
                        var titleData = [];
                        //给空的数组赋值
                        for (var key in data1.list) {//循序遍历数组
                            data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//从每个对象中提取数据
                        }
                        //在列表左边添加勾选框
                        col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
                        for (var i = 0; i < data.length; i++) {//遍历data数组重的数据
                            // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                            if ($.inArray(data[i].name, titleData) > -1) {//检查data【i】.name是否在数组中  //计算列
                                col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                            }
                            else if ($.inArray(data[i].name, totalArray) > -1) { //计算列
                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120, filter: true });
                            } else if (data[i].name == '未匹配订单数量') {
                                col.push({
                                    field: '未匹配订单数量', title: '未匹配订单数量', sort: true, filter: true, templet: function (d) {
                                        return d.未匹配订单数量 > 0 ? '<span style="color: black;">' + d.未匹配订单数量 + '</span>' : d.未匹配订单数量;
                                    } });
                            }
                            else if (data[i].name == '未匹配要料计划信息数量') {
                                col.push({
                                    field: '未匹配要料计划信息数量', title: '未匹配要料计划信息数量', sort: true, filter: true, templet: function (d) {
                                        return d.未匹配要料计划信息数量 > 0 ? '<span style="color: black;">' + d.未匹配要料计划信息数量 + '</span>' : d.未匹配要料计划信息数量;
                                    }
                                });
                            } else if (isValidDate(data[i].name)) {
                                col.push({
                                    field: data[i].name, title: Format(data[i].name, 'MM-dd'), width: 70, totalRow: true, filter: true, templet: function (d) {
                                        //获取当前今天明天后天三天的日期字符串
                                        const dates = [];
                                        const today = new Date();
                                        for (let i = 0; i < 3; i++) {
                                            const date = new Date(today);
                                            date.setDate(today.getDate() + i);
                                            const dateStr = date.toISOString().slice(0, 10);
                                            dates.push(`${dateStr}`);
                                        }
                                        // å¦‚果行日期在当前日期三天后,则内容标红
                                        if ((this.field == dates[0] || this.field == dates[1] || this.field == dates[2]) && d[this.field] != null) {
                                            return '<span style="color:Orange">' + (d[this.field] == null ? 0 : d[this.field]) + '</span>';
                                        } else {
                                            return d[this.field] == null ? 0 : d[this.field]
                                        }
                                    }
                                })
                            }
                            else {
                                switch (data[i].Type) {
                                    //int
                                    case 'DateTime':
                                        col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + (data[i].name == "行关闭日期" ? "行关闭人" : data[i].name) + " ==''?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
                                        break;
                                    default:
                                        col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, filter: true, width: 200 });
                                }
                            }
                        }
                        option.cols = [col];
                        option.data = data1.data;
                        //列设置
                        DisPlay_HideColumnForPlan(HModName, sessionStorage["HUserName"], option);
@@ -397,6 +550,27 @@
        //#endregion
        // ç­›é€‰å‡½æ•°ï¼šæ£€æŸ¥å­—符串是否符合格式筛选日期
        function isValidDate(dateStr) {
            // æ­£åˆ™è¡¨è¾¾å¼éªŒè¯æ ¼å¼
            const formatRegex = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
            if (!formatRegex.test(dateStr)) return false;
            // åˆ†å‰²å¹´æœˆæ—¥å¹¶è½¬æ¢ä¸ºæ•°å€¼
            const [year, month, day] = dateStr.split('-').map(Number);
            // åˆ›å»ºDate对象(月份从0开始)
            const date = new Date(year, month - 1, day);
            // æ£€æŸ¥æ—¥æœŸæ˜¯å¦æœ‰æ•ˆï¼ˆä¸Žè¾“入的年月日一致)
            return (
                date.getFullYear() === year &&
                date.getMonth() === month - 1 &&
                date.getDate() === day
            );
        }
        //#region èŽ·å–å¯¼å‡ºæ•°æ®
        function getExportData() {
            var data = option.data;
@@ -407,6 +581,12 @@
                    }
                    if (item[itemobj].length > 0) {  // å‡è®¾å­—段名为field
                        item[itemobj] = item[itemobj].toString().replace(/[\r\n]+/g, '');  // å°†æ¢è¡Œç¬¦æ›¿æ¢ä¸ºç©ºå­—符串
                    }
                    if (itemobj === '规格型号') {
                        item[itemobj] = item[itemobj].replace(/,/g, ',');  // æ›¿æ¢è‹±æ–‡é€—号为中文逗号
                    }
                    if (itemobj === '物料名称') {
                        item[itemobj] = item[itemobj].replace(/,/g, ',');  // æ›¿æ¢è‹±æ–‡é€—号为中文逗号
                    }
                }
            });
@@ -421,7 +601,10 @@
            var HBEGINDATE = $("#HBEGINDATE").val();//欠料日期
            var HENDDATE = $("#HENDDATE").val();//至
            var HMATERIALID = $("#HMATERIALID").val();//物料/产品
            var HMATERIALNAME = $("#HMATERIALNAME").val();//物料名称
            var HWorkShopID = $("#HWorkShopID").val();//物料/产品
            var HWorkShopID2 = $("#HWorkShopID2").val();//物料/产品需求车间
            var HMaterClsID = $("#HMaterClsID").val();//物料属性
            if (HBEGINDATE > HENDDATE) {
                return layer.msg("开始日期不能小于结束日期!");
            }
@@ -432,11 +615,21 @@
            if (HWorkShopID != 0) {
                sWhere += " and T1.HSupplyWorkShopID= " + HWorkShopID + " ";
            }
            if (HWorkShopID2 != 0) {
                sWhere += " and T1.HWorkShopID= " + HWorkShopID2 + " ";
            }
            if (HMaterClsID != 0) {
                sWhere += " and T1.HMaterClsID=" + HMaterClsID + " ";
            }
            //if (HBEGINDATE != null && HENDDATE != null) {
            //    sWhere += " and HDate between ''" + HBEGINDATE + "'' and ''" + HENDDATE + "'' ";
            //}
            if (HMATERIALID!=0) {
                sWhere += " and T1.HMaterID= " + HMATERIALID+" ";
            if (HMATERIALID != 0) {
                sWhere += " and T1.HMaterID= " + HMATERIALID + " ";
            } else {
                if (HMATERIALNAME != "") {
                    sWhere += " and (T2.HName like ''%" + HMATERIALNAME + "%'' or T2.HNumber like ''%" + HMATERIALNAME + "%'') ";
                }
            }
            get_Display(sWhere);
            sWhere = "";//调用接口后清空sWhere缓存
@@ -450,8 +643,9 @@
            $("#HENDDATE").val(Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + 30), "yyyy-MM-dd"));//至
            $("#HMATERIALID").val("");//物料/产品
            $("#HMATERIALNAME").val("");
            $("#HWorkShopID").val("");
            $("#HWorkShopIDName").val("");
            $("#HWorkShopID").val("0");
            $("#HWorkShopID2").val("0");
            $("#HMaterClsID").val("0");
            form.render('select');
            sWhere = "";
        }
@@ -482,31 +676,21 @@
            })
        }
        //#region é€‰æ‹©ç”Ÿäº§è½¦é—´
        function btnHWorkShopID() {
            var HOrgName = $(".layui-form-select input").val();
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , area: ['90%', '90%']//大小
                , title: '生产车间列表'//标题
                , shift: 2//弹出动画
                , content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html?Type=2&HOrgName=' + HOrgName, 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                    if (checkStatus.data.length === 0) {
                        return layer.msg('请选择数据');
                    }
                    //获取数据
                    $("#HWorkShopID").val(checkStatus.data[0].HItemID);//车间id
                    $("#HWorkShopIDName").val(checkStatus.data[0].部门名称);//车间名称
                    /*get_WriteConfigFile();*/
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
            })
        //#region åˆå§‹æ—¥æœŸé—´éš” ä¸‹æ‹‰åˆ—表
        function setSelect_HInitTimeCycle() {
            var valueList = [30, 45, 60];
            var titleList = ["近一月", "近45天", "近60天"];
            var HInitTimeCycle_ArrayList = '<option  value="-1" selected="selected" >任意间隔</option>';
            for (var i = 0; i < valueList.length; i++) {
                HInitTimeCycle_ArrayList += '<option  style="color:blue;" value="' + valueList[i] + '">' + titleList[i] + '</option>';
            }
            $("#HInitTimeCycle").empty();
            $("#HInitTimeCycle").append(HInitTimeCycle_ArrayList);
            form.render('select');
            $("#HInitTimeCycle").val("60");
        }
            //#endregion