yangle
2024-12-12 e9ccb16eaca25fd7cea51b15685ddee9101e9fa0
首巡末合格不合格自动带出
spc 八大判定
5个文件已修改
335 ■■■■■ 已修改文件
WebTM/views/IpadIndex.html 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/巡检记录单/QC_Add_Edit_PatrolProcCheckOtherill.html 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/工序检验单/QC_ProcessCheckBill.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/质量报表/QC_InspectionFormReport.html 296 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/首件检验单/QC_Add_Edit_FirstPieceCheckBill.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/IpadIndex.html
@@ -1489,16 +1489,16 @@
                                    <span class="imgtitle">首检</span>
                                </div>
                            </div>
                            <div class="layui-col-sm12 layui-col-md4">
                                <div class="cnt bottomright" style="pointer-events:none; background-color:rgb(0 0 0 / 10%);display:none;">
                            <div class="layui-col-sm12 layui-col-md4" onclick="OpenProcess(event,this)">
                                <div class="cnt bottomright">
                                    <span class="layui-icon layui-icon-search imgicon"></span>
                                    <span class="imgtitle">巡检</span>
                                </div>
                            </div>
                            <div class="layui-col-sm12 layui-col-md4" onclick="OpenProcess(event,this)">
                                <div class="cnt bottomright">
                            <div class="layui-col-sm12 layui-col-md4">
                                <div class="cnt bottomright" style="pointer-events:none; background-color:rgb(0 0 0 / 10%);display:none;">
                                    <span class="layui-icon layui-icon-search imgicon"></span>
                                    <span class="imgtitle">过程检验</span>
                                    <span class="imgtitle">末检</span>
                                </div>
                            </div>
                        </div>
WebTM/views/ÖÊÁ¿¹ÜÀí/Ѳ¼ì¼Ç¼µ¥/QC_Add_Edit_PatrolProcCheckOtherill.html
@@ -1175,23 +1175,6 @@
                    });
                }
                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();
                            //layer.close(index);
                            var oldData = table.cache["mainTable"];
                            oldData.splice(obj.tr.data('index'), 1);
                            table.reload('mainTable', { data: oldData });
                            layer.close(index);
                        }
                    });
                }
                $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                    var rowIndex = Number($(obj.tr).attr("data-index")) + Number(1);
                    if (event.key == "F7") {
@@ -1383,6 +1366,8 @@
            });
            table.on('edit(mainTable)', function (obj) {
                var cell = $(this);
                var rowIndex = cell.closest('tr').data('index'); // èŽ·å–å½“å‰è¡Œæ•°æ®ç´¢å¼•
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
@@ -1391,7 +1376,7 @@
                var HInspectVal = $("#HInspectVal").val(); //检验值
                //var HTargetVal = $("#HTargetVal").val(); //目标值
                //var HComparator = $("#HComparator").val(); //比较符
                var HEntryID = $("#HEntryID").val() - 1;
                var HEntryID = rowIndex;
                var HAnalysisMethod = table.cache["mainTable"][HEntryID].HAnalysisMethod; //分析方法
                var HUpLimit = table.cache["mainTable"][HEntryID].HUpLimit; //上限值
                var HDownLimit = table.cache["mainTable"][HEntryID].HDownLimit; //下限值
WebTM/views/ÖÊÁ¿¹ÜÀí/¹¤Ðò¼ìÑéµ¥/QC_ProcessCheckBill.html
@@ -1307,6 +1307,8 @@
            table.on('edit(mainTable)', function (obj) {
                var cell = $(this);
                var rowIndex = cell.closest('tr').data('index'); // èŽ·å–å½“å‰è¡Œæ•°æ®ç´¢å¼•
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
@@ -1315,7 +1317,7 @@
                var HInspectVal = $("#HInspectVal").val(); //检验值
                //var HTargetVal = $("#HTargetVal").val(); //目标值
                //var HComparator = $("#HComparator").val(); //比较符
                var HEntryID = $("#HEntryID").val() - 1;
                var HEntryID = rowIndex;
                var HAnalysisMethod = table.cache["mainTable"][HEntryID].HAnalysisMethod; //分析方法
                var HUpLimit = table.cache["mainTable"][HEntryID].HUpLimit; //上限值
                var HDownLimit = table.cache["mainTable"][HEntryID].HDownLimit; //下限值
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_InspectionFormReport.html
@@ -727,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 {
@@ -750,6 +758,10 @@
                    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: {
@@ -776,8 +788,13 @@
                        {
                            data: HAvg,
                            type: 'line',
                            itemStyle: { normal: { label: { show: true } } },
                            itemStyle: {
                                normal: {
                                    label: {
                                        show: true
                                    }
                                }
                            },
                            markLine: {
                                symbol: 'none',//去掉箭头
                                data: [
@@ -788,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
@@ -888,7 +921,14 @@
                        {
                            data: HSJZ,
                            type: 'line',
                            itemStyle: { normal: { label: { show: true } } },
                            itemStyle: {
                                normal:
                                {
                                    label: {
                                        show: true
                                    }
                                }
                            },
                            markLine: {
                                symbol: 'none',//去掉箭头
                                data: [
@@ -918,6 +958,248 @@
            }
            //计算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;
            }
            //生产车间
            function get_Dept() {
                //获取车间列
WebTM/views/ÖÊÁ¿¹ÜÀí/Ê×¼þ¼ìÑéµ¥/QC_Add_Edit_FirstPieceCheckBill.html
@@ -3899,6 +3899,8 @@
            //#region ã€åºŸå¼ƒä»£ç (斯莫尔已启用)】
            table.on('edit(mainTable)', function (obj) {
                var cell = $(this);
                var rowIndex = cell.closest('tr').data('index'); // èŽ·å–å½“å‰è¡Œæ•°æ®ç´¢å¼•
                // å•元格编辑之前的值
                var oldText = $(this).prev().text();
                var value = obj.value //得到修改后的值
@@ -3907,7 +3909,7 @@
                var HInspectVal = $("#HInspectVal").val(); //检验值
                var HTargetVal = $("#HTargetVal").val(); //目标值
                var HComparator = $("#HComparator").val(); //比较符
                var HEntryID = $("#HEntryID").val()-1;
                var HEntryID = rowIndex;
                var HAnalysisMethod = table.cache["mainTable"][HEntryID].HAnalysisMethod; //分析方法
                var HUpLimit = table.cache["mainTable"][HEntryID].HUpLimit; //上限值
                var HDownLimit = table.cache["mainTable"][HEntryID].HDownLimit; //下限值