yangle
2023-11-28 0ed77dda6f55553b96a729dfd9fdc3385a3f3ce9
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">
@@ -184,12 +185,14 @@
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_BatchFill"><i class="layui-icon layui-icon-file-b"></i>批量填充</button>
            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>编辑</button>-->
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>编辑</button>-->
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制行</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>删除行</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_MoverUp"><i class="layui-icon layui-icon-delete"></i>上移</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_MoverDown"><i class="layui-icon layui-icon-delete"></i>下移</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Priority"><i class="layui-icon layui-icon-delete"></i>优先级</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ReadyAsc"><i class="layui-icon layui-icon-delete"></i>准备排序</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Souce"><i class="layui-icon layui-icon-delete"></i>选产线</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                            </div>
                        </script>
@@ -210,7 +213,7 @@
        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.$
@@ -220,12 +223,13 @@
            , form = layui.form
            , laydate = layui.laydate
            , excel = layui.excel
            , soulTable = layui.soulTable
            , element = layui.element;
        var sWhere = "";
        var option = [];
        var HModName = "JIT_DayPlanPlatForm";
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -243,15 +247,16 @@
            var yyyy = myDate.getFullYear();
            var MM = myDate.getMonth() + 1;
            var dd = myDate.getDate();
            var SumMonth = 31; //动态两月之差 new Date(yyyy, MM, 0).getDate()
            var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差 new Date(yyyy, MM, 0).getDate()
            var dateHQty = 0;
            var SumHQty = 0;//拆单数量
            for (var i = 0; i <= (SumMonth - dd); i++) {
                if (obj.field == "生产资源") {
                    return;
                }
                if (!isNaN(parseInt(obj.data[Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd')]))) {
                    dateHQty += parseInt(obj.data[Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd')])  ;
                    dateHQty += parseInt(obj.data[Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd')]);
                }
            }
            for (var i = 1; i < dd; i++) {
@@ -260,16 +265,38 @@
                }
            }
            //查询所有数据相同的订单
            for (var i = 0; i < option.data.length; i++) {
                if (obj.data["生产订单号"] == option.data[i]["生产订单号"] && obj.data["生产订单明细行号"] == option.data[i]["生产订单明细行号"]) {
                    SumHQty += parseInt(option.data[i]["拆单数量"]);
                }
            }
            if (obj.value == "0" && obj.field == "拆单数量") {
                return layer.msg("拆单数量不能为0!");
            }
            if (SumHQty > (parseInt(obj.data["计划数量"]))) {
                obj.update({
                    "拆单数量": "0"
                });
                return layer.msg("拆单数量大于订单数量!");
            }
            var NowDate = obj.field;
            if (dateHQty > (parseInt(obj.data["计划数量"]))) {
                obj.update({
                    "日计划数量总量": dateHQty
                    "日计划数量总量": dateHQty - obj.value,
                    [NowDate]: 0
                });
                return layer.msg("排产数量大于订单数量!")
            }
            //修改数据
            obj.update({
                "日计划数量总量": dateHQty
                "日计划数量总量": dateHQty,
            });
        })
@@ -278,27 +305,18 @@
            btnrowDouble(obj.data);
        })
        var objData = "";
        //点击行选中数据
        table.on('row(mainTable)', function (obj) {
            if (objData != "" && objData.tr.find(':checkbox:first').prop('checked') != obj.tr.find(':checkbox:first').prop('checked')) {
                objData.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                objData.tr.find(':checkbox:first').prop('checked', false);//取消复选框选中样式
                layui.each(table.cache.mainTable, function (i, l) {
                    if (objData.tr.index() == l.LAY_TABLE_INDEX) {
                        l.LAY_CHECKED = false;
                    }
                });
            }
            //选中行改变颜色
            var flag = !obj.tr.find(':checkbox:first').prop('checked');
            obj.tr.find(':checkbox').prop('checked', flag);
            if (flag) {
                obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');  //设置复选框选中样式
                //$(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
            } else {
                obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                obj.tr.find(':checkbox:first').prop('checked', false);//取消复选框选中样式
                //$(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
            }
            //mainTable ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
            layui.each(table.cache.mainTable, function (i, l) {
@@ -306,17 +324,6 @@
                    l.LAY_CHECKED = flag;
                }
            });
            for (var i = 0; i < table.cache["mainTable"].length; i++) {
                if (table.cache["mainTable"][i]["生产订单号"] != obj.data["生产订单号"]) {
                    table.cache["mainTable"][i].LAY_CHECKED = false;
                }
            }
            option.data = table.cache["mainTable"];
            table.render(option);
            objData = obj;
        })
        //头工具栏事件
@@ -336,6 +343,40 @@
                        data[0]["HSourceID"] = "";
                        data[0]["hmainid"] = "";
                        data[0]["单据号"] = "";
                        data[0]["拆单数量"] = 0;
                        var myDate = new Date();
                        //获取年
                        var yyyy = myDate.getFullYear();
                        //获取月份
                        var MM = myDate.getMonth() + 1;
                        //获取开始月份的最大天数
                        var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差
                        //获取开始日期的天数
                        var HBEGINDATE = myDate.getDate(); //获取当天日期天数
                        var columns = []
                        var k = 0;//收集循环次数
                        for (var j = 0; j <= (30 - k); j++) {
                            data[0][Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd')] = "";
                            //跨年的话 ä¼šä»Žä¸€æœˆä¸€å·å¼€å§‹
                            if (MM == 12 && (HBEGINDATE + j) == 31) {
                                yyyy += 1;
                                MM = 1;
                                SumMonth = new Date(yyyy, MM, 0).getDate();
                                HBEGINDATE = 0;
                                k += j;
                                j = 0;
                            } else if ((HBEGINDATE + j) == SumMonth) { //跨月 æœˆæ•°åР䏀  å¤©æ•°ä»Žä¸€å¼€å§‹
                                HBEGINDATE = 0;
                                MM += 1;
                                SumMonth = new Date(yyyy, MM, 0).getDate();
                                k += j;
                                j = 0;
                            }
                        }
                        var copydata = JSON.stringify(data);
                        var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
                        var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
@@ -364,6 +405,16 @@
                case 'set_Priority':
                    set_Priority();
                    break;
                //准备排序
                case 'set_ReadyAsc':
                    set_ReadyAsc();
                    break;
                //选产线
                case 'set_Souce':
                    set_Souce(data);
                    break;
            }
        });
@@ -450,6 +501,26 @@
        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
        });
        //锁定
@@ -522,27 +593,27 @@
            var myDate = new Date();
            var oneday = 1000 * 60 * 60 * 24;
            columns.push({ type: 'checkbox', fixed: 'left' });
            columns.push({ field: '单据号', title: '单据号', hide: true });
            columns.push({ field: '销售订单号', title: '销售订单号', width: 150});
            columns.push({ field: '生产订单号', title: '生产订单号', width: 150, style: 'background-color: #f9f9f9;' });
            columns.push({ field: '生产订单明细行号', title: '生产订单明细行号', width: 150 });
            columns.push({ field: '优先级', title: '优先级', width: 150, edit: 'text' });
            columns.push({ field: 'HProdORGID', title: 'HProdORGID', hide: true });
            columns.push({ field: '生产组织', title: '生产组织', width:150 });
            columns.push({ 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: '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 });//0
            columns.push({ field: '计划数量', title: '生产订单数量', width: 150 });//0
            columns.push({field: '日计划数量总量', title: '日计划数量总量', width: 150});//0
            columns.push({ field: '今日之前日计划数量', title: '今日之前日计划数量', width: 150 });//0
            columns.push({ field: '计划开始日期', title: '预计开工日期', width: 150, templet: "<div>{{d.计划开始日期 ==null ?'':layui.util.toDateString(d.计划开始日期, 'yyyy-MM-dd')}}</div>"});
            columns.push({ field: '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, 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, 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({
@@ -671,31 +742,36 @@
                }  })//0
            columns.push({ field: 'T31', title: 'T31', width: 70 });//0
            columns.push({ field: '订单类型', title: '订单类型', width: 150 });
            columns.push({ field: '生产订单单据类型', title: '源单订单单据类型', width: 150 });
            columns.push({ field: '业务状态', title: '业务状态', width: 150 });
            columns.push({ field: '产线入库数量', title: '产线入库数量', width: 150 });
            columns.push({ field: '未排数量', title: '可排数量', width: 150 });
            columns.push({ field: '订单等级', title: '订单等级', width: 150 });
            columns.push({ field: '订单交货期', title: '订单交货期', width: 150, templet: "<div>{{d.订单交货期 =='1900-01-01' ?'':layui.util.toDateString(d.订单交货期, 'yyyy-MM-dd')}}</div>" });
            columns.push({ field: '订单需求数量', title: '订单需求数量', width: 150 });
            columns.push({ field: '开工余量', title: '开工余量', width: 150 });
            columns.push({ field: '小时产能', title: '小时产能', width: 150 });
            columns.push({ field: '生产周期', title: '生产周期', width: 150 });
            columns.push({ field: '最迟开工日期', title: '最迟开工日期', width: 150, templet: "<div>{{d.最迟开工日期 =='' ?'':layui.util.toDateString(d.最迟开工日期, 'yyyy-MM-dd')}}</div>" });
            columns.push({ field: '最迟完工日期', title: '最迟完工日期', width: 150, templet: "<div>{{d.最迟完工日期 =='' ?'':layui.util.toDateString(d.最迟完工日期, 'yyyy-MM-dd')}}</div>"});
            columns.push({ field: '源单主内码', title: '源单主内码', width: 150 });
            columns.push({ field: '源单子内码', title: '源单子内码', width: 150 });
            columns.push({ field: 'hmainid', title: '日计划工单主码', width: 150 });
            columns.push({ field: '电压/功率/底板', title: '电压/功率/底板', width: 150 });
            columns.push({ field: '计量单位', title: '计量单位', width: 150 });
            columns.push({ field: '订单类型', title: '订单类型', width: 150, sort: true });
            columns.push({ field: '生产订单单据类型', title: '源单订单单据类型', width: 150, sort: true });
            columns.push({ field: '业务状态', title: '业务状态', width: 150, sort: true });
            columns.push({ field: '产线入库数量', title: '产线入库数量', width: 150, sort: true });
            columns.push({ field: '未排数量', title: '可排数量', width: 150, sort: true });
            columns.push({ field: '订单等级', title: '订单等级', width: 150, sort: true });
            columns.push({ field: '订单交货期', title: '订单交货期', width: 150, templet: "<div>{{d.订单交货期 =='1900-01-01' ?'':layui.util.toDateString(d.订单交货期, 'yyyy-MM-dd')}}</div>", sort: true });
            columns.push({ field: '订单需求数量', title: '订单需求数量', width: 150, sort: true });
            columns.push({ field: '开工余量', title: '开工余量', width: 150, sort: true });
            columns.push({ field: '小时产能', title: '小时产能', width: 150, sort: true, 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 });
            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: '生产资源代码', title: '生产资源代码', width: 150, hide: true });
            columns.push({ field: 'HSourceID', title: 'HSourceID', hide: true });
            columns.push({ field: 'HWorkShopID', title: 'HWorkShopID', hide: true });
            columns.push({ field: 'HUnitID', title: 'HUnitID', hide: true });
            columns.push({ field: 'HProdORGID', title: 'HProdORGID', hide: true });
            columns.push({ fixed: 'right', title: '操作', toolbar: '#barDemo' });
            option = {
@@ -774,6 +850,7 @@
            $.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) {
@@ -838,6 +915,7 @@
            $.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) {
@@ -959,7 +1037,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]  //获取弹框页面
@@ -969,7 +1047,7 @@
                    }
                    //获取数据
                    $("#HWorkShopID").val(checkStatus.data[0].HItemID);//车间id
                    $("#HWorkShopIDName").val(checkStatus.data[0].HName);//车间名称
                    $("#HWorkShopIDName").val(checkStatus.data[0].部门名称);//车间名称
                    get_WriteConfigFile();
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
@@ -1005,8 +1083,8 @@
        function get_FastQuery(number) {
            var HWorkShopID = 0;
            var HProdORGID = 0;
            HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (number == 2) {
                HWorkShopID = $("#HWorkShopID").val();//生产车间
                if (HWorkShopID == 0) {
                    return layer.msg("生产车间不能为空!");
                }
@@ -1168,7 +1246,7 @@
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        }
        //生产订单选单
        function get_btnICMOBill() {
@@ -1213,7 +1291,10 @@
                if (isNaN(data[i]["HICMOInterID"])) {
                    return layer.msg("请先进行保存!!")
                }
                HICOMNum.push(data[i]["HICMOInterID"] + ";" + data[i]["HICMOEntryID"]);
                if (isNaN(data[i]["HSourceID"])) {
                    return layer.msg("选择生产资源!!")
                }
                HICOMNum.push(data[i]["HICMOInterID"] + ";" + data[i]["HICMOEntryID"] + ";" + data[i]["HSourceID"]);
            }
            $('#HProgressBar').html(`
    <div class="layui-progress" lay-filter="demo-filter-progress">
@@ -1225,7 +1306,7 @@
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/ReadyData',
                type: "GET",
                data: { "HICOMNum": HICOMNum.toString() },
                data: { "SWhere": HICOMNum.toString() },
                success: function (data1) {
                    if (data1.count == 1) {
                        for (var i = 0; i < data1.data.length; i++) {
@@ -1275,7 +1356,7 @@
                        $('#HProgressBar').html('')
                        table.render(option);
                    } else {
                        //layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
@@ -1354,7 +1435,7 @@
                data: { "sWhere": sql },
                success: function (data1) {
                    if (data1.count == 1) {
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
@@ -1391,7 +1472,7 @@
                sICMOBillNo = option.data[i]["生产订单号"];
                dEndDate = Format(option.data[i]["最迟完工日期"], 'yyyy/MM/dd');
                sProdTimes = option.data[i]["生产周期"];
                sPlanQty = option.data[i]["订单可排数量"];
                sPlanQty = option.data[i]["拆单数量"];
                lHGroupID = option.data[i]["HGroupID"];
                sGroupName = option.data[i]["HGroupName"];
                lMaterID = option.data[i]["HMaterID"];
@@ -1465,12 +1546,12 @@
                }
                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 (parseFloat(ds[j]["剩余工时"]) >= sLeftProdTimes) {
                            if (iLeftQty > 0) // ç”Ÿäº§è®¢å•剩余数量
                            {
                                //在本资源上生产
@@ -1716,9 +1797,12 @@
                                        //}
                                    }
                                    else {
                                        if (sLeftQty > parseFloat(sWorkQty * ds[i]["最大剩余工时"])) {
                                            grd.data[iRow][grd.cols[0][j + HPlanDay].field] = parseFloat(sWorkQty * ds[i]["最大剩余工时"]);
                                            sLeftQty = sLeftQty - (parseFloat(sWorkQty * ds[i]["最大剩余工时"]));
                                        var dayWorkQty = sWorkQty * ds[i]["剩余工时"];
                                        var Numzu = dayWorkQty.split('.');
                                        dayWorkQty = Numzu[0] + 1;
                                        if (sLeftQty > dayWorkQty) {
                                            grd.data[iRow][grd.cols[0][j].field] = dayWorkQty;
                                            sLeftQty = sLeftQty - dayWorkQty;
                                            //oSub = new ClsGridValues();
                                            //oSub.iRow = iRow;
                                            //oSub.iCol = j;
@@ -1728,7 +1812,7 @@
                                            //oClsGridValues.Add(oSub);
                                        }
                                        else {
                                            grd.data[iRow][grd.cols[0][j + HPlanDay].field] = sLeftQty;
                                            grd.data[iRow][grd.cols[0][j + HPlanDay].field] =  Math.round(sLeftQty * 10) / 10;
                                            sLeftQty = 0;
                                            //oSub = new ClsGridValues();
                                            //oSub.iRow = iRow;
@@ -1809,9 +1893,16 @@
                                        //}
                                    }
                                    else {
                                        if (sLeftQty > parseFloat(sWorkQty * ds[i]["剩余工时"])) {
                                            grd.data[iRow][grd.cols[0][j].field] = parseFloat(sWorkQty * ds[i]["剩余工时"]);
                                            sLeftQty = sLeftQty - (parseFloat(sWorkQty * ds[i]["剩余工时"]));
                                        var dayWorkQty = sWorkQty * ds[i]["剩余工时"];
                                        var Numzu = dayWorkQty.toString().split(".");
                                        if (Numzu.length > 1) {
                                            dayWorkQty = parseInt(Numzu[0]) + 1;
                                        } else {
                                            dayWorkQty = parseInt(Numzu[0]);
                                        }
                                        if (sLeftQty > dayWorkQty) {
                                            grd.data[iRow][grd.cols[0][j].field] = dayWorkQty;
                                            sLeftQty = sLeftQty - dayWorkQty;
                                            //oSub = new ClsGridValues();
                                            //oSub.iRow = iRow;
                                            //oSub.iCol = j;
@@ -1822,7 +1913,7 @@
                                            //oClsGridValues.Add(oSub);
                                        }
                                        else {
                                            grd.data[iRow][grd.cols[0][j].field] = sLeftQty;
                                            grd.data[iRow][grd.cols[0][j].field] =  Math.round(sLeftQty * 10) / 10;
                                            //option.data[iRow]["HUseTimes"] = parseFloat(sLeftQty / sWorkQty);
                                            sLeftQty = 0;
                                            //oSub = new ClsGridValues();
@@ -1835,11 +1926,11 @@
                                        }
                                    }
                                }
                            }
                            }
                        }
                    }
                }
            }
        }
@@ -1909,7 +2000,11 @@
        //删除行
        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 {
@@ -1936,6 +2031,12 @@
                                        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 });
@@ -1951,12 +2052,17 @@
        function set_MoverUp(data) {
            if (data.length != 1) {
                layer.msg("请选择一行数据!");
            } else if (option.data[0]["生产订单号"] == data[0]["生产订单号"]) {
            } 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]["生产订单号"] == data[0]["生产订单号"]) {
                    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];
@@ -1965,6 +2071,11 @@
                        break;
                    }
                }
                setTimeout(function () {
                    if (layuiTable != null && layuiTable.length > 0) {
                        $('.layui-table-main').scrollTop(scrollTop)
                    }
                }, 100)
            }
        }
@@ -1972,20 +2083,34 @@
        function set_MoverDown(data) {
            if (data.length != 1) {
                layer.msg("请选择一行数据!");
            } else if (option.data[option.data.length - 1]["生产订单号"] == data[0]["生产订单号"]) {
            } 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]["生产订单号"] == data[0]["生产订单号"]) {
                        tables.push(option.data[i + 1]);
                        data[0].LAY_CHECKED = true;
                        option.data[i + 1] = data[0];
                    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)
            }
        }
@@ -1993,12 +2118,106 @@
        function set_Priority() {
            var data = table.cache["mainTable"];
            for (var i = 0; i < data.length; i++) {
                data[i]["优先级"] = (i + 1);
                data[i]["优先级"] = ((i + 1) * 5);
            }
            option.data = data;
            table.render(option);
        }
        //准备排序
        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 () {
                        var num = 0;
                        for (var i = 0; i < option.data.length; i++) {
                            if (num >= data.length) {
                                break;
                            }
                            if (option.data[i]["源单主内码"] == data[num]["源单主内码"] && option.data[i]["源单子内码"] == data[num]["源单子内码"]) {
                                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() {
@@ -2006,8 +2225,11 @@
            var num = [];
            for (var i = 0; i < table.cache["mainTable"].length; i++) {
                if (table.cache["mainTable"][i] != "") {
                    if (parseFloat(table.cache["mainTable"][i]["订单可排数量"]) < parseFloat(table.cache["mainTable"][i]["日计划数量总量"]) + parseFloat(table.cache["mainTable"][i]["今日之前日计划数量"])) {
                        return layer.msg("第" + (i + 1) + "行排产数量超出订单数量!");
                    if (parseFloat(table.cache["mainTable"][i]["拆单数量"]) == 0) {
                        return layer.msg("第" + (i + 1) + "行,拆产数量有误,请重新输入!");
                    }
                    if (parseFloat(table.cache["mainTable"][i]["拆单数量"]) < parseFloat(table.cache["mainTable"][i]["日计划数量总量"]) + parseFloat(table.cache["mainTable"][i]["今日之前日计划数量"])) {
                        return layer.msg("第" + (i + 1) + "行,排产数量超出订单数量!");
                    }
                    table.cache["mainTable"][i].LAY_TABLE_INDEX = i;
                    num.push(table.cache["mainTable"][i])
@@ -2016,7 +2238,7 @@
            //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({
@@ -2052,7 +2274,7 @@
            //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({
@@ -2092,7 +2314,7 @@
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ["../../基础资料/生产基础资料/Gy_Source.html", "yes"]
                            , content: ["../../基础资料/生产基础资料/Gy_Source.html?Htype=生产线", "yes"]
                            , btn: ["确定", "取消"]
                            , btn1: function (index, laero) {
                                //按钮一  çš„回调
@@ -2102,6 +2324,7 @@
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                OptionData = checkStatus.data[0];
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": checkStatus.data[0].HItemID
@@ -2302,7 +2525,7 @@
        //列明显示下拉框
        function ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
            for (var i = 1; i < option.cols[0].length - 1; i++) {
            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>';
                }