black-goat-me
2023-05-20 30cc3b174a0ff8e40f25a7a0bd4e7dc53a7e5286
WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/JIT_DayPlanPlatForm.html
@@ -24,6 +24,7 @@
                            <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>
                            <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="btnICMOBill" id="btnICMOBill">生产订单选单</button>
                        </div>
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
@@ -137,6 +138,7 @@
                                <!--<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_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                            </div>
                        </script>
                    </form>
@@ -146,6 +148,10 @@
    </div>
</body>
</html>
<script type="text/html" id="barDemo">
    <!--<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>-->
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    var treeCkData = { id: 0 };
    var TagId = "";
@@ -168,7 +174,7 @@
        var sWhere = "";
        var option = [];
        var HModName = "JIT_DayPlanPlatForm";
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -238,6 +244,14 @@
                        table.render(option);//将数据渲染到表格上
                    }
                    break;
                //列设置
                case 'set_HideColumn':
                    get_HideColumn();
                    break;
                //删除行
                case 'set_DeleteBill':
                    set_DeleteBill();
                    break;
            }
        });
@@ -248,7 +262,14 @@
        //保存
        form.on('submit(btnSave)', function (data) {
            set_AddNew(data);
           var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else if (table.cache["mainTable"].length == 0) {
                return layer.msg("无数据,无法保存!");
            } else {
                set_AddNew(data);
            }
        });
        //物料
@@ -276,19 +297,36 @@
            get_btnCompleteSetAnalysis();
        })
        //生产订单选单
        form.on('submit(btnICMOBill)', function (data) {
            get_btnICMOBill();
        })
        //行内事件
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
            set_GridCellCheck(obj); //行内快捷键筛选
        });
        //锁定
        form.on('submit(btnLock)', function (data) {
            get_btnLock();
            var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else {
                get_btnLock(HWorkShopID);
            }
        })
        //解锁
        form.on('submit(btnUnlock)', function (data) {
            get_btnUnlock();
            var HWorkShopID = $("#HWorkShopID").val();//生产车间
            if (HWorkShopID == 0) {
                return layer.msg("生产车间不能为空!");
            } else {
                get_btnUnlock(HWorkShopID);
            }
        })
        //#endregion
@@ -305,6 +343,8 @@
            //初始化表格
            set_InitGrid();
            get_FastQuery(1);
            //隐藏勾选字段
            DisPlay_HideColumn();
        }
         //#endregion
@@ -341,21 +381,16 @@
            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 });
            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({ 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 });
            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 });
            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>"});
@@ -500,6 +535,12 @@
            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 });//0
            columns.push({ field: '订单可排数量', title: '订单可排数量', width: 150 });
            columns.push({ field: '未入库数量', title: '未入库数量', width: 150 });//0
            columns.push({ fixed: 'right', title: '操作', toolbar: '#barDemo' });
            option = {
                elem: '#mainTable'
@@ -554,14 +595,34 @@
                success: function (data1) {
                    if (data1.count == 1) {
                        if (data1.data[0]["DayNum"] > 0) {
                            for (var i = 0; i <= data1.data[0]["DayNum"]; i++) {
                                option.cols[0][27 + i]["edit"] = "";
                                option.cols[0][27 + i]["style"] = "   background-color: #e6e6e6";
                            //获取被锁定的列数
                            var tableNum = 0;
                            for (var i = 0; i < 31; i++) {
                                if (option.cols[0][22 + i]["edit"] == "") {
                                    tableNum += 1;
                                } else {
                                    break;
                                }
                            }
                            //判断  è¢«é”å®šçš„列数 å¦‚果小于 æ•°æ®åº“中查到的 éœ€è¦é”å®šçš„列数 åˆ™ç›´æŽ¥ è¿›è¡Œä¿®æ”¹
                            //被锁定的列数 å¤§äºŽ æ•°æ®åº“中查到的  éœ€è¦é”å®šçš„列数  åˆ™ å…ˆæ¸…除页面的缓存 å†è¿›è¡Œä¿®æ”¹
                            if (tableNum > data1.data[0]["DayNum"]) {
                                for (var i = 0; i < tableNum; i++) {
                                    option.cols[0][22 + i]["edit"] = "text";
                                    option.cols[0][22 + i]["style"] = "";
                                }
                            }
                            for (var i = 0; i < data1.data[0]["DayNum"]; i++) {
                                option.cols[0][22 + i]["edit"] = "";
                                option.cols[0][22 + i]["style"] = "   background-color: #e6e6e6";
                            }
                        } else {
                            for (var i = 0; i < 31; i++) {
                                option.cols[0][27 + i]["edit"] = "text";
                                option.cols[0][27 + i]["style"] = "";
                                option.cols[0][22 + i]["edit"] = "text";
                                option.cols[0][22 + i]["style"] = "";
                            }
                        }
                        table.render(option);
@@ -614,7 +675,7 @@
                            //获取日期下标
                            var _numData3 = [];
                            for (var i = 0; i < _numData2.length; i++) {
                                for (var j = 27; j < 58; j++) {
                                for (var j = 22; j < 53; j++) {
                                    if (option.cols[0][j]["field"] == _numData2[i]) {
                                        _numData3[i] = j;
                                        break;
@@ -758,9 +819,14 @@
        //双击跳转齐套分析明细表
        function btnrowDouble(obj) {
            HMainICMOEntryID = obj["HICMOEntryID"];
            HMainICMOInterID = obj["HICMOInterID"];
            HMainICMOEntryID = obj["源单子内码"];
            HMainICMOInterID = obj["源单主内码"];
            HICMOInterID = obj["HInterID"];
            if (HICMOInterID == "" || HICMOInterID == null) {
                return layer.alert("无日计划工单,无法查看!", { icon: 5 });
            }
            layer.open({
                type: 2 //类型
@@ -818,6 +884,144 @@
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //生产订单选单
        function get_btnICMOBill() {
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , area: ['90%', '90%']//大小
                , title: '生产订单列表'//标题
                , shift: 2//弹出动画
                , content: ['../../生产管理/生产任务单/Sc_ICMOBillList.html', 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                    if (checkStatus.data.length === 0) {
                        return layer.msg('请选择数据');
                    }
                    //获取数据
                    var hmainid = [];
                    //var HEntryID = [];
                    for (var i = 0; i < checkStatus.data.length; i++) {
                        if ($.inArray(checkStatus.data[i]["hmainid"] + '_' + checkStatus.data[i]["HEntryID"], hmainid)==-1) {
                            hmainid.push(checkStatus.data[i]["hmainid"] + '_' + checkStatus.data[i]["HEntryID"]);
                        }
                    }
                    //查询生产订单
                    SelectICMOBill(hmainid);
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
            })
        }
        //查询生产订单
        function SelectICMOBill(hmainid) {
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_ICMOBillList',
                type: "GET",
                data: { "hmainid": hmainid.toString() },
                success: function (data1) {
                    if (data1.count == 1) {
                        var dataPush = [];
                        var tableBak = table.cache["mainTable"]; //获取之前编辑过的表格数据
                        buttonArr = [];//清空数组
                        for (var i = 0; i < tableBak.length; i++) {
                            dataPush.push(tableBak[i]);  //将之前的数据存储
                        }
                        for (var i = 0; i < dataPush.length; i++) {
                            if (dataPush[i]["单据号"] == "") {
                                for (var j = 0; j < data1.data.length; j++) {
                                    if (data1.data[j]["源单主内码"] == dataPush[i]["源单主内码"] && data1.data[j]["源单子内码"] == dataPush[i]["源单子内码"]) {
                                        layer.close(ajaxLoad);
                                        return layer.alert("生产明细行重复,重复的生产订单号:" + dataPush[i]["生产订单号"] + ",明细行号:" + dataPush[i]["生产订单明细行号"], { icon: 5 });
                                    }
                                }
                            }
                        }
                        //存储数据
                        for (var i = 0; i < data1.data.length; i++) {
                            dataPush.push(data1.data[i]);
                        }
                        option.data = dataPush;
                        table.render(option);
                        layer.close(ajaxLoad);
                    } else {
                        layer.close(ajaxLoad);
                        layer.alert(data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //行内删除
        function set_GridDelete(obj) {
            var data = obj.data;
            var rowIndex = $(obj.tr).attr("data-index");
            if (obj.event === 'del') {
                layer.confirm('真的删除行吗?', function (index) {
                    if (rowIndex === '0') {
                        layer.msg('首行无法删除!!!');
                    } else {
                        obj.del();
                        option.data = table.cache["mainTable"];//将数据绑定到data上
                        //table.reload(option);
                        layer.close(index);
                    }
                });
            }
        }
        //删除行
        function set_DeleteBill() {
            var CheckStatus = table.checkStatus("mainTable");
            if (CheckStatus.data.length == 0) {
                return layer.msg("请选择数据!")
            } else {
                layer.confirm('您确定要删除吗?', {
                    btn: ['确定', '取消'] //按钮
                    , btn1: function () {
                        var HInterID = [];
                        for (var i = 0; i < CheckStatus.data.length; i++) {
                            HInterID.push(CheckStatus.data[i].hmainid); //获取编号
                        }
                        $.ajax({
                            url: GetWEBURL() + '/Sc_WorkBillSortBill/DelWorkBillSortBillList'
                            , type: "GET"
                            , data: { "HInterID": HInterID.toString(), DataType: "2", "User": sessionStorage["HUserName"] }
                            , success: function (result) {
                                if (result.count == 1) {
                                    layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
                                        // å¾—到frame索引
                                        var index = layer.getFrameIndex(window.name);
                                        //关闭当前frame
                                        layer.close(index);
                                        //修改为功后刷新界面
                                        window.location.reload();
                                        ////重载tree
                                        //tree.reload('treeDepartment', {});
                                    });
                                } else {
                                    layer.alert(result.code + result.Message, { icon: 5 });
                                }
                            }
                        })
                    }
                })
            }
        }
        //保存
@@ -907,22 +1111,17 @@
        }
        //锁定
        function get_btnLock() {
        function get_btnLock(HWorkShopID) {
            var data = table.cache["mainTable"];
            if (data.length == 0) {
                return layer.msg("请选择数据进行锁定!")
                return layer.msg("无数据,无法进行锁定!")
            } else {
                var hmainid_s = [];
                for (var i = 0; i < data.length; i++) {
                    hmainid_s.push(data[i]["hmainid"]);
                }
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHLockedDay',
                    type: "GET",
                    data: { "sWhere": hmainid_s.toString(), "HLockedDay": $("#HLockedDay").val() },
                    data: { "HLockedDay": $("#HLockedDay").val(), "HWorkShopID": HWorkShopID },
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.msg("已锁定");
@@ -941,22 +1140,16 @@
        }
        //解锁
        function get_btnUnlock() {
        function get_btnUnlock(HWorkShopID) {
            var data = table.cache["mainTable"];
            if (data.length == 0) {
                return layer.msg("请选择数据进行解锁!")
                return layer.msg("无数据,无法进行解锁!")
            } else {
                var hmainid_s = [];
                for (var i = 0; i < data.length; i++) {
                    hmainid_s.push(data[i]["hmainid"]);
                }
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/JIT_DayPlanPlatFormBill/JIT_DayPlanPlatFormBillHUnlockDay',
                    type: "GET",
                    data: { "sWhere": hmainid_s.toString(), "HLockedDay": $("#HLockedDay").val() },
                    data: { "HWorkShopID": HWorkShopID},
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.msg("已解锁");
@@ -974,6 +1167,124 @@
            }
        }
        //隐藏列设置
        function get_HideColumn() {
            var colName = "";
            var contentUrl = "";
            for (var i = 1; i < option.cols[0].length - 1; i++) {
                colName += option.cols[0][i]["title"] + ",";
            }
            var urlStr = window.document.location.pathname;//获取文件路径
            var urlLen = urlStr.split('/');
            for (var i = 0; i < urlLen.length - 4; i++) {
                contentUrl += "../";
            }
            colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
            contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName;
            layer.open({
                type: 2
                , skin: "layui-layer-rim" //加上边框
                , title: "隐藏列设置"  //标题
                , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                , shift: 2 //弹出动画
                , area: ["50%", "90%"] //窗体大小
                , maxmin: true //设置最大最小按钮是否显示
                , content: [contentUrl, "yes"]
                , btn: ["确定", "取消"]
                , btn1: function (index, laero) {
                    //刷新表格数据
                    DisPlay_HideColumn();
                    //更新表格缓存的数据
                    layer.close(index);//关闭弹窗
                }
            })
        }
        //显示列数据
        function DisPlay_HideColumn() {
            $.ajax({
                url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                type: "GET",
                data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.data.length != 0) {
                        var dataCol = [];//数据库查询出的列数据
                        var titleData = ["单据号", "HProdORGID", "HMaterID", "HUnitID", "HWorkShopID", "HSourceID"];//不需要显示的字段 å¯æ‰©å±•
                        dataCol = data1.data[0].HGridString.split(',');
                        for (var i = 0; i < option.cols[0].length - 2; i++) {
                            var dataCols = dataCol[i].split('|');
                            //隐藏列
                            if (dataCols[1] == 1) {
                                option.cols[0][i + 1]["hide"] = true;
                            }
                            //设置列宽
                            if (dataCols[3] > 0) {
                                option.cols[0][i + 1]["width"] = dataCols[3];
                            }
                            //设置内容字体大小
                            if (data1.data[0].HFontSize != 0) {
                                option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                            } else {
                                option.cols[0][i + 1]["style"] = "font-size:100%";
                            }
                            //设置列宽
                            //if (data1.data[0].HColumnWidth != 0) {
                            //    option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
                            //} else {
                            //    option.cols[0][i + 1]["width"] = "";
                            //}
                            //显示列
                            if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
                                option.cols[0][i + 1]["hide"] = false;
                            }
                            //字体所在位置(å·¦ å±…中 å³)
                            switch (dataCols[2]) {
                                case "L":
                                    option.cols[0][i + 1]["align"] = "left";
                                    break;
                                case "M":
                                    option.cols[0][i + 1]["align"] = "center";
                                    break;
                                case "R":
                                    option.cols[0][i + 1]["align"] = "right";
                                    break;
                            }
                        }
                        //取消冻结列
                        for (var i = 1; i < option.cols[0].length - 1; i++) {
                            if (option.cols[0][i]["fixed"] != null) {
                                option.cols[0][i]["fixed"] = null;
                            }
                            else {
                                break;
                            }
                        }
                        //冻结列
                        if (data1.data[0].HFixCols != 0) {
                            for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
                                    data1.data[0].HFixCols += 1;
                                }
                                option.cols[0][i + 1]["fixed"] = "left";
                            }
                        }
                        table.render(option);
                    } else {
                        table.render(option);
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            })
        }
        //#endregion
        //以上是layui模块
    });