1
duhe
2025-05-15 a89d9c0503aaceae783b10ccc8332200f1013448
WebTM/views/Éú²ú¹ÜÀí/ÈýÉýÅŲú/JIT_DayPlanPlatForm.html
@@ -2,7 +2,7 @@
<html>
<head>
    <meta charset="utf-8" />
    <title>生产计划排产</title>
    <title>三升生产计划排产</title>
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/ext/soulTable.css" media="all">
@@ -23,11 +23,11 @@
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div style="padding: 10px; ">
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="ExcelImport" id="ExcelImport">Excel导入</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="ExcelDateImport" id="ExcelDateImport">完工日期导入</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="ExcelDateImport" id="ExcelDateImport">交期导入</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnICMOBill" id="btnICMOBill">生产订单选单</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnAddICMO" id="btnAddICMO">添加订单</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">保存</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnReady" id="btnReady">准备</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="btnLock" id="btnLock">锁定</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnUnlock" id="btnUnlock">解锁</button>
@@ -36,6 +36,7 @@
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnLockOrder" id="btnLockOrder">锁定工单</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnUnlockOrder" id="btnUnlockOrder">解锁工单</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnCompleteSetAnalysis" id="btnCompleteSetAnalysis">齐套分析</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnYLYS" id="btnYLYS">要料运算</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnTLYS" id="btnTLYS">提料运算</button>
                            <!--<button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btn_Calculate" id="btn_Calculate">欠料运算</button>-->
                            <!--<button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnRoutEdit" id="btnRoutEdit">工艺路线</button>-->
@@ -302,13 +303,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_ReadyWorkQty"><i class="layui-icon layui-icon-delete"></i>准备(同步产能)</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Souce"><i class="layui-icon layui-icon-delete"></i>选产线</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Emp"><i class="layui-icon layui-icon-delete"></i>选操作工</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
@@ -348,6 +350,7 @@
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index', //主入口模块
        soulTable: 'soulTable'
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util', 'soulTable','jquery'], function () {
        //#region å…¬ç”¨å˜é‡
@@ -584,6 +587,16 @@
                case 'set_ReadyAsc':
                    set_ReadyAsc();
                    break;
                //准备同步产能
                case 'set_ReadyWorkQty':
                    layer.confirm('你确定要执行操作吗,请先确保排产数据已保存?', {
                        btn: ['确定', '取消'] //按钮
                        , btn1: function (index, layero) {
                            get_btnReady(data);
                            layer.close(index);
                        }
                    })
                    break;
                //选产线
                case 'set_Souce':
                    set_Souce(data);
@@ -725,7 +738,16 @@
                })
            }
        })
        //要料运算
        form.on('submit(btnYLYS)', function (data) {
            layer.confirm('你确定要执行操作吗,请先确保排产数据已保存?', {
                btn: ['确定', '取消'] //按钮
                , btn1: function (index, layero) {
                    get_btnYLYS();
                    layer.close(index);
                }
            })
        })
        //提料运算
        form.on('submit(btnTLYS)', function (data) {
            if (set_ModCheck("Sc_WorkBillSortBill_tlys") == true) {
@@ -1015,10 +1037,10 @@
            var ajaxLoad = layer.load();
            //进入页面显示的缓存列表
            $.ajax({
                url: GetWEBURL() + '/Gy_Department/list',
                url: GetWEBURL() + '/Gy_Department/cx',
                type: "GET",
                async: false,
                data: { "sWhere": "and HItemID = " + HWorkShopID, "user": sessionStorage["HUserName"], "Organization": sessionStorage["Organization"] },
                data: { "HInterID": HWorkShopID },
                success: function (data1) {
                    if (data1.count == 1) {
                        $("#HWorkShopID").val(HWorkShopID);
@@ -1050,7 +1072,7 @@
            Organ();
            //初始化表格
            set_InitGrid();
            get_FastQuery(1);
            get_FastQuery(2);
            get_FastQuery_ICMO();
        }
        //#region åˆå§‹åŒ–下拉列表 æŽ’产时间
@@ -1659,11 +1681,12 @@
            columns.push({ field: '物料名称', title: '物料名称', width: 150, filter: true, sort: true});
            columns.push({ field: '规格型号', title: '规格型号', width: 150, filter: true, sort: true });
            columns.push({ field: '小时产能', title: '小时产能', width: 150, edit: 'text', filter: true, sort: true });
            columns.push({ field: '销售订单数量', title: '销售订单数量', width: 150, filter: true, sort: true });//0
            //0
            columns.push({ field: '计划数量', title: '生产订单数量', width: 150, filter: true, sort: true });//0
            columns.push({ field: '日计划数量总量', title: '日计划数量总量', width: 150, filter: true, sort: true });//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>", filter: true, sort: true });
            columns.push({ field: '生产订单日期', title: '生产订单日期', width: 150, templet: "<div>{{d.生产订单日期 ==null ?'':layui.util.toDateString(d.生产订单日期, 'yyyy-MM-dd')}}</div>", filter: true, sort: true });
            columns.push({ field: '计划结束日期', title: '计划结束日期', width: 150, templet: "<div>{{d.计划结束日期 ==null ?'':layui.util.toDateString(d.计划结束日期, 'yyyy-MM-dd')}}</div>", event: "HPlanEndDate", filter: true, sort: true });
            columns.push({ field: '订单可排数量', title: '订单可排数量', width: 150, filter: true, sort: true});
            columns.push({ field: '拆单数量', title: '拆单数量', width: 150, edit: 'text', filter: true, sort: true });
@@ -1677,7 +1700,7 @@
            for (var i = 0; i < HArrangeProductDayQty; i++) {
                columns.push(dateColumns[i]);//0
            }
            columns.push({ field: '计划开始日期', title: '预计开工日期', width: 150, templet: "<div>{{d.计划开始日期 ==null ?'':layui.util.toDateString(d.计划开始日期, 'yyyy-MM-dd')}}</div>", filter: true, sort: true });
            columns.push({ field: '生产订单明细行号', title: '生产订单明细行号', width: 150 });
            columns.push({ field: 'T31', title: 'T31', width: 70 });//0
            columns.push({ field: '订单类型', title: '订单类型', width: 150 });
@@ -1692,7 +1715,7 @@
            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, templet: "<div>{{d.生产订单日期 ==null ?'':layui.util.toDateString(d.生产订单日期, 'yyyy-MM-dd')}}</div>", filter: true, sort: true  });
            columns.push({ field: '销售订单数量', title: '销售订单数量', width: 150, filter: true, sort: true });
            columns.push({ field: '生产车间', title: '生产车间', width: 150 });
            columns.push({ field: '源单主内码', title: '源单主内码', width: 150 });
            columns.push({ field: '源单子内码', title: '源单子内码', width: 150 });
@@ -1712,7 +1735,7 @@
            columns.push({ field: 'HEmpID', title: 'HEmpID', hide: true });
            columns.push({ field: '拆单汇报数量', title: '拆单汇报数量', width: 150, edit: 'text' });
            columns.push({ field: '锁定工单', title: '锁定工单', width: 150, filter: true });//0
            columns.push({ fixed: 'right', title: '操作', toolbar: '#barDemo' });
            columns.push({ fixed: 'right', field: '操作', title: '操作', toolbar: '#barDemo' });
            option_columns = columns;
            option = {
                elem: '#mainTable'
@@ -1722,7 +1745,32 @@
                , cellMinWidth: 90
                , cols: [columns]
                , limit: Number.MAX_VALUE//默认显示全部
                , even: true
                , contextmenu: {
                    // è¡¨æ ¼å†…容右键菜单配置
                    body: [
                        {
                            name: '复制',
                            icon: 'layui-icon layui-icon-template',
                            click: function (obj) {
                                soulTable.copy(obj.text)
                                layer.msg('复制成功!')
                            }
                        },
                        {
                            name: '行-蓝色',
                            click: function (obj) {
                                obj.trElem.css('background', '#01AAED')
                            }
                        },
                        {
                            name: '红色',
                            click: function (obj) {
                                obj.elem.css('color', 'red')
                            }
                        }
                    ]
                }
                , even: true//行拖拽
                , rowDrag: {/*trigger: 'row',*/
                    done: function (obj) {
                        // å®Œæˆæ—¶ï¼ˆæ¾å¼€æ—¶ï¼‰è§¦å‘
@@ -1751,17 +1799,17 @@
                }
                , done: function (res, page, count) {
                    soulTable.render(this);
                    $('.layui-table thead').on('click', 'th', function () {
                        // èŽ·å–ç‚¹å‡»çš„è¡¨å¤´çš„ field å€¼
                        var field = $(this).data('field');
                        set_InitGrid1(field);
                        sWhere = {
                            HORGID: sessionStorage["OrganizationID"]
                            , HBEGINDATE: field
                            , HENDDATE: field
                        }
                        //get_Display_3(JSON.stringify(sWhere));
                    });
                    //$('.layui-table thead').on('click', 'th', function () {
                    //    // èŽ·å–ç‚¹å‡»çš„è¡¨å¤´çš„ field å€¼
                    //    var field = $(this).data('field');
                    //    set_InitGrid1(field);
                    //    sWhere = {
                    //        HORGID: sessionStorage["OrganizationID"]
                    //        , HBEGINDATE: field
                    //        , HENDDATE: field
                    //    }
                    //    //get_Display_3(JSON.stringify(sWhere));
                    //});
                    //res.data.forEach(function (item, index) {
                    //    if (data1.data.DataColor != undefined) {
                    //        var sj = data1.data.DataColor;
@@ -1831,11 +1879,7 @@
                        layer.close(ajaxLoad);
                        if (HinterID_S.length > 0) {
                            get_Display_1(HinterID_S);
                            get_Display_2(HinterID_S)
                        }
                        if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
                            ColFilter();
                            get_Display_2(HinterID_S);
                        }
                    } else {
@@ -1855,7 +1899,7 @@
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHinterIDList',
                type: "GET",
                async: false,
                async: true,
                data: { "sWhere": HinterID_S.toString(),"num":1 },
                success: function (data1) {
                    if (data1.count == 1) {
@@ -1921,7 +1965,7 @@
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHinterIDList',
                type: "GET",
                async: false,
                async: true,
                data: { "sWhere": HinterID_S.toString(), "num": 2 },
                success: function (data1) {
                    if (data1.count == 1) {
@@ -2367,7 +2411,33 @@
                }
            });
        }
        //要料运算
        function get_btnYLYS() {
            sWhere = {
                HProdORGID: $("#HProdORGID").val()
                , HWorkShopID: $("#HWorkShopID").val()
            }
            sWhere = JSON.stringify(sWhere);
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_YLYS',
                type: "GET",
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        get_FastQuery(2);
                        layer.msg(data1.Message);
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //提料运算
        function get_btnTLYS() {
            if ($("#HWorkShopID").val() == 0) {
@@ -2541,10 +2611,10 @@
        //准备
        function get_btnReady() {
            var data = table.cache["mainTable"];
        function get_btnReady(data) {
            /*var data = table.cache["mainTable"];*/
            var HTotalDataList = [[]];
            var ajaxData;
            var index = 0;
            var countEveryGroup = 50;
            for (var i = 0; i < data.length; i++) {
@@ -2552,7 +2622,8 @@
                    return layer.msg("请先进行保存!!")
                }
                if (isNaN(data[i]["HSourceID"])) {
                    return layer.msg("选择生产资源!!")
                    data[i]["HSourceID"] = 0
                    /*return layer.msg("选择生产资源!!")*/
                }
                if ((index / countEveryGroup).toFixed(0)*1 == HTotalDataList.length) {
@@ -2572,22 +2643,26 @@
                HICOMNum = HTotalDataList[t];
                $.ajax({
                    url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/ReadyData',
                    url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/ReadyData_SS',
                    async: false,
                    type: "GET",
                    data: { "SWhere": HICOMNum.toString() },
                    success: function (data1) {
                        if (data1.count == 1) {
                            ajaxData = data1.data;
                            for (var i = 0; i < data1.data.length; i++) {
                                for (var j = 0; j < option.data.length; j++) {
                                    if (data1.data[i]["HICMOInterID"] == option.data[j]["HICMOInterID"] && data1.data[i]["HICMOEntryID"] == option.data[j]["HICMOEntryID"]) {
                                        option.data[j]["小时产能"] = data1.data[i]["小时产能"];
                                        option.data[j]["HSourceID"] = data1.data[i]["HSourceID"];
                                        option.data[j]["生产资源"] = data1.data[i]["生产资源"];
                                        option.data[j]["生产周期"] = data1.data[i]["生产周期"];
                                        option.data[j]["开工余量"] = data1.data[i]["开工余量"];
                                        option.data[j]["最迟开工日期"] = data1.data[i]["最迟开工日期"];
                                        option.data[j]["最迟完工日期"] = data1.data[i]["最迟完工日期"];
                                        option.data[j]["订单需求数量"] = data1.data[i]["订单需求数量"];
                                        option.data[j]["订单交货期"] = data1.data[i]["订单交货期"] < "2020-01-01 0:00:00" ? "1900-01-01" : data1.data[i]["订单交货期"];
                                        break;
                                    }
                                }
@@ -2637,10 +2712,10 @@
            }
            table.render(option);
            set_Priority();
            data = table.cache["mainTable"];
            for (var i = 0; i < data.length; i++) {
                if (parseFloat(data[i]["小时产能"]) == 0 || parseFloat(data[i]["小时产能"]) == null || parseFloat(data[i]["小时产能"]) == undefined) {
            /*set_Priority();*/
            /*data = table.cache["mainTable"];*/
            for (var i = 0; i < ajaxData.length; i++) {
                if (parseFloat(ajaxData[i]["小时产能"]) == 0 || parseFloat(ajaxData[i]["小时产能"]) == null || parseFloat(ajaxData[i]["小时产能"]) == undefined) {
                    msg += "第" + (i + 1) + '行,小时产能未设置,请核对数据。' + '</br>' + '1.物料未添加工艺路线' + '</br>' + '2.工艺路线中未设置小时产能' + '</br>' + '3.生产资源未设置单班工时' + '</br>' + '4.生产资源中绑定工作中心与工艺路线中设置的工作中心不一致';
                }
            }
@@ -3618,7 +3693,8 @@
                                if (num >= data.length) {
                                    break;
                                }
                                if (option.data[i]["LAY_CHECKED"] == true) {
                                if ($.grep(data, function (item) {
                                    return item.hmainid === option.data[i].hmainid;}).length > 0) {
                                    option.data[i]["HSourceID"] = OptionData[0].HItemID;
                                    option.data[i]["生产资源"] = OptionData[0].生产资源名称;
                                    num += 1;
@@ -4136,7 +4212,6 @@
                            , limit: 200
                            , cellMinWidth: 90
                        }
                        table.render(option2);
                        //刷新表格数据
                        DisPlay_HideColumn_ICMO();
@@ -4385,6 +4460,7 @@
            $.ajax({
                url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                type: "GET",
                async: false,
                data: { "HModName": HModName + "Main", "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.data.length != 0) {
@@ -4455,9 +4531,9 @@
                                option2.cols[0][i + 1]["fixed"] = "left";
                            }
                        }
                        table.render(option2);
                        /*table.render(option2);*/
                    } else {
                        table.render(option2);
                        /*table.render(option2);*/
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
@@ -4564,20 +4640,6 @@
            })
        }
        //列明显示下拉框
        function ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
            for (var i = 2; i < option.cols[0].length - 1; i++) {
                if (option.cols[0][i].hide != true) {
                    Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
                }
            }
            $("#ColName").empty();
            $("#ColName").append(Organization);$("#ColName1").empty();
            $("#ColName1").append(Organization);$("#ColName2").empty();
            $("#ColName2").append(Organization);
            form.render('select');
        }
        //#endregion
        //以上是layui模块
    });