1
yxj
2023-07-24 a2811b348e8f32f68d9e9e1bac58f828c202b5bb
WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/JIT_DayPlanPlatForm.html
@@ -26,6 +26,7 @@
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnCompleteSetAnalysis" id="btnCompleteSetAnalysis">齐套分析</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnTLYS" id="btnTLYS">提料运算</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnICMOBill" id="btnICMOBill">生产订单选单</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnReady" id="btnReady">准备</button>
                        </div>
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
@@ -41,13 +42,16 @@
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">生产订单组织</label>
                                    <label class="layui-form-label" style="width: 85px;">提料类型</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                        <select name="HProdORGID" id="HProdORGID" lay-verify="HProdORGID">
                                            <!--动态渲染组织-->
                                        <select name="HTLType" id="HTLType" lay-verify="HTLType">
                                            <option value="缺料" selected="selected">缺料</option>
                                            <option value="生产用料清单">生产用料清单</option>
                                            <!--<option value="采购订单">采购订单</option> æš‚时没有-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">生产车间</label>
                                    <div class="layui-input-block" style="margin-left: 77px;">
@@ -72,7 +76,7 @@
                                            <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">物料编码</label>
                                            <div class="layui-input-block" style="margin-left: 77px;">
                                                <input type="hidden" class="layui-input" lay-verify="HMaterID" name="HMaterID" id="HMaterID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="text" class="layui-input" lay-verify="HMaterNumber" name="HMaterNumber" id="HMaterNumber" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                <input type="text" class="layui-input" lay-verify="HMaterNumber" name="HMaterNumber" id="HMaterNumber" value="" style="width: 60%;display: inline-block;">
                                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHMaterID" id="btnHMaterID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                </button>
@@ -95,15 +99,14 @@
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">物料名称</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HMaterName" id="HMaterName" style="background-color:#efefef4d" readonly>
                                                <input type="text" class="layui-input" name="HMaterName" id="HMaterName">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">齐套类型</label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                                <select name="HOrderType" id="HOrderType" lay-verify="HOrderType">
                                                    <option value="全部">全部</option>
                                                    <option value="生产用料清单">生产用料清单</option>
                                                    <option value="生产用料清单" selected="selected">生产用料清单</option>
                                                    <option value="标准Bom">标准Bom</option>
                                                </select>
                                            </div>
@@ -119,7 +122,7 @@
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">规格型号</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HMaterModel" id="HMaterModel" style="background-color:#efefef4d" readonly>
                                                <input type="text" class="layui-input" name="HMaterModel" id="HMaterModel">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
@@ -129,16 +132,63 @@
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row" style="margin-top:10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">生产订单组织</label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                                <select name="HProdORGID" id="HProdORGID" lay-verify="HProdORGID">
                                                    <!--动态渲染组织-->
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">排产日期</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="date" class="layui-input" lay-verify="HMastersDate" name="HMastersDate" id="HMastersDate" style="padding-left: 75px;">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row" style="margin-top: 10px; margin-bottom: 10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator" id="Comparator" lay-filter="Comparator" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
                                                <option value=">">></option>
                                                <option value="<="><=</option>
                                                <option value="<"><</option>
                                                <option value="<>"><></option>
                                                <option value="7">包含</option>
                                                <option value="8">左包含</option>
                                                <option value="9">右包含</option>
                                                <option value="10">不包含</option>
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input" value="" name="ColContent" id="ColContent">
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div id="test"></div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_BatchFill"><i class="layui-icon layui-icon-file-b"></i>批量填充</button>
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>编辑</button>-->
                                <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_BatchFill"><i class="layui-icon layui-icon-file-b"></i>批量填充</button>
            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ShowBill"><i class="layui-icon layui-icon-form"></i>编辑</button>-->
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制行</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>删除行</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_MoverUp"><i class="layui-icon layui-icon-delete"></i>上移</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_MoverDown"><i class="layui-icon layui-icon-delete"></i>下移</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_Priority"><i class="layui-icon layui-icon-delete"></i>优先级</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                            </div>
                        </script>
@@ -154,9 +204,7 @@
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    var treeCkData = { id: 0 };
    var TagId = "";
    var TagParentId = "";
    var OptionData = [];
    layui.config({
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
@@ -176,6 +224,7 @@
        var sWhere = "";
        var option = [];
        var HModName = "JIT_DayPlanPlatForm";
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -201,7 +250,7 @@
                    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++) {
@@ -209,6 +258,14 @@
                    dateHQty += parseInt(obj.data[Format(yyyy + '/' + (MM + 1) + '/' + i, 'yyyy-MM-dd')]);
                }
            }
            if (dateHQty > (parseInt(obj.data["计划数量"]))) {
                obj.update({
                    "日计划数量总量": dateHQty
                });
                return layer.msg("排产数量大于订单数量!")
            }
            //修改数据
            obj.update({
                "日计划数量总量": dateHQty
@@ -218,6 +275,39 @@
        //双击表格事件
        table.on('rowDouble(mainTable)', function (obj) {
            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');  //设置复选框选中样式
            } else {
                obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                obj.tr.find(':checkbox:first').prop('checked', false);//取消复选框选中样式
            }
            //mainTable ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
            layui.each(table.cache.mainTable, function (i, l) {
                if (obj.tr.index() == l.LAY_TABLE_INDEX) {
                    l.LAY_CHECKED = flag;
                }
            });
            objData = obj;
        })
        //头工具栏事件
@@ -252,6 +342,18 @@
                //删除行
                case 'set_DeleteBill':
                    set_DeleteBill();
                    break;
                //上移
                case 'set_MoverUp':
                    set_MoverUp(data);
                    break;
                //下移
                case 'set_MoverDown':
                    set_MoverDown(data);
                    break;
                //优先级
                case 'set_Priority':
                    set_Priority();
                    break;
            }
        });
@@ -308,6 +410,13 @@
            get_btnICMOBill();
        })
        //准备
        form.on('submit(btnReady)', function (data) {
            get_btnReady();
        })
        //行内事件
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
@@ -344,6 +453,7 @@
            //初始化时间
            $("#HPlanBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
            $("#HPlanEndDate").val(Format(new Date(), "yyyy-MM-dd"));
            $("#HMastersDate").val("");
            //组织
            Organ();
            //初始化表格
@@ -537,7 +647,13 @@
            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 HH:mm:ss')}}</div>"});
            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 });
@@ -580,6 +696,11 @@
                            get_Display_1(HinterID_S);
                            get_Display_2(HinterID_S)
                        }
                        if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
                            ColFilter();
                        }
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
@@ -806,9 +927,36 @@
            }
            var HPlanBeginDate = $("#HPlanBeginDate").val();//开工起始日期
            var HPlanEndDate = $("#HPlanEndDate").val();//开工截止日期
            var HMastersDate = $("#HMastersDate").val();//排产日期
            var HSeOrderBillNo = $("#HSeOrderBillNo").val();//销售订单号
            var HMaterID = $("#HMaterID").val();//物料编码id
            var HICMOBillNo = $("#HICMOBillNo").val();//生产订单号
            var ColName = $("#ColName").val();//复选框
            var Comparator = $("#Comparator").val()
            var ColContent = $("#ColContent").val();
            var sWheres = "";
            if (ColName != 0 && Comparator != 0) {
                var com = "";
                switch (Comparator) {
                    case "7":
                        com = "like''%" + ColContent + "%''";
                        break;
                    case "8":
                        com = "like''%" + ColContent + "''";
                        break;
                    case "9":
                        com = "like''" + ColContent + "%''";
                        break;
                    case "10":
                        com = "not like''%" + ColContent + "%''";
                        break;
                    default:
                        com = "" + Comparator + "''" + ColContent + "''";
                        break;
                }
                sWheres += " and [" + ColName + "] " + com;
            }
            sWhere = {
                HPlanBeginDate: HPlanBeginDate
@@ -818,6 +966,8 @@
                , HMaterID: HMaterID
                , HICMOBillNo: HICMOBillNo
                , HWorkShopID: HWorkShopID
                , HMastersDate: HMastersDate
                , sWheres: sWheres
            }
            get_Display(JSON.stringify(sWhere));
            sWhere = ""//调用接口后清空sWhere缓存
@@ -837,6 +987,7 @@
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , maxmin: true //设置最大最小按钮是否显示
                , area: ['90%', '90%']//大小
                , title: '齐套分析明细表'//标题
                , shift: 2//弹出动画
@@ -849,6 +1000,7 @@
            $("#HPlanBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));//开工起始日期
            $("#HSeOrderBillNo").val("");//销售订单号
            $("#HPlanEndDate").val(Format(new Date(), "yyyy-MM-dd"));//开工截止日期
            $("#HMastersDate").val("");//排产日期
            $("#HMaterID").val("0");//物料编码id
            $("#HMaterNumber").val("");//物料编码
            $("#HMaterName").val("");//物料名称
@@ -857,6 +1009,9 @@
            $("#HWorkShopID").val("0");//生产车间id
            $("#HWorkShopIDName").val("");//生产车间
            $("#HProdORGID").val(sessionStorage["OrganizationID"])//生产订单组织
            $("#ColContent").val("");
            $("#ColName").val("0");
            $("#Comparator").val("0");
            form.render('select');
            sWhere = "";
        }
@@ -901,12 +1056,13 @@
                HProdORGID: $("#HProdORGID").val()
                , HWorkShopID: $("#HWorkShopID").val()
            }
            var HTLType = $("#HTLType").val();
            sWhere = JSON.stringify(sWhere);
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_TLYS',
                type: "GET",
                data: { "sWhere": sWhere, "user": sessionStorage["Czybm"] },
                data: { "sWhere": sWhere, "user": sessionStorage["Czybm"], "HTLType": HTLType },
                success: function (data1) {
                    if (data1.count == 1) {
                        get_FastQuery(2);
@@ -955,6 +1111,90 @@
                }
                , btn2: function (index, layero) { }
            })
        }
        //准备
        function get_btnReady() {
            var data = table.cache["mainTable"];
            var HICOMNum = [];
            for (var i = 0; i < data.length; i++) {
                HICOMNum.push(data[i]["HICMOInterID"] + ";" + data[i]["HICMOEntryID"]);
            }
            $('#test').html(`
    <div class="layui-progress" lay-filter="demo-filter-progress">
      <div class="layui-progress-bar" lay-percent="40%"></div>
    </div>
  `);
            // æ¸²æŸ“进度条组件
            element.render('progress', 'demo-filter-progress');
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/ReadyData',
                type: "GET",
                data: { "HICOMNum": HICOMNum.toString() },
                success: function (data1) {
                    if (data1.count == 1) {
                        for (var i = 0; i < data1.data.length; i++) {
                            for (var j = 0; j < option.data.length; j++) {
                                if (data1.data[i]["HICMOInterID"] == option.data[j]["HICMOInterID"] && data1.data[i]["HICMOEntryID"] == option.data[j]["HICMOEntryID"]) {
                                    option.data[j]["小时产能"] = data1.data[i]["小时产能"];
                                    option.data[j]["生产周期"] = data1.data[i]["生产周期"];
                                    option.data[j]["开工余量"] = data1.data[i]["开工余量"];
                                    option.data[j]["最迟开工日期"] = data1.data[i]["最迟开工日期"];
                                    option.data[j]["最迟完工日期"] = data1.data[i]["最迟完工日期"];
                                    option.data[j]["订单需求数量"] = data1.data[i]["订单需求数量"];
                                    option.data[j]["订单交货期"] = data1.data[i]["订单交货期"] < "2020-01-01 0:00:00" ? "1900-01-01" : data1.data[i]["订单交货期"];
                                    break;
                                }
                            }
                        }
                        for (var i = 0; i < option.data.length - 1; i++) {
                            for (var j = 0; j < option.data.length - i - 1; j++) {
                                var tables = [];
                                //设置任务单优先排序,并设置优先(最迟完工日期+订单交货期)  å°è£…
                                if (option.data[j]["最迟完工日期"] > option.data[j + 1]["最迟完工日期"]) {
                                    tables.push(option.data[j + 1]);
                                    option.data[j + 1] = option.data[j];
                                    option.data[j] = tables[0];
                                } else if (option.data[j]["最迟完工日期"] == option.data[j + 1]["最迟完工日期"]) {
                                    if (option.data[j]["订单交货期"] > option.data[j + 1]["订单交货期"]) {
                                        tables.push(option.data[j + 1]);
                                        option.data[j + 1] = option.data[j];
                                        option.data[j] = tables[0];
                                    } else if (option.data[j]["订单交货期"] == option.data[j + 1]["订单交货期"]) {
                                        if (option.data[j]["订单需求数"] < option.data[j + 1]["订单需求数"]) {
                                            tables.push(option.data[j + 1]);
                                            option.data[j + 1] = option.data[j];
                                            option.data[j] = tables[0];
                                        }
                                    }
                                }
                            }
                        }
                        $('#test').html('')
                        table.render(option);
                    } else {
                        //layer.close(ajaxLoad);
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //下移
        function DownTable(data ,i) {
        }
        //查询生产订单
@@ -1061,6 +1301,58 @@
            }
        }
        //上移
        function set_MoverUp(data) {
            if (data.length != 1) {
                layer.msg("请选择一行数据!");
            } else if (option.data[0]["生产订单号"] == data[0]["生产订单号"]) {
                layer.msg("首行数据无法移动!");
            } else {
                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];
                        option.data[i] = tables[0];
                        table.render(option);
                        break;
                    }
                }
            }
        }
        //下移
        function set_MoverDown(data) {
            if (data.length != 1) {
                layer.msg("请选择一行数据!");
            } else if (option.data[option.data.length - 1]["生产订单号"] == data[0]["生产订单号"]) {
                layer.msg("末行数据无法移动!");
            } else {
                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];
                        option.data[i] = tables[0];
                        table.render(option);
                        break;
                    }
                }
            }
        }
        //优先级
        function set_Priority() {
            var data = table.cache["mainTable"];
            for (var i = 0; i < data.length; i++) {
                data[i]["优先级"] = (i + 1);
            }
            option.data = data;
            table.render(option);
        }
        //保存
        function set_AddNew(data) {
@@ -1137,6 +1429,12 @@
                                    , "生产资源": checkStatus.data[0].生产资源名称
                                })
                                layer.close(index);//关闭弹窗
                            }
                            , end: function () {
                                obj.update({
                                    "HSourceID": OptionData.HItemID
                                    , "生产资源": OptionData.生产资源名称
                                })
                            }
                        })
                    }
@@ -1322,7 +1620,24 @@
            })
        }
        //列明显示下拉框
        function ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
            for (var i = 1; i < option.cols[0].length; i++) {
                if (option.cols[0][i].hide != true) {
                    Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
                }
            }
            $("#ColName").empty();
            $("#ColName").append(Organization);
            form.render('select');
        }
        //#endregion
        //以上是layui模块
    });
    //双击返回生产资源
    function GetGySource(data) {
        OptionData = data
    }
</script>