yangle
2024-01-31 54ddbb9eba145dfdcee0c3d28bdd1a91aec34122
WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/JIT_DayPlanPlatForm.html
@@ -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">
@@ -21,6 +22,14 @@
                        <div style="padding: 10px; ">
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="ExcelImport" id="ExcelImport">Excel导入</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">保存</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnLock" id="btnLock">锁定</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnUnlock" id="btnUnlock">解锁</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnCompleteSetAnalysis" id="btnCompleteSetAnalysis">齐套分析</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnTLYS" id="btnTLYS">提料运算</button>
                            <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-colla-item">
@@ -36,17 +45,24 @@
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">生产订单组织</label>
                                    <label class="layui-form-label" style="width: 85px;">提料类型</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                        <select name="HProdORGID" id="HProdORGID" lay-verify="HProdORGID">
                                            <!--动态渲染组织-->
                                        <select name="HTLType" id="HTLType" lay-verify="HTLType">
                                            <option value="缺料" selected="selected">缺料</option>
                                            <option value="生产用料清单">生产用料清单</option>
                                            <!--<option value="采购订单">采购订单</option> æš‚时没有-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">销售订单号</label>
                                    <div class="layui-input-block" style="margin-left: 120px;">
                                        <input type="text" class="layui-input" name="HSeOrderBillNo" id="HSeOrderBillNo">
                                    <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">生产车间</label>
                                    <div class="layui-input-block" style="margin-left: 77px;">
                                        <input type="hidden" class="layui-input" lay-verify="HWorkShopID" name="HWorkShopID" id="HWorkShopID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <input type="text" class="layui-input" lay-verify="HWorkShopIDName" name="HWorkShopIDName" id="HWorkShopIDName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHWorkShopID" id="btnHWorkShopID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                        </button>
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">查询</button>
@@ -63,7 +79,7 @@
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">物料编码</label>
                                            <div class="layui-input-block" style="margin-left: 77px;">
                                                <input type="hidden" class="layui-input" lay-verify="HMaterID" name="HMaterID" id="HMaterID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="text" class="layui-input" lay-verify="HMaterNumber" name="HMaterNumber" id="HMaterNumber" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="text" class="layui-input" lay-verify="HMaterNumber" name="HMaterNumber" id="HMaterNumber" value="" style="width: 60%;display: inline-block;">
                                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHMaterID" id="btnHMaterID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                </button>
@@ -86,15 +102,14 @@
                                        <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" id="HMaterName" style="background-color:#efefef4d" readonly>
                                                <input type="text" class="layui-input" name="HMaterName" id="HMaterName">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">齐套类型</label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                                <select name="HOrderType" id="HOrderType" lay-verify="HOrderType">
                                                    <option value="全部">全部</option>
                                                    <option value="生产用料清单">生产用料清单</option>
                                                    <option value="生产用料清单" selected="selected">生产用料清单</option>
                                                    <option value="标准Bom">标准Bom</option>
                                                </select>
                                            </div>
@@ -104,36 +119,136 @@
                                        <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="HBillNo" id="HBillNo">
                                                <input type="text" class="layui-input" name="HLockedDay" id="HLockedDay" value="3">
                                            </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="HMaterModel" id="HMaterModel" style="background-color:#efefef4d" readonly>
                                                <input type="text" class="layui-input" name="HMaterModel" id="HMaterModel">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">生产车间</label>
                                            <div class="layui-input-block" style="margin-left: 77px;">
                                                <input type="hidden" class="layui-input" lay-verify="HWorkShopID" name="HWorkShopID" id="HWorkShopID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="text" class="layui-input" lay-verify="HWorkShopIDName" name="HWorkShopIDName" id="HWorkShopIDName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHWorkShopID" id="btnHWorkShopID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                </button>
                                            <label class="layui-form-label" style="width: 85px;">销售订单号</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HSeOrderBillNo" id="HSeOrderBillNo">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row" style="margin-top:10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">生产订单组织</label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                                <select name="HProdORGID" id="HProdORGID" lay-verify="HProdORGID">
                                                    <!--动态渲染组织-->
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">排产日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="date" class="layui-input" lay-verify="HMastersDate" name="HMastersDate" id="HMastersDate" style="padding-left: 75px;">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row" style="margin-top: 10px; margin-bottom: 10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator" id="Comparator" lay-filter="Comparator" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
                                                <option value=">">></option>
                                                <option value="<="><=</option>
                                                <option value="<"><</option>
                                                <option value="<>"><></option>
                                                <option value="7">包含</option>
                                                <option value="8">左包含</option>
                                                <option value="9">右包含</option>
                                                <option value="10">不包含</option>
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input" value="" name="ColContent" id="ColContent">
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                        <div id="HProgressBar"></div>
                        <div class="layui-row" style="padding:10px 0">
                            <table class="" id="mainTable" lay-filter="mainTable"></table>
                        </div>
                        <div class="layui-tab layui-tab-card" style="margin-top:40px;">
                            <ul class="layui-tab-title">
                                <li class="layui-this">生产订单</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>
                        </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_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="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_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>
                            </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>
                    </form>
@@ -143,15 +258,17 @@
    </div>
</body>
</html>
<script type="text/html" id="barDemo">
    <!--<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>-->
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    var treeCkData = { id: 0 };
    var TagId = "";
    var TagParentId = "";
    var OptionData = [];
    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'], function () {
        //#region å…¬ç”¨å˜é‡
        var $ = layui.$
@@ -161,11 +278,18 @@
            , form = layui.form
            , laydate = layui.laydate
            , excel = layui.excel
            , soulTable = layui.soulTable
            , element = layui.element;
        var sWhere = "";
        var sWhere_ICMO = "";
        var option = [];
        var option2 = [];
        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 è¿›å…¥é¡µé¢å³åŠ è½½
@@ -177,15 +301,119 @@
        //#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 = 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')]);
                }
            }
            for (var i = 1; i < dd; i++) {
                if (!isNaN(parseInt(obj.data[Format(yyyy + '/' + (MM + 1) + '/' + i, 'yyyy-MM-dd')]))) {
                    dateHQty += parseInt(obj.data[Format(yyyy + '/' + (MM + 1) + '/' + i, 'yyyy-MM-dd')]);
                }
            }
            //查询所有数据相同的订单
            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 - obj.value,
                    [NowDate]: 0
                });
                return layer.msg("排产数量大于订单数量!")
            }
            if (Date.parse(obj.field) > Date.parse(obj.data.计划结束日期)) {
                return layer.msg("排产日期超出计划结束日期!");
            }
            //修改数据
            obj.update({
                "日计划数量总量": dateHQty,
            });
        })
        //双击表格事件
        table.on('rowDouble(mainTable)', function (obj) {
            btnrowDouble(obj.data);
        })
        //点击行选中数据
        table.on('row(mainTable)', 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 ä¸ºè¡¨æ ¼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;
                }
            });
        })
        //头工具栏事件
        table.on('toolbar(mainTable)', function (obj) {
            var checkStatus = table.checkStatus('mainTable')
                , data = checkStatus.data;
            switch (obj.event) {
                case 'btn-CopyLine':
                    console.log(JSON.stringify(data))
                    console.log()
                    if (data.length <= 0) {
                        layer.msg("请选择需要复制的一行!");
                    }
@@ -194,9 +422,43 @@
                    }
                    else {
                        data[0]["生产资源"] = "";
                        data[0]["HSourceID"] = 0;
                        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);//去除末尾字符']'
@@ -205,7 +467,62 @@
                        table.render(option);//将数据渲染到表格上
                    }
                    break;
                //列设置
                case 'set_HideColumn':
                    get_HideColumn();
                    break;
                //删除行
                case 'set_DeleteBill':
                    set_DeleteBill();
                    break;
                //上移
                case 'set_MoverUp':
                    set_MoverUp(data);
                    break;
                //下移
                case 'set_MoverDown':
                    set_MoverDown(data);
                    break;
                //优先级
                case 'set_Priority':
                    set_Priority();
                    break;
                //准备排序
                case 'set_ReadyAsc':
                    set_ReadyAsc();
                    break;
                //选产线
                case 'set_Souce':
                    set_Souce(data);
                    break;
                //查看工艺路线
                case 'set_Routing':
                    set_Routing();
                    break;
                //工厂日历
                case 'set_Calendar':
                    set_Calendar();
                    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;
            };
        });
        //导入
@@ -215,7 +532,36 @@
        //保存
        form.on('submit(btnSave)', function (data) {
            set_AddNew(data);
           var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else if (table.cache["mainTable"].length == 0) {
                return layer.msg("无数据,无法保存!");
            } else {
                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();
                }
            }
        });
        //物料
@@ -230,13 +576,118 @@
        //快速过滤
        form.on('submit(btnSearch)', function (data) {
            get_FastQuery();
            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();
        });
        //齐套分析
        form.on('submit(btnCompleteSetAnalysis)', function (data) {
            get_btnCompleteSetAnalysis();
        })
        //提料运算
        form.on('submit(btnTLYS)', function (data) {
            get_btnTLYS();
        })
        //生产订单选单
        form.on('submit(btnICMOBill)', function (data) {
            get_btnICMOBill();
        })
        //准备
        form.on('submit(btnReady)', function (data) {
            get_btnReady();
        })
        //排产
        form.on('submit(btnProPC)', function (data) {
            var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else {
                var index = layer.open({
                    type: 1, // page å±‚类型
                    area: ['20%', '20%'],
                    shade: 0.6, // é®ç½©é€æ˜Žåº¦
                    shadeClose: false, // ç‚¹å‡»é®ç½©åŒºåŸŸï¼Œä¸å…³é—­å¼¹å±‚
                    maxmin: false, // ä¸å…è®¸å…¨å±æœ€å°åŒ–
                    anim: 0, // 0-6 çš„动画形式,-1 ä¸å¼€å¯
                    content: '<div style="padding: 12px;">正在运算,请耐心等待!!!</div>'
                });
                setTimeout(function () {
                    get_btnProPC(HWorkShopID);
                    layer.close(index);
                }, 1000)
            }
        })
        //工艺路线编辑
        form.on('submit(btnRoutEdit)', function (data) {
            get_btnRoutEdit();
        })
        //行内事件
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
            set_GridCellCheck(obj); //行内快捷键筛选
            //#region ä¿®æ”¹æ—¶é—´
            var data = obj.data;
            //日计划生产日期
            if (obj.event == 'HPlanEndDate') {
                var field = $(this).data('field');
                laydate.render({
                    elem: this.firstChild
                    , show: true //直接显示
                    , closeStop: this
                    , done: function (nowDate) {
                        //时间选择完成,行数据更新
                        data[field] = nowDate;
                        obj.update(data);
                    }
                });
            }
            //#endregion
        });
        //锁定
        form.on('submit(btnLock)', function (data) {
            var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else {
                get_btnLock(HWorkShopID);
            }
        })
        //解锁
        form.on('submit(btnUnlock)', function (data) {
            var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else {
                get_btnUnlock(HWorkShopID);
            }
        })
        //#endregion
@@ -245,30 +696,39 @@
        //#region åˆå§‹åŒ–界面
        function set_ClearBill() {
            //初始化时间
            $("#HPlanBeginDate").val(Format(new Date(), "yyyy-MM-dd"));
            $("#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();
            //初始化表格
            set_InitGrid();
            get_FastQuery();
            get_FastQuery(1);
            //隐藏勾选字段
            DisPlay_HideColumn();
            get_Display2(sWhere_ICMO);
        }
         //#endregion
        //获取组织
        function Organ() {
            //获取登录页组织列
            var Organization = '<option  style="color:blue;" value="0">组织</option>';
            $.ajax({
                type: "get",
                url: GetWEBURL() + "/Web/GetOrganizations",
                success: function (result) {
                    var Organization = "";
                    if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                        var data = result.data;
                        for (var i = 0; i < data.length; i++) {
                            Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
                        }
                        $("#HProdORGID").append(Organization);
                        $("#HProdORGID").val(sessionStorage["OrganizationID"])
                        form.render('select');
                    }
                    layer.closeAll("loading");
@@ -280,66 +740,215 @@
        function set_InitGrid() {
            var columns = [];
            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 oneday = 1000 * 60 * 60 * 24;
            columns.push({ type: 'checkbox', fixed: 'left' });
            columns.push({ field: 'hmainid', title: 'hmainid', hide: true });
            columns.push({ field: '单据号', title: '单据号', 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: '优先级', title: '优先级', width:150 });
            columns.push({ field: 'HProdORGID', title: 'HProdORGID', hide: true });
            columns.push({ field: '生产组织', title: '生产组织', width:150 });
            columns.push({ field: 'HMaterID', title: 'HMaterID', hide: true });
            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 });
            columns.push({ field: '销售订单数量', title: '销售订单数量', width:150 });//0
            columns.push({ field: '订单需求数量', title: '生产订单数量', width: 150 });//0
            columns.push({ field: '订单可排数量', title: '订单可排数量', width:150 });
            columns.push({ field: '未入库数量', title: '未入库数量', width: 150 });//0
            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 });
            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: 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')],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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], 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')], d, Format(myDate.getTime() + 30 * oneday, 'yyyy-MM-dd'));
                }  })//0
            columns.push({ field: 'T31', title: 'T31', width: 70 });//0
            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, edit: 'text' });
            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 });//0
            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: '生产资源代码', 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: '生产车间', title: '生产车间', width:150 });
            columns.push({ field: 'HSourceID', title: 'HSourceID', hide:true });
            columns.push({ field: '生产资源', title: '生产资源', width:150 });
            for (var i = 0; i <= (SumMonth - dd); i++) {
                columns.push({ field: Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd'), edit: 'text',width:120 })//0
            }
            for (var i = 1; i < dd; i++) {
                columns.push({ field: Format(yyyy + '/' + (MM + 1) + '/' + i, 'yyyy-MM-dd'), title: Format(yyyy + '/' + (MM + 1) + '/' + i, 'yyyy-MM-dd'), edit: 'text',width: 120 })//0
            }
            columns.push({ field: 'T31', title: 'T31', width: 150 });//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 });
            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: 'HProdORGID', title: 'HProdORGID', 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'
                , height: 'full-120'
                , page: true
                , page: false
                , cellMinWidth: 90
                , limit: 50
                , limits: [50, 500, 5000, 20000]
                , cols: [columns]
                , limit: Number.MAX_VALUE//默认显示全部
                , done: function (res, page, count) {
                    //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]);
                    //                }
                    //            }
                    //        }
                    //    }
                    //})
                }
            };
        }
@@ -349,10 +958,88 @@
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillList',
                type: "GET",
                async: false,
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        option.data = data1.data;
                        table.render(option);
                        var HinterID_S = [];
                        for (var i = 0; i < data1.data.length; i++) {
                            HinterID_S.push(data1.data[i]["hmainid"]);
                        }
                        layer.close(ajaxLoad);
                        if (HinterID_S.length > 0) {
                            get_Display_1(HinterID_S);
                            get_Display_2(HinterID_S)
                        }
                        if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
                            ColFilter();
                        }
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //查询 è¡¨æ ¼æ•°æ® é”å®šçŠ¶æ€
        function get_Display_1(HinterID_S) {
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHinterIDList',
                type: "GET",
                async: false,
                data: { "sWhere": HinterID_S.toString(),"num":1 },
                success: function (data1) {
                    if (data1.count == 1) {
                        for (var i = 0; i < 31; i++) {
                            option.cols[0][22 + i]["edit"] = "text";
                            option.cols[0][22 + i]["style"] = "";
                            var TableDate = option.cols[0][22 + i].field;
                            var date = new Date(TableDate).getDay();
                            if (date == 6 || date == 0) {
                                option.cols[0][22 + i]["style"] = "   background-color: #c3fec8";
                            }
                        }
                        if (data1.data[0]["DayNum"] > 0) {
                            //获取被锁定的列数
                            var tableNum = 0;
                            for (var i = 0; i < 31; i++) {
                                if (option.cols[0][22 + i]["edit"] == "") {
                                    tableNum += 1;
                                } else {
                                    break;
                                }
                            }
                            //判断  è¢«é”å®šçš„列数 å¦‚果小于 æ•°æ®åº“中查到的 éœ€è¦é”å®šçš„列数 åˆ™ç›´æŽ¥ è¿›è¡Œä¿®æ”¹
                            //被锁定的列数 å¤§äºŽ æ•°æ®åº“中查到的  éœ€è¦é”å®šçš„列数  åˆ™ å…ˆæ¸…除页面的缓存 å†è¿›è¡Œä¿®æ”¹
                            if (tableNum > data1.data[0]["DayNum"]) {
                                for (var i = 0; i < tableNum; i++) {
                                    option.cols[0][22 + i]["edit"] = "text";
                                    option.cols[0][22 + i]["style"] = "";
                                }
                            }
                            for (var i = 0; i < data1.data[0]["DayNum"]; i++) {
                                option.cols[0][22 + i]["edit"] = "";
                                option.cols[0][22 + i]["style"] = "   background-color: #e6e6e6";
                            }
                        }
                        //else {
                        //    for (var i = 0; i < 31; i++) {
                        //        option.cols[0][22 + i]["edit"] = "text";
                        //        option.cols[0][22 + i]["style"] = "";
                        //    }
                        //}
                        table.render(option);
                        layer.close(ajaxLoad);
                        //layer.alert("查询成功", { icon: 1 });
@@ -365,6 +1052,85 @@
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //查询 è¡¨æ ¼æ•°æ® é½å¥—状态
        function get_Display_2(HinterID_S) {
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHinterIDList',
                type: "GET",
                async: false,
                data: { "sWhere": HinterID_S.toString(), "num": 2 },
                success: function (data1) {
                    if (data1.count == 1) {
                        if (data1.data.length > 0) {
                            //获取每个单据需要标记的 æ•°æ®
                            var numData = [];
                            var _numData = data1.data;
                            for (var i = 0; i < option.data.length; i++) {
                                numData = _numData;
                                _numData = [];
                                for (var j = 0; j < numData.length; j++) {
                                    if (option.data[i]["HInterID"] == numData[j]["HInterID"]) {
                                        option.data[i][Format(numData[j]["HMasterDate"], 'yyyy/MM/dd')] = numData[j]["HComplete"];
                                    } else {
                                        _numData.push(numData[j]);
                                    }
                                }
                            }
                            //去重获取需要标记状态的日期
                            var _numData2 = [];
                            for (var i = 0; i < data1.data.length; i++) {
                                if ($.inArray(data1.data[i]["HMasterDate"], _numData2) == -1) {
                                    _numData2.push(data1.data[i]["HMasterDate"]);
                                }
                            }
                            //获取日期下标
                            var _numData3 = [];
                            for (var i = 0; i < _numData2.length; i++) {
                                for (var j = 22; j < 53; j++) {
                                    if (option.cols[0][j]["field"] == _numData2[i]) {
                                        _numData3[i] = j;
                                        break;
                                    }
                                }
                            }
                            table.render(option);
                        }
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //数量标记颜色
        function DayColor(DaySate, DayHQty,Data,NowData) {
            if (DaySate == "齐套" || DaySate == "未齐套") {
                if (DaySate == "齐套") {
                    return "<span style='color:green;'>" + DayHQty + "</span>";
                }
                else {
                    return "<span style='color:red;'>" + DayHQty + "</span>";
                }
            } else {
                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>";
                }
            }
        }
        //Excel导入
@@ -419,7 +1185,7 @@
                , area: ['90%', '90%']//大小
                , title: '生产车间列表'//标题
                , shift: 2//弹出动画
                , content: ['../../Baseset/基础资料/Gy_DepartmentList.html', 'yes']
                , content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html', 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
@@ -429,23 +1195,85 @@
                    }
                    //获取数据
                    $("#HWorkShopID").val(checkStatus.data[0].HItemID);//车间id
                    $("#HWorkShopIDName").val(checkStatus.data[0].HName);//车间名称
                    $("#HWorkShopIDName").val(checkStatus.data[0].部门名称);//车间名称
                    get_WriteConfigFile();
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
            })
        }
        //读取配置文件
        function get_ReadConfigFile() {
            //获取本地存储的数据
            var data = localStorage.getItem("JIT_DayPlanPlatForm_HWorkShop");
            if (data != null) {
                var data2 = JSON.parse(data);
                $("#HWorkShopID").val(data2["HWorkShopID"]);
                $("#HWorkShopIDName").val(data2["HWorkShopIDName"]);
                form.render('select');
            }
        }
        //存储配置文件
        function get_WriteConfigFile() {
            //清空本地存储的数据
            localStorage.removeItem("JIT_DayPlanPlatForm_HWorkShop");
            var data = {
                HWorkShopID:  $("#HWorkShopID").val()
                , HWorkShopIDName: $("#HWorkShopIDName").val()
            }
            //本地存储
            localStorage.setItem("JIT_DayPlanPlatForm_HWorkShop", JSON.stringify(data));
        }
        //快速过滤
        function get_FastQuery() {
        function get_FastQuery(number) {
            var HWorkShopID = 0;
            var HProdORGID = 0;
            HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (number == 2) {
                if (HWorkShopID == 0) {
                    return layer.msg("生产车间不能为空!");
                }
                HProdORGID = $("#HProdORGID").val();//生产订单组织
            }
            if (number == 1) {
                HProdORGID = sessionStorage["OrganizationID"];//生产订单组织
            }
            var HPlanBeginDate = $("#HPlanBeginDate").val();//开工起始日期
            var HProdORGID = $("#HProdORGID").val();//生产订单组织
            var HSeOrderBillNo = $("#HSeOrderBillNo").val();//销售订单号
            var HPlanEndDate = $("#HPlanEndDate").val();//开工截止日期
            var HMastersDate = $("#HMastersDate").val();//排产日期
            var HSeOrderBillNo = $("#HSeOrderBillNo").val();//销售订单号
            var HMaterID = $("#HMaterID").val();//物料编码id
            var HICMOBillNo = $("#HICMOBillNo").val();//生产订单号
            var HWorkShopID = $("#HWorkShopID").val();//生产车间
            var ColName = $("#ColName").val();//复选框
            var Comparator = $("#Comparator").val()
            var ColContent = $("#ColContent").val();
            var sWheres = "";
            if (ColName != 0 && Comparator != 0) {
                var com = "";
                switch (Comparator) {
                    case "7":
                        com = "like''%" + ColContent + "%''";
                        break;
                    case "8":
                        com = "like''%" + ColContent + "''";
                        break;
                    case "9":
                        com = "like''" + ColContent + "%''";
                        break;
                    case "10":
                        com = "not like''%" + ColContent + "%''";
                        break;
                    default:
                        com = "" + Comparator + "''" + ColContent + "''";
                        break;
                }
                sWheres += " and [" + ColName + "] " + com;
            }
            sWhere = {
                HPlanBeginDate: HPlanBeginDate
@@ -455,42 +1283,1200 @@
                , HMaterID: HMaterID
                , HICMOBillNo: HICMOBillNo
                , HWorkShopID: HWorkShopID
                , HMastersDate: HMastersDate
                , sWheres: sWheres
            }
            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缓存
        }
        //双击跳转齐套分析明细表
        function btnrowDouble(obj) {
            HMainICMOEntryID = obj["源单子内码"];
            HMainICMOInterID = obj["源单主内码"];
            HICMOInterID = obj["HInterID"];
            if (HICMOInterID == "" || HICMOInterID == null) {
                return layer.alert("无日计划工单,无法查看!", { icon: 5 });
            }
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , maxmin: true //设置最大最小按钮是否显示
                , area: ['90%', '90%']//大小
                , title: '齐套分析明细表'//标题
                , shift: 2//弹出动画
                , content: ['../../生产管理/齐套分析/JIT_CompleteDetailList.html?OperationType=1&HMainICMOEntryID=' + HMainICMOEntryID+'&HMainICMOInterID=' + HMainICMOInterID+'&HICMOInterID=' + HICMOInterID, 'yes']
            })
        }
        //重置
        function set_ClearQuery() {
            $("#HPlanBeginDate").val(Format(new Date(), "yyyy-MM-dd"));//开工起始日期
            $("#HProdORGID").val("0");//生产订单组织
            $("#HPlanBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));//开工起始日期
            $("#HSeOrderBillNo").val("");//销售订单号
            $("#HPlanEndDate").val(Format(new Date(), "yyyy-MM-dd"));//开工截止日期
            $("#HMastersDate").val("");//排产日期
            $("#HMaterID").val("0");//物料编码id
            $("#HMaterNumber").val("");//物料编码
            $("#HMaterName").val("");//物料名称
            $("#HMaterModel").val("0");//规格型号
            $("#HMaterModel").val("");//规格型号
            $("#HICMOBillNo").val("");//生产订单号
            $("#HWorkShopID").val("0");//生产车间id
            $("#HWorkShopIDName").val("");//生产车间
            $("#HProdORGID").val(sessionStorage["OrganizationID"])//生产订单组织
            $("#ColContent").val("");
            $("#ColName").val("0");
            $("#Comparator").val("0");
            form.render('select');
            sWhere = "";
        }
        //保存
        function set_AddNew(data) {
        //重置
        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"));//开工截止日期
            //删除子表数据 ä¼šå ç”¨æ•°ç»„的位置,需要重新排一下顺序
            var num = [];
            for (var i = 0; i < table.cache["mainTable"].length; i++) {
                if (table.cache["mainTable"][i] != "") {
                    table.cache["mainTable"][i].LAY_TABLE_INDEX = i;
                    num.push(table.cache["mainTable"][i])
            $("#HDeptName_ICMO").val("");//生产车间
            $("#HMaterName_ICMO").val("");//物料名称
            $("#HICMOBillNo_ICMO").val(""); //生产订单
            form.render('select');
            sWhere_ICMO = "";
        }
        //齐套分析
        function get_btnCompleteSetAnalysis() {
            if ($("#HWorkShopID").val() == 0) {
                return layer.msg("生产车间不能为空!");
            }
            sWhere = {
                HProdORGID: $("#HProdORGID").val()
                , HWorkShopID: $("#HWorkShopID").val()
            }
            sWhere = JSON.stringify(sWhere);
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_CompleteSetAnalysis',
                type: "GET",
                data: { "sWhere": sWhere, "user": sessionStorage["Czybm"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        get_FastQuery(2);
                        layer.msg(data1.Message);
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //提料运算
        function get_btnTLYS() {
            if ($("#HWorkShopID").val() == 0) {
                return layer.msg("生产车间不能为空!");
            }
            sWhere = {
                HProdORGID: $("#HProdORGID").val()
                , HWorkShopID: $("#HWorkShopID").val()
            }
            var HTLType = $("#HTLType").val();
            sWhere = JSON.stringify(sWhere);
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_TLYS',
                type: "GET",
                data: { "sWhere": sWhere, "user": sessionStorage["Czybm"], "HTLType": HTLType },
                success: function (data1) {
                    if (data1.count == 1) {
                        get_FastQuery(2);
                        layer.msg(data1.Message);
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //生产订单选单
        function get_btnICMOBill() {
            var HDeptID = $("#HWorkShopID").val() == "" ? 0 : $("#HWorkShopID").val();
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , area: ['90%', '90%']//大小
                , title: '生产订单列表'//标题
                , shift: 2//弹出动画
                , content: ['../../生产管理/生产任务单/Sc_ICMOBillList.html?HDeptID=' + HDeptID, 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                    if (checkStatus.data.length === 0) {
                        return layer.msg('请选择数据');
                    }
                    //获取数据
                    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);
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
            })
        }
        //准备
        function get_btnReady() {
            var data = table.cache["mainTable"];
            var HICOMNum = [];
            for (var i = 0; i < data.length; i++) {
                if (isNaN(data[i]["HICMOInterID"])) {
                    return layer.msg("请先进行保存!!")
                }
                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>
    </div>
  `);
            // æ¸²æŸ“进度条组件
            element.render('progress', 'demo-filter-progress');
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/ReadyData',
                type: "GET",
                data: { "SWhere": HICOMNum.toString() },
                success: function (data1) {
                    if (data1.count == 1) {
                        for (var i = 0; i < data1.data.length; i++) {
                            for (var j = 0; j < option.data.length; j++) {
                                if (data1.data[i]["HICMOInterID"] == option.data[j]["HICMOInterID"] && data1.data[i]["HICMOEntryID"] == option.data[j]["HICMOEntryID"]) {
                                    option.data[j]["小时产能"] = data1.data[i]["小时产能"];
                                    option.data[j]["生产周期"] = data1.data[i]["生产周期"];
                                    option.data[j]["开工余量"] = data1.data[i]["开工余量"];
                                    option.data[j]["最迟开工日期"] = data1.data[i]["最迟开工日期"];
                                    option.data[j]["最迟完工日期"] = data1.data[i]["最迟完工日期"];
                                    option.data[j]["订单需求数量"] = data1.data[i]["订单需求数量"];
                                    option.data[j]["订单交货期"] = data1.data[i]["订单交货期"] < "2020-01-01 0:00:00" ? "1900-01-01" : data1.data[i]["订单交货期"];
                                    break;
                                }
                            }
                        }
                        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];
                                        }
                                    }
                                }
                            }
                        }
                        $('#HProgressBar').html('')
                        table.render(option);
                    } else {
                        //layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //工艺路线编辑
        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) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            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) {
            var JDTLen = 0;
            var lMainID = 0;
            var sICMOBillNo = "";
            var dEndDate = "";
            var sProdTimes = 0;
            var sPlanQty = 0;
            var lHGroupID = 0;
            var sGroupName = "";
            var lMaterID = 0;
            var sMaterNumber = "";
            var sMaterName = "";
            var sMaterModel = "";
            var sWorkQty = 0;
            var sYX = 0;
            var iLeftQty = 0;
            var sLeftProdTimes = 0;
            var lSourceID = 0;
            var iRow = 0;
            var sSourceName = "";
            var sSourceNumber = "";
            var ds = [];
            var dsSub = [];
            var bFind = false;
            var HPlanDay = 0;
            var HDelData = 0;
            JDTLen = (100 / option.data.length).toFixed(2);
            var HJDLen = 0;
            var HReportQty = 0;
            //如果锁定计划,则不需要再排程
            //查询本车间是否有锁定计划的数据
            var HinterID_S = [];
            for (var i = 0; i < option.data.length; i++) {
                if (option.data[i]["小时产能"] == "0") {
                    return layer.msg("请先点击准备按钮,确保小时产能不为0!!!")
                }
                HinterID_S.push(option.data[i]["hmainid"]);
            }
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHinterIDList',
                type: "GET",
                async: false,
                data: { "sWhere": HinterID_S.toString(), "num": 1 },
                success: function (data1) {
                    if (data1.count == 1) {
                        HPlanDay = data1.data[0].DayNum;
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
            //根据车间删除没有锁定的数据
            var sql = "delete from Sc_WorkBillSortBillSub  where  HMasterDate>=convert(varchar(10) ,DATEADD(DAY," + HPlanDay + ",GETDATE()),20)  and HInterID in(select  HInterID  from Sc_WorkBillSortBillMain where HWorkShopID=" + HWorkShopID + ")";
            $.ajax({
                url: GetWEBURL() + '/Gy_SOPBillList/UpDelSQL',
                type: "GET",
                async: false,
                data: { "sWhere": sql },
                success: function (data1) {
                    if (data1.count == 1) {
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
            get_HFData(0, 0);
            //初始化表格数据
            for (var i = 0; i < option.data.length; i++) {
                for (var j = (22 + HPlanDay); j < 53; j++) {
                    if (option.data[i][option.cols[0][j].field] != null) {
                        option.data[i][option.cols[0][j].field] = "";
                    }
                }
            }
            //get_FastQuery(2);
            //按任务单优先级 å¾ªçޝ
            for (var i = 0; i < option.data.length; i++) {
                //获取锁定的排产数量
                var SDSum = 0;
                if (HPlanDay > 0) {
                    for (var j = 22; j < (22 + HPlanDay); j++) {
                        SDSum += TableData[i][option.cols[0][j].field];
                    }
                }
                //找到本任务单 å¯ç”¨ç”Ÿäº§èµ„源
                lMainID = option.data[i]["HICMOInterID"];
                sICMOBillNo = option.data[i]["生产订单号"];
                dEndDate = Format(option.data[i]["最迟完工日期"], 'yyyy/MM/dd');
                sProdTimes = option.data[i]["生产周期"];
                sPlanQty = option.data[i]["拆单数量"];
                lHGroupID = option.data[i]["HGroupID"];
                sGroupName = option.data[i]["HGroupName"];
                lMaterID = option.data[i]["HMaterID"];
                sMaterNumber = option.data[i]["物料代码"];
                sMaterName = option.data[i]["物料名称"];
                sMaterModel = option.data[i]["规格型号"];
                sWorkQty = option.data[i]["小时产能"];
                sYX = option.data[i]["优先级"];
                HReportQty = option.data[i]["拆单汇报数量"];
                if (SDSum > 0) {
                    sPlanQty = sPlanQty - SDSum - HReportQty;
                }
                //剩余需求工时
                iLeftQty = sPlanQty - HReportQty;
                if (sWorkQty <= 0) {
                    sLeftProdTimes = 0;
                }
                else {
                    sLeftProdTimes = iLeftQty / sWorkQty;
                }
                //若本任务单已有安排资源(上次排程或者手工排程) åˆ™ä¸å†å¯»æ‰¾èµ„源,直接排程
                if (option.data[i]["HSourceID"] != 0 && option.data[i]["生产资源"] != "") {
                    //获取该生产资源的剩余工时进行排程。
                    lSourceID = option.data[i]["HSourceID"];
                    sSourceName = option.data[i]["生产资源"];
                    sSourceNumber = option.data[i]["生产资源代码"];
                    //查询生产资源的剩余工时进行排程。
                    var sql = "exec h_p_Sc_ICMOGetWorkSource2 " + lMaterID + ",'" + dEndDate + "'," + sProdTimes + "," + lSourceID;
                    $.ajax({
                        url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                        type: "GET",
                        async: false,
                        data: { "sWhere": sql },
                        success: function (data1) {
                            if (data1.count == 1) {
                                ds = data1.data
                            } else {
                                layer.alert(data1.code + data1.Message, { icon: 5 });
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                        }
                    });
                }
                else //没有资源则 è‡ªåŠ¨æ‰¾åˆ°èµ„æº
                {
                    //查询生产资源的剩余工时进行排程。
                    var sql = "exec h_p_Sc_ICMOGetWorkSource " + lMaterID + ",'" + dEndDate + "'," + sProdTimes;
                    $.ajax({
                        url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                        type: "GET",
                        async: false,
                        data: { "sWhere": sql },
                        success: function (data1) {
                            if (data1.count == 1) {
                                ds = data1.data
                            } else {
                                layer.alert(data1.code + data1.Message, { icon: 5 });
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                        }
                    });
                }
                if (ds == null || ds.length == 0) //没有可以排的资源
                {
                    get_HFData(1, i);
                    //跳到下一单  æœ¬å•红色显示
                    $("tr[data-index='" + i + "']").attr({ "style": "background:red;color:black;" });
                    continue;
                }
                else {
                    $("tr[data-index='" + i + "']").attr({ "style": "background:White;color:black;" });
                    //开始排单
                    bFind = false;
                    //超交货期  ä»ç„¶æŽ’程
                    for (var j = 0; j < ds.length; j++) {
                        //判断资源剩余工时,是否大于 ç”Ÿäº§å‘¨æœŸ
                        if (parseFloat(ds[j]["剩余工时"]) >= sLeftProdTimes) {
                            if (iLeftQty > 0) // ç”Ÿäº§è®¢å•剩余数量
                            {
                                //在本资源上生产
                                //获取该生产资源的剩余工时进行排程。
                                lSourceID = ds[j]["HitemID"];
                                sSourceName = ds[j]["资源名称"];
                                sSourceNumber = ds[j]["资源代码"];
                                option.data[i]["HSourceID"] = lSourceID;
                                option.data[i]["生产资源"] = sSourceName;
                                option.data[i]["生产资源代码"] = sSourceNumber;
                                var sql = "exec h_p_Sc_ICMOGetWorkSourceTime " + lSourceID;
                                $.ajax({
                                    url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                                    type: "GET",
                                    async: false,
                                    data: { "sWhere": sql },
                                    success: function (data1) {
                                        if (data1.count == 1) {
                                            dsSub = data1.data
                                        } else {
                                            layer.alert(data1.code + data1.Message, { icon: 5 });
                                        }
                                    }, error: function () {
                                        layer.alert("接口请求失败!", { icon: 5 });
                                    }
                                });
                                if (dsSub == null || dsSub.length == 0) {
                                    get_HFData(1, i);
                                    continue;//如果没有剩余则 æ‰§è¡Œä¸‹ä¸€ä¸ªç”Ÿäº§è®¢å•
                                }
                                if (dsSub != null)//不加班排程
                                {
                                    iRow = i + 1;
                                    //将数据排到网格中
                                    SetInfoToGrid(option, dsSub, null, (iRow - 1), iLeftQty, sWorkQty, false, HPlanDay);
                                    set_AddNew1(option.data[i]);
                                }
                                bFind = true;
                            }
                        } else {
                            get_HFData(1, i);
                        }
                    }
                    //if (!bFind) {
                    //    for (var j = 0; j < ds.length; j++) {
                    //        //判断资源最大剩余工时,是否大于 ç”Ÿäº§å‘¨æœŸ
                    //        if (parseFloat(ds[j]["最大剩余工时"]) > sLeftProdTimes) {
                    //            if (iLeftQty > 0) {
                    //                //在本资源上生产
                    //                grdMain.RowCount = grdMain.RowCount + 1;
                    //                //获取该生产资源的剩余工时进行排程。
                    //                lSourceID = ds[j]["HitemID"];
                    //                sSourceName = ds[j]["资源名称"];
                    //                sSourceNumber = ds[j]["资源代码"];
                    //                option.data[i]["HSourceID"] = lSourceID;
                    //                option.data[i]["生产资源"] = sSourceName;
                    //                option.data[i]["生产资源代码"] = sSourceNumber;
                    //                var sql = "exec h_p_Sc_ICMOGetWorkSourceTime " + lSourceID;
                    //                $.ajax({
                    //                    url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                    //                    type: "GET",
                    //                    async: false,
                    //                    data: { "sWhere": sql },
                    //                    success: function (data1) {
                    //                        if (data1.count == 1) {
                    //                            dsSub = data1.data
                    //                        } else {
                    //                            layer.alert(data1.code + data1.Message, { icon: 5 });
                    //                        }
                    //                    }, error: function () {
                    //                        layer.alert("接口请求失败!", { icon: 5 });
                    //                    }
                    //                });
                    //                if (dsSub == null || dsSub.length == 0) {
                    //                    continue;
                    //                }
                    //                //if (dsSub != null)//加班排程
                    //                //{
                    //                //    //将数据排到网格中
                    //                //    grdMain.RowCount = grdMain.RowCount + 1;  //  grdmain æ–°å¢žä¸€è¡Œ
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecICMOBillNoCol].Value = sICMOBillNo;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecICMOInterIDCol].Value = lMainID;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecLeftQtyCol].Value = iLeftQty;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecGroupIDCol].Value = lHGroupID;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecGroupNameCol].Value = sGroupName;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterIDCol].Value = lMaterID;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterNameCol].Value = sMaterName;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterNumberCol].Value = sMaterNumber;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterModelCol].Value = sMaterModel;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecPlanEndDateCol].Value = dEndDate;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecPlanQtyCol].Value = sPlanQty;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecSourceIDCol].Value = lSourceID;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecSourceNameCol].Value = sSourceName;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecSourceNumberCol].Value = sSourceNumber;
                    //                //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecYXCol].Value = sYX;
                    //                //    Sc_ICMOSortBillFun.SetInfoToGrid(grdMain, dsSub, null, grdMain.RowCount - 1, ref iLeftQty, sWorkQty, true, oClsGridValues);
                    //                //}
                    //            }
                    //            bFind = true;
                    //        }
                    //    }
                    //}
                    //if (!bFind) {
                    //    //如果没有找到合适资源则,直接排最后一个剩余最大的资源。
                    //    //获取该生产资源的剩余工时进行排程。
                    //    lSourceID = ds[ds.length - 1]["HitemID"];
                    //    sSourceName = ds[ds.length - 1]["资源名称"];
                    //    sSourceNumber = ds[ds.length - 1]["资源代码"];
                    //    option.data[i]["HSourceID"] = lSourceID;
                    //    option.data[i]["生产资源"] = sSourceName;
                    //    option.data[i]["生产资源代码"] = sSourceNumber;
                    //    //获取该生产资源的剩余工时进行排程。
                    //    var sql = "exec h_p_Sc_ICMOGetWorkSourceTime " + lSourceID;
                    //    $.ajax({
                    //        url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                    //        type: "GET",
                    //        async: false,
                    //        data: { "sWhere": sql },
                    //        success: function (data1) {
                    //            if (data1.count == 1) {
                    //                dsSub = data1.data
                    //            } else {
                    //                layer.alert(data1.code + data1.Message, { icon: 5 });
                    //            }
                    //        }, error: function () {
                    //            layer.alert("接口请求失败!", { icon: 5 });
                    //        }
                    //    });
                    //    if (dsSub == null || dsSub.length == 0) {
                    //        continue;
                    //    }
                    //    //if (dsSub != null)//加班排程
                    //    //{
                    //    //    //将数据排到网格中
                    //    //    grdMain.RowCount = grdMain.RowCount + 1;  //  grdmain æ–°å¢žä¸€è¡Œ
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecICMOBillNoCol].Value = sICMOBillNo;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecICMOInterIDCol].Value = lMainID;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecLeftQtyCol].Value = iLeftQty;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecGroupIDCol].Value = lHGroupID;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecGroupNameCol].Value = sGroupName;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterIDCol].Value = lMaterID;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterNameCol].Value = sMaterName;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterNumberCol].Value = sMaterNumber;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecMaterModelCol].Value = sMaterModel;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecPlanEndDateCol].Value = dEndDate;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecPlanQtyCol].Value = sPlanQty;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecSourceIDCol].Value = lSourceID;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecSourceNameCol].Value = sSourceName;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecSourceNumberCol].Value = sSourceNumber;
                    //    //    grdMain.Rows[grdMain.RowCount - 1].Cells[HSecYXCol].Value = sYX;
                    //    //    Sc_ICMOSortBillFun.SetInfoToGrid(grdMain, dsSub, null, grdMain.RowCount - 1, ref iLeftQty, sWorkQty, true, oClsGridValues);
                    //    //}
                    //}
                }
            }
            table.render(option);
        }
        var TableData = [];
        function get_HFData(num,nums) {
            if (num == 0) {
                TableData = option.data;
            } else {
                option.data[nums] = TableData[nums];
                if (nums == option.data.length-1) {
                    set_AddNew();
                }
            }
        }
        //将数据排程到网格
        function SetInfoToGrid(grd, ds, dsPre, iRow, sLeftQty, sWorkQty, bAddFlag, HPlanDay) {
            var b = false;
            var oSub;
            //循环网格列
            if (bAddFlag) {
                for (var i = 0; i < ds.length; i++) {
                    //找到对应的列
                    for (var j = 22; j < grd.cols[0].length; j++) {
                        if (sLeftQty > 0) {
                            if (ds[i]["日期"] == grd.cols[0][j].field) //表格的标题上 ä¿å­˜äº†æ—¥æœŸï¼›
                            {
                                //如果时间被 ä¸Šé“余量占用 åˆ™ è·³è¿‡
                                b = false;
                                //if (dsPre != null && dsPre.Tables[0].Rows.Count > 0) {
                                //    for (var m = 0; m < dsPre.Tables[0].Rows.Count; m++)
                                //    {
                                //        if (ds[i]["日期"] < DBUtility.ClsPub.isDate(dsPre.Tables[0].Rows[m]["日期"])) {
                                //            b = true;
                                //        }
                                //    }
                                //}
                                if (b == false) {
                                    if (dsPre != null && ds[i]["日期"] == dsPre[0]["日期"]) {
                                        ////HUseTimes ä¸º ä¸Šé“余量后 å‰©ä½™å·¥æ—¶ã€‚
                                        //if (ds[i]["最大剩余工时"] > dsPre[0]["HUseTimes"]) {
                                        //    if (parseFloat(sLeftQty) > parseFloat(sWorkQty * dsPre[0]["HUseTimes"])) {
                                        //        grd.data[iRow][j] = parseFloat(sWorkQty * (dsPre[0]["HUseTimes"]));
                                        //        sLeftQty = sLeftQty - parseFloat(sWorkQty * (dsPre[0]["HUseTimes"]));
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = DBUtility.ClsPub.isSingle(dsPre[0]["HUseTimes"]);
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //    else {
                                        //        grd.data[iRow][j]= sLeftQty;
                                        //        sLeftQty = 0;
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = DBUtility.ClsPub.isSingle(dsPre.Tables[0].Rows[0]["HUseTimes"]);
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //}
                                        //else //卓力不需要考虑加班,下面的这一段不需要
                                        //{
                                        //    if (sLeftQty > sWorkQty * ds[i]["最大剩余工时"]) {
                                        //        grd.data[iRow][j]= parseFloat(sWorkQty * ds[i]["最大剩余工时"]);
                                        //        sLeftQty = sLeftQty - (parseFloat(sWorkQty * ds[i]["最大剩余工时"]));
                                        //        sLeftQty = 0;
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = ds[i]["最大剩余工时"];
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //    else {
                                        //        grd.data[iRow][j]= sLeftQty;
                                        //        sLeftQty = 0;
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = ds[i]["最大剩余工时"];
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //}
                                    }
                                    else {
                                        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;
                                            option.data[iRow]["HLeftTimes"] = ds[i]["最大剩余工时"];
                                            break;
                                            //oSub.HLeftTimes = ds[i]["最大剩余工时"];
                                            //oClsGridValues.Add(oSub);
                                        }
                                        else {
                                            grd.data[iRow][grd.cols[0][j + HPlanDay].field] =  Math.round(sLeftQty * 10) / 10;
                                            sLeftQty = 0;
                                            //oSub = new ClsGridValues();
                                            //oSub.iRow = iRow;
                                            //oSub.iCol = j;
                                            option.data[iRow]["HLeftTimes"] = ds[i]["最大剩余工时"];
                                            break;
                                            //oSub.HLeftTimes = ds[i]["最大剩余工时"];
                                            //oClsGridValues.Add(oSub);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else {
                for (var i = 0; i < ds.length; i++) {
                    //找到对应的列
                    for (var j = 22; j < 53; j++) {
                        if (sLeftQty > 0) {
                            if (ds[i]["日期"] == grd.cols[0][j].field) {
                                //如果时间被 ä¸Šé“余量占用 åˆ™ è·³è¿‡
                                b = false;
                                //if (dsPre != null && dsPre.Tables[0].Rows.Count > 0) {
                                //    for (var m = 0; m < dsPre.Tables[0].Rows.Count; m++)
                                //    {
                                //        if (DBUtility.ClsPub.isDate(ds[i]["日期"]) < DBUtility.ClsPub.isDate(dsPre.Tables[0].Rows[m]["日期"])) {
                                //            b = true;
                                //        }
                                //    }
                                //}
                                if (b == false) {
                                    if (dsPre != null && s[i]["日期"] == dsPre[0]["日期"]) {
                                        //if (ds[i]["剩余工时"] > (DBUtility.ClsPub.isSingle(dsPre.Tables[0].Rows[0]["HUseTimes"]))) {
                                        //    if (sLeftQty > parseFloat(sWorkQty * (DBUtility.ClsPub.isSingle(dsPre.Tables[0].Rows[0]["HUseTimes"])))) {
                                        //        grd.data[iRow][j]= parseFloat(sWorkQty * (DBUtility.ClsPub.isSingle(dsPre.Tables[0].Rows[0]["HUseTimes"])));
                                        //        sLeftQty = sLeftQty - parseFloat(sWorkQty * (DBUtility.ClsPub.isSingle(dsPre.Tables[0].Rows[0]["HUseTimes"])));
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = DBUtility.ClsPub.isSingle(dsPre.Tables[0].Rows[0]["HUseTimes"]);
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //    else {
                                        //        grd.data[iRow][j]= sLeftQty;
                                        //        sLeftQty = 0;
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = DBUtility.ClsPub.isSingle(dsPre.Tables[0].Rows[0]["HUseTimes"]);
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //}
                                        //else {
                                        //    if (sLeftQty > sWorkQty * ds[i]["剩余工时"]) {
                                        //        grd.data[iRow][j]= parseFloat(sWorkQty * ds[i]["剩余工时"]);
                                        //        sLeftQty = sLeftQty - (parseFloat(sWorkQty * ds[i]["剩余工时"]));
                                        //        sLeftQty = 0;
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = ds[i]["剩余工时"];
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //    else {
                                        //        grd.data[iRow][j]= sLeftQty;
                                        //        sLeftQty = 0;
                                        //        oSub = new ClsGridValues();
                                        //        oSub.iRow = iRow;
                                        //        oSub.iCol = j;
                                        //        oSub.HLeftTimes = ds[i]["剩余工时"];
                                        //        oClsGridValues.Add(oSub);
                                        //    }
                                        //}
                                    }
                                    else {
                                        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;
                                            //option.data[iRow]["HLeftTimes"] = ds[i]["最大剩余工时"];
                                            //option.data[iRow]["HUseTimes"] = ds[i]["剩余工时"];
                                            break;
                                            //oSub.HLeftTimes = ds[i]["剩余工时"];
                                            //oClsGridValues.Add(oSub);
                                        }
                                        else {
                                            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();
                                            //oSub.iRow = iRow;
                                            //oSub.iCol = j;
                                            //option.data[iRow]["HLeftTimes"] = ds[i]["最大剩余工时"];
                                            break;
                                            //oSub.HLeftTimes = ds[i]["剩余工时"];
                                            //oClsGridValues.Add(oSub);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        //查询生产订单
        function SelectICMOBill(hmainid) {
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_ICMOBillList',
                type: "GET",
                data: { "hmainid": hmainid.toString() },
                success: function (data1) {
                    if (data1.count == 1) {
                        var dataPush = [];
                        var tableBak = table.cache["mainTable"]; //获取之前编辑过的表格数据
                        buttonArr = [];//清空数组
                        for (var i = 0; i < tableBak.length; i++) {
                            dataPush.push(tableBak[i]);  //将之前的数据存储
                        }
                        for (var i = 0; i < dataPush.length; i++) {
                            if (dataPush[i]["单据号"] == "") {
                                for (var j = 0; j < data1.data.length; j++) {
                                    if (data1.data[j]["源单主内码"] == dataPush[i]["源单主内码"] && data1.data[j]["源单子内码"] == dataPush[i]["源单子内码"]) {
                                        layer.close(ajaxLoad);
                                        return layer.alert("生产明细行重复,重复的生产订单号:" + dataPush[i]["生产订单号"] + ",明细行号:" + dataPush[i]["生产订单明细行号"], { icon: 5 });
                                    }
                                }
                            }
                        }
                        //存储数据
                        for (var i = 0; i < data1.data.length; i++) {
                            dataPush.push(data1.data[i]);
                        }
                        option.data = dataPush;
                        table.render(option);
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //行内删除
        function set_GridDelete(obj) {
            var data = obj.data;
            var rowIndex = $(obj.tr).attr("data-index");
            if (obj.event === 'del') {
                layer.confirm('真的删除行吗?', function (index) {
                    if (rowIndex === '0') {
                        layer.msg('首行无法删除!!!');
                    } else {
                        obj.del();
                        option.data = table.cache["mainTable"];//将数据绑定到data上
                        //table.reload(option);
                        layer.close(index);
                    }
                });
            }
        }
        //删除行
        function set_DeleteBill() {
            var CheckStatus = table.checkStatus("mainTable");
            var scrollTop = 0;
            var layuiTable = $('.layui-table-main');
            if (layuiTable != null && layuiTable.length > 0) {
                scrollTop = layuiTable[0].scrollTop;
            }
            if (CheckStatus.data.length == 0) {
                return layer.msg("请选择数据!")
            } else {
                layer.confirm('您确定要删除吗?', {
                    btn: ['确定', '取消'] //按钮
                    , btn1: function () {
                        var HInterID = [];
                        for (var i = 0; i < CheckStatus.data.length; i++) {
                            HInterID.push(CheckStatus.data[i].hmainid); //获取编号
                        }
                        $.ajax({
                            url: GetWEBURL() + '/Sc_WorkBillSortBill/DelWorkBillSortBillList'
                            , type: "GET"
                            , data: { "HInterID": HInterID.toString(), DataType: "2", "User": sessionStorage["HUserName"] }
                            , success: function (result) {
                                if (result.count == 1) {
                                    layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
                                        // å¾—到frame索引
                                        var index = layer.getFrameIndex(window.name);
                                        //关闭当前frame
                                        layer.close(index);
                                        //修改为功后刷新界面
                                        get_FastQuery(2);
                                        ////重载tree
                                        //tree.reload('treeDepartment', {});
                                        setTimeout(function () {
                                            if (layuiTable != null && layuiTable.length > 0) {
                                                $('.layui-table-main').scrollTop(scrollTop)
                                            }
                                        }, 100)
                                    });
                                } else {
                                    layer.alert(result.code + result.Message, { icon: 5 });
                                }
                            }
                        })
                    }
                })
            }
        }
        //上移
        function set_MoverUp(data) {
            if (data.length != 1) {
                layer.msg("请选择一行数据!");
            } else if (option.data[0]["hmainid"] == data[0]["hmainid"]) {
                layer.msg("首行数据无法移动!");
            } else {
                var scrollTop = 0;
                var layuiTable = $('.layui-table-main');
                if (layuiTable != null && layuiTable.length > 0) {
                    scrollTop = layuiTable[0].scrollTop;
                }
                var tables = [];
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i]["hmainid"] == data[0]["hmainid"]) {
                        tables.push(option.data[i - 1]);
                        data[0].LAY_CHECKED = true;
                        option.data[i - 1] = data[0];
                        option.data[i] = tables[0];
                        table.render(option);
                        break;
                    }
                }
                setTimeout(function () {
                    if (layuiTable != null && layuiTable.length > 0) {
                        $('.layui-table-main').scrollTop(scrollTop)
                    }
                }, 100)
            }
        }
        //下移
        function set_MoverDown(data) {
            if (data.length != 1) {
                layer.msg("请选择一行数据!");
            } else
            if (option.data[option.data.length - 1]["hmainid"] == data[0]["hmainid"]) {
                layer.msg("末行数据无法移动!");
            } else {
                var scrollTop = 0;
                var layuiTable = $('.layui-table-main');
                if (layuiTable != null && layuiTable.length > 0) {
                    scrollTop = layuiTable[0].scrollTop;
                }
                var tables = [];
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i]["hmainid"] == data[0]["hmainid"]) {
                        var len = data.length;
                        tables.push(option.data[i + len]);
                        for (var j = 0; j < len; j++) {
                            data[j].LAY_CHECKED = true;
                            option.data[i + 1 + j] = data[j];
                        }
                        option.data[i] = tables[0];
                        table.render(option);
                        break;
                    }
                }
                setTimeout(function () {
                    if (layuiTable != null && layuiTable.length > 0) {
                        $('.layui-table-main').scrollTop(scrollTop)
                    }
                }, 100)
            }
        }
        //优先级
        function set_Priority() {
            var data = table.cache["mainTable"];
            for (var i = 0; i < data.length; i++) {
                data[i]["优先级"] = ((i + 1) * 5);
            }
            option.data = data;
            table.render(option);
        }
        //准备排序
        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 = 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.HItemID;
                                    option.data[i]["生产资源"] = OptionData.生产资源名称;
                                    num += 1;
                                }
                            }
                            table.render(option);
                        }
                        //obj.update({
                        //    "HSourceID": OptionData.HItemID
                        //    , "生产资源": OptionData.生产资源名称
                        //})
                    }
                })
            }
            else {
                return layer.msg("请选择数据!")
            }
        }
        //保存
        function set_AddNew() {
            //删除子表数据 ä¼šå ç”¨æ•°ç»„的位置,需要重新排一下顺序
            var num = [];
            for (var i = 0; i < table.cache["mainTable"].length; i++) {
                if (table.cache["mainTable"][i] != "") {
                    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])
                }
            }
            //var sMainStr = JSON.stringify(data.field);
            var sSubStr = JSON.stringify(num);
            var sMainSub = sSubStr +";" + sessionStorage["HUserName"];
            var sMainSub = sSubStr +"&和" + sessionStorage["HUserName"];
            var index = layer.load();
            $.ajax({
@@ -501,7 +2487,12 @@
                dataType: "json",
                success: function (data) {
                    if (data.count == 1) {
                        get_FastQuery();
                        if ($("#HWorkShopID").val() == 0) {
                            get_FastQuery(1);
                        }
                        else {
                            get_FastQuery(2);
                        }
                        layer.close(index);
                        layer.msg("保存成功");
                    }
@@ -516,7 +2507,659 @@
                }
            });
        }
        function set_AddNew1(num) {
            //var sMainStr = JSON.stringify(data.field);
            var sSubStr = "["+JSON.stringify(num)+"]";
            var sMainSub = sSubStr + "&和" + sessionStorage["HUserName"];
            var index = layer.load();
            $.ajax({
                type: "POST",
                url: GetWEBURL() + "/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBill_btnSave",
                async: false,
                data: { "sMainSub": sMainSub },
                dataType: "json",
                success: function (data) {
                    if (data.count == 1) {
                        layer.msg("保存成功");
                        layer.close(index);
                    }
                    else {
                        layer.close(index);
                        layer.msg(data.Message, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    }
                },
                error: function (err) {
                    layer.close(index);
                    layer.msg("错误:" + err, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                }
            });
        }
        //行内快捷键
        function set_GridCellCheck(obj) {
            $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                if (event.key == "F7") {
                    //生产资源
                    if (obj.event == "HSourceID") {
                        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 = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": checkStatus.data[0].HItemID
                                    , "生产资源": checkStatus.data[0].生产资源名称
                                })
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                obj.update({
                                    "HSourceID": OptionData.HItemID
                                    , "生产资源": OptionData.生产资源名称
                                })
                            }
                        })
                    }
                    obj.event = "";
                    return false;
                }
            })
        }
        //锁定
        function get_btnLock(HWorkShopID) {
            var data = table.cache["mainTable"];
            if (data.length == 0) {
                return layer.msg("无数据,无法进行锁定!")
            } else {
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHLockedDay',
                    type: "GET",
                    data: { "HLockedDay": $("#HLockedDay").val(), "HWorkShopID": HWorkShopID },
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.msg("已锁定");
                            get_FastQuery(2);
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
        }
        //解锁
        function get_btnUnlock(HWorkShopID) {
            var data = table.cache["mainTable"];
            if (data.length == 0) {
                return layer.msg("无数据,无法进行解锁!")
            } else {
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHUnlockDay',
                    type: "GET",
                    data: { "HWorkShopID": HWorkShopID},
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.msg("已解锁");
                            get_FastQuery(2);
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
        }
        //查询未排产的生产订单
        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, 50000]
                            , limit: 200
                            , cellMinWidth: 90
                        }
                        table.render(option2);
                        //刷新表格数据
                        DisPlay_HideColumn_ICMO();
                        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 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;
                //}
                //获取勾选上的待排生产订单
                for (var i = 0; i < checkStatus.data.length; i++) {
                    var newObj = {
                        "HMaterID" : data[i].HMaterID,
                        "HProdORGID" : data[i].HPRDORGID,
                        "HUnitID" : data[i].HUnitID,
                        "HWorkShopID" : data[i].HDeptID,
                        "拆单数量" : data[i].生产任务单数量,
                        "源单主内码" : data[i].hmainid,
                        "源单子内码" : data[i].HEntryID,
                        "物料代码" : data[i].产品代码,
                        "物料名称" : data[i].产品名称,
                        "生产组织": data[i].生产组织,
                        "生产订单单据类型" : data[i].单据类型,
                        "生产订单号" : data[i].单据号,
                        "生产订单明细行号" : data[i].HEntryID,
                        "生产车间" : data[i].生产车间,
                        "规格型号" : data[i].规格型号,
                        "计划开始日期" : data[i].计划开工日期,
                        "计划数量" : data[i].生产任务单数量,
                        "计划结束日期" : data[i].计划完工日期,
                        "计量单位" : data[i].计量单位,
                        "订单可排数量" : data[i].生产任务单数量,
                        "订单等级" : data[i].订单等级,
                        "订单类型" : data[i].单据类型,
                        "销售订单号" : data[i].销售订单号,
                        "销售订单数量" : data[i].销售数量
                    }
                    option.data.push(newObj);
                    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);
                //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 = "";
            var contentUrl = "";
            for (var i = 1; i < option.cols[0].length - 1; i++) {
                colName += option.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 + '&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();
                    //更新表格缓存的数据
                    layer.close(index);//关闭弹窗
                }
            })
        }
        //显示列数据
        function DisPlay_HideColumn() {
            $.ajax({
                url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                type: "GET",
                data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.data.length != 0) {
                        var dataCol = [];//数据库查询出的列数据
                        var titleData = ["单据号", "HProdORGID", "HMaterID", "HUnitID", "HWorkShopID", "HSourceID"];//不需要显示的字段 å¯æ‰©å±•
                        dataCol = data1.data[0].HGridString.split(',');
                        for (var i = 0; i < option.cols[0].length - 2; i++) {
                            var dataCols = dataCol[i].split('|');
                            //隐藏列
                            if (dataCols[1] == 1) {
                                option.cols[0][i + 1]["hide"] = true;
                            }
                            //设置列宽
                            if (dataCols[3] > 0) {
                                option.cols[0][i + 1]["width"] = dataCols[3];
                            }
                            //设置内容字体大小
                            if (data1.data[0].HFontSize != 0) {
                                option.cols[0][i + 1]["style"] += ";font-size:" + data1.data[0].HFontSize + "px;";
                            } else {
                                option.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(option.cols[0][i + 1]["title"], titleData) == -1) {
                                option.cols[0][i + 1]["hide"] = false;
                            }
                            //字体所在位置(å·¦ å±…中 å³)
                            switch (dataCols[2]) {
                                case "L":
                                    option.cols[0][i + 1]["align"] = "left";
                                    break;
                                case "M":
                                    option.cols[0][i + 1]["align"] = "center";
                                    break;
                                case "R":
                                    option.cols[0][i + 1]["align"] = "right";
                                    break;
                            }
                        }
                        //取消冻结列
                        for (var i = 1; i < option.cols[0].length - 1; i++) {
                            if (option.cols[0][i]["fixed"] != null) {
                                option.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(option.cols[0][i + 1]["title"], titleData) != -1) {
                                    data1.data[0].HFixCols += 1;
                                }
                                option.cols[0][i + 1]["fixed"] = "left";
                            }
                        }
                        table.render(option);
                    } else {
                        table.render(option);
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            })
        }
        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 ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
            for (var i = 2; i < option.cols[0].length - 1; i++) {
                if (option.cols[0][i].hide != true) {
                    Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
                }
            }
            $("#ColName").empty();
            $("#ColName").append(Organization);
            form.render('select');
        }
        //#endregion
        //以上是layui模块
    });
    //双击返回生产资源
    function GetGySource(data) {
        OptionData = data
    }
</script>