WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/JIT_DayPlanPlatForm.html
@@ -29,6 +29,7 @@
                            <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">
@@ -241,6 +242,7 @@
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Routing"><i class="layui-icon layui-icon-form"></i>工艺路线</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Calendar"><i class="layui-icon layui-icon-form"></i>工厂日历</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_export" id="get_export"><i class="layui-icon layui-icon-export"></i>导出</button>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo2">
@@ -279,7 +281,7 @@
            , excel = layui.excel
            , soulTable = layui.soulTable
            , element = layui.element;
        var ins;
        var sWhere = "";
        var sWhere_ICMO = "";
        var option = [];
@@ -350,7 +352,10 @@
                });
                return layer.msg("排产数量大于订单数量!")
            }
            if (Date.parse(obj.field) > Date.parse(obj.data.计划结束日期)) {
                return layer.msg("排产日期超出计划结束日期!");
            }
            //修改数据
@@ -499,6 +504,11 @@
                case 'set_Calendar':
                    set_Calendar();
                    break;
                    break;
                //导出excel
                case 'get_export':
                    get_Export();
                    break;
            }
        });
@@ -539,7 +549,7 @@
                   if (table.cache["mainTable"][i] != "") {                       
                      if (parseFloat(table.cache["mainTable"][i]["优先级"]) == 0) {
                          HYxjQty++
                      }
                       }
                   }
                }
                if (HYxjQty > 0) {
@@ -631,6 +641,12 @@
                }, 1000)
            }
        })
        //工艺路线编辑
        form.on('submit(btnRoutEdit)', function (data) {
            get_btnRoutEdit();
        })
        //行内事件
        table.on('tool(mainTable)', function (obj) {
@@ -738,16 +754,17 @@
            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 });
            columns.push({ field: '小时产能', title: '小时产能', width: 150, sort: true, edit: 'text' });
            columns.push({ field: '销售订单数量', title: '销售订单数量', width: 150, sort: true });//0
            columns.push({ field: '计划数量', title: '生产订单数量', width: 150, sort: true });//0
            columns.push({ field: '日计划数量总量', title: '日计划数量总量', width: 150, sort: true });//0
            columns.push({ field: '今日之前日计划数量', title: '今日之前日计划数量', width: 150, sort: true });//0
            columns.push({ field: '计划开始日期', title: '预计开工日期', width: 150, templet: "<div>{{d.计划开始日期 ==null ?'':layui.util.toDateString(d.计划开始日期, 'yyyy-MM-dd')}}</div>", sort: true });
            columns.push({ field: '计划结束日期', title: '计划结束日期', width: 150, event: "HPlanEndDate", 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: '昨日数量'});
@@ -756,127 +773,127 @@
            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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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')]);
                    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
@@ -888,8 +905,7 @@
            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, 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 });
@@ -921,28 +937,24 @@
                , cellMinWidth: 90
                , cols: [columns]
                , limit: Number.MAX_VALUE//默认显示全部
                //, done: function (res, page, count) {
                //    var that = this.elem.next();
                //    res.data.forEach(function (item, index) {
                //        var NumCount = item.FBASEQTY;//获取总库存数量
                //        for (var i = 0; i < Days; i++) {
                //            var dateNowTime = Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + i), 'yyyy-MM-dd');
                //            if (item[dateNowTime] != null) {
                //                if (NumCount > parseFloat(item[dateNowTime])) {
                //                    NumCount -= parseFloat(item[dateNowTime]);
                //                } else {
                //                    var num = 6;//即时库存与日期挨着  ä»Žå³æ—¶åº“存开始算
                //                    tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']");
                //                    rq = tr.children()[num + 1 + i];
                //                    rq.style.color = '#f66161';//然后变色
                //                    rq = tr.children()[num];
                //                    rq.style.color = '#f66161';//然后变色
                //                }
                //            }
                //        }
                //    });
                //    $('.layui-table-cell').css({ 'height': 'auto' });
                //}
                , done: function (res, page, count) {
                    //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]);
                    //                }
                    //            }
                    //        }
                    //    }
                    //})
                }
            };
        }
@@ -957,7 +969,7 @@
                success: function (data1) {
                    if (data1.count == 1) {
                        option.data = data1.data;
                        table.render(option);
                        ins = table.render(option);
                        var HinterID_S = [];
                        for (var i = 0; i < data1.data.length; i++) {
                            HinterID_S.push(data1.data[i]["hmainid"]);
@@ -1107,7 +1119,7 @@
        }
        //数量标记颜色
        function DayColor(DaySate, DayHQty) {
        function DayColor(DaySate, DayHQty,Data,NowData) {
            if (DaySate == "齐套" || DaySate == "未齐套") {
                if (DaySate == "齐套") {
                    return "<span style='color:green;'>" + DayHQty + "</span>";
@@ -1119,6 +1131,9 @@
                if (DayHQty == null) {
                    return "<span></span>";
                } else {
                    if (Data[NowData] > 0 && Data[NowData] != null && Data[NowData] != "" && Date.parse(Data["计划结束日期"]) < Date.parse(NowData)) {
                        return "<span style='background-color:#f48888;width:100%;display: inline-block;'>" + DayHQty + "</span>";
                    }
                    return "<span>" + DayHQty + "</span>";
                }
            }
@@ -1148,7 +1163,7 @@
                , area: ['90%', '90%']//大小
                , title: '物料列表'//标题
                , shift: 2//弹出动画
                , content: ['../../Baseset/基础资料/Gy_MaterialList.html', 'yes']
                , content: ['../../基础资料/公用基础资料/Gy_Material.html', 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
@@ -1158,9 +1173,9 @@
                    }
                    //获取数据
                    $("#HMaterID").val(checkStatus.data[0].HItemID);
                    $("#HMaterNumber").val(checkStatus.data[0].HNumber);
                    $("#HMaterName").val(checkStatus.data[0].HName);
                    $("#HMaterModel").val(checkStatus.data[0].HModel);
                    $("#HMaterNumber").val(checkStatus.data[0].物料代码);
                    $("#HMaterName").val(checkStatus.data[0].物料名称);
                    $("#HMaterModel").val(checkStatus.data[0].规格型号);
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
@@ -1474,9 +1489,10 @@
                }
                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>
@@ -1538,6 +1554,13 @@
                        table.render(option);
                        data = table.cache["mainTable"];
                        for (var i = 0; i < data.length; i++) {
                            if (parseFloat(data[i]["小时产能"]) == 0 || parseFloat(data[i]["小时产能"]) == null || parseFloat(data[i]["小时产能"]) == undefined) {
                                return layer.alert("第" + (i + 1) + '行,小时产能未设置,请核对数据。' + '</br>' + '1.物料未添加工艺路线' + '</br>' + '2.工艺路线中未设置小时产能' + '</br>' + '3.生产资源未设置单班工时' + '</br>' + '4.生产资源中绑定工作中心与工艺路线中设置的工作中心不一致');
                            }
                        }
                    } else {
                        //layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
@@ -1549,6 +1572,51 @@
            });
        }
        //工艺路线编辑
        function get_btnRoutEdit() {
            var CheckStatus = table.checkStatus("mainTable");
            if (CheckStatus.data.length == 1) {
                var HSouceID = CheckStatus.data[0]["HSourceID"];
                var HMaterID = CheckStatus.data[0]["HMaterID"];
                var sWhere = "   select a.HInterID from Gy_RoutingBillMain a inner join Gy_RoutingBillSub b on a.HInterID = b.HInterID  and a.HStandard = 1 inner join Gy_Process p on b.HProcID = p.HItemID and HTProcessFlag = 0  inner join Gy_WorkCenter w on b.HCenterID = w.HItemID inner join(select HCenterID from Gy_Source where HItemID = " + HSouceID + ")s on s.HCenterID = w.HItemID where a.HMaterID = " + HMaterID;
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/Gy_SOPBillList/WindowPrintList", //方法所在页面和方法名
                    async: false,
                    data: { "sWhere": sWhere },
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            if (data.data.length == 0) {
                                return layer.msg("当前物料没有工艺路线!请查看物料所对应的工作中心是否正确!");
                            } else {
                                var HInterID = data.data[0]["HInterID"];
                                layer.open({
                                    type: 2
                                    , area: ['100%', '100%']
                                    , title: '工艺路线-编辑'
                                    , shift: 0//弹出动画
                                    , content: '../../计划管理/工艺路线/Gy_RoutingBill.html?OperationType=3&linterid=' + HInterID + '&HSouceBillType=3301'
                                    , end: function () {
                                        //刷新页面,
                                        //location.reload();
                                    }
                                })
                            }
                        }
                        else {
                            layer.msg(data.Message, { icon: 5 });
                        }
                        layer.closeAll("loading");
                    },
                    error: function (err) {
                        layer.msg("错误:" + err, { icon: 5 });
                    }
                });
            } else {
                return layer.msg("请选择一条数据进行工艺路线编辑");
            }
        }
        //排产
        function get_btnProPC(HWorkShopID) {
@@ -2154,6 +2222,27 @@
                        }
                        option.data = dataPush;
                        table.render(option);
                        //获取上方排产列表数据,用于对比下方生产订单列表,将下方生产订单列表相同的数据不显示
                        var compareList = [];
                        for (var i = 0; i < option.data.length; i++) {
                            var temp = option.data[i]["源单主内码"] + "|" + option.data[i]["源单子内码"];
                            compareList.push(temp);
                        }
                        //剔除上方排产列表中已经加入的生产订单
                        var tables = [];
                        for (var i = 0; i < option2.data.length; i++) {
                            var temp = option2.data[i]["hmainid"] + "|" + option2.data[i]["HEntryID"];
                            if ($.inArray(temp, compareList) == -1) {
                                tables.push(option2.data[i]);
                            }
                        }
                        option2.data = tables;
                        //重新渲染子表2
                        table.render(option2);
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
@@ -2373,24 +2462,24 @@
                        if (checkStatus.data.length != 1) {
                            return layer.msg("请选择一条数据");
                        }
                        OptionData = checkStatus.data[0];
                        OptionData[0] = checkStatus.data[0];
                        layer.close(index);//关闭弹窗
                    }
                    , end: function () {
                        var num = 0;
                        for (var i = 0; i < option.data.length; i++) {
                            if (num >= data.length) {
                                break;
                        if (OptionData.length > 0) {
                            var num = 0;
                            for (var i = 0; i < option.data.length; i++) {
                                if (num >= data.length) {
                                    break;
                                }
                                if (option.data[i]["LAY_CHECKED"] == true) {
                                    option.data[i]["HSourceID"] = OptionData[0].HItemID;
                                    option.data[i]["生产资源"] = OptionData[0].生产资源名称;
                                    num += 1;
                                }
                            }
                            if (option.data[i]["LAY_CHECKED"] == true) {
                                option.data[i]["HSourceID"] = OptionData.HItemID;
                                option.data[i]["生产资源"] = OptionData.生产资源名称;
                                num += 1;
                            }
                            table.render(option);
                        }
                        table.render(option);
                        //obj.update({
                        //    "HSourceID": OptionData.HItemID
                        //    , "生产资源": OptionData.生产资源名称
@@ -2511,7 +2600,7 @@
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                OptionData = checkStatus.data[0];
                                OptionData[0] = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": checkStatus.data[0].HItemID
@@ -2520,17 +2609,60 @@
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                obj.update({
                                    "HSourceID": OptionData.HItemID
                                    , "生产资源": OptionData.生产资源名称
                                })
                                if (OptionData.length > 0) {
                                    obj.update({
                                        "HSourceID": OptionData[0].HItemID
                                        , "生产资源": OptionData[0].生产资源名称
                                    })
                                    OptionData = [];
                                }
                            }
                        })
                    }
                    obj.event = "";
                    return false;
                }
                } else if (event.key == "F8") {
                    //生产资源
                    if (obj.event == "HSourceID") {
                        layer.open({
                            type: 2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "生产资源列表"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ["../../Baseset/基础资料/Gy_Source.html?HMaterID=" + obj.data["HMaterID"], "yes"]
                            , btn: ["确定", "取消"]
                            , btn1: function (index, laero) {
                                //按钮一  çš„回调
                                var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                OptionData[0] = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": checkStatus.data[0].HItemID
                                    , "生产资源": checkStatus.data[0].HName
                                })
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                if (OptionData.length > 0) {
                                    obj.update({
                                        "HSourceID": OptionData[0].HItemID
                                        , "生产资源": OptionData[0].HName
                                    })
                                    OptionData = [];
                                }
                            }
                        })
                    }
                    obj.event = "";
                }
            })
        }
@@ -2591,7 +2723,6 @@
            }
        }
        //查询未排产的生产订单
        function get_Display2(sWhere_ICMO) {
            var ajaxLoad = layer.load();
@@ -2642,6 +2773,27 @@
                        //刷新表格数据
                        DisPlay_HideColumn_ICMO();
                        //获取上方排产列表数据,用于对比下方生产订单列表,将下方生产订单列表相同的数据不显示
                        var compareList = [];
                        for (var i = 0; i < option.data.length; i++) {
                            var temp = option.data[i]["源单主内码"] + "|" + option.data[i]["源单子内码"];
                            compareList.push(temp);
                        }
                        //剔除上方排产列表中已经加入的生产订单
                        var tables = [];
                        for (var i = 0; i < option2.data.length; i++) {
                            var temp = option2.data[i]["hmainid"] + "|" + option2.data[i]["HEntryID"];
                            if ($.inArray(temp, compareList) == -1) {
                                tables.push(option2.data[i]);
                            }
                        }
                        option2.data = tables;
                        //重新渲染子表2
                        table.render(option2);
                        layer.close(ajaxLoad);
                        //if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
@@ -2751,6 +2903,18 @@
            })
        }
        function get_Export() {
            var data = option.data
            data.forEach((item) => {
                // å¦‚果某个字段的值太长,需要去除换行符
                if (item.规格型号.length > 0) {  // å‡è®¾å­—段名为field
                    item.规格型号 = item.规格型号.replace(/[\r\n]+/g, '');  // å°†æ¢è¡Œç¬¦æ›¿æ¢ä¸ºç©ºå­—符串
                    item.规格型号 = item.规格型号.replace(/[,]+/g, ',');  // å°†æ¢åˆ†å·æ›¿æ¢ä¸ºç©ºå­—符串
                }
            });
            table.exportFile(ins.config.id, data, "xls");
        }
        //排产功能
        function set_Arrangement() {
            var checkStatus = table.checkStatus('mainTable_ICMO')
@@ -2771,57 +2935,17 @@
                //    obj[key] = value;
                //}
                //获取勾选上的待排生产订单
                //获取数据
                var hmainid = [];
                //var HEntryID = [];
                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]);
                    if ($.inArray(checkStatus.data[i]["hmainid"] + '_' + checkStatus.data[i]["HEntryID"], hmainid) == -1) {
                        hmainid.push(checkStatus.data[i]["hmainid"] + '_' + checkStatus.data[i]["HEntryID"]);
                    }
                }
                option2.data = tables;
                //重新渲染子表2
                table.render(option2);
                //查询生产订单
                SelectICMOBill(hmainid);
                //var wait = layer.load();
                ////逻辑方法
@@ -3109,6 +3233,7 @@
    //双击返回生产资源
    function GetGySource(data) {
        OptionData = data
        OptionData[0] = data
    }
</script>