duhe
2024-05-28 262cee2e43059f55330b5efda849fcd1d445efd2
WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/JIT_DayPlanPlatForm.html
@@ -242,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">
@@ -280,7 +281,7 @@
            , excel = layui.excel
            , soulTable = layui.soulTable
            , element = layui.element;
        var ins;
        var sWhere = "";
        var sWhere_ICMO = "";
        var option = [];
@@ -503,6 +504,11 @@
                case 'set_Calendar':
                    set_Calendar();
                    break;
                    break;
                //导出excel
                case 'get_export':
                    get_Export();
                    break;
            }
        });
@@ -543,7 +549,7 @@
                   if (table.cache["mainTable"][i] != "") {                       
                      if (parseFloat(table.cache["mainTable"][i]["优先级"]) == 0) {
                          HYxjQty++
                      }
                       }
                   }
                }
                if (HYxjQty > 0) {
@@ -748,11 +754,11 @@
            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: 'HMaterID', title: 'HMaterID', 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, 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
@@ -899,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 });
@@ -917,7 +922,7 @@
            columns.push({ field: 'HGroupName', title: 'HGroupName', width: 150, hide:true });
            columns.push({ field: '生产资源代码', title: '生产资源代码', width: 150, hide: true });
            columns.push({ field: 'HSourceID', title: 'HSourceID', hide: true });
            columns.push({ field: 'HMaterID', title: 'HMaterID', hide: true });
            columns.push({ field: 'HWorkShopID', title: 'HWorkShopID', hide: true });
            columns.push({ field: 'HUnitID', title: 'HUnitID', hide: true });
            columns.push({ field: 'HProdORGID', title: 'HProdORGID', hide: true });
@@ -933,6 +938,7 @@
                , cols: [columns]
                , limit: Number.MAX_VALUE//默认显示全部
                , done: function (res, page, count) {
                    soulTable.render(this);
                    //res.data.forEach(function (item, index) {
                    //    if (data1.data.DataColor != undefined) {
                    //        var sj = data1.data.DataColor;
@@ -964,7 +970,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"]);
@@ -1158,7 +1164,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]  //获取弹框页面
@@ -1168,9 +1174,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) { }
@@ -1484,9 +1490,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>
@@ -1548,6 +1555,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 });
@@ -1574,7 +1588,7 @@
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            if (data.data.length == 0) {
                                return layer.msg("当前物料没有工艺路线!");
                                return layer.msg("当前物料没有工艺路线!请查看物料所对应的工作中心是否正确!");
                            } else {
                                var HInterID = data.data[0]["HInterID"];
@@ -2209,6 +2223,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);
@@ -2428,7 +2463,7 @@
                        if (checkStatus.data.length != 1) {
                            return layer.msg("请选择一条数据");
                        }
                        OptionData = checkStatus.data[0];
                        OptionData[0] = checkStatus.data[0];
                        layer.close(index);//关闭弹窗
                    }
                    , end: function () {
@@ -2439,8 +2474,8 @@
                                    break;
                                }
                                if (option.data[i]["LAY_CHECKED"] == true) {
                                    option.data[i]["HSourceID"] = OptionData.HItemID;
                                    option.data[i]["生产资源"] = OptionData.生产资源名称;
                                    option.data[i]["HSourceID"] = OptionData[0].HItemID;
                                    option.data[i]["生产资源"] = OptionData[0].生产资源名称;
                                    num += 1;
                                }
                            }
@@ -2566,7 +2601,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
@@ -2575,17 +2610,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 = "";
                }
            })
        }
@@ -2646,7 +2724,6 @@
            }
        }
        //查询未排产的生产订单
        function get_Display2(sWhere_ICMO) {
            var ajaxLoad = layer.load();
@@ -2697,6 +2774,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() == "") {
@@ -2806,6 +2904,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')
@@ -2826,57 +2936,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();
                ////逻辑方法
@@ -3166,4 +3236,5 @@
    function GetGySource(data) {
        OptionData = data
    }
</script>