yusijie
2024-08-16 7064c2d55de5e3a6d8ef14029db1898b278e3afe
WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/JIT_DayPlanPlatForm.html
@@ -2,7 +2,7 @@
<html>
<head>
    <meta charset="utf-8" />
    <title>生产计划平台</title>
    <title>生产计划排产</title>
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/layui/layui.js"></script>
@@ -11,6 +11,7 @@
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/soulTable.slim.js"></script>
</head>
<body>
    <div class="layui-fluid">
@@ -28,8 +29,9 @@
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnICMOBill" id="btnICMOBill">生产订单选单</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnReady" id="btnReady">准备</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnProPC" id="btnProPC">排产</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnRoutEdit" id="btnRoutEdit">工艺路线</button>
                        </div>
                        <div class="layui-collapse">
                        <div class="layui-collapse resizable-container">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
@@ -176,22 +178,144 @@
                                            <input type="text" class="layui-input" 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 id="HProgressBar"></div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                        <div class="layui-row" style="padding:10px 0">
                            <table class="" id="mainTable" lay-filter="mainTable"></table>
                        </div>
                        <div class="resizable-container layui-tab layui-tab-card" style="margin-top:40px;">
                            <ul class="layui-tab-title">
                                <li class="layui-this">生产订单</li>
                                <li>缺料分析</li>
                            </ul>
                            <div class="layui-tab-content">
                                <div class="layui-tab-item layui-show">
                                    <div class="layui-inline">
                                        <label class="layui-form-label">开始日期</label>
                                        <div class="layui-input-block">
                                            <input type="date" class="layui-input" id="HBeginDate" style="width:120px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">结束日期</label>
                                        <div class="layui-input-block">
                                            <input type="date" class="layui-input" id="HEndDate" style="width:120px;">
                                        </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="HDeptName_ICMO" id="HDeptName_ICMO">
                                        </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="HMaterName_ICMO" id="HMaterName_ICMO">
                                        </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="HICMOBillNo_ICMO" id="HICMOBillNo_ICMO">
                                        </div>
                                    </div>
                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch_ICMO" id="btnSearch_ICMO">查询</button>
                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch_ICMO" id="btnReSearch_ICMO">重置</button>
                                    <!--待排订单-->
                                    <table class="layui-hide" id="mainTable_ICMO" lay-filter="mainTable_ICMO"></table>
                                </div>
                                <div class="layui-tab-item">
                                    <table class="layui-hide" id="mainTable_Material" lay-filter="mainTable_Material"></table>
                                </div>
                            </div>
                        </div>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_BatchFill"><i class="layui-icon layui-icon-file-b"></i>批量填充</button>
            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>编辑</button>-->
    <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>编辑</button>-->
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制行</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>删除行</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_MoverUp"><i class="layui-icon layui-icon-delete"></i>上移</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_MoverDown"><i class="layui-icon layui-icon-delete"></i>下移</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Priority"><i class="layui-icon layui-icon-delete"></i>优先级</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ReadyAsc"><i class="layui-icon layui-icon-delete"></i>准备排序</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Souce"><i class="layui-icon layui-icon-delete"></i>选产线</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Emp"><i class="layui-icon layui-icon-delete"></i>选操作工</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Routing"><i class="layui-icon layui-icon-form"></i>工艺路线</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Calendar"><i class="layui-icon layui-icon-form"></i>工厂日历</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export" id="get_export"><i class="layui-icon layui-icon-export"></i>导出</button>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo2">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Arrangement"><i class="layui-icon layuiiconform"></i>排产</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn_ICMO"><i class="layui-icon layuiiconform"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Close"><i class="layui-icon layui-icon-logout"></i>退出</button>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo3">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn_Material"><i class="layui-icon layuiiconform"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Close"><i class="layui-icon layui-icon-logout"></i>退出</button>
                            </div>
                        </script>
                    </form>
@@ -207,11 +331,12 @@
</script>
<script>
    var OptionData = [];
    var OptionData_Emp = [];
    layui.config({
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index', //主入口模块
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util'], function () {
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util', 'soulTable','jquery'], function () {
        //#region å…¬ç”¨å˜é‡
        var $ = layui.$
@@ -221,38 +346,49 @@
            , form = layui.form
            , laydate = layui.laydate
            , excel = layui.excel
            , soulTable = layui.soulTable
            , element = layui.element;
        var ins;
        var sWhere = "";
        var sWhere_ICMO = "";
        var option = [];
        var option2 = [];
        var option3 = [];
        var option_columns = [];
        var HModName = "JIT_DayPlanPlatForm";
        //不需要显示的字段 å¯æ‰©å±•
        var titleData = [];
        var titleData_ICMO = ["hmainid", "HEntryID", "HEmpID", "HPRDORGID", "hsubid", "HMaterID", "HUnitID", "HDeptID", "HEntryCusID", "HCenterID", "HSourceID"];
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
        //初始化界面
        $(document).ready(function () {
            set_InitGrid();
        });
        set_ClearBill();
        //#endregion
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
         //行内鼠标离开事件
        //行内鼠标离开事件
        table.on('edit(mainTable)', function (obj) {
            var myDate = new Date();
            var yyyy = myDate.getFullYear();
            var MM = myDate.getMonth() + 1;
            var dd = myDate.getDate();
            var SumMonth = 31; //动态两月之差 new Date(yyyy, MM, 0).getDate()
            var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差 new Date(yyyy, MM, 0).getDate()
            var dateHQty = 0;
            var SumHQty = 0;//拆单数量
            for (var i = 0; i <= (SumMonth - dd); i++) {
                if (obj.field == "生产资源") {
                    return;
                }
                if (!isNaN(parseInt(obj.data[Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd')]))) {
                    dateHQty += parseInt(obj.data[Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd')])  ;
                    dateHQty += parseInt(obj.data[Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd')]);
                }
            }
            for (var i = 1; i < dd; i++) {
@@ -261,16 +397,41 @@
                }
            }
            //查询所有数据相同的订单
            for (var i = 0; i < option.data.length; i++) {
                if (obj.data["生产订单号"] == option.data[i]["生产订单号"] && obj.data["生产订单明细行号"] == option.data[i]["生产订单明细行号"]) {
                    SumHQty += parseInt(option.data[i]["拆单数量"]);
                }
            }
            if (obj.value == "0" && obj.field == "拆单数量") {
                return layer.msg("拆单数量不能为0!");
            }
            if (SumHQty > (parseInt(obj.data["计划数量"]))) {
                obj.update({
                    "拆单数量": "0"
                });
                return layer.msg("拆单数量大于订单数量!");
            }
            var NowDate = obj.field;
            if (dateHQty > (parseInt(obj.data["计划数量"]))) {
                obj.update({
                    "日计划数量总量": dateHQty
                    "日计划数量总量": dateHQty - obj.value,
                    [NowDate]: 0
                });
                return layer.msg("排产数量大于订单数量!")
            }
            if (Date.parse(obj.field) > Date.parse(obj.data.计划结束日期)) {
                return layer.msg("排产日期超出计划结束日期!");
            }
            //修改数据
            obj.update({
                "日计划数量总量": dateHQty
                "日计划数量总量": dateHQty,
            });
        })
@@ -279,58 +440,40 @@
            btnrowDouble(obj.data);
        })
        var objData = "";
        //点击行选中数据
        table.on('row(mainTable)', function (obj) {
            //if (objData != "" && objData.tr.find(':checkbox:first').prop('checked') != obj.tr.find(':checkbox:first').prop('checked')) {
            //    objData.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
            //    objData.tr.find(':checkbox:first').prop('checked', false);//取消复选框选中样式
            //    layui.each(table.cache.mainTable, function (i, l) {
            //        if (objData.tr.index() == l.LAY_TABLE_INDEX) {
            //            l.LAY_CHECKED = false;
            //        }
            //    });
            //}
            //var flag = !obj.tr.find(':checkbox:first').prop('checked');
            //obj.tr.find(':checkbox').prop('checked', flag);
            //if (flag) {
            //    obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');  //设置复选框选中样式
            //} else {
            //    obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
            //    obj.tr.find(':checkbox:first').prop('checked', false);//取消复选框选中样式
            //}
            ////mainTable ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
            //layui.each(table.cache.mainTable, function (i, l) {
            //    if (obj.tr.index() == l.LAY_TABLE_INDEX) {
            //        l.LAY_CHECKED = flag;
            //    }
            //});
            //for (var i = 0; i < table.cache["mainTable"].length; i++) {
            //    if (table.cache["mainTable"][i]["生产订单号"] != obj.data["生产订单号"]) {
            //        table.cache["mainTable"][i].LAY_CHECKED = false;
            //    }
            //}
            //option.data = table.cache["mainTable"];
            //table.render(option);
            //objData = obj;
            //选中行改变颜色
            var flag = !obj.tr.find(':checkbox:first').prop('checked');
            obj.tr.find(':checkbox').prop('checked', flag);
            if (flag) {
                obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');  //设置复选框选中样式
                //$(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
                $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
            } else {
                obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                //$(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
                $(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
            }
            //mainTable ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
            layui.each(table.cache.mainTable, function (i, l) {
                if (obj.tr.index() == l.LAY_TABLE_INDEX) {
                    l.LAY_CHECKED = flag;
                }
            });
        })
        table.on('row(mainTable_ICMO)', function (obj) {
            //选中行改变颜色
            var flag = !obj.tr.find(':checkbox:first').prop('checked');
            obj.tr.find(':checkbox').prop('checked', flag);
            if (flag) {
                obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');  //设置复选框选中样式
                $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
            } else {
                obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                $(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
            }
            //mainTable_ICMO ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
            layui.each(table.cache.mainTable_ICMO, function (i, l) {
                if (obj.tr.index() == l.LAY_TABLE_INDEX) {
                    l.LAY_CHECKED = flag;
                }
@@ -354,6 +497,40 @@
                        data[0]["HSourceID"] = "";
                        data[0]["hmainid"] = "";
                        data[0]["单据号"] = "";
                        data[0]["拆单数量"] = 0;
                        var myDate = new Date();
                        //获取年
                        var yyyy = myDate.getFullYear();
                        //获取月份
                        var MM = myDate.getMonth() + 1;
                        //获取开始月份的最大天数
                        var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差
                        //获取开始日期的天数
                        var HBEGINDATE = myDate.getDate(); //获取当天日期天数
                        var columns = []
                        var k = 0;//收集循环次数
                        for (var j = 0; j <= (30 - k); j++) {
                            data[0][Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd')] = "";
                            //跨年的话 ä¼šä»Žä¸€æœˆä¸€å·å¼€å§‹
                            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;
                            }
                        }
                        var copydata = JSON.stringify(data);
                        var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
                        var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
@@ -386,8 +563,61 @@
                case 'set_ReadyAsc':
                    set_ReadyAsc();
                    break;
                //选产线
                case 'set_Souce':
                    set_Souce(data);
                    break;
                //选操作工
                case 'set_Emp':
                    set_Emp(data);
                    break;
                //查看工艺路线
                case 'set_Routing':
                    set_Routing();
                    break;
                //工厂日历
                case 'set_Calendar':
                    set_Calendar();
                    break;
                    break;
                //导出excel
                case 'get_export':
                    get_Export();
                    break;
            }
        });
        //生产订单
        table.on('toolbar(mainTable_ICMO)', function (obj) {
            var checkStatus = table.checkStatus(obj.config.id);
            switch (obj.event) {
                //排产
                case 'set_Arrangement':
                    set_Arrangement();
                    break;
                //退出按钮
                case 'btn-Close':
                    parent.layui.admin.events.closeThisTabs();
                    break;
                //列设置
                case 'set_HideColumn_ICMO':
                    get_HideColumn_ICMO();
                    break;
            };
        });
        //缺料分析
        table.on('toolbar(mainTable_Material)', function (obj) {
            var checkStatus = table.checkStatus(obj.config.id);
            switch (obj.event) {
                //退出按钮
                case 'btn-Close':
                    parent.layui.admin.events.closeThisTabs();
                    break;
                //列设置
                case 'set_HideColumn_Material':
                    get_HideColumn_Material();
                    break;
            };
        });
        //导入
@@ -397,13 +627,35 @@
        //保存
        form.on('submit(btnSave)', function (data) {
           var HWorkShopID = $("#HWorkShopID").val();//生产车间
            var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else if (table.cache["mainTable"].length == 0) {
                return layer.msg("无数据,无法保存!");
            } else {
                set_AddNew();
                var HYxjQty = 0;
                for (var i = 0; i < table.cache["mainTable"].length; i++) {
                    if (table.cache["mainTable"][i] != "") {
                        if (parseFloat(table.cache["mainTable"][i]["优先级"]) == 0) {
                            HYxjQty++
                        }
                    }
                }
                if (HYxjQty > 0) {
                    layer.confirm('当前排产页面存在优先级为0的生产订单,是否继续进行排产?', {
                        title: "操作提示",
                        icon: 0,
                        btn: ['确认', '取消']
                    }, function (index, layero) {
                        //确认
                        set_AddNew();
                    }, function (index) {
                        //取消
                        return
                    });
                } else {
                    set_AddNew();
                }
            }
        });
@@ -422,9 +674,19 @@
            get_FastQuery(2);
        });
        //快速过滤
        form.on('submit(btnSearch_ICMO)', function (data) {
            get_FastQuery_ICMO(2);
        });
        //重置
        form.on('submit(btnReSearch)', function (data) {
            set_ClearQuery();
        });
        //重置
        form.on('submit(btnReSearch_ICMO)', function (data) {
            set_ClearQuery_ICMO();
        });
        //齐套分析
@@ -469,6 +731,12 @@
            }
        })
        //工艺路线编辑
        form.on('submit(btnRoutEdit)', function (data) {
            get_btnRoutEdit();
        })
        //行内事件
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
@@ -481,7 +749,7 @@
                var field = $(this).data('field');
                laydate.render({
                    elem: this.firstChild
                    , show: true //直接显示
                    , show: true //直接显示
                    , closeStop: this
                    , done: function (nowDate) {
                        //时间选择完成,行数据更新
@@ -526,6 +794,9 @@
            $("#HPlanBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
            $("#HPlanEndDate").val(Format(new Date(), "yyyy-MM-dd"));
            $("#HMastersDate").val("");
            $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
            $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
            get_ReadConfigFile();
            //组织
            Organ();
@@ -534,8 +805,9 @@
            get_FastQuery(1);
            //隐藏勾选字段
            DisPlay_HideColumn();
            get_Display2(sWhere_ICMO);
        }
         //#endregion
        //#endregion
        //获取组织
        function Organ() {
@@ -565,185 +837,219 @@
            var myDate = new Date();
            var oneday = 1000 * 60 * 60 * 24;
            columns.push({ type: 'checkbox', fixed: 'left' });
            columns.push({ type: 'numbers', title: '序号'});
            columns.push({ field: '单据号', title: '单据号', hide: true });
            columns.push({ field: '销售订单号', title: '销售订单号', width: 150});
            columns.push({ field: '生产订单号', title: '生产订单号', width: 150, style: 'background-color: #f9f9f9;' });
            columns.push({ field: '生产订单明细行号', title: '生产订单明细行号', width: 150 });
            columns.push({ field: '优先级', title: '优先级', width: 150, edit: 'text' });
            columns.push({ field: 'HProdORGID', title: 'HProdORGID', hide: true });
            columns.push({ field: '生产组织', title: '生产组织', width:150 });
            columns.push({ field: '物料代码', title: '物料编码', width:150 });
            columns.push({ field: '物料名称', title: '物料名称', width:150 });
            columns.push({ field: '规格型号', title: '规格型号', width:150 });
            columns.push({ field: 'HUnitID', title: 'HUnitID', hide: true });
            columns.push({ field: '销售订单数量', title: '销售订单数量', width:150 });//0
            columns.push({ field: '计划数量', title: '生产订单数量', width: 150 });//0
            columns.push({field: '日计划数量总量', title: '日计划数量总量', width: 150});//0
            columns.push({ field: '今日之前日计划数量', title: '今日之前日计划数量', width: 150 });//0
            columns.push({ field: '计划开始日期', title: '预计开工日期', width: 150, templet: "<div>{{d.计划开始日期 ==null ?'':layui.util.toDateString(d.计划开始日期, 'yyyy-MM-dd')}}</div>"});
            columns.push({ field: '计划结束日期', title: '计划结束日期', width: 150, event: "HPlanEndDate"});
            columns.push({ field: 'HWorkShopID', title: 'HWorkShopID', hide: true });
            columns.push({ field: '生产车间', title: '生产车间', width: 150});
            columns.push({ type: 'checkbox', fixed: 'left', sort: true });
            columns.push({ type: 'numbers', title: '序号', sort: true });
            columns.push({ field: '单据号', title: '单据号', hide: true, sort: true });
            columns.push({ field: '销售订单号', title: '销售订单号', width: 150, sort: true });
            columns.push({ field: '生产订单号', title: '生产订单号', width: 150, style: 'background-color: #f9f9f9;', sort: true });
            columns.push({ field: '生产组织', title: '生产组织', width: 150, sort: true });
            columns.push({ field: '物料代码', title: '物料编码', width: 150, sort: true });
            columns.push({ field: '物料名称', title: '物料名称', width: 150, sort: true });
            columns.push({ field: '规格型号', title: '规格型号', width: 150, sort: true });
            columns.push({ field: '小时产能', title: '小时产能', width: 150, sort: true, edit: 'text' });
            columns.push({ field: '销售订单数量', title: '销售订单数量', width: 150, sort: true });//0
            columns.push({ field: '计划数量', title: '生产订单数量', width: 150, sort: true });//0
            columns.push({ field: '日计划数量总量', title: '日计划数量总量', width: 150, sort: true });//0
            columns.push({ field: '今日之前日计划数量', title: '今日之前日计划数量', width: 150, sort: true });//0
            columns.push({ field: '计划开始日期', title: '预计开工日期', width: 150, templet: "<div>{{d.计划开始日期 ==null ?'':layui.util.toDateString(d.计划开始日期, 'yyyy-MM-dd')}}</div>", sort: true });
            columns.push({ field: '计划结束日期', title: '计划结束日期', width: 150, templet: "<div>{{d.计划结束日期 ==null ?'':layui.util.toDateString(d.计划结束日期, 'yyyy-MM-dd')}}</div>", event: "HPlanEndDate", sort: true });
            columns.push({ field: '订单可排数量', title: '订单可排数量', width: 150 });
            columns.push({ field: '拆单数量', title: '拆单数量', width: 150, edit: 'text' });
            columns.push({ field: '昨日数量', title: '昨日数量' });
            columns.push({ field: '优先级', title: '优先级', width: 150, edit: 'text', sort: true });
            columns.push({ field: '生产资源', title: '生产资源', width: 150, edit: 'text', event: "HSourceID" });
            columns.push({ field: '操作工', title: '操作工', width: 150, edit: 'text', event: "HEmpID" });
            columns.push({
                field: Format(myDate.getTime() + 0 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 0 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 0 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 0 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 0 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 0 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 0 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 1 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 1 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 1 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 1 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 1 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 1 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 1 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 2 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 2 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 2 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 2 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 2 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 2 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 2 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 3 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 3 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 3 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 3 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 3 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 3 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 3 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 4 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 4 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 4 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 4 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 4 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 4 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 4 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 5 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 5 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 5 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 5 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 5 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 5 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 5 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 6 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 6 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 6 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 6 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 6 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 6 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 6 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 7 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 7 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 7 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 7 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 7 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 7 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 7 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 8 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 8 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 8 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 8 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 8 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 8 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 8 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 9 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 9 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 9 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 9 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 9 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 9 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 9 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 10 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 10 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 10 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 10 * oneday, 'yyyy-MM-dd')]);
                }  })//0
                    return DayColor(d[Format(myDate.getTime() + 10 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 10 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 10 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 11 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 11 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 11 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 11 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 11 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 11 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 11 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 12 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 12 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 12 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 12 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 12 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 12 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 12 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 13 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 13 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 13 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 13 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 13 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 13 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 13 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 14 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 14 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 14 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 14 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 14 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 14 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 14 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 15 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 15 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 15 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 15 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 15 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 15 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 15 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 16 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 16 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 16 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 16 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 16 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 16 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 16 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 17 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 17 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 17 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 17 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 17 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 17 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 17 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 18 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 18 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 18 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 18 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 18 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 18 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 18 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 19 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 19 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 19 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 19 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 19 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 19 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 19 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 20 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 20 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 20 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 20 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 20 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 20 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 20 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 21 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 21 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 21 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 21 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 21 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 21 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 21 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 22 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 22 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 22 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 22 * oneday, 'yyyy-MM-dd')]);
                }  })//0
                    return DayColor(d[Format(myDate.getTime() + 22 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 22 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 22 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 23 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 23 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 23 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 23 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 23 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 23 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 23 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 24 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 24 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 24 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 24 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 24 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 24 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 24 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 25 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 25 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 25 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 25 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 25 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 25 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 25 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 26 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 26 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 26 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 26 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 26 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 26 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 26 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 27 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 27 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 27 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 27 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 27 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 27 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 27 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 28 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 28 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 28 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 28 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 28 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 28 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 28 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 29 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 29 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 29 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 29 * oneday, 'yyyy-MM-dd')]);
                } })//0
                    return DayColor(d[Format(myDate.getTime() + 29 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 29 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 29 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({
                field: Format(myDate.getTime() + 30 * oneday, 'yyyy-MM-dd'), title: Format(myDate.getTime() + 30 * oneday, 'MM.dd'), edit: 'text', width: 70, templet: function (d) {
                    return DayColor(d[Format(myDate.getTime() + 30 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 30 * oneday, 'yyyy-MM-dd')]);
                }  })//0
                    return DayColor(d[Format(myDate.getTime() + 30 * oneday, 'yyyy/MM/dd')], d[Format(myDate.getTime() + 30 * oneday, 'yyyy-MM-dd')], d, Format(myDate.getTime() + 30 * oneday, 'yyyy-MM-dd'));
                }
            })//0
            columns.push({ field: '生产订单明细行号', title: '生产订单明细行号', width: 150, sort: true });
            columns.push({ field: 'T31', title: 'T31', width: 70 });//0
            columns.push({ field: '订单类型', title: '订单类型', width: 150 });
            columns.push({ field: '生产订单单据类型', title: '源单订单单据类型', width: 150 });
            columns.push({ field: '业务状态', title: '业务状态', width: 150 });
            columns.push({ field: '产线入库数量', title: '产线入库数量', width: 150 });
            columns.push({ field: '未排数量', title: '可排数量', width: 150 });
            columns.push({ field: '订单等级', title: '订单等级', width: 150 });
            columns.push({ field: '订单交货期', title: '订单交货期', width: 150, templet: "<div>{{d.订单交货期 =='1900-01-01' ?'':layui.util.toDateString(d.订单交货期, 'yyyy-MM-dd')}}</div>" });
            columns.push({ field: '订单需求数量', title: '订单需求数量', width: 150 });
            columns.push({ field: '开工余量', title: '开工余量', width: 150 });
            columns.push({ field: '小时产能', title: '小时产能', width: 150 });
            columns.push({ field: '生产周期', title: '生产周期', width: 150 });
            columns.push({ field: '最迟开工日期', title: '最迟开工日期', width: 150, templet: "<div>{{d.最迟开工日期 =='' ?'':layui.util.toDateString(d.最迟开工日期, 'yyyy-MM-dd')}}</div>" });
            columns.push({ field: '最迟完工日期', title: '最迟完工日期', width: 150, templet: "<div>{{d.最迟完工日期 =='' ?'':layui.util.toDateString(d.最迟完工日期, 'yyyy-MM-dd')}}</div>"});
            columns.push({ field: '源单主内码', title: '源单主内码', width: 150 });
            columns.push({ field: '源单子内码', title: '源单子内码', width: 150 });
            columns.push({ field: 'hmainid', title: '日计划工单主码', width: 150 });
            columns.push({ field: '电压/功率/底板', title: '电压/功率/底板', width: 150 });
            columns.push({ field: '计量单位', title: '计量单位', width: 150 });
            columns.push({ field: '订单类型', title: '订单类型', width: 150, sort: true });
            columns.push({ field: '生产订单单据类型', title: '源单订单单据类型', width: 150, sort: true });
            columns.push({ field: '业务状态', title: '业务状态', width: 150, sort: true });
            columns.push({ field: '产线入库数量', title: '产线入库数量', width: 150, sort: true });
            columns.push({ field: '未排数量', title: '可排数量', width: 150, sort: true });
            columns.push({ field: '订单等级', title: '订单等级', width: 150, sort: true });
            columns.push({ field: '订单交货期', title: '订单交货期', width: 150, templet: "<div>{{d.订单交货期 =='1900-01-01' ?'':layui.util.toDateString(d.订单交货期, 'yyyy-MM-dd')}}</div>", sort: true });
            columns.push({ field: '订单需求数量', title: '订单需求数量', width: 150, sort: true });
            columns.push({ field: '开工余量', title: '开工余量', width: 150, sort: true });
            columns.push({ field: '生产周期', title: '生产周期', width: 150, sort: true });
            columns.push({ field: '最迟开工日期', title: '最迟开工日期', width: 150, templet: "<div>{{d.最迟开工日期 =='' ?'':layui.util.toDateString(d.最迟开工日期, 'yyyy-MM-dd')}}</div>", sort: true });
            columns.push({ field: '最迟完工日期', title: '最迟完工日期', width: 150, templet: "<div>{{d.最迟完工日期 =='' ?'':layui.util.toDateString(d.最迟完工日期, 'yyyy-MM-dd')}}</div>", sort: true });
            columns.push({ field: '生产车间', title: '生产车间', width: 150 });
            columns.push({ field: '源单主内码', title: '源单主内码', width: 150, sort: true });
            columns.push({ field: '源单子内码', title: '源单子内码', width: 150, sort: true });
            columns.push({ field: 'hmainid', title: '日计划工单主码', width: 150, sort: true });
            columns.push({ field: '电压/功率/底板', title: '电压/功率/底板', width: 150, sort: true });
            columns.push({ field: '计量单位', title: '计量单位', width: 150, sort: true });
            columns.push({ field: '拆单数量', title: '拆单数量', width: 150 });//0
            columns.push({ field: '订单可排数量', title: '订单可排数量', width: 150 });
            columns.push({ field: '未入库数量', title: '未入库数量', width: 150 });//0
            columns.push({ field: 'HICMOInterID', title: 'HICMOInterID', width: 150, hide:true });
            columns.push({ field: 'HGroupID', title: 'HGroupID', width: 150, hide:true });
            columns.push({ field: 'HGroupName', title: 'HGroupName', width: 150, hide:true });
            columns.push({ field: 'HICMOInterID', title: 'HICMOInterID', width: 150, hide: true });
            columns.push({ field: 'HGroupID', title: 'HGroupID', width: 150, hide: true });
            columns.push({ field: 'HGroupName', title: 'HGroupName', width: 150, hide: true });
            columns.push({ field: '生产资源代码', title: '生产资源代码', width: 150, hide: true });
            columns.push({ field: 'HSourceID', title: 'HSourceID', hide: true });
            columns.push({ field: 'HMaterID', title: 'HMaterID', hide: true });
            columns.push({ field: 'HWorkShopID', title: 'HWorkShopID', hide: true });
            columns.push({ field: 'HUnitID', title: 'HUnitID', hide: true });
            columns.push({ field: 'HProdORGID', title: 'HProdORGID', hide: true });
            columns.push({ field: 'HEmpID', title: 'HEmpID', hide: true });
            columns.push({ field: '拆单汇报数量', title: '拆单汇报数量', width: 150, edit: 'text', sort: true });
            columns.push({ fixed: 'right', title: '操作', toolbar: '#barDemo' });
            option_columns = columns;
            option = {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
@@ -752,28 +1058,64 @@
                , cellMinWidth: 90
                , cols: [columns]
                , limit: Number.MAX_VALUE//默认显示全部
                //, done: function (res, page, count) {
                //    var that = this.elem.next();
                //    res.data.forEach(function (item, index) {
                //        var NumCount = item.FBASEQTY;//获取总库存数量
                //        for (var i = 0; i < Days; i++) {
                //            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;//即时库存与日期挨着  ä»Žå³æ—¶åº“存开始算
                //                    tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
                //                    rq = tr.children()[num + 1 + i];
                //                    rq.style.color = '#f66161';//然后变色
                //                    rq = tr.children()[num];
                //                    rq.style.color = '#f66161';//然后变色
                //                }
                //            }
                //        }
                //    });
                //    $('.layui-table-cell').css({ 'height': 'auto' });
                //}
                , done: function (res, page, count) {
                    soulTable.render(this);
                    $('.layui-table thead').on('click', 'th', function () {
                        // èŽ·å–ç‚¹å‡»çš„è¡¨å¤´çš„ field å€¼
                        var field = $(this).data('field');
                        set_InitGrid1(field);
                        sWhere = {
                            HORGID: sessionStorage["OrganizationID"]
                            , HBEGINDATE: field
                            , HENDDATE: field
                        }
                        get_Display_3(JSON.stringify(sWhere));
                    });
                    //res.data.forEach(function (item, index) {
                    //    if (data1.data.DataColor != undefined) {
                    //        var sj = data1.data.DataColor;
                    //        //禁用复选框,设置不可选中标识,将该行设置为阴影色
                    //        var tr = $(".layui-table tr[data-index=" + index + "]");
                    //        var td = tr.children('td'); //获取tr下所有的td
                    //        if (sj.length > index) {
                    //            for (var i = 1; i < td.length; i++) {
                    //                var title = option.cols[0][i].field;
                    //                if (sj[index][title] != "" && sj[index][title] != null) {
                    //                    td.eq(i).css("background-color", sj[index][title]);
                    //                }
                    //            }
                    //        }
                    //    }
                    //})
                }
            }
        }
        //缺料分析表格数据
        function set_InitGrid1(field) {
            var columns = [];
            columns.push({ field: 'HOrgName', title: '采购组织', sort: true });
            columns.push({ field: 'FNUMBER', title: '物料编码', sort: true });
            columns.push({ field: 'HMaterName', title: '物料名称', sort: true });
            columns.push({ field: 'HMaterModel', title: '物料规格', sort: true });
            columns.push({ field: '在途数量', title: '在途数量', totalRow: true });
            columns.push({ field: 'CountHQty', title: '合计', sort: true });
            columns.push({ field: 'FBASEQTY', title: '即时库存数量', sort: true, totalRow: true });
            columns.push({ field: Format(field, 'yyyy-MM-dd'), title: Format(field, 'MM.dd'), width: 70 })
            option_columns = columns;
            option3 = {
                elem: '#mainTable_Material'
                , toolbar: '#toolbarDemo3'
                , height: 'full-120'
                , page: false
                , cellMinWidth: 90
                , cols: [columns]
                , limit: Number.MAX_VALUE//默认显示全部
                , done: function (res, page, count) {
                    soulTable.render(this);
                }
            };
        }
@@ -788,7 +1130,7 @@
                success: function (data1) {
                    if (data1.count == 1) {
                        option.data = data1.data;
                        table.render(option);
                        ins = table.render(option);
                        var HinterID_S = [];
                        for (var i = 0; i < data1.data.length; i++) {
                            HinterID_S.push(data1.data[i]["hmainid"]);
@@ -937,8 +1279,33 @@
            });
        }
        //查询  è¡¨æ ¼æ•°æ®  ç¼ºæ–™åˆ†æž
        function get_Display_3(sWhere) {
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHDateTimeList',
                type: "GET",
                async: false,
                data: { "sWhere": sWhere },
                success: function (result) {
                    if (result.count == 1) {
                        option3.data = result.data;
                        table.render(option3);
                        layer.close(ajaxLoad);
                        //layer.alert("查询成功", { icon: 1 });
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(result.code + result.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //数量标记颜色
        function DayColor(DaySate, DayHQty) {
        function DayColor(DaySate, DayHQty,Data,NowData) {
            if (DaySate == "齐套" || DaySate == "未齐套") {
                if (DaySate == "齐套") {
                    return "<span style='color:green;'>" + DayHQty + "</span>";
@@ -950,6 +1317,9 @@
                if (DayHQty == null) {
                    return "<span></span>";
                } else {
                    if (Data[NowData] > 0 && Data[NowData] != null && Data[NowData] != "" && Date.parse(Data["计划结束日期"]) < Date.parse(NowData)) {
                        return "<span style='background-color:#f48888;width:100%;display: inline-block;'>" + DayHQty + "</span>";
                    }
                    return "<span>" + DayHQty + "</span>";
                }
            }
@@ -979,7 +1349,7 @@
                , area: ['90%', '90%']//大小
                , title: '物料列表'//标题
                , shift: 2//弹出动画
                , content: ['../../Baseset/基础资料/Gy_MaterialList.html', 'yes']
                , content: ['../../基础资料/公用基础资料/Gy_Material.html', 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
@@ -989,9 +1359,9 @@
                    }
                    //获取数据
                    $("#HMaterID").val(checkStatus.data[0].HItemID);
                    $("#HMaterNumber").val(checkStatus.data[0].HNumber);
                    $("#HMaterName").val(checkStatus.data[0].HName);
                    $("#HMaterModel").val(checkStatus.data[0].HModel);
                    $("#HMaterNumber").val(checkStatus.data[0].物料代码);
                    $("#HMaterName").val(checkStatus.data[0].物料名称);
                    $("#HMaterModel").val(checkStatus.data[0].规格型号);
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
@@ -1073,6 +1443,12 @@
            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();
            var sWheres = "";
            if (ColName != 0 && Comparator != 0) {
@@ -1097,6 +1473,48 @@
                sWheres += " 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;
            }
            sWhere = {
                HPlanBeginDate: HPlanBeginDate
                , HProdORGID: HProdORGID
@@ -1110,6 +1528,35 @@
            }
            get_Display(JSON.stringify(sWhere));
            sWhere = ""//调用接口后清空sWhere缓存
        }
        //快速过滤
        function get_FastQuery_ICMO(number) {
            var HDate = $("#HBeginDate").val();//开始日期
            var HDate1 = $("#HEndDate").val();//结束日期
            var HDeptName_ICMO = $("#HDeptName_ICMO").val();//生产车间
            var HMaterName_ICMO = $("#HMaterName_ICMO").val();//物料名称
            var HICMOBillNo_ICMO = $("#HICMOBillNo_ICMO").val(); //生产订单
            if (HDate) {
                sWhere_ICMO += " and CONVERT(varchar(100),日期, 23) >= '" + HDate + "'";
            }
            if (HDate1) {
                sWhere_ICMO += " and CONVERT(varchar(100),日期, 23) <= '" + HDate1 + "'";
            }
            if (HDeptName_ICMO) {
                sWhere_ICMO += " and ç”Ÿäº§è½¦é—´ like '%" + HDeptName_ICMO + "%'";
            }
            if (HMaterName_ICMO) {
                sWhere_ICMO += " and concat(产品代码,产品名称,规格型号) like '%" + HMaterName_ICMO + "%'";
            }
            if (HICMOBillNo_ICMO) {
                sWhere_ICMO += " and å•据号 like '%" + HICMOBillNo_ICMO + "%'";
            }
            get_Display2(sWhere_ICMO);
            sWhere_ICMO = ""//调用接口后清空sWhere缓存
        }
        //双击跳转齐套分析明细表
@@ -1151,8 +1598,27 @@
            $("#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 = "";
        }
        //重置
        function set_ClearQuery_ICMO() {
            //$("#HPlanBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));//开工起始日期
            //$("#HPlanEndDate").val(Format(new Date(), "yyyy-MM-dd"));//开工截止日期
            $("#HDeptName_ICMO").val("");//生产车间
            $("#HMaterName_ICMO").val("");//物料名称
            $("#HICMOBillNo_ICMO").val(""); //生产订单
            form.render('select');
            sWhere_ICMO = "";
        }
        //齐套分析
@@ -1216,7 +1682,7 @@
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        }
        //生产订单选单
        function get_btnICMOBill() {
@@ -1261,8 +1727,12 @@
                if (isNaN(data[i]["HICMOInterID"])) {
                    return layer.msg("请先进行保存!!")
                }
                HICOMNum.push(data[i]["HICMOInterID"] + ";" + data[i]["HICMOEntryID"]);
                if (isNaN(data[i]["HSourceID"])) {
                    return layer.msg("选择生产资源!!")
                }
                HICOMNum.push(data[i]["HICMOInterID"] + ";" + data[i]["HICMOEntryID"] + ";" + data[i]["HSourceID"]);
            }
            $('#HProgressBar').html(`
    <div class="layui-progress" lay-filter="demo-filter-progress">
      <div class="layui-progress-bar" lay-percent="40%"></div>
@@ -1273,7 +1743,7 @@
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/ReadyData',
                type: "GET",
                data: { "HICOMNum": HICOMNum.toString() },
                data: { "SWhere": HICOMNum.toString() },
                success: function (data1) {
                    if (data1.count == 1) {
                        for (var i = 0; i < data1.data.length; i++) {
@@ -1323,7 +1793,14 @@
                        $('#HProgressBar').html('')
                        table.render(option);
                        set_Priority();
                        data = table.cache["mainTable"];
                        for (var i = 0; i < data.length; i++) {
                            if (parseFloat(data[i]["小时产能"]) == 0 || parseFloat(data[i]["小时产能"]) == null || parseFloat(data[i]["小时产能"]) == undefined) {
                                return layer.alert("第" + (i + 1) + '行,小时产能未设置,请核对数据。' + '</br>' + '1.物料未添加工艺路线' + '</br>' + '2.工艺路线中未设置小时产能' + '</br>' + '3.生产资源未设置单班工时' + '</br>' + '4.生产资源中绑定工作中心与工艺路线中设置的工作中心不一致');
                            }
                        }
                    } else {
                        //layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
@@ -1335,6 +1812,51 @@
            });
        }
        //工艺路线编辑
        function get_btnRoutEdit() {
            var CheckStatus = table.checkStatus("mainTable");
            if (CheckStatus.data.length == 1) {
                var HSouceID = CheckStatus.data[0]["HSourceID"];
                var HMaterID = CheckStatus.data[0]["HMaterID"];
                var sWhere = "   select a.HInterID from Gy_RoutingBillMain a inner join Gy_RoutingBillSub b on a.HInterID = b.HInterID  and a.HStandard = 1 inner join Gy_Process p on b.HProcID = p.HItemID and HTProcessFlag = 0  inner join Gy_WorkCenter w on b.HCenterID = w.HItemID inner join(select HCenterID from Gy_Source where HItemID = " + HSouceID + ")s on s.HCenterID = w.HItemID where a.HMaterID = " + HMaterID;
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/Gy_SOPBillList/WindowPrintList", //方法所在页面和方法名
                    async: false,
                    data: { "sWhere": sWhere },
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            if (data.data.length == 0) {
                                return layer.msg("当前物料没有工艺路线!请查看物料所对应的工作中心是否正确!");
                            } else {
                                var HInterID = data.data[0]["HInterID"];
                                layer.open({
                                    type: 2
                                    , area: ['100%', '100%']
                                    , title: '工艺路线-编辑'
                                    , shift: 0//弹出动画
                                    , content: '../../计划管理/工艺路线/Gy_RoutingBill.html?OperationType=3&linterid=' + HInterID + '&HSouceBillType=3301'
                                    , end: function () {
                                        //刷新页面,
                                        //location.reload();
                                    }
                                })
                            }
                        }
                        else {
                            layer.msg(data.Message, { icon: 5 });
                        }
                        layer.closeAll("loading");
                    },
                    error: function (err) {
                        layer.msg("错误:" + err, { icon: 5 });
                    }
                });
            } else {
                return layer.msg("请选择一条数据进行工艺路线编辑");
            }
        }
        //排产
        function get_btnProPC(HWorkShopID) {
@@ -1366,6 +1888,7 @@
            var HDelData = 0;
            JDTLen = (100 / option.data.length).toFixed(2);
            var HJDLen = 0;
            var HReportQty = 0;
            //如果锁定计划,则不需要再排程
            //查询本车间是否有锁定计划的数据
@@ -1402,7 +1925,7 @@
                data: { "sWhere": sql },
                success: function (data1) {
                    if (data1.count == 1) {
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
@@ -1439,7 +1962,7 @@
                sICMOBillNo = option.data[i]["生产订单号"];
                dEndDate = Format(option.data[i]["最迟完工日期"], 'yyyy/MM/dd');
                sProdTimes = option.data[i]["生产周期"];
                sPlanQty = option.data[i]["订单可排数量"];
                sPlanQty = option.data[i]["拆单数量"];
                lHGroupID = option.data[i]["HGroupID"];
                sGroupName = option.data[i]["HGroupName"];
                lMaterID = option.data[i]["HMaterID"];
@@ -1448,11 +1971,13 @@
                sMaterModel = option.data[i]["规格型号"];
                sWorkQty = option.data[i]["小时产能"];
                sYX = option.data[i]["优先级"];
                HReportQty = option.data[i]["拆单汇报数量"];
                if (SDSum > 0) {
                    sPlanQty = sPlanQty - SDSum;
                    sPlanQty = sPlanQty - SDSum - HReportQty;
                }
                //剩余需求工时
                iLeftQty = sPlanQty;
                iLeftQty = sPlanQty - HReportQty;
                if (sWorkQty <= 0) {
                    sLeftProdTimes = 0;
                }
@@ -1513,7 +2038,7 @@
                }
                else {
                    $("tr[data-index='" + i + "']").attr({ "style": "background:White;color:black;" });
                    //开始排单
                    //开始排单
                    bFind = false;
                    //超交货期  ä»ç„¶æŽ’程
                    for (var j = 0; j < ds.length; j++) {
@@ -1692,6 +2217,9 @@
                TableData = option.data;
            } else {
                option.data[nums] = TableData[nums];
                if (nums == option.data.length-1) {
                    set_AddNew();
                }
            }
        }
@@ -1764,9 +2292,12 @@
                                        //}
                                    }
                                    else {
                                        if (sLeftQty > parseFloat(sWorkQty * ds[i]["最大剩余工时"])) {
                                            grd.data[iRow][grd.cols[0][j + HPlanDay].field] = parseFloat(sWorkQty * ds[i]["最大剩余工时"]);
                                            sLeftQty = sLeftQty - (parseFloat(sWorkQty * ds[i]["最大剩余工时"]));
                                        var dayWorkQty = sWorkQty * ds[i]["剩余工时"];
                                        var Numzu = dayWorkQty.split('.');
                                        dayWorkQty = Numzu[0] + 1;
                                        if (sLeftQty > dayWorkQty) {
                                            grd.data[iRow][grd.cols[0][j].field] = dayWorkQty;
                                            sLeftQty = sLeftQty - dayWorkQty;
                                            //oSub = new ClsGridValues();
                                            //oSub.iRow = iRow;
                                            //oSub.iCol = j;
@@ -1776,7 +2307,7 @@
                                            //oClsGridValues.Add(oSub);
                                        }
                                        else {
                                            grd.data[iRow][grd.cols[0][j + HPlanDay].field] = sLeftQty;
                                            grd.data[iRow][grd.cols[0][j + HPlanDay].field] =  Math.round(sLeftQty * 10) / 10;
                                            sLeftQty = 0;
                                            //oSub = new ClsGridValues();
                                            //oSub.iRow = iRow;
@@ -1857,9 +2388,16 @@
                                        //}
                                    }
                                    else {
                                        if (sLeftQty > parseFloat(sWorkQty * ds[i]["剩余工时"])) {
                                            grd.data[iRow][grd.cols[0][j].field] = parseFloat(sWorkQty * ds[i]["剩余工时"]);
                                            sLeftQty = sLeftQty - (parseFloat(sWorkQty * ds[i]["剩余工时"]));
                                        var dayWorkQty = sWorkQty * ds[i]["剩余工时"];
                                        var Numzu = dayWorkQty.toString().split(".");
                                        if (Numzu.length > 1) {
                                            dayWorkQty = parseInt(Numzu[0]) + 1;
                                        } else {
                                            dayWorkQty = parseInt(Numzu[0]);
                                        }
                                        if (sLeftQty > dayWorkQty) {
                                            grd.data[iRow][grd.cols[0][j].field] = dayWorkQty;
                                            sLeftQty = sLeftQty - dayWorkQty;
                                            //oSub = new ClsGridValues();
                                            //oSub.iRow = iRow;
                                            //oSub.iCol = j;
@@ -1870,7 +2408,7 @@
                                            //oClsGridValues.Add(oSub);
                                        }
                                        else {
                                            grd.data[iRow][grd.cols[0][j].field] = sLeftQty;
                                            grd.data[iRow][grd.cols[0][j].field] =  Math.round(sLeftQty * 10) / 10;
                                            //option.data[iRow]["HUseTimes"] = parseFloat(sLeftQty / sWorkQty);
                                            sLeftQty = 0;
                                            //oSub = new ClsGridValues();
@@ -1883,11 +2421,11 @@
                                        }
                                    }
                                }
                            }
                            }
                        }
                    }
                }
            }
        }
@@ -1924,6 +2462,27 @@
                        }
                        option.data = dataPush;
                        table.render(option);
                        //获取上方排产列表数据,用于对比下方生产订单列表,将下方生产订单列表相同的数据不显示
                        var compareList = [];
                        for (var i = 0; i < option.data.length; i++) {
                            var temp = option.data[i]["源单主内码"] + "|" + option.data[i]["源单子内码"];
                            compareList.push(temp);
                        }
                        //剔除上方排产列表中已经加入的生产订单
                        var tables = [];
                        for (var i = 0; i < option2.data.length; i++) {
                            var temp = option2.data[i]["hmainid"] + "|" + option2.data[i]["HEntryID"];
                            if ($.inArray(temp, compareList) == -1) {
                                tables.push(option2.data[i]);
                            }
                        }
                        option2.data = tables;
                        //重新渲染子表2
                        table.render(option2);
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
@@ -2075,7 +2634,7 @@
        function set_Priority() {
            var data = table.cache["mainTable"];
            for (var i = 0; i < data.length; i++) {
                data[i]["优先级"] = (i + 1);
                data[i]["优先级"] = ((i + 1) * 5);
            }
            option.data = data;
            table.render(option);
@@ -2083,7 +2642,143 @@
        //准备排序
        function set_ReadyAsc() {
            if (option.data.length != 0) {
                for (var i = 0; i < option.data.length - 1; i++) {
                    for (var j = 0; j < option.data.length - i - 1; j++) {
                        var tables = [];
                        //按照计划结束日期   ç”Ÿäº§è®¢å•号  ç”Ÿäº§è®¢å•明细行号的顺序去排
                        if (option.data[j]["计划结束日期"] > option.data[j + 1]["计划结束日期"]) {
                            tables.push(option.data[j + 1]);
                            option.data[j + 1] = option.data[j];
                            option.data[j] = tables[0];
                        } else if (option.data[j]["计划结束日期"] == option.data[j + 1]["计划结束日期"]) {
                            if (option.data[j]["生产订单号"] > option.data[j + 1]["生产订单号"]) {
                                tables.push(option.data[j + 1]);
                                option.data[j + 1] = option.data[j];
                                option.data[j] = tables[0];
                            } else if (option.data[j]["生产订单号"] == option.data[j + 1]["生产订单号"]) {
                                if (option.data[j]["生产订单明细行号"] > option.data[j + 1]["生产订单明细行号"]) {
                                    tables.push(option.data[j + 1]);
                                    option.data[j + 1] = option.data[j];
                                    option.data[j] = tables[0];
                                }
                            }
                        }
                    }
                }
                table.render(option);
            }
            else {
                return layer.msg("无数据!")
            }
        }
        //选产线
        function set_Souce(data) {
            //data1.data[j]["源单主内码"] == dataPush[i]["源单主内码"] && data1.data[j]["源单子内码"] == dataPush[i]["源单子内码"]
            if (data != 0) {
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "生产资源列表"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["90%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ["../../基础资料/生产基础资料/Gy_Source.html?Htype=生产线", "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //按钮一  çš„回调
                        var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                        if (checkStatus.data.length != 1) {
                            return layer.msg("请选择一条数据");
                        }
                        OptionData[0] = checkStatus.data[0];
                        layer.close(index);//关闭弹窗
                    }
                    , end: function () {
                        if (OptionData.length > 0) {
                            var num = 0;
                            for (var i = 0; i < option.data.length; i++) {
                                if (num >= data.length) {
                                    break;
                                }
                                if (option.data[i]["LAY_CHECKED"] == true) {
                                    option.data[i]["HSourceID"] = OptionData[0].HItemID;
                                    option.data[i]["生产资源"] = OptionData[0].生产资源名称;
                                    num += 1;
                                }
                            }
                            table.render(option);
                        }
                        //obj.update({
                        //    "HSourceID": OptionData.HItemID
                        //    , "生产资源": OptionData.生产资源名称
                        //})
                    }
                })
            }
            else {
                return layer.msg("请选择数据!")
            }
        }
        //选操作工
        function set_Emp(data) {
            if (data != 0) {
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "职员列表"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["90%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ["../../基础资料/公用基础资料/Gy_EmployeeList.html?Htype=HEmp", "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //按钮一  çš„回调
                        var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                        if (checkStatus.data.length != 1) {
                            return layer.msg("请选择一条数据");
                        }
                        OptionData_Emp[0] = checkStatus.data[0];
                        layer.close(index);//关闭弹窗
                    }
                    , end: function () {
                        if (OptionData_Emp.length > 0) {
                            var num = 0;
                            for (var i = 0; i < option.data.length; i++) {
                                if (num >= data.length) {
                                    break;
                                }
                                if (option.data[i]["LAY_CHECKED"] == true) {
                                    option.data[i]["HEmpID"] = OptionData_Emp[0].HItemID;
                                    option.data[i]["操作工"] = OptionData_Emp[0].职员名称;
                                    num += 1;
                                }
                            }
                            table.render(option);
                        }
                    }
                })
            }
            else {
                return layer.msg("请选择数据!")
            }
        }
        //保存
@@ -2093,8 +2788,11 @@
            var num = [];
            for (var i = 0; i < table.cache["mainTable"].length; i++) {
                if (table.cache["mainTable"][i] != "") {
                    if (parseFloat(table.cache["mainTable"][i]["订单可排数量"]) < parseFloat(table.cache["mainTable"][i]["日计划数量总量"]) + parseFloat(table.cache["mainTable"][i]["今日之前日计划数量"])) {
                        return layer.msg("第" + (i + 1) + "行排产数量超出订单数量!");
                    if (parseFloat(table.cache["mainTable"][i]["拆单数量"]) == 0) {
                        return layer.msg("第" + (i + 1) + "行,拆产数量有误,请重新输入!");
                    }
                    if (parseFloat(table.cache["mainTable"][i]["拆单数量"]) - parseFloat(table.cache["mainTable"][i]["拆单汇报数量"]) < parseFloat(table.cache["mainTable"][i]["日计划数量总量"])) { // - å·²æ±‡æŠ¥æ•°é‡
                        return layer.msg("第" + (i + 1) + "行,排产数量超出订单数量!");
                    }
                    table.cache["mainTable"][i].LAY_TABLE_INDEX = i;
                    num.push(table.cache["mainTable"][i])
@@ -2179,7 +2877,7 @@
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ["../../基础资料/生产基础资料/Gy_Source.html", "yes"]
                            , content: ["../../基础资料/生产基础资料/Gy_Source.html?Htype=生产线", "yes"]
                            , btn: ["确定", "取消"]
                            , btn1: function (index, laero) {
                                //按钮一  çš„回调
@@ -2189,7 +2887,7 @@
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                OptionData = checkStatus.data[0];
                                OptionData[0] = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": checkStatus.data[0].HItemID
@@ -2198,17 +2896,101 @@
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                if (OptionData.length > 0) {
                                    obj.update({
                                        "HSourceID": OptionData[0].HItemID
                                        , "生产资源": OptionData[0].生产资源名称
                                    })
                                    OptionData = [];
                                }
                            }
                        })
                    }
                    //操作工
                    if (obj.event == "HEmpID") {
                        layer.open({
                            type: 2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "员工列表"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ["../../基础资料/公用基础资料/Gy_EmployeeList.html?Htype=HEmp", "yes"]
                            , btn: ["确定", "取消"]
                            , btn1: function (index, laero) {
                                //按钮一  çš„回调
                                var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                OptionData_Emp[0] = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": OptionData.HItemID
                                    , "生产资源": OptionData.生产资源名称
                                    "HEmpID": checkStatus.data[0].HItemID
                                    , "操作工": checkStatus.data[0].职员名称
                                })
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                if (OptionData_Emp.length > 0) {
                                    obj.update({
                                        "HEmpID": OptionData_Emp[0].HItemID
                                        , "操作工": OptionData_Emp[0].职员名称
                                    })
                                    OptionData_Emp = [];
                                }
                            }
                        })
                    }
                    obj.event = "";
                    return false;
                } else if (event.key == "F8") {
                    //生产资源
                    if (obj.event == "HSourceID") {
                        layer.open({
                            type: 2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "生产资源列表"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ["../../Baseset/基础资料/Gy_Source.html?HMaterID=" + obj.data["HMaterID"], "yes"]
                            , btn: ["确定", "取消"]
                            , btn1: function (index, laero) {
                                //按钮一  çš„回调
                                var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                OptionData[0] = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": checkStatus.data[0].HItemID
                                    , "生产资源": checkStatus.data[0].HName
                                })
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                if (OptionData.length > 0) {
                                    obj.update({
                                        "HSourceID": OptionData[0].HItemID
                                        , "生产资源": OptionData[0].HName
                                    })
                                    OptionData = [];
                                }
                            }
                        })
                    }
                    obj.event = "";
                    return false;
                }
            })
        }
@@ -2269,6 +3051,262 @@
            }
        }
        //查询未排产的生产订单
        function get_Display2(sWhere_ICMO) {
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/Sc_ICMOBill/NotInDayPlan',
                type: "GET",
                data: { "sWhere": sWhere_ICMO, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = [];
                        var col = [];
                        //给空的数组赋值
                        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' });
                        for (var i = 0; i < data.length; i++) {
                            // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                            if ($.inArray(data[i].name, titleData_ICMO) > -1) {
                                col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                            }
                            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 + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 120 });
                                        break;
                                    default:
                                        col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 120 });
                                }
                            }
                        }
                        //动态显示列名
                        option2 = {
                            elem: '#mainTable_ICMO'
                            , toolbar: '#toolbarDemo2'
                            , cols: [col]
                            , data: data1.data
                            , height: 400
                            , page: true
                            , limits: [200, 500, 5000, 20000]
                            , limit: 200
                            , cellMinWidth: 90
                        }
                        table.render(option2);
                        //刷新表格数据
                        DisPlay_HideColumn_ICMO();
                        //获取上方排产列表数据,用于对比下方生产订单列表,将下方生产订单列表相同的数据不显示
                        var compareList = [];
                        for (var i = 0; i < option.data.length; i++) {
                            var temp = option.data[i]["源单主内码"] + "|" + option.data[i]["源单子内码"];
                            compareList.push(temp);
                        }
                        //剔除上方排产列表中已经加入的生产订单
                        var tables = [];
                        for (var i = 0; i < option2.data.length; i++) {
                            var temp = option2.data[i]["hmainid"] + "|" + option2.data[i]["HEntryID"];
                            if ($.inArray(temp, compareList) == -1) {
                                tables.push(option2.data[i]);
                            }
                        }
                        option2.data = tables;
                        //重新渲染子表2
                        table.render(option2);
                        layer.close(ajaxLoad);
                        //if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
                        //    ColFilter();
                        //}
                        //layer.alert("查询成功", { icon: 1 });
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //查看工艺路线
        function set_Routing() {
            var checkStatus = table.checkStatus('mainTable');
            var ajaxLoad = layer.load();
            if (checkStatus.data.length != 1) {
                layer.alert("请选择一条数据!");
            } else {
                var TabData = checkStatus.data;
                var HMaterID = TabData[0].HMaterID;
                var HMaterNumber = TabData[0].物料代码;
                var HMaterName = TabData[0].物料名称;
                var HMaterModel = TabData[0].规格型号;
                var HRoutingInterID = 0;//工艺路线主内码
                var HStandardQty = 0; //物料默认工艺路线数量
                //根据物料ID æŸ¥è¯¢å½“前物料是否存在 é»˜è®¤çš„工艺路线
                $.ajax({
                    url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/GetRoutingListByMater',
                    type: "GET",
                    data: { "HMaterID": HMaterID, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = data1.data
                            //获取当前选择物料的默认工艺路线 ä¸»å†…码
                            for (let i = 0; i < data.length; i++) {
                                if (data[i].HStandard == 1) {
                                    HRoutingInterID = data[i].HInterID;
                                    HStandardQty++;
                                }
                            }
                            if (HStandardQty > 1) {
                                layer.alert("当前物料存在多个默认工艺路线,请进行调整");
                            } else if (HStandardQty == 0) {
                                layer.alert("当前物料没有设置默认工艺路线,请前往工艺路线维护页面设置默认工艺路线");
                            } else if (HStandardQty == 1) {
                                layer.open({
                                    type: 2
                                    , area: ['100%', '100%']
                                    , title: '工艺路线-编辑'
                                    , shift: 0//弹出动画
                                    , content: '../../计划管理/工艺路线/Gy_RoutingBill.html?OperationType=3&linterid=' + HRoutingInterID + '&HSouceBillType=4610&IsHavingPermissions=' + data1.IsHavingPermissions
                                    , end: function () {
                                        //刷新页面,
                                        location.reload();
                                    }
                                })
                            }
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
                            //当前用户有新增页面
                            if (data1.IsHavingPermissions == 1) {
                                layer.confirm('当前物料没有设置工艺路线,是否跳转至工艺路线新增页面?', function (index) {
                                    layer.open({
                                        type: 2
                                        , area: ['100%', '100%']
                                        , title: '工艺路线-编辑'
                                        , shift: 0//弹出动画
                                        , content: '../../计划管理/工艺路线/Gy_RoutingBill.html?OperationType=1&linterid=' + HRoutingInterID + '&HSouceBillType=4610&HMaterID='+ HMaterID + '&HMaterNumber=' + HMaterNumber + '&HMaterName=' + HMaterName + '&HMaterModel=' + HMaterModel
                                        , end: function () {
                                            //刷新页面,
                                            location.reload();
                                        }
                                    })
                                });
                            } else {
                                layer.alert(data1.code + data1.Message, { icon: 5 });
                            }
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
        }
        //设置工厂日历
        function set_Calendar() {
            layer.open({
                type: 2
                , area: ['100%', '100%']
                , title: '工厂日历'
                , shift: 0//弹出动画
                , content: '../../生产管理/生产计划平台/Sc_ShopCalendar.html?OperationType=3'
                , end: function () {
                    //刷新页面,
                    location.reload();
                }
            })
        }
        function get_Export() {
            var data = option.data
            data.forEach((item) => {
                // å¦‚果某个字段的值太长,需要去除换行符
                if (item.规格型号.length > 0) {  // å‡è®¾å­—段名为field
                    item.规格型号 = item.规格型号.replace(/[\r\n]+/g, '');  // å°†æ¢è¡Œç¬¦æ›¿æ¢ä¸ºç©ºå­—符串
                    item.规格型号 = item.规格型号.replace(/[,]+/g, ',');  // å°†æ¢åˆ†å·æ›¿æ¢ä¸ºç©ºå­—符串
                }
            });
            table.exportFile(ins.config.id, data, "xls");
        }
        //排产功能
        function set_Arrangement() {
            var checkStatus = table.checkStatus('mainTable_ICMO')
                , data = checkStatus.data;
            if (checkStatus.data.length > 0) {
                //var arr_field = [];
                ////获取已排订单列表字段
                //for (let i = 0; i < option_columns.length; i++) {
                //    if (option_columns[i].field != undefined && option_columns[i].field != null) {
                //        arr_field.push(option_columns[i].field);
                //    }
                //}
                //把已排订单列表字段存入obj对象中,以便给字段赋值
                //var obj = {};
                //for (let i = 0; i < arr_field.length; i++) {
                //    var key = arr_field[i];
                //    var value = '';
                //    obj[key] = value;
                //}
                //获取勾选上的待排生产订单
                //获取数据
                var hmainid = [];
                //var HEntryID = [];
                for (var i = 0; i < checkStatus.data.length; i++) {
                    if ($.inArray(checkStatus.data[i]["hmainid"] + '_' + checkStatus.data[i]["HEntryID"], hmainid) == -1) {
                        hmainid.push(checkStatus.data[i]["hmainid"] + '_' + checkStatus.data[i]["HEntryID"]);
                    }
                }
                //查询生产订单
                SelectICMOBill(hmainid);
                //var wait = layer.load();
                ////逻辑方法
                //$.ajax({
                //    url: GetWEBURL() + '/LEMS/ProcessExchangeArrangement_Add',
                //    type: "GET",
                //    data: { "HInterID_S": HInterID_S.toString(), "HSourceID": DataSourceID, "HOrgID": sessionStorage["OrganizationID"], "user": sessionStorage["HUserName"] },
                //    success: function (result) {
                //        if (result.count == 1) {
                //            layer.msg(result.Message, { icon: 1 }, function () {
                //                // å¾—到frame索引
                //                var index = layer.getFrameIndex(window.name);
                //                //关闭当前frame
                //                layer.close(wait);
                //                get_Display("  and HSourceID=" + DataSourceID);
                //                //修改为功后刷新界面
                //                get_FastQuery();
                //            });
                //        } else {
                //            layer.alert(result.code + result.Message, { icon: 5 });
                //            layer.close(wait);
                //        }
                //    }, error: function () {
                //        layer.alert("接口请求失败!", { icon: 5 });
                //        layer.close(wait);
                //    }
                //});
            }
            else {
                layer.msg('请选择数据!');
            }
        }
        //隐藏列设置
        function get_HideColumn() {
            var colName = "";
@@ -2320,7 +3358,9 @@
                        dataCol = data1.data[0].HGridString.split(',');
                        for (var i = 0; i < option.cols[0].length - 2; i++) {
                            var dataCols = dataCol[i].split('|');
                            if (dataCol[i]) {
                                var dataCols = dataCol[i].split('|');
                            }
                            //隐藏列
                            if (dataCols[1] == 1) {
                                option.cols[0][i + 1]["hide"] = true;
@@ -2387,6 +3427,223 @@
            })
        }
        function get_HideColumn_ICMO() {
            var colName = "";
            var contentUrl = "";
            for (var i = 1; i < option2.cols[0].length; i++) {
                colName += option2.cols[0][i]["title"] + ",";
            }
            var urlStr = window.document.location.pathname;//获取文件路径
            var urlLen = urlStr.split('/');
            for (var i = 0; i < urlLen.length - 4; i++) {
                contentUrl += "../";
            }
            colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
            contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + "Main" + '&colName=' + colName;
            layer.open({
                type: 2
                , skin: "layui-layer-rim" //加上边框
                , title: "隐藏列设置"  //标题
                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                , shift: 2 //弹出动画
                , area: ["50%", "90%"] //窗体大小
                , maxmin: true //设置最大最小按钮是否显示
                , content: [contentUrl, "yes"]
                , btn: ["确定", "取消"]
                , btn1: function (index, laero) {
                    //刷新表格数据
                    DisPlay_HideColumn_ICMO();
                    //更新表格缓存的数据
                    layer.close(index);//关闭弹窗
                }
            })
        }
        function DisPlay_HideColumn_ICMO() {
            $.ajax({
                url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                type: "GET",
                data: { "HModName": HModName + "Main", "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.data.length != 0) {
                        var dataCol = [];//数据库查询出的列数据
                        /* var titleData_ICMO = ["单据ID", "HMouldID", "hsubid", "HManagerID", "源单主内码", "源单子内码"];//不需要显示的字段 å¯æ‰©å±•*/
                        dataCol = data1.data[0].HGridString.split(',');
                        for (var i = 0; i < option2.cols[0].length - 1; i++) {
                            if (dataCol[i]) {
                                var dataCols = dataCol[i].split('|');
                            }
                            //隐藏列
                            if (dataCols[1] == 1) {
                                option2.cols[0][i + 1]["hide"] = true;
                            }
                            //设置列宽
                            if (dataCols[3] > 0) {
                                option2.cols[0][i + 1]["width"] = dataCols[3];
                            }
                            //设置内容字体大小
                            if (data1.data[0].HFontSize != 0) {
                                option2.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                            } else {
                                option2.cols[0][i + 1]["style"] = "font-size:100%";
                            }
                            //设置列宽
                            //if (data1.data[0].HColumnWidth != 0) {
                            //    option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
                            //} else {
                            //    option.cols[0][i + 1]["width"] = "";
                            //}
                            //显示列
                            if (dataCols[1] == 0 && $.inArray(option2.cols[0][i + 1]["title"], titleData_ICMO) == -1) {
                                option2.cols[0][i + 1]["hide"] = false;
                            }
                            //字体所在位置(å·¦ å±…中 å³)
                            switch (dataCols[2]) {
                                case "L":
                                    option2.cols[0][i + 1]["align"] = "left";
                                    break;
                                case "M":
                                    option2.cols[0][i + 1]["align"] = "center";
                                    break;
                                case "R":
                                    option2.cols[0][i + 1]["align"] = "right";
                                    break;
                            }
                        }
                        //取消冻结列
                        for (var i = 1; i < option2.cols[0].length - 1; i++) {
                            if (option2.cols[0][i]["fixed"] != null) {
                                option2.cols[0][i]["fixed"] = null;
                            }
                            else {
                                break;
                            }
                        }
                        //冻结列
                        if (data1.data[0].HFixCols != 0) {
                            for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                if ($.inArray(option2.cols[0][i + 1]["title"], titleData_ICMO) != -1) {
                                    data1.data[0].HFixCols += 1;
                                }
                                option2.cols[0][i + 1]["fixed"] = "left";
                            }
                        }
                        table.render(option2);
                    } else {
                        table.render(option2);
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            })
        }
        function get_HideColumn_Material() {
            var colName = "";
            var contentUrl = "";
            for (var i = 1; i < option3.cols[0].length; i++) {
                colName += option3.cols[0][i]["title"] + ",";
            }
            var urlStr = window.document.location.pathname;//获取文件路径
            var urlLen = urlStr.split('/');
            for (var i = 0; i < urlLen.length - 4; i++) {
                contentUrl += "../";
            }
            colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
            contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + "Main" + '&colName=' + colName;
            layer.open({
                type: 2
                , skin: "layui-layer-rim" //加上边框
                , title: "隐藏列设置"  //标题
                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                , shift: 2 //弹出动画
                , area: ["50%", "90%"] //窗体大小
                , maxmin: true //设置最大最小按钮是否显示
                , content: [contentUrl, "yes"]
                , btn: ["确定", "取消"]
                , btn1: function (index, laero) {
                    //刷新表格数据
                    DisPlay_HideColumn_Material();
                    //更新表格缓存的数据
                    layer.close(index);//关闭弹窗
                }
            })
        }
        function DisPlay_HideColumn_Material() {
            $.ajax({
                url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                type: "GET",
                data: { "HModName": HModName + "Main", "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.data.length != 0) {
                        var dataCol = [];//数据库查询出的列数据
                        dataCol = data1.data[0].HGridString.split(',');
                        for (var i = 0; i < option3.cols[0].length - 1; i++) {
                            if (dataCol[i]) {
                                var dataCols = dataCol[i].split('|');
                            }
                            //隐藏列
                            if (dataCols[1] == 1) {
                                option3.cols[0][i + 1]["hide"] = true;
                            }
                            //设置列宽
                            if (dataCols[3] > 0) {
                                option3.cols[0][i + 1]["width"] = dataCols[3];
                            }
                            //设置内容字体大小
                            if (data1.data[0].HFontSize != 0) {
                                option3.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                            } else {
                                option3.cols[0][i + 1]["style"] = "font-size:100%";
                            }
                            //字体所在位置(å·¦ å±…中 å³)
                            switch (dataCols[2]) {
                                case "L":
                                    option3.cols[0][i + 1]["align"] = "left";
                                    break;
                                case "M":
                                    option3.cols[0][i + 1]["align"] = "center";
                                    break;
                                case "R":
                                    option3.cols[0][i + 1]["align"] = "right";
                                    break;
                            }
                        }
                        //取消冻结列
                        for (var i = 1; i < option3.cols[0].length - 1; i++) {
                            if (option3.cols[0][i]["fixed"] != null) {
                                option3.cols[0][i]["fixed"] = null;
                            }
                            else {
                                break;
                            }
                        }
                        table.render(option3);
                    } else {
                        table.render(option3);
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            })
        }
        //列明显示下拉框
        function ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
@@ -2396,7 +3653,9 @@
                }
            }
            $("#ColName").empty();
            $("#ColName").append(Organization);
            $("#ColName").append(Organization);$("#ColName1").empty();
            $("#ColName1").append(Organization);$("#ColName2").empty();
            $("#ColName2").append(Organization);
            form.render('select');
        }
        //#endregion
@@ -2407,4 +3666,10 @@
    function GetGySource(data) {
        OptionData = data
    }
    //双击返回操作工
    function GetHEmpValue(data) {
        OptionData_Emp = data
    }
</script>