duhe
2025-06-06 e8ac0e0bdf2a5a47177c9679eb1f36480fcaea6f
宝工:历史欠料报表
2个文件已修改
1个文件已添加
780 ■■■■■ 已修改文件
WebTM/Properties/PublishProfiles/LAYUI.pubxml.user 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/欠料运算/JIT_MaterialLevelShorAnalysisReport_His.html 772 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/Properties/PublishProfiles/LAYUI.pubxml.user
@@ -29,11 +29,11 @@
    </File>
    <File Include="bin/WebTM.dll">
      <publishTime>04/27/2021 20:31:08</publishTime>
      <publishTime>06/06/2025 13:13:09</publishTime>
      <publishTime>06/06/2025 15:00:35</publishTime>
    </File>
    <File Include="bin/WebTM.pdb">
      <publishTime>04/27/2021 20:31:08</publishTime>
      <publishTime>06/06/2025 13:13:09</publishTime>
      <publishTime>06/06/2025 15:00:35</publishTime>
    </File>
    <File Include="HtmlPage1.html">
      <publishTime>04/11/2023 16:34:42</publishTime>
@@ -5794,6 +5794,9 @@
    <File Include="views/生产管理/欠料运算/JIT_MaterialLevelShorAnalysisReport.html">
      <publishTime>06/03/2025 16:35:43</publishTime>
    </File>
    <File Include="views/生产管理/欠料运算/JIT_MaterialLevelShorAnalysisReport_His.html">
      <publishTime>06/06/2025 15:56:34</publishTime>
    </File>
    <File Include="views/生产管理/班次开班单/Sc_ShiftsBeginInfoBillList.html">
      <publishTime>05/15/2025 14:44:59</publishTime>
    </File>
WebTM/WebTM.csproj
@@ -635,6 +635,7 @@
    <Content Include="views\生产管理\日计划基础资料\JIT_NeedMaterPlanConfigBill_Excel.html" />
    <Content Include="views\生产管理\日计划报表\JIT_DayPlanPlatFormHistoryNoteReport.html" />
    <Content Include="views\生产管理\日计划报表\JIT_FuHeFenXiReportDetail.html" />
    <Content Include="views\生产管理\欠料运算\JIT_MaterialLevelShorAnalysisReport_His.html" />
    <Content Include="views\生产管理\欠料运算\JIT_MaterialLevelShorAnalysis.html" />
    <Content Include="views\生产管理\欠料运算\JIT_MaterialLevelShorAnalysisDetailReport.html" />
    <Content Include="views\生产管理\欠料运算\JIT_MaterialLevelShorAnalysisReport.html" />
WebTM/views/Éú²ú¹ÜÀí/Ç·ÁÏÔËËã/JIT_MaterialLevelShorAnalysisReport_His.html
New file
@@ -0,0 +1,772 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <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/SetColumn.js"></script>
    <!--<script src="../../../layuiadmin/soulTable.slim.js"></script>--><!--标题筛选不能引用此js文件-->
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </div>
                                </div>
                                <div class="layui-inline" style="display:none">
                                    <label class="layui-form-label" style="width: 85px;">组织</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                        <select name="HORGID" id="HORGID" lay-verify="HORGID">
                                            <!--动态渲染组织-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">运算标识</label>
                                    <div class="layui-input-block">
                                        <select name="HIDentificat" id="HIDentificat" class="ForFilteringSchemes" lay-filter="HIDentificat" style="width:190px;">
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <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">需求车间</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">日期间隔</label>
                                    <div class="layui-input-block">
                                        <select name="HInitTimeCycle" id="HInitTimeCycle" class="ForFilteringSchemes" lay-filter="HInitTimeCycle" style="width:190px;">
                                        </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;">
                                        <input type="date" class="layui-input" lay-verify="HBEGINDATE" name="HBEGINDATE" id="HBEGINDATE" style="padding-left: 78px;">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">至:</label>
                                    <div class="layui-input-block" style="margin-left: 120px;">
                                        <input type="date" class="layui-input" lay-verify="HENDDATE" name="HENDDATE" id="HENDDATE" style="padding-left: 78px;">
                                    </div>
                                </div>
                                <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">
                <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>
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label" style="width: 85px;">生产订单号</label>
                <div class="layui-input-block" style="margin-left: 120px;">
                    <input type="text" class="layui-input" name="HMOBILLNO" id="HMOBILLNO">
                </div>
            </div>
        </div>
    </div>-->
                            </div>
                        </div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
<script>
    var treeCkData = { id: 0 };
    var TagId = "";
    var TagParentId = "";
    layui.config({
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index', //主入口模块
        soulTable: '../ext/soulTable',
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util', 'soulTable', 'flow','tableSelect'], function () {
        //#region å…¬ç”¨å˜é‡
        var $ = layui.$
            , admin = layui.admin
            , layer = layui.layer
            , table = layui.table
            , form = layui.form
            , element = layui.element
            , laypage = layui.laypage
            , laydate = layui.laydate
            , util = layui.util
            , tree = layui.tree
            , util = layui.util
            , soulTable = layui.soulTable
            , flow = layui.flow
            , tableSelect = layui.tableSelect;
        var sWhere = "";
        var option = [];
        var ins;                        //用于导出excel
        var HModName = "JIT_MaterialLevelShorAnalysisReport";
        var HIDentificat_ValueList = [];
        var HIDentificat_TitleList = [];
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
        //初始化界面
        set_ClearBill();
        //#endregion
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        //#endregion è¾“入框回车监听
        //$('input[type="text"]').on('keydown', function (event) {
        //    if (event.keyCode == 13) {
        //        $("#btnSearch").click();
        //    }
        //});
        //#endregion
        //#region è¿ç®—标识下拉列表监听
        form.on('select(HIDentificat)', function (data) {
            var value = data.value;
            if ($.inArray(value, HIDentificat_ValueList)>-1) {
                var HIDentificat_Title = HIDentificat_TitleList[$.inArray(value, HIDentificat_ValueList)];
                var HBeginDate = Format(Date.parse(HIDentificat_Title), "yyyy-MM-dd");
                var HEndDate = Format(new Date(Date.parse(HIDentificat_Title) + 1000 * 60 * 60 * 24 * 50), "yyyy-MM-dd");
                $("#HBEGINDATE").val(HBeginDate);
                $("#HENDDATE").val(HEndDate);
                get_FastQuery();
            }
        });
        //#endregion
        //#region äº§å“ç¼–码
        form.on('submit(btnHMATERIALID)', function (data) {
            btnHMATERIALID();
        });
        //#endregion
        //#region é‡ç½®æŒ‰é’®
        form.on('submit(btnReSearch)', function (data) {
            set_ClearQuery();
        });
        //#endregion
        //#region æŸ¥è¯¢æŒ‰é’®
        form.on('submit(btnSearch)', function (data) {
            get_FastQuery();
        });
        //#endregion
        //#region å¯¼å‡ºæŒ‰é’®
        form.on('submit(btnExport)', function (data) {
            getExportData();
        });
        //#endregion
        //#region åˆ—设置按钮
        form.on('submit(bthHideColumn)', function (data) {
            get_HideColumnNoPageForPlan(HModName, option, get_FastQuery);
        });
        //#region åŒå‡»è¡Œå¼¹å‡ºå¼¹æ¡†
        table.on('rowDouble(mainTable)', function (obj) {
            var HOrgID = $("#HORGID").val();
            var HMaterID = obj.data.物料ID;
            var HWorkShopID = obj.data.需求车间ID;
            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
        //#region æœ¬é¡µé¢è¢«è°ƒç”¨çš„æ‰€æœ‰æ–¹æ³•
        //#region åˆå§‹åŒ–界面
        function set_ClearBill() {
            //运算标识初始化
            getHIDentificat_init();
           //物料表格下拉搜索框
            tableSelect.render({
                elem: '#HMATERIALNAME',
                checkedKey: 'HItemID',
                searchKey: '物料代码,物料名称',
                sWhere: '',//table搜索sWhere条件
                table: {
                    url: GetWEBURL() + 'Gy_Material/page',
                    where: { user: sessionStorage["HMaker"], "Organization": sessionStorage["Organization"] } ,
                    cols: [[
                        { type: 'checkbox',fixed:'left' },
                        { field: 'HItemID', title: 'HItemID' },
                        { field: '物料代码', title: '物料代码' },
                        { field: '物料名称', title: '物料名称' },
                    ]],
                    page: true,
                    limit: 5,
                    limits: [5]
                },
                done: function (elem, data) {
                    if (data != []) {
                        //获取数据
                        /*$("#HMATERIALNAME").blur();//单元格失去焦点*/
                        $("#HMATERIALID").val(data.data[0].HItemID);
                        $("#HMATERIALNAME").val(data.data[0].物料名称);
                        get_FastQuery()
                    }
                }
            })
            //初始化日期间隔、开始日期、结束日期
            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();
        }
        //#endregion
        //#region åˆå§‹åŒ–表格方法
        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: '领料数量', 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: 'Total', title: '欠料计划合计', filter: true });
            option = {
                elem: '#mainTable'
                //, toolbar: '#toolbarDemo'
                , height: 'full-50'
                , page: true
                , cellMinWidth: 90
                , limit: 1000
                , limits: [50, 500,1000, 2000]
                , totalRow: true
                , loading: false
                , 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;" });
                        }
                    }
                }
            };
        }
        //#endregion
        //获取组织
        function Organ() {
            //获取登录页组织列
            var Organization = '';
            $.ajax({
                type: "get",
                url: GetWEBURL() + "/Web/GetOrganizations",
                async: false,
                success: function (result) {
                    if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                        var data = result.data;
                        for (var i = 0; i < data.length; i++) {
                            Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
                        }
                        $("#HORGID").append(Organization);
                        $("#HORGID").val(sessionStorage["OrganizationID"])
                        form.render('select');
                    }
                    layer.closeAll("loading");
                }
            })
        }
        //生产车间
        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(sql) {
            var ajaxLoad = layer.load();
            var ModRightNameCheck = "";
            $.ajax({
                url: GetWEBURL() + '/CommonModel/searchMethod',
                type: "GET",
                async: false,
                data: { "sql": sql, "user": sessionStorage["HUserName"], "ModRightNameCheck": ModRightNameCheck  },
                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);
                        ins = table.render(option);
                        layer.close(ajaxLoad);
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                        layer.close(ajaxLoad);
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                    layer.close(ajaxLoad);
                }
            });
        }
        //#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;
            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");
        }
        //#endregion
        //#region å¿«é€Ÿè¿‡æ»¤
        function get_FastQuery() {
            HORGID = $("#HORGID").val();//组织
            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();//物料属性
            var HIDentificat = $("#HIDentificat").val();//运算标识
            if (HBEGINDATE > HENDDATE) {
                return layer.msg("开始日期不能小于结束日期!");
            }
            if (HORGID != "") {
                sWhere += " and T1.HStockORGID= " + HORGID+" ";
            }
            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 + " ";
            } else {
                if (HMATERIALNAME != "") {
                    sWhere += " and (T2.HName like ''%" + HMATERIALNAME + "%'' or T2.HNumber like ''%" + HMATERIALNAME + "%'') ";
                }
            }
            var sql = "exec  h_p_JIT_MaterialLevelShorReportList_His '" + sWhere + "','" + HBEGINDATE + "','" + HENDDATE + "','" + HIDentificat + "'";
            get_Display(sql);
            sWhere = "";//调用接口后清空sWhere缓存
        }
        //#endregion
        //#region é‡ç½®è¿‡æ»¤æ¡ä»¶æ–¹æ³•
        function set_ClearQuery() {
            $("#HORGID").val(sessionStorage["OrganizationID"]);//组织
            $("#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"));//至
            $("#HMATERIALID").val("");//物料/产品
            $("#HMATERIALNAME").val("");
            $("#HWorkShopID").val("0");
            $("#HWorkShopID2").val("0");
            $("#HMaterClsID").val("0");
            form.render('select');
            sWhere = "";
        }
        //#endregion
        //物料列表
        function btnHMATERIALID() {
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , area: ['90%', '90%']//大小
                , title: '物料列表'//标题
                , shift: 2//弹出动画
                , content: ['../../基础资料/公用基础资料/Gy_Material.html', '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('请选择数据');
                    }
                    //获取数据
                    $("#HMATERIALID").val(checkStatus.data[0].HItemID);
                    $("#HMATERIALNAME").val(checkStatus.data[0].物料名称);
                    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
        //#region è¿ç®—标识
        function getHIDentificat_init() {
            var sql = "select HIDentificat, min(convert(varchar(100),HMakeDate,20)) HMakeDate from JIT_MOMaterLackBill where ISNULL(HIDentificat, '') <> '' group by HIDentificat order by min(convert(varchar(100),HMakeDate,20)) desc";
            var ModRightNameCheck = "";
            $.ajax({
                url: GetWEBURL() + '/CommonModel/searchMethod',
                async: false,
                type: "GET",
                data: { "sql": sql, "user": sessionStorage["HUserName"], "ModRightNameCheck": ModRightNameCheck },
                success: function (data1) {
                    if (data1.count == 1) {
                        var Organization = "";
                        if (data1.count == 1) {
                            var data = data1.data;
                            for (var i = 0; i < data.length; i++) {
                                Organization += '<option  style="color:blue;" value="' + data[i].HIDentificat + '">' + data[i].HMakeDate + '</option>';
                                HIDentificat_ValueList.push(data[i].HIDentificat);
                                HIDentificat_TitleList.push(data[i].HMakeDate);
                            }
                            $("#HIDentificat").append(Organization);
                            if (data.length > 0) {
                                $("#HIDentificat").val(data[0].HIDentificat);
                            }
                            form.render('select');
                        }
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function (e) {
                    layer.alert(e + "接口请求失败!", { icon: 5 });
                }
            });
        }
        //#endregion
        //#endregion
        //以上是layui模块
    });
    function GetGyMaterial(obj) {
        $("#HMATERIALID").val(obj.HItemID);
        $("#HMATERIALNAME").val(obj.物料名称);
    }
    function GetHDeptNameValue(obj)  //返回采购部门
    {
        $("#HWorkShopID").val(obj[0].HItemID);//车间id
        $("#HWorkShopIDName").val(obj[0].部门名称);//车间名称
    }
</script>