yusijie
1 天以前 c71ba8a52fdbfba410afe5b58f4a31cc8db29a32
添康排产导出优化升级;可打备料单列表添加保存过滤方案功能
2个文件已修改
152 ■■■■ 已修改文件
WebTM/views/生产管理/添康三周排产/JIT_DayPlanPlatForm_TK.html 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/车间管理/报表分析/Sc_AllowedPrintProcExchangeBillList.html 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/Éú²ú¹ÜÀí/Ìí¿µÈýÖÜÅŲú/JIT_DayPlanPlatForm_TK.html
@@ -12,6 +12,7 @@
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/Scripts/xlsx.full.min.js"></script>
</head>
<body>
    <div class="layui-fluid">
@@ -417,7 +418,7 @@
                    break;
                //导出excel
                case 'get_export':
                    get_Export();
                    get_Export2();
                    break;
                //清除所有标题筛选
                case 'clearFilter':
@@ -3495,6 +3496,90 @@
        //    table.exportFile(ins.config.id, data, "xls");
        //}
        function get_Export2() {
            var data = option.data
            data.forEach((item) => {
                // å¦‚果某个字段的值太长,需要去除换行符
                if (item.规格型号.length > 0) {  // å‡è®¾å­—段名为field
                    item.规格型号 = item.规格型号.replace(/[\r\n]+/g, '');  // å°†æ¢è¡Œç¬¦æ›¿æ¢ä¸ºç©ºå­—符串
                    item.规格型号 = item.规格型号.replace(/[,]+/g, ',');  // å°†æ¢åˆ†å·æ›¿æ¢ä¸ºç©ºå­—符串
                }
            });
            for (let i = 22; i < option.cols[0].length - 45; i++) {
                option.cols[0][i].title = ("2026" + "-" + Format(option.cols[0][i].title, 'MM-dd').toString()).toString();
            }
            // æ ¡éªŒ1:数据为空则提示
            if (!data || data.length === 0) {
                layer.msg('暂无数据可导出', { icon: 2 });
                return;
            }
            // åˆ›å»ºç©ºå·¥ä½œè¡¨
            var ws = {};
            // é…ç½®è¡¨å¤´æ ‡é¢˜ï¼ˆæ–‡æœ¬æ ¼å¼ï¼‰
            var headersTitle = [];
            var headersField = [];
            var excludeFields = ['锁定工单', '昨日数量', '要货日期', '业务状态', '产线入库数量', '未排数量', '销售订单审核日期', '订单类型', '生产订单单据类型', '订单等级', '订单交货期', '订单需求数量', '开工余量', '生产周期', '最迟开工日期', '最迟完工日期', '源单主内码', '源单子内码', 'hmainid', '拆单数量', '未入库数量', 'HICMOInterID', 'HGroupID', 'HGroupName', 'HMaterID', 'HSourceID', 'HWorkShopID', 'HUnitID', 'HProdORGID', 'HEmpID', '拆单汇报数量', '销售订单数量', '日计划数量总量', '拆单数量', '今日之前日计划数量', '计划开始日期', '计划结束日期', '最早开工日期', '操作工', 'HMouldID', 'HMouldPCTime', '所需工位数', '使用工装','单据号'];
            //循环添加标题
            for (var i = 2; i < option.cols[0].length - 4; i++) {
                if (option.cols[0][i].hide == false && excludeFields.indexOf(option.cols[0][i].title) == -1) {
                    headersTitle.push(option.cols[0][i].title);
                    if (option.cols[0][i].title == "物料代码") {
                        headersField.push("物料编码");
                    } else if (option.cols[0][i].title == "计划数量") {
                        headersField.push("生产订单数量");
                    } else {
                        headersField.push(option.cols[0][i].field);
                    }
                }
            }
            //把标题添加到excel表格
            headersField.forEach((header, idx) => {
                var cellRef = XLSX.utils.encode_cell({ r: 0, c: idx }); // è¡Œ0为表头
                ws[cellRef] = { v: header, t: 's', z: "@" }; // t:'s' ä»£è¡¨æ–‡æœ¬æ ¼å¼, z: "@" æŒ‡å®šå•元格为文本类型
            });
            // å¡«å……数据并指定每个单元格的格式
            data.forEach((row, rowIdx) => {
                var rowNum = rowIdx + 1; // æ•°æ®ä»Žç¬¬2行(行1)开始
                if (!row) return;
                var Hname = "";
                //单元格数据赋值
                for (var i = 0; i < headersTitle.length; i++) {
                    Hname = headersTitle[i];
                    ws[XLSX.utils.encode_cell({ r: rowNum, c: i })] = { v: row[Hname] || '', t: 's', z: "@" };
                }
                //// ç”Ÿäº§è®¢å•号:文本格式
                //ws[XLSX.utils.encode_cell({ r: rowNum, c: 0 })] = { v: row.销售订单号 || '', t: 's', z: "@" };
                //ws[XLSX.utils.encode_cell({ r: rowNum, c: 1 })] = { v: row.生产订单号 || '', t: 's', z: "@" };
            });
            // å¯é€‰ï¼šè®¾ç½®åˆ—宽,提升导出文件的可读性
            var HColWidth = [];
            for (var i = 0; i < headersTitle.length; i++) {
                HColWidth.push({ wch: 20 });
            }
            ws['!cols'] = HColWidth;
            // æ ‡è®°æ•°æ®èŒƒå›´ï¼ˆå…³é”®ï¼šè®©Excel识别有数据的区域)
            ws['!ref'] = XLSX.utils.encode_range({
                s: { r: 0, c: 0 }, // èµ·å§‹ï¼šè¡Œ0列0
                e: { r: data.length, c: headersTitle.length - 1 } // ç»“束:最后一行最后一列
            });
            // æž„建工作簿并导出
            var wb = XLSX.utils.book_new();
            XLSX.utils.book_append_sheet(wb, ws, '排产信息');
            XLSX.writeFile(wb, '排产导出.xlsx');
            for (let i = 22; i < option.cols[0].length - 45; i++) {
                option.cols[0][i].title = Format(option.cols[0][i].title, 'MM.dd');
            }
        }
        function get_Export() {
            var data = option.data
            data.forEach((item) => {
@@ -3510,7 +3595,7 @@
            }
            // æ­¥éª¤2:定义需要排除的字段(不导出的字段,此处排除 operate å’Œ å¯é¢å¤–添加其他字段)
            var excludeFields = ['锁定工单', '昨日数量', '要货日期', '业务状态', '产线入库数量', '未排数量', '销售订单审核日期', '订单类型', '生产订单单据类型', '订单等级', '订单交货期', '订单需求数量', '开工余量', '生产周期', '最迟开工日期', '最迟完工日期', '源单主内码', '源单子内码', 'hmainid', '计量单位', '拆单数量', '未入库数量', 'HICMOInterID', 'HGroupID', 'HGroupName', 'HMaterID', 'HSourceID', 'HWorkShopID', 'HUnitID', 'HProdORGID', 'HEmpID', '拆单汇报数量', '销售订单数量', '日计划数量总量', '拆单数量', '今日之前日计划数量', '计划开始日期', '计划结束日期', '最早开工日期', '操作工', 'HMouldID', 'HMouldPCTime', '所需工位数', '使用工装'];
            var excludeFields = ['锁定工单', '昨日数量', '要货日期', '业务状态', '产线入库数量', '未排数量', '销售订单审核日期', '订单类型', '生产订单单据类型', '订单等级', '订单交货期', '订单需求数量', '开工余量', '生产周期', '最迟开工日期', '最迟完工日期', '源单主内码', '源单子内码', 'hmainid', '拆单数量', '未入库数量', 'HICMOInterID', 'HGroupID', 'HGroupName', 'HMaterID', 'HSourceID', 'HWorkShopID', 'HUnitID', 'HProdORGID', 'HEmpID', '拆单汇报数量', '销售订单数量', '日计划数量总量', '拆单数量', '今日之前日计划数量', '计划开始日期', '计划结束日期', '最早开工日期', '操作工', 'HMouldID', 'HMouldPCTime', '所需工位数', '使用工装'];
            // æ­¥éª¤3:筛选数据,生成仅包含需导出字段的新数据
            var exportData = data.map(function (item) {
WebTM/views/³µ¼ä¹ÜÀí/±¨±í·ÖÎö/Sc_AllowedPrintProcExchangeBillList.html
@@ -14,6 +14,7 @@
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/MESLanguage.js"></script>
    <script src="../../../layuiadmin/grwebapp.js"></script>
    <script src="../../../layuiadmin/QueryScheme.js"></script>
</head>
<body>
@@ -44,31 +45,37 @@
                                <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="HNumber" id="HNumber">
                                        <input type="text" class="layui-input ForFilteringSchemes" name="HNumber" id="HNumber">
                                    </div>
                                </div>
                                <div class="layui-inline" style="display:none;">
                                    <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="HName" id="HName" style="width:150px;">
                                        <input type="text" class="layui-input ForFilteringSchemes" name="HName" id="HName" style="width:150px;">
                                    </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="text" class="layui-input" name="HICMOBillNo" id="HICMOBillNo" style="width:150px;">
                                        <input type="text" class="layui-input ForFilteringSchemes" name="HICMOBillNo" id="HICMOBillNo" style="width:150px;">
                                    </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="text" class="layui-input" name="HSerorderBillNo" id="HSerorderBillNo" style="width:150px;">
                                        <input type="text" class="layui-input ForFilteringSchemes" name="HSerorderBillNo" id="HSerorderBillNo" style="width:150px;">
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                </button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">重置</button>
                                <!--显示当前过滤方案-->
                                <div class="layui-inline" style="margin-left:5px;">
                                    <div style="text-align:center;font-size:15px;font-weight:bold;color:#fc9393" id="HFilterScheme_Now"></div>
                                </div>
                                <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:5px">
                                        <div class="layui-inline">
@@ -101,12 +108,12 @@
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName1" id="ColName1" lay-filter="ColName1" style="width:190px;">
                                                <select name="ColName1" id="ColName1" class="ForFilteringSchemes" lay-filter="ColName1" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator1" id="Comparator1" lay-filter="Comparator1" style="width:190px;">
                                            <select name="Comparator1" id="Comparator1" class="ForFilteringSchemes" lay-filter="Comparator1" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
@@ -121,19 +128,19 @@
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input" value="" name="ColContent1" id="ColContent1">
                                            <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent1" id="ColContent1">
                                        </div>
                                    </div>
                                    <div class="layui-row" style="margin-top:5px">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName2" id="ColName2" lay-filter="ColName2" style="width:190px;">
                                                <select name="ColName2" id="ColName2" class="ForFilteringSchemes" lay-filter="ColName2" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator2" id="Comparator2" lay-filter="Comparator2" style="width:190px;">
                                            <select name="Comparator2" id="Comparator2" class="ForFilteringSchemes" lay-filter="Comparator2" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
@@ -148,7 +155,7 @@
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input" value="" name="ColContent2" id="ColContent2">
                                            <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent2" id="ColContent2">
                                        </div>
                                    </div>
                                </div>
@@ -164,6 +171,8 @@
                                <button type="button" class="layui-btn layui-btn-sm" id="btn_printBatch" lay-event="btn_printBatch"><i class="layui-icon layui-icon-print"></i>批量打印</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="HideButton"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideButton" id="HideButton"><i class="layui-icon layui-icon-form"></i>按钮设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_SaveScheme" id="set_SaveScheme"><i class="layui-icon layui-icon-template"></i>保存方案</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_ReadScheme" id="set_ReadScheme"><i class="layui-icon layui-icon-set"></i>读取方案</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit" id="ExitButton"><i class="layui-icon layui-icon-logout"></i>退出</button>
                            </div>
                        </script>
@@ -206,6 +215,19 @@
            var Organization = sessionStorage["Organization"];
            //#endregion
            //#region ã€è¿‡æ»¤æ–¹æ¡ˆã€‘
            //过滤条件的classç±»
            window.HClassTag = "ForFilteringSchemes";
            //模块名称(中文版) æ¯ä¸ªæ¨¡å—页面都需要修改
            window.HModuleName = "可打备料单";
            //是否已经选择了过滤方案(全局变量)
            window.HDefaultFilter = "";
            //选择的过滤方案内码(全局变量)
            window.HInterID_Choose = 0;
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
@@ -239,6 +261,12 @@
                        var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                        var HBillType = "Sc_AllowedPrintProcExchangeBillList";
                        get_HideButton(btns, HBillType, HModName, sessionStorage["HUserName"]);
                        break;
                    //保存方案
                    case 'set_SaveScheme': set_SaveScheme(get_FastQuery);
                        break;
                    //读取方案
                    case 'set_ReadScheme': set_ReadScheme(get_FastQuery);
                        break;
                };
            });
@@ -277,11 +305,12 @@
            // åˆå§‹åŒ–界面
            function set_ClearBill() {
                //初始化表格
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 2), "yyyy-MM-dd"));
                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                set_InitGrid();
                get_FastQuery();
                //查询当前登录用户有没有在当前模块设置默认过滤方案
                get_DefaultModule(get_FastQuery);
            }
            //初始化表格
            function set_InitGrid() {
@@ -367,7 +396,7 @@
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            if (data[i].name == "打印日期") {
                                            if (data[i].name == "流转卡日期") {
                                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                            }else {
                                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
@@ -508,10 +537,10 @@
                    sWhere += " and " + ColName2 + " " + com2;
                }
                if (HBeginDate) {
                    sWhere += " and CONVERT(varchar(100),打印日期, 23) >= '" + HBeginDate + "'";
                    sWhere += " and CONVERT(varchar(100),流转卡日期, 23) >= '" + HBeginDate + "'";
                }
                if (HEndDate) {
                    sWhere += " and CONVERT(varchar(100),打印日期, 23) <= '" + HEndDate + "'";
                    sWhere += " and CONVERT(varchar(100),流转卡日期, 23) <= '" + HEndDate + "'";
                }
                if (HNumber) {
                    sWhere += " and ç‰©æ–™ç¼–码 like '%" + HNumber + "%'";
@@ -527,7 +556,7 @@
                }
                get_DisplayPage(sWhere);
                sWhere = "";//调用接口后清空sWhere缓存
                form.render("select");
            }
            //重置快速查询
            function set_ClearQuery() {
@@ -543,7 +572,7 @@
                $("#ColContent1").val("");
                $("#ColName1").val("0");
                $("#Comparator1").val("0");
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 2), "yyyy-MM-dd"));
                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                $("#HICMOBillNo").val("");
                $("#HSerorderBillNo").val("");