yangle
2024-12-12 e9ccb16eaca25fd7cea51b15685ddee9101e9fa0
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_InspectionFormReport.html
@@ -185,20 +185,37 @@
                                </div>
                            </div>
                        </div>
                        <div>
                        <div class="layui-tab layui-tab-card">
                            <table class="" id="mainTable" lay-filter="mainTable"></table>
                            <div id="histogram_Avg" style="width:99.5%;height:calc(100vh);margin-top:5px;">
                            <ul class="layui-tab-title">
                                <li class="layui-this">x̄管制图</li>
                                <li>R管制图</li>
                                <li>检测值</li>
                            </ul>
                            <div class="layui-tab-content">
                                <div class="layui-tab-item layui-show">
                                    <!--x̄管制图-->
                                    <div id="histogram_Avg" style="width: 99.5%; height: calc(100vh);">
                            </div>
                            <div id="histogram_Diff" style="width:99.5%;height:calc(100vh);margin-top:15px;">
                                    </div>
                                </div>
                                <div class="layui-tab-item layui-show">
                                    <!--R管制图-->
                                    <div id="histogram_Diff" style="width: 99.5%; height: calc(100vh);">
                            </div>
                            <div id="histogram_SJZ" style="width:99.5%;height:calc(100vh);margin-top:15px;">
                                    </div>
                                </div>
                                <div class="layui-tab-item layui-show">
                                    <!--检测值-->
                                    <div id="histogram_SJZ" style="width: 99.5%; height: calc(100vh);">
                                    </div>
                                </div>
                            </div>
                        </div>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Export" id="btn_Export"><i class="layui-icon layui-icon-export"></i>导出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-exit"><i class="layui-icon layui-icon-return"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="HideColumn"><i class="layui-icon layui-icon-form"></i>隐藏列设置</button>
                            </div>
@@ -230,6 +247,7 @@
            //查询条件
            var sWhere = "";
            var option = [];
            var ins;                //用于导出excel
            var HModName = "QC_InspectionFormReport";
            var optionAVG = [];
            var optionS = [];
@@ -256,6 +274,9 @@
                    //隐藏列设置
                    case 'HideColumn':
                        get_HideColumn();
                        break;
                    //导出按钮
                    case 'btn_Export': btn_Export();
                        break;
                };
            });
@@ -425,6 +446,7 @@
                                optionAVG[0] = data1.data[limit + 1];
                                optionS[0] = data1.data[limit + 2];
                                table.render(option);
                                ins = table.render(option);
                                set_PPK();
                                set_CPK();
                                set_Line();
@@ -446,6 +468,7 @@
                var x_AVG = 0;
                var x_SUM = 0;
                var x_PPK = 0;
                var x_CPK = 0;
                var numCount = 0
                var c4 = [0.7979, 0.8862, 0.9213, 0.9400, 0.9515, 0.9594, 0.9650, 0.9693, 0.9727, 0.9754, 0.9776, 0.9794, 0.9810, 0.9823, 0.9835, 0.9845, 0.9854, 0.9862, 0.9869, 0.9876, 0.9882, 0.9887, 0.9892, 0.9896];
@@ -456,7 +479,7 @@
                }
                x_AVG = calc(x_AVG, (option.cols[0].length - 1), "/");
                x_AVG = $("#HCenterline_X").val() == "" ? x_AVG : parseFloat($("#HCenterline_X").val());
                $("#HCenterline_X").val(x_AVG);
                $("#HCenterline_X").val(x_AVG.toFixed(5));
                for (var i = 1; i < option.cols[0].length; i++) {
                    for (var j = 0; j < option.data.length - 3; j++) {
@@ -467,7 +490,7 @@
                }
                x_PPK = Math.sqrt(calc(x_SUM, (numCount - 1), "/"));
                x_CPK = Math.sqrt(calc(x_SUM, numCount, "/"));
                var limit = $("#limit").val();
                if (parseInt(limit) >= 9) {
                    $("#HCenterline_S").val(x_PPK.toFixed(4));
@@ -475,23 +498,55 @@
                //均值 æŽ§åˆ¶ä¸Šé™ æŽ§åˆ¶ä¸‹é™
                if (limit == 1) {
                    $("#HControlUpperLimit_X").val(calc(x_AVG, calc(x_PPK, 3, "*"), "+"))
                    $("#HControlLowerLimit_X").val(calc(x_AVG, calc(x_PPK, 3, "*"), "-"))
                }
                    $("#HControlUpperLimit_X").val(calc(x_AVG, calc(x_PPK, 3, "*"), "+").toFixed(5))
                    $("#HControlLowerLimit_X").val(calc(x_AVG, calc(x_PPK, 3, "*"), "-").toFixed(5))
                //上限
                if ($("#HUpLimit").val() != "" && $("#HDownLimit").val() == "") {
                    var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), calc(calc(3, x_PPK, "*"), c4[option.data.length - 4], "/"), "/");
                    $("#HPPK").val(HUpLimit.toFixed(4));
                }
                //下限
                else if ($("#HDownLimit").val() != "" && $("#HUpLimit").val() == "") {
                    var HDownLimit = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), calc(calc(3, x_PPK, "*"), c4[option.data.length - 4], "/"), "/");
                    $("#HPPK").val(HDownLimit.toFixed(4));
                    //计算样本量为1 çš„ ppk
                    var min = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), calc(3, x_PPK, "*"), "/");
                    var max = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), calc(3, x_PPK, "*"), "/");
                    var DataHCPK = min > max ? max : min;
                    $("#HPPK").val(DataHCPK);
                    //计算样本量为1 çš„ cpk
                    var cpkSum = 0;
                    var CPK_U = 0;
                    var CPK_N = 0;
                    for (var i = 1; i < option.cols[0].length; i++) {
                        for (var j = 0; j < option.data.length - 3; j++) {
                            if (i == 1) {
                                CPK_U = option.data[j][option.cols[0][i].field];
                            } else {
                                CPK_N = option.data[j][option.cols[0][i].field];
                                var data_un = CPK_U > CPK_N ? calc(CPK_U, CPK_N, "-") : calc(CPK_N, CPK_U, "-");
                                cpkSum = calc(cpkSum, data_un, "+");
                                CPK_U = CPK_N;
                            }
                        }
                    }
                    cpkSum = calc(cpkSum, option.cols[0].length - 2, "/");
                    var HAVG_CPK = calc(cpkSum, 1.128, "/");
                    min = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), calc(3, HAVG_CPK, "*"), "/");
                    max = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), calc(3, HAVG_CPK, "*"), "/");
                    DataHCPK = min > max ? max : min;
                    $("#HCPK").val(DataHCPK);
                } else {
                    var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), calc(calc(3, x_PPK, "*"), c4[option.data.length - 4], "/"), "/");
                    var HDownLimit = (x_AVG - calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+")) / ((3 * x_PPK) / c4[option.data.length - 4]);
                    $("#HPPK").val(HUpLimit > HDownLimit ? HDownLimit.toFixed(4) : HUpLimit.toFixed(4));
                    //上限
                    if ($("#HUpLimit").val() != "" && $("#HDownLimit").val() == "") {
                        var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), calc(calc(3, x_PPK, "*"), c4[option.data.length - 4], "/"), "/");
                        $("#HPPK").val(HUpLimit.toFixed(4));
                    }
                    //下限
                    else if ($("#HDownLimit").val() != "" && $("#HUpLimit").val() == "") {
                        var HDownLimit = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), calc(calc(3, x_PPK, "*"), c4[option.data.length - 4], "/"), "/");
                        $("#HPPK").val(HDownLimit.toFixed(4));
                    } else {
                        var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), calc(calc(3, x_PPK, "*"), c4[option.data.length - 4], "/"), "/");
                        var HDownLimit = (x_AVG - calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+")) / ((3 * x_PPK) / c4[option.data.length - 4]);
                        $("#HPPK").val(HUpLimit > HDownLimit ? HDownLimit.toFixed(4) : HUpLimit.toFixed(4));
                    }
                }
            }
@@ -526,39 +581,41 @@
                }
                x_AVG = calc(x_AVG, (option.cols[0].length - 1), "/");
                x_AVG = $("#HCenterline_X").val() == "" ? x_AVG : parseFloat($("#HCenterline_X").val());
                $("#HCenterline_X").val(x_AVG);
                $("#HCenterline_X").val(x_AVG.toFixed(5));
                s_CPK = calc(s_AVG, d2[option.data.length - 4], "/");
                //均值 æŽ§åˆ¶ä¸Šé™ æŽ§åˆ¶ä¸‹é™
                if (limit > 1) {
                    $("#HControlUpperLimit_X").val(calc(x_AVG, calc(A2[$("#limit").val() - 1], s_AVG, "*"), "+"))
                    $("#HControlLowerLimit_X").val(calc(x_AVG, calc(A2[$("#limit").val() - 1], s_AVG, "*"), "-"))
                    $("#HControlUpperLimit_X").val(calc(x_AVG, calc(A2[$("#limit").val() - 1], s_AVG, "*"), "+").toFixed(5))
                    $("#HControlLowerLimit_X").val(calc(x_AVG, calc(A2[$("#limit").val() - 1], s_AVG, "*"), "-").toFixed(5))
                }
                //差值 æŽ§åˆ¶ä¸Šé™ æŽ§åˆ¶ä¸‹é™
                $("#HControlUpperLimit_S").val(calc(D4[$("#limit").val() - 1], s_AVG, "*"));
                $("#HControlLowerLimit_S").val(calc(D3[$("#limit").val() - 1], s_AVG, "*"))
                $("#HControlUpperLimit_S").val(calc(D4[$("#limit").val() - 1], s_AVG, "*").toFixed(5));
                $("#HControlLowerLimit_S").val(calc(D3[$("#limit").val() - 1], s_AVG, "*").toFixed(5));
                var limit = $("#limit").val();
                //上限
                if ($("#HUpLimit").val() != "" && $("#HDownLimit").val() == "") {
                    var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), (3 * s_CPK), "/");
                    $("#HCPK").val(HUpLimit.toFixed(4));
                }
                //下限
                else if ($("#HDownLimit").val() != "" && $("#HUpLimit").val() == "") {
                    var HDownLimit = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), (3 * s_CPK), "/");
                    $("#HCPK").val(HDownLimit.toFixed(4));
                }  else {
                    var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), (3 * s_CPK), "/");
                    var HDownLimit = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), (3 * s_CPK), "/");
                    if (s_CPK == 0) {
                        $("#HCPK").val(0);
                    } else {
                        $("#HCPK").val(HUpLimit > HDownLimit ? HDownLimit.toFixed(4) : HUpLimit.toFixed(4));
                if (limit > 1) {
                    //上限
                    if ($("#HUpLimit").val() != "" && $("#HDownLimit").val() == "") {
                        var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), (3 * s_CPK), "/");
                        $("#HCPK").val(HUpLimit.toFixed(4));
                    }
                    //下限
                    else if ($("#HDownLimit").val() != "" && $("#HUpLimit").val() == "") {
                        var HDownLimit = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), (3 * s_CPK), "/");
                        $("#HCPK").val(HDownLimit.toFixed(4));
                    } else {
                        var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), (3 * s_CPK), "/");
                        var HDownLimit = calc(calc(x_AVG, calc(parseFloat($("#HDownLimit").val()), parseFloat($("#HTargetVal").val()), "+"), "-"), (3 * s_CPK), "/");
                        if (s_CPK == 0) {
                            $("#HCPK").val(0);
                        } else {
                            $("#HCPK").val(HUpLimit > HDownLimit ? HDownLimit.toFixed(4) : HUpLimit.toFixed(4));
                        }
                    }
                }
            }
@@ -651,6 +708,12 @@
                return sum;
            }
            //#region å¯¼å‡ºExecel
            function btn_Export() {
                table.exportFile(ins.config.id, option.data, "xls");
            }
            //#endregion
            //折线图
            function set_Line() {
                //#region【折线图】
@@ -664,9 +727,17 @@
                let HDifference = [];//差值
                let HSJZ = [];//实际值
                var judge = spc_judge();
                for (var j = 1; j < option.cols[0].length; j++) {
                    if (optionAVG.length != 0 || optionS.length != 0) {
                        HAvg.push(optionAVG[0][option.cols[0][j].field]);
                        if ($.inArray(optionAVG[0][option.cols[0][j].field], judge) != -1) {
                            var data = { value: optionAVG[0][option.cols[0][j].field], itemStyle: { color: 'red' } };
                            HAvg.push(data);
                        } else {
                            HAvg.push(optionAVG[0][option.cols[0][j].field]);
                        }
                        HDifference.push(optionS[0][option.cols[0][j].field]);
                        HSJZ.push(optionSJZ[0][option.cols[0][j].field]);
                    } else {
@@ -679,6 +750,18 @@
                for (let i = 1; i < option.cols[0].length; i++) {
                    H_X.push(option.cols[0][i].field);
                }
                var max = Math.max.apply(null, HSJZ);
                var min = Math.min.apply(null, HSJZ);
                var sum = 0;
                $.each(HSJZ, function (index, value) {
                    sum += value;
                });
                var average = sum / HSJZ.length;
                var HAreaValue = calc(calc(parseFloat($("#HControlUpperLimit_X").val()), parseFloat($("#HCenterline_X").val()), "-"), 3, "/").toFixed(5);
                var HAreaValue_A = HAreaValue * 2;
                var HAreaValue_B = HAreaValue * 1;
                option_ZXT_Avg = {
                    title: {
@@ -697,16 +780,21 @@
                    },
                    yAxis: {
                        type: 'value',
                        min: parseFloat($("#HDownLimit").val()) != 0 ? calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HDownLimit").val()), 1.3, "*"), "+") : 0, // è®¾ç½®æœ€å°å€¼
                        max: calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HUpLimit").val()), 1.3, "*"), "+"), // è®¾ç½®æœ€å¤§å€¼
                        min: parseFloat($("#HDownLimit").val()) != 0 ? calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HDownLimit").val()), 1.1, "*"), "+") : 0, // è®¾ç½®æœ€å°å€¼
                        max: calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HUpLimit").val()), 1.1, "*"), "+"), // è®¾ç½®æœ€å¤§å€¼
                        interval: calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HDownLimit").val()), "-"), 10, "/"), // è®¾ç½®é—´è·
                    },
                    series: [
                        {
                            data: HAvg,
                            type: 'line',
                            itemStyle: { normal: { label: { show: true } } },
                            itemStyle: {
                                normal: {
                                    label: {
                                        show: true
                                    }
                                }
                            },
                            markLine: {
                                symbol: 'none',//去掉箭头
                                data: [
@@ -717,14 +805,30 @@
                                        name: 'LSL', yAxis: parseFloat($("#HTargetVal").val()) + parseFloat($("#HDownLimit").val()), lineStyle: { color: '#FF1D00' }, label: { color: '#FF1D00', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    },
                                    {
                                        name: 'UCL', yAxis: parseFloat($("#HControlUpperLimit_X").val()), lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                        name: 'UCL', yAxis: parseFloat($("#HControlUpperLimit_X").val()), lineStyle: { color: '#ff9145' }, label: { color: '#ff9145', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    },
                                    {
                                        name: 'LCL', yAxis: parseFloat($("#HControlLowerLimit_X").val()), lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                        name: 'LCL', yAxis: parseFloat($("#HControlLowerLimit_X").val()), lineStyle: { color: '#ff9145' }, label: { color: '#ff9145', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                    ,
                                    {
                                        name: 'CL', yAxis: parseFloat($("#HCenterline_X").val()), lineStyle: { color: '#6dadf0' }, label: { color: '#6dadf0', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                        name: 'CL', yAxis: parseFloat($("#HCenterline_X").val()), lineStyle: { color: '#000000' }, label: { color: '#000000', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                    ,
                                    {
                                        name: 'B', yAxis: parseFloat($("#HCenterline_X").val()) + HAreaValue_A, lineStyle: { color: '#6dadf0' }, label: { color: '#6dadf0', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                    ,
                                    {
                                        name: '-B', yAxis: parseFloat($("#HCenterline_X").val()) - HAreaValue_A, lineStyle: { color: '#6dadf0' }, label: { color: '#6dadf0', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                    ,
                                    {
                                        name: 'C', yAxis: parseFloat($("#HCenterline_X").val()) + HAreaValue_B, lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                    ,
                                    {
                                        name: '-C', yAxis: parseFloat($("#HCenterline_X").val()) - HAreaValue_B, lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                ],
                                precision: 3
@@ -757,8 +861,8 @@
                    yAxis: {
                        type: 'value',
                        min: 0, // è®¾ç½®æœ€å°å€¼
                        max: parseFloat($("#HControlUpperLimit_S").val()) != 0 ? calc(parseFloat($("#HControlUpperLimit_S").val()), 0.01, "+") : 0, // è®¾ç½®æœ€å¤§å€¼
                        interval: calc(parseFloat($("#HControlUpperLimit_S").val()), 10, "/"), // è®¾ç½®é—´è·
                        max: parseFloat($("#HControlUpperLimit_S").val()) != 0 ? calc(parseFloat($("#HControlUpperLimit_S").val()), 1.1, "*") : 0, // è®¾ç½®æœ€å¤§å€¼
                        interval: calc(parseFloat($("#HControlUpperLimit_S").val()).toFixed(5), 10, "/"), // è®¾ç½®é—´è·
                    },
                    series: [
                        {
@@ -809,21 +913,38 @@
                    },
                    yAxis: {
                        type: 'value',
                        min: parseFloat($("#HDownLimit").val()) != 0 ? calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HDownLimit").val()), 1.3, "*"), "+") : 0, // è®¾ç½®æœ€å°å€¼
                        max: calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HUpLimit").val()), 1.3, "*"), "+"), // è®¾ç½®æœ€å¤§å€¼
                        min: parseFloat($("#HDownLimit").val()) != 0 ? calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HDownLimit").val()), 1.1, "*"), "+") : 0, // è®¾ç½®æœ€å°å€¼
                        max: calc(parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HUpLimit").val()), 1.1, "*"), "+"), // è®¾ç½®æœ€å¤§å€¼
                        interval: calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HDownLimit").val()), "-"), 10, "/"), // è®¾ç½®é—´è·
                    },
                    series: [
                        {
                            data: HSJZ,
                            type: 'line',
                            itemStyle: { normal: { label: { show: true } } },
                            itemStyle: {
                                normal:
                                {
                                    label: {
                                        show: true
                                    }
                                }
                            },
                            markLine: {
                                symbol: 'none',//去掉箭头
                                data: [
                                    { name: 'USL', yAxis: parseFloat($("#HTargetVal").val()) + parseFloat($("#HUpLimit").val()), lineStyle: { color: '#FF1D00' }, label: { color: '#FF1D00', fontSize: 10 }, label: { formatter: '{b}: {c}' } },
                                    {
                                        name: 'LSL', yAxis: parseFloat($("#HTargetVal").val()) + parseFloat($("#HDownLimit").val()), lineStyle: { color: '#FF1D00' }, label: { color: '#FF1D00', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    },
                                    {
                                        name: 'UCL', yAxis: max, lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    },
                                    {
                                        name: 'LCL', yAxis: min, lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                    ,
                                    {
                                        name: 'CL', yAxis: average.toFixed(5), lineStyle: { color: '#6dadf0' }, label: { color: '#6dadf0', fontSize: 10 }, label: { formatter: '{b}: {c}' }
                                    }
                                ],
                                precision: 3
@@ -834,6 +955,248 @@
                option_ZXT_SJZ && myChart.setOption(option_ZXT_SJZ);
                //#endregion
            }
            //计算spc八大判定
            function spc_judge() {
                //均值
                var HAreaValue = calc(calc(parseFloat($("#HControlUpperLimit_X").val()), parseFloat($("#HCenterline_X").val()), "-"), 3, "/").toFixed(5);
                //上限部分
                var HAreaValue_A = parseFloat($("#HControlUpperLimit_X").val());
                var HAreaValue_B = calc(calc(HAreaValue, 2, "*"), parseFloat($("#HCenterline_X").val()), "+").toFixed(5);
                var HAreaValue_C = calc(calc(HAreaValue, 1, "*"), parseFloat($("#HCenterline_X").val()), "+").toFixed(5);
                //下限部分
                var HAreaValue_FA = parseFloat($("#HControlLowerLimit_X").val());
                var HAreaValue_FB = calc(parseFloat($("#HCenterline_X").val()),calc(HAreaValue, 2, "*"), "-").toFixed(5);
                var HAreaValue_FC = calc(parseFloat($("#HCenterline_X").val()),calc(HAreaValue, 1, "*"), "-").toFixed(5);
                let HAvg = [];//平均值
                for (var j = 1; j < option.cols[0].length; j++) {
                    if (optionAVG.length != 0) {
                        HAvg.push(optionAVG[0][option.cols[0][j].field]);
                    }
                }
                //连续十五个点在中心线两侧的C区内
                var judge_return = [];
                if (HAvg.length >= 15) {
                    for (var i = 14; i < HAvg.length; i++) {
                        if (HAvg[i] >= HAreaValue_FC && HAvg[i] <= HAreaValue_C) {
                            for (var j = i - 14; j <= i; j++) {
                                if (HAvg[j] >= HAreaValue_FC && HAvg[j] <= HAreaValue_C) {
                                    if (i == j) {
                                        for (var j1 = i; j1 >= i - 14; j1--) {
                                            if ($.inArray(HAvg[j1], judge_return) == -1) {
                                                judge_return.push(HAvg[j1]);
                                            }
                                        }
                                    }
                                } else {
                                    break;
                                }
                            }
                        }
                    }
                }
                //连续14个点中相邻点交替上下
                if (HAvg.length >= 14) {
                    for (var i = 13; i < HAvg.length; i++) {
                        var judge = [];
                        for (var j = i - 13; j < i; j++) {
                            if (HAvg[j] > HAvg[j + 1]) {
                                judge.push(1);
                            } else if (HAvg[j] < HAvg[j + 1]) {
                                judge.push(-1);
                            }
                        }
                        for (var k = 0; k < judge.length; k++) {
                            if (judge[k] + judge[k + 1] == 0) {
                                if ((k + 1) == judge.length) {
                                    for (var j1 = i; j1 >= i - 13; j1--) {
                                        if ($.inArray(HAvg[j1], judge_return) == -1) {
                                            judge_return.push(HAvg[j1]);
                                        }
                                    }
                                }
                            } else {
                                break;
                            }
                        }
                    }
                }
                //连续9个点落在中心线的同一侧
                if (HAvg.length >= 9) {
                    for (var i = 8; i < HAvg.length; i++) {
                        var judge = [];
                        for (var j = i - 8; j <= i; j++) {
                            if (HAvg[j] > parseFloat($("#HCenterline_X").val())) {
                                judge.push(1);
                            } else if (HAvg[j] < parseFloat($("#HCenterline_X").val())) {
                                judge.push(-1);
                            }
                        }
                        var sum = 0;
                        for (var k = 0; k < judge.length; k++) {
                            sum += judge[k];
                        }
                        if (sum == 9 || sum == -9) {
                            for (var j1 = i; j1 >= i - 8; j1--) {
                                if ($.inArray(HAvg[j1], judge_return) == -1) {
                                    judge_return.push(HAvg[j1]);
                                }
                            }
                        }
                    }
                }
                //连续8点落在中心线两侧且无一在C区以内(即在C区以外)
                if (HAvg.length >= 8) {
                    for (var i = 7; i < HAvg.length; i++) {
                        if (HAvg[i] < HAreaValue_FC || HAvg[i] > HAreaValue_C) {
                            for (var j = i - 7; j <= i; j++) {
                                if (HAvg[j] < HAreaValue_FC || HAvg[j] > HAreaValue_C) {
                                    if (j == i) {
                                        for (var j1 = i; j1 >= i - 7; j1--) {
                                            if ($.inArray(HAvg[j1], judge_return) == -1) {
                                                judge_return.push(HAvg[j1]);
                                            }
                                        }
                                    }
                                } else {
                                    break;
                                }
                            }
                        }
                    }
                }
                //连续6点递增或递减
                if (HAvg.length >= 6) {
                    for (var i = 5; i < HAvg.length; i++) {
                        var judge = [];
                        for (var j = i - 5; j < i; j++) {
                            if (HAvg[j] > HAvg[j + 1]) {
                                judge.push(1);
                            } else if (HAvg[j] < HAvg[j + 1]) {
                                judge.push(-1);
                            }
                        }
                        var sum = 0;
                        for (var k = 0; k < judge.length; k++) {
                            sum += judge[k];
                        }
                        if (sum == 5 || sum == -5) {
                            for (var j1 = i; j1 >= i - 5; j1--) {
                                if ($.inArray(HAvg[j1], judge_return) == -1) {
                                    judge_return.push(HAvg[j1]);
                                }
                            }
                        }
                    }
                }
                //连续5点中有4点落在中心线同一侧的C区外
                if (HAvg.length >= 5) {
                    for (var i = 4; i < HAvg.length; i++) {
                        var judge = [];
                        if (HAvg[i] > parseFloat($("#HCenterline_X").val()) && HAvg[i] > HAreaValue_C) {
                            for (var j = i - 4; j <= i; j++) {
                                var record = [];
                                if (HAvg[j] > parseFloat($("#HCenterline_X").val()) && HAvg[j] > HAreaValue_C) {
                                    record.push(HAvg[j]);
                                    if (record.length >= 4) {
                                        for (var j1 = i; j1 >= i - 4; j1--) {
                                            if ($.inArray(HAvg[j1], judge_return) == -1) {
                                                judge_return.push(HAvg[j1]);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else if (HAvg[i] < parseFloat($("#HCenterline_X").val()) && HAvg[i] < HAreaValue_FC) {
                            for (var j = i - 4; j <= i; j++) {
                                var record = [];
                                if (HAvg[j] < parseFloat($("#HCenterline_X").val()) && HAvg[j] < HAreaValue_FC) {
                                    record.push(HAvg[j]);
                                    if (record.length >= 4) {
                                        for (var j1 = i; j1 >= i - 4; j1--) {
                                            if ($.inArray(HAvg[j1], judge_return) == -1) {
                                                judge_return.push(HAvg[j1]);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                //连续3点中有2点落在中心线同一侧的B区外
                if (HAvg.length >= 3) {
                    for (var i = 2; i < HAvg.length; i++) {
                        var judge = [];
                        if (HAvg[i] > parseFloat($("#HCenterline_X").val()) && HAvg[i] > HAreaValue_B) {
                            for (var j = i - 2; j <= i; j++) {
                                var record = [];
                                if (HAvg[j] > parseFloat($("#HCenterline_X").val()) && HAvg[j] > HAreaValue_B) {
                                    record.push(HAvg[j]);
                                    if (record.length >= 2) {
                                        for (var j1 = i; j1 >= i - 2; j1--) {
                                            if ($.inArray(HAvg[j1], judge_return) == -1) {
                                                judge_return.push(HAvg[j1]);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else if (HAvg[i] < parseFloat($("#HCenterline_X").val()) && HAvg[i] < HAreaValue_FB) {
                            for (var j = i - 2; j <= i; j++) {
                                var record = [];
                                if (HAvg[j] < parseFloat($("#HCenterline_X").val()) && HAvg[j] < HAreaValue_FB) {
                                    record.push(HAvg[j]);
                                    if (record.length >= 2) {
                                        for (var j1 = i; j1 >= i - 2; j1--) {
                                            if ($.inArray(HAvg[j1], judge_return) == -1) {
                                                judge_return.push(HAvg[j1]);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                //1个点落在A区以外
                if (HAvg.length >= 0) {
                    for (var i = 0; i < HAvg.length; i++) {
                        var judge = [];
                        if (HAvg[i] > HAreaValue_A) {
                            if ($.inArray(HAvg[i], judge_return) == -1) {
                                judge_return.push(HAvg[i]);
                            }
                        }
                        else if (HAvg[i] < HAreaValue_FA) {
                            if ($.inArray(HAvg[i], judge_return) == -1) {
                                judge_return.push(HAvg[i]);
                            }
                        }
                    }
                }
                return judge_return;
            }
@@ -971,7 +1334,7 @@
                //Type 2 æ ¹æ®é€‰ä¸­çš„物料去查询数据
                var sWheres = "";
                if (Type == 1) {
                    sWheres = " and æ£€éªŒé¡¹ç›®ä»£ç ='" + $("#HQCCheckItemNumber").val() + "'";
                    sWheres = " and æ£€éªŒé¡¹ç›®ä»£ç ='" + $("#HQCCheckItemNumber").val() + "' and ç‰©æ–™ä»£ç ='" + $("#HMaterNumber").val() + "'";
                }
                if (Type == 2) {
                    sWheres = " and ç‰©æ–™ä»£ç ='" + $("#HMaterNumber").val() + "'";