单品过站查询遗漏条码
spc报表优化
单品过站查询报表
热处理温度曲线图
2个文件已添加
6个文件已修改
740 ■■■■■ 已修改文件
WebTM/WebTM.csproj 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/IpadIndex.html 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/index.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/基础资料/公用基础资料/Gy_CheckItem.html 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/质量报表/QC_InspectionFormReport.html 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/车间管理/产线/MES_ProductionLinePackaging.html 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/车间管理/单品过站/SingleItemTransitList.html 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/车间管理/报表分析/Cj_HeatTreatmentTemperatureCurveChart.html 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -476,7 +476,6 @@
    <Content Include="views\质量管理\质量报表\QC_ErrManagerLedgerReport.html" />
    <Content Include="views\质量管理\质量报表\QC_QualityStatisticsDailyReport.html" />
    <Content Include="views\质量管理\质量报表\QC_RegistrationForTestingReport.html" />
    <Content Include="views\质量管理\质量报表\QC_MoistureContentDataLedger.html" />
    <Content Include="views\质量管理\质量报表\QC_QualityStatisticsDailyReport.html" />
    <Content Include="views\质量管理\质量报表\QC_TechnologyParameterClass.html" />
    <Content Include="views\质量管理\质量报表\SB_TechnologyParameterList.html" />
@@ -502,6 +501,7 @@
    <Content Include="views\车间管理\产线\Sc_ProcessReportList_Last.html" />
    <Content Include="views\车间管理\产线\Sc_StationInBillList.html" />
    <Content Include="views\车间管理\产线\test.html" />
    <Content Include="views\车间管理\单品过站\SingleItemTransitList.html" />
    <Content Include="views\车间管理\启动点检单\Sc_WorkBeginDotCheckBill.html" />
    <Content Include="views\车间管理\启动点检单\Sc_WorkBeginDotCheckBillList.html" />
    <Content Include="views\设备管理\设备停机单\Sb_EquipStopBill.html" />
@@ -512,6 +512,7 @@
    <Content Include="views\车间管理\工序流转卡\Sc_ProcessExchangeBillList_Source.html" />
    <Content Include="views\车间管理\工序流转卡\Sc_ProcessExchangeArrangement_PG.html" />
    <Content Include="views\车间管理\工序流转卡\Sc_ProcessExchangeBill_BatchSplit.html" />
    <Content Include="views\车间管理\报表分析\Cj_HeatTreatmentTemperatureCurveChart.html" />
    <Content Include="views\车间管理\报表分析\Cj_SPCOscillationCurve.html" />
    <Content Include="views\车间管理\报表分析\Kf_PressurizedWaterNoOutReport.html" />
    <Content Include="views\车间管理\启动点检单\Gy_WorkBeginDotCheckListBill.html" />
WebTM/views/IpadIndex.html
@@ -1067,6 +1067,10 @@
                layer.alert("请选择工单列表", { icon: 5 });
                return false;
            }
            if (WorkStaus(HSourceID1, workcode, HSourceInterID, "斯莫尔汇报")) {
                layer.alert("单据状态不满足汇报条件!", { icon: 5 });
                return false;
            }
            layer.open({
                type: 2,
                skin: 'layui-layer-rim', //加上边框
@@ -1297,6 +1301,9 @@
                case "汇报":
                    sWhere = " where HSourceID='" + HSourceID1 + "' and HICMOBillNo='" + workcode + "' and HInterID='" + HSourceInterID + "' and hicmostatus not in('1','2')";   //是否有不为开工、停工挂起状态
                    break;
                case "斯莫尔汇报":
                    sWhere = " where HSourceID='" + HSourceID1 + "' and HSourceBillNo='" + workcode + "' and HInterID='" + HSourceInterID + "' and hicmostatus not in('1','2')";   //是否有不为开工、停工挂起状态
                    break;
                case "报检申请":
                    break;
WebTM/views/index.html
@@ -587,6 +587,7 @@
                                        <dd><a lay-href="车间管理/报表分析/Kf_ProdProcessSumReport_DyeColor_third.html">染厂产量报表</a></dd>
                                        <dd><a lay-href="车间管理/报表分析/Kf_MateOutSumReport_QiaoYi.html">领料统计报表</a></dd>
                                        <dd><a lay-href="车间管理/报表分析/Cj_SPCOscillationCurve.html">SPC震荡曲线图</a></dd>
                                        <dd><a lay-href="车间管理/报表分析/Cj_HeatTreatmentTemperatureCurveChart.html">热处理温度曲线图</a></dd>
                                    </dl>
                                </dd>
                                <dd>
@@ -620,6 +621,7 @@
                                        <dd><a lay-href="车间管理/单品过站/Sc_SourceLineRepairBillList.html">返修记录列表</a></dd>
                                        <dd><a lay-href="车间管理/单品过站/RetrospectiveQueryReport.html">质量追溯查询</a></dd>
                                        <dd><a lay-href="车间管理/单品过站/BadQueryReport.html">逆向追溯查询报表</a></dd>
                                        <dd><a lay-href="车间管理/单品过站/SingleItemTransitList.html">单品过站查询</a></dd>
                                    </dl>
                                </dd>
                                <dd>
WebTM/views/»ù´¡×ÊÁÏ/¹«Óûù´¡×ÊÁÏ/Gy_CheckItem.html
@@ -145,6 +145,7 @@
            var option = [];
            let that = this;
            var HModName = "Gy_CheckItem";
            var HQCCheckNum = [];
            //不需要显示的字段 å¯æ‰©å±•
            var titleData = ["HItemID","ParentID"];
            //tree.render({
@@ -206,6 +207,14 @@
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            var params = getUrlVars();
            if (typeof (params[params[0]]) == "undefined") {
                HQCCheckNum = [];//操作类型
            } else if (params[params[0]] == "SPC") {
                HQCCheckNum = params[params[1]];//操作类型
            }
            //初始化界面
            set_ClearBill();
            //#endregion
@@ -276,7 +285,7 @@
                //初始化表格
                set_InitGrid();
                //查询
                get_Display(sWhere);
                get_FastQuery();
                get_DefaultModule();
@@ -419,6 +428,10 @@
                            break;
                    }
                    sWhere += " and " + ColName + " " + com;
                }
                if (HQCCheckNum.length > 0) {
                    sWhere += " and HItemID in (" + HQCCheckNum.toString() + ")";
                }
                if (HNumber) {
                    sWhere += " and ä»£ç  like '%" + HNumber + "%'";
@@ -1090,6 +1103,18 @@
                }
            });
        }
        //获取参数
        function getUrlVars() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
            for (var i = 0; i < hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }
        //#endregion
    </script>
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_InspectionFormReport.html
@@ -193,6 +193,9 @@
                            <div id="histogram_Diff" style="width:99.5%;height:calc(100vh);margin-top:15px;">
                            </div>
                            <div id="histogram_SJZ" style="width:99.5%;height:calc(100vh);margin-top:15px;">
                            </div>
                        </div>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
@@ -211,7 +214,7 @@
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate','soulTable'], function () {
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'soulTable'], function () {
            //#region å…¬å…±å˜é‡
            var $ = layui.$
@@ -230,6 +233,8 @@
            var HModName = "QC_InspectionFormReport";
            var optionAVG = [];
            var optionS = [];
            var optionSJZ = [];
            var HQCCheckNum = [];
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
@@ -239,7 +244,7 @@
            //#endregion
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //头工具栏事件
@@ -259,13 +264,14 @@
            form.on('submit(btnHMaterID)', function (data) {
                btnHMaterID();
            });
        //#endregion
            //#endregion
            //#region æ£€éªŒé¡¹ç›®
            form.on('submit(btnHQCCheckItemID)', function (data) {
                btnCheckProjectList(2);
                btnHQCCheckItemID();
            });
        //#endregion
            //#endregion
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
@@ -313,7 +319,7 @@
                    }
                });
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
@@ -337,8 +343,8 @@
                var columns = [];
                //columns.push({ type: 'numbers', title: '序号' });
                columns.push({ field:"Id", title: "序号", width: 70 });
                columns.push({ field: "Id", title: "序号", width: 70 });
                //获取两个月期之间的相差
                var time1 = Date.parse(new Date($("#HBeginDate").val()));//开始时间
                var time2 = Date.parse(new Date($("#HEndDate").val()));//结束时间
@@ -415,14 +421,15 @@
                                option.cols = [col];
                                option.data = data1.data;
                                optionSJZ[0] = data1.data[0];
                                optionAVG[0] = data1.data[limit + 1];
                                optionS[0] = data1.data[limit + 2];
                                table.render(option);
                                set_Line();
                                set_PPK();
                                set_CPK();
                                set_Line();
                            }
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
@@ -436,7 +443,7 @@
            //PPK计算 x
            function set_PPK() {
                var x_AVG =0;
                var x_AVG = 0;
                var x_SUM = 0;
                var x_PPK = 0;
                var numCount = 0
@@ -455,7 +462,7 @@
                    for (var j = 0; j < option.data.length - 3; j++) {
                        numCount += 1;
                        x_SUM = calc(x_SUM, parseFloat(((parseFloat(option.data[j][option.cols[0][i].field]) - x_AVG) ** 2).toFixed(6)), "+")
                    }
                }
@@ -483,12 +490,15 @@
                }
            }
             //CPK计算 s
            //CPK计算 s
            function set_CPK() {
                var x_AVG = 0;
                var s_AVG = 0;
                var s_CPK = 0;
                var d2 = [1.128, 1.693, 2.059, 2.326, 2.534, 2.704, 2.847, 3.078, 3.173, 3.258, 3.336, 3.407, 3.472, 3.532, 3.588, 3.640, 3.689, 3.735, 3.778, 3.819, 3.858, 3.895, 3.931];
                var A2 = [0,1.880, 1.023, 0.729, 0.577, 0.483, 0.419, 0.373, 0.337, 0.308];
                var D3 = [0,0.000, 0.000, 0.000, 0.000, 0.000, 0.076, 0.136, 0.184, 0.223];
                var D4 = [0,3.267, 2.574, 2.282, 2.114, 2.004, 1.924, 1.864, 1.816, 1.777];
                for (var j = 1; j < option.cols[0].length; j++) {
                    if (optionAVG.length != 0 || optionS.length != 0) {
@@ -515,9 +525,17 @@
                s_CPK = calc(s_AVG, d2[option.data.length - 4], "/");
                //均值 æŽ§åˆ¶ä¸Šé™ æŽ§åˆ¶ä¸‹é™
                $("#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_S").val(calc(D4[$("#limit").val() - 1], s_AVG, "*"));
                $("#HControlLowerLimit_S").val(calc(D3[$("#limit").val() - 1], s_AVG, "*"))
                //上限
                if ($("#HUpLimit").val() != "" && $("#HDownLimit").val() == "") {
                    var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()),"+"), s_AVG, "-"), (3 * s_CPK), "/");
                    var HUpLimit = calc(calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HTargetVal").val()), "+"), x_AVG, "-"), (3 * s_CPK), "/");
                    $("#HCPK").val(HUpLimit.toFixed(4));
                }
                //下限
@@ -525,7 +543,7 @@
                    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()), "+"), s_AVG, "-"), (3 * s_CPK), "/");
                    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);
@@ -540,7 +558,7 @@
                var str1, // è½¬æ¢ä¸ºå­—符串的数字
                    str2,
                    ws1 = 0,// ws1,ws2 ç”¨æ¥å­˜å‚¨ä¼ å…¥çš„num的小数点后的数字的位数
                    ws2 = 0,// èµ‹é»˜è®¤å€¼ï¼Œè§£å†³å½“整数和小数运算时倍数计算错误导致的结果误差
                    ws2 = 0,// èµ‹é»˜è®¤å€¼ï¼Œè§£å†³å½“整数和小数运算时倍数计算错误导致的结果误差
                    bigger,// bigger和smaller用于加,减,除法找出小的那个数字,给后面补0,解决位数不对从而造成的计算错误的问题;乘法需要将结果除两个数字的倍数之和
                    smaller,// ä¾‹å¦‚:加减除法中1.001 + 2.03 ï¼Œå¦‚果不给2.03进行补0,最后会变成1001+203,数字错位导致结果错误;乘法中1.12*1.1会放大为112*11,所以结果需要除以1000才会是正确的结果,112*11/1000=1.232
                    zeroCount, // éœ€è¦è¡¥å……0的个数
@@ -562,7 +580,7 @@
                if (isExistDot2) {
                    ws2 = str2.split('.')[1].length;
                }
                // å¦‚ws1 å’Œ ws2 æ— é»˜è®¤å€¼ï¼Œå¦‚æžœnum1 æˆ– num2 ä¸æ˜¯å°æ•°çš„话则 ws1 æˆ– ws2 çš„值将为 undefined
                // å¦‚ws1 å’Œ ws2 æ— é»˜è®¤å€¼ï¼Œå¦‚æžœnum1 æˆ– num2 ä¸æ˜¯å°æ•°çš„话则 ws1 æˆ– ws2 çš„值将为 undefined
                // bigger å’Œ smaller çš„值会和预期不符
                bigger = ws1 > ws2 ? ws1 : ws2;
                smaller = ws1 < ws2 ? ws1 : ws2;
@@ -636,14 +654,17 @@
                let H_X = [];//x轴标题
                let HAvg = [];//平均值
                let HDifference = [];//差值
                let HSJZ = [];//实际值
                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]);
                        HDifference.push(optionS[0][option.cols[0][j].field]);
                        HSJZ.push(optionSJZ[0][option.cols[0][j].field]);
                    } else {
                        HAvg.push(0);
                        HDifference.push(0);
                        HSJZ.push(0);
                    }
                }
@@ -655,7 +676,7 @@
                    title: {
                        text: '平均值',
                        left: 'center'
                    },
                    },
                    grid: {
                        x: '3%', //相当于距离左边效果:padding-left
                        //y: '5%',  //相当于距离上边效果:padding-top
@@ -668,7 +689,7 @@
                    },
                    yAxis: {
                        type: 'value',
                        min: parseFloat($("#HDownLimit").val()) != 0 ? calc((parseFloat($("#HTargetVal").val()), calc(parseFloat($("#HDownLimit").val()), 1.3), "*"), "+") : 0, // è®¾ç½®æœ€å°å€¼
                        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, "*"), "+"), // è®¾ç½®æœ€å¤§å€¼
                        interval: calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HDownLimit").val()), "-"), 10, "/"), // è®¾ç½®é—´è·
                    },
@@ -676,21 +697,7 @@
                        {
                            data: HAvg,
                            type: 'line',
                            areaStyle: {//填充的颜色
                                color: {//线性渐变前四个参数分别是 x0, y0, x2, y2, èŒƒå›´ä»Ž 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord ä¸º `true`,则该四个值是绝对的像素位置
                                    type: 'linear',
                                    x: 0,
                                    y: 1,
                                    x2: 0,
                                    y2: 0,
                                    colorStops: [{
                                        offset: 0, color: 'rgba(232,247,247)' // 0% å¤„的颜色
                                    }, {
                                        offset: 1, color: 'rgba(183,252,252)' // 100% å¤„的颜色
                                    }],
                                    globalCoord: false// ç¼ºçœä¸º false
                                }
                            },
                            itemStyle: { normal: { label: { show: true } } },
                            markLine: {
                                symbol: 'none',//去掉箭头
@@ -709,7 +716,8 @@
                                    {
                                        yAxis: parseFloat($("#HCenterline_X").val()), lineStyle: { color: '#6dadf0' }, label: { color: '#6dadf0', fontSize: 10 }
                                    }
                                ]
                                ],
                                precision: 3
                            },
                        }
                    ]
@@ -743,27 +751,13 @@
                        {
                            data: HDifference,
                            type: 'line',
                            areaStyle: {//填充的颜色
                                color: {//线性渐变前四个参数分别是 x0, y0, x2, y2, èŒƒå›´ä»Ž 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord ä¸º `true`,则该四个值是绝对的像素位置
                                    type: 'linear',
                                    x: 0,
                                    y: 1,
                                    x2: 0,
                                    y2: 0,
                                    colorStops: [{
                                        offset: 0, color: 'rgba(255,240,170,0)' // 0% å¤„的颜色
                                    }, {
                                        offset: 1, color: 'rgba(255,240,170,1)' // 100% å¤„的颜色
                                    }],
                                    globalCoord: false// ç¼ºçœä¸º false
                                }
                            },
                            itemStyle: { normal: { label: { show: true } } },
                            markLine: {
                                symbol: 'none',//去掉箭头
                                data: [
                                    {
                                        yAxis: parseFloat($("#HControlUpperLimit_S").val()) , lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }
                                        yAxis: parseFloat($("#HControlUpperLimit_S").val()), lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }
                                    },
                                    {
                                        yAxis: parseFloat($("#HControlLowerLimit_S").val()), lineStyle: { color: '#2cb615' }, label: { color: '#2cb615', fontSize: 10 }
@@ -772,14 +766,61 @@
                                    {
                                        yAxis: parseFloat($("#HCenterline_S").val()), lineStyle: { color: '#6dadf0' }, label: { color: '#6dadf0', fontSize: 10 }
                                    }
                                ]
                                ],
                                precision: 3
                            },
                        }
                    ]
                };
                option_ZXT_Diff && myChart.setOption(option_ZXT_Diff);
            //#endregion
                //实际值
                var chartDom = document.getElementById('histogram_SJZ');
                var myChart = echarts.init(chartDom);
                var option_ZXT_SJZ;
                option_ZXT_SJZ = {
                    title: {
                        text: '检测值',
                        left: 'center'
                    },
                    grid: {
                        x: '3%', //相当于距离左边效果:padding-left
                        //y: '5%',  //相当于距离上边效果:padding-top
                        bottom: '5%',
                        containLabel: true
                    },
                    xAxis: {
                        type: 'category',
                        data: H_X
                    },
                    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, "*"), "+"), // è®¾ç½®æœ€å¤§å€¼
                        interval: calc(calc(parseFloat($("#HUpLimit").val()), parseFloat($("#HDownLimit").val()), "-"), 10, "/"), // è®¾ç½®é—´è·
                    },
                    series: [
                        {
                            data: HSJZ,
                            type: 'line',
                            itemStyle: { normal: { label: { show: true } } },
                            markLine: {
                                symbol: 'none',//去掉箭头
                                data: [
                                    { yAxis: parseFloat($("#HTargetVal").val()) + parseFloat($("#HUpLimit").val()), lineStyle: { color: '#FF1D00' }, label: { color: '#FF1D00', fontSize: 10 } },
                                    {
                                        yAxis: parseFloat($("#HTargetVal").val()) + parseFloat($("#HDownLimit").val()), lineStyle: { color: '#FF1D00' }, label: { color: '#FF1D00', fontSize: 10 }
                                    }
                                ],
                                precision: 3
                            },
                        }
                    ]
                };
                option_ZXT_SJZ && myChart.setOption(option_ZXT_SJZ);
                //#endregion
            }
@@ -890,7 +931,7 @@
                    , area: ['90%', '90%']//大小
                    , title: '检验项目列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_CheckItem.html', 'yes']
                    , content: ['../../基础资料/公用基础资料/Gy_CheckItem.html?Type=SPC&ID=' + HQCCheckNum.toString(), 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
@@ -902,8 +943,8 @@
                        $("#HQCCheckItemID").val(checkStatus.data[0].HItemID);
                        $("#HQCCheckItemNumber").val(checkStatus.data[0].代码);
                        btnCheckProjectList();
                        btnCheckProjectList(1);
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
@@ -911,8 +952,18 @@
            }
            //检验方案
            function btnCheckProjectList() {
                var sWheres = " and æ£€éªŒé¡¹ç›®ä»£ç ='" + $("#HQCCheckItemNumber").val() + "'";
            function btnCheckProjectList(Type) {
                HQCCheckNum = [];
                //Type 1 æ ¹æ®é€‰ä¸­çš„æ£€éªŒé¡¹ç›®åŽ»æŸ¥è¯¢æ•°æ®
                //Type 2 æ ¹æ®é€‰ä¸­çš„物料去查询数据
                var sWheres = "";
                if (Type == 1) {
                    sWheres = " and æ£€éªŒé¡¹ç›®ä»£ç ='" + $("#HQCCheckItemNumber").val() + "'";
                }
                if (Type == 2) {
                    sWheres = " and ç‰©æ–™ä»£ç ='" + $("#HMaterNumber").val() + "'";
                }
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/QC_Management/MES_QC_CheckProjectListProjectDetaiList',
@@ -922,9 +973,17 @@
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.close(wait);
                            $("#HUpLimit").val(data1.data[0].上限值);
                            $("#HDownLimit").val(data1.data[0].下限值);
                            $("#HTargetVal").val(data1.data[0].目标值);
                            if (Type == 1) {
                                $("#HUpLimit").val(data1.data[0].上限值);
                                $("#HDownLimit").val(data1.data[0].下限值);
                                $("#HTargetVal").val(data1.data[0].目标值);
                            }
                            if (Type == 2) {
                                for (var i = 0; i < data1.data.length; i++) {
                                    HQCCheckNum.push(data1.data[i]["检验项目ID"]);
                                }
                            }
                            //$("#HControlUpperLimit").val(data1.data[0].控制上限);
                            //$("#HControlLowerLimit").val(data1.data[0].控制下限);
                        } else {
WebTM/views/³µ¼ä¹ÜÀí/²úÏß/MES_ProductionLinePackaging.html
@@ -65,6 +65,8 @@
                                    <option value="1607222-00-B">1607222-00-B</option>
                                    <option value="1943600-00-B">1943600-00-B</option>
                                    <option value="1941600-00-B">1941600-00-B</option>
                                    <option value="1941600-00-C">1941600-00-C</option>
                                    <option value="1943600-00-C">1943600-00-C</option>
                                    <option value="其他" selected>其他</option>
                                </select>
                            </div>
WebTM/views/³µ¼ä¹ÜÀí/µ¥Æ·¹ýÕ¾/SingleItemTransitList.html
New file
@@ -0,0 +1,294 @@
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>单品过站查询</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/HideButton.js"></script>
    <script src="../../../layuiadmin/soulTable.slim.js"></script>
    <script src="../../../layuiadmin/PageTitle.js"></script>
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </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="HProcExchBillNo" id="HProcExchBillNo">
                                    </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-colla-content">
                                </div>
                            </div>
                        </div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                        <div class="layui-tab layui-tab-card" style="margin-top:0px;">
                            <ul class="layui-tab-title">
                                <li class="layui-this">条码信息</li>
                            </ul>
                            <div class="layui-tab-content">
                                <div class="layui-tab-item layui-show ">
                                    <!--缺少的数据-->
                                    <table class="layui-hide" id="mainTable1" lay-filter="mainTable1"></table>
                                </div>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
<script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate','soulTable'], function () {
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , element = layui.element
                , laypage = layui.laypage
                , laydate = layui.laydate
                , util = layui.util
                , soulTable = layui.soulTable
            //公用变量
            var sWhere = "";
            var option = [];
            var option1 = [];
            var ins;                        //用于导出excel
            var HModName = "SingleItemTransitList";
            var HModName1 = "SingleItemTransitList_SN";
            var titleData = ["HMaterID", "HUnitID", "HSourceID", "hmainid", "HProcExchInterID", "HProcID", "HunitID", "HEmpID", "HGroupID", "HProcExchEntryID", "HSubID", "HICMOInterID", "选择", "查询日期", "成本对象", "成本对象名称", "HBillStatus", "HBillType", "HPRDORGID"];//不需要显示的字段 å¯æ‰©å±•
            //初始化表格
            set_InitGrid();
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //点击主表带出从表数据
            table.on('row(mainTable)', function (obj) { //注:tool æ˜¯å·¥å…·æ¡äº‹ä»¶åï¼Œtest æ˜¯ table åŽŸå§‹å®¹å™¨çš„å±žæ€§ lay-filter="对应的值"
                var datas = obj.data; //获得当前行数据
                var HProcExchBillNo = datas.流转卡号;
                var HProcName = datas.工序;
                SelectTechParam(HProcExchBillNo, HProcName);//工艺参数
            });
            //初始化表格
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    //, toolbar: '#toolbarDemo'
                    , height: 700
                    , page: true
                    , totalRow: true
                    , cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 20000]
                    , cols: []
                    , text: {
                        none: '无数据!'
                    }
                };
                get_FastQuery();
            }
            //重置过滤条件
            function set_ClearQuery() {
                $("#HProcExchBillNo").val("");
                sWhere = "";
            }
            //快速过滤
            function get_FastQuery() {
                get_Display(sWhere);
                sWhere = "";//调用接口后清空sWhere缓存
            }
            //查询数据
            function SelectTechParam(HProcExchBillNo, TableName) {
                var wait = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/Cj_SingleStation/SingleItemTransit_SN_List',
                    type: "GET",
                    data: { "sWhere": HProcExchBillNo, "TableName": TableName },
                    async: false,
                    success: function (data1) {
                        if (data1.count == 1) {
                            var totalArray = ["生产数量", "工价", "金额", "任务数量", "数量", "出站数量", "报废数量", "不良数量", "工时", "流转卡数量", "任务单数量"];
                            var data = [];
                            var col = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            //在列表左边添加勾选框
                            //col.push({ type: 'checkbox', fixed: 'left' });
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, "") > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                } else if (data[i].name == '单据号') {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, event: '单据号' });
                                }
                                else if ($.inArray(data[i].name, totalArray) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
                                }
                                else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            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 HH:mm:ss')}}</div>", width: 200 });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                    }
                                }
                            }
                            //动态显示列名
                            option1 = {
                                elem: '#mainTable1'
                                //, toolbar: '#toolbarDemo1'
                                , cols: [col]
                                , data: data1.data
                                , height: 550
                                , page: true
                                , totalRow: true
                                , cellMinWidth: 90
                                , limit: 50
                                , limits: [50, 500, 5000, 20000]
                            }
                            table.render(option1);
                            layer.close(wait);
                            //layer.alert("查询成功", { icon: 1 });
                        } else {
                            layer.close(wait);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //加载网格
            function get_Display(sWhere) {
                var HProcExchBillNo = $("#HProcExchBillNo").val(); //工序流转卡号
                //进入页面显示的缓存列表
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/Cj_SingleStation/SingleItemTransitList',
                    type: "GET",
                    async: false,
                    data: { "HProcExchBillNo": HProcExchBillNo, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = [];
                            var col = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            //在列表左边添加勾选框
                            //col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            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 HH:mm:ss')}}</div>", width: 200 });
                                            break;
                                        default:
                                            if (data[i].name == '数量' || data[i].name == '出站数量' || data[i].name == '报废数量' || data[i].name == '取样数量' || data[i].name == '工时') {
                                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, totalRow: true });
                                            } else {
                                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                            }
                                    }
                                }
                            }
                            //动态显示列名
                            option = {
                                elem: '#mainTable'
                                //, toolbar: '#toolbarDemo'
                                , cols: [col]
                                , data: data1.data
                                , height: 700
                                , page: true
                                , totalRow: true
                                , cellMinWidth: 90
                                , limit: 50
                                , limits: [50, 500, 5000, 20000]
                                , done: function (res, curr, count) {
                                    soulTable.render(this);
                                }
                            }
                            table.render(option);
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
                layer.close(ajaxLoad);
            }
            //以上是layui模块
        });
</script>
WebTM/views/³µ¼ä¹ÜÀí/±¨±í·ÖÎö/Cj_HeatTreatmentTemperatureCurveChart.html
New file
@@ -0,0 +1,226 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>热处理温度曲线图</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/HideButton.js"></script>
    <script src="../../../layuiadmin/soulTable.slim.js"></script>
    <script src="../../../layuiadmin/PageTitle.js"></script>
    <script src='../../../layuiadmin/lib/extend/echarts.min.js'></script>
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">设备</label>
                                    <div class="layui-input-block">
                                        <select name="HEquipFileNo" id="HEquipFileNo" lay-verify="required" lay-search class="layui-input">
                                            <!--动态渲染车间-->
                                        </select>
                                    </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>
                        </div>
                        <div>
                            <table class="" id="mainTable" lay-filter="mainTable"></table>
                            <div id="HeatTreatmentTemperatureCurveChart" style="width:99.5%;height:calc(100vh);margin-top:5px;"> </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
<script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate','soulTable'], function () {
            //#region å…¬å…±å˜é‡
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , element = layui.element
                , laypage = layui.laypage
                , laydate = layui.laydate
                , util = layui.util
                , soulTable = layui.soulTable
            //查询条件
            var sWhere = "";
            var option = [];
            var ColNameData = [];//列名数据
            var DateData = [];//日期数据
            var HModName = "Cj_HeatTreatmentTemperatureCurveChart";
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            //初始化界面
            function set_ClearBill() {
                get_FastQuery();
            }
            //查询数据
            function get_Display(sWhere) {
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/Cj_NoPassProc/HeatTreatmentTemperatureCurveChart',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.close(wait);
                            for (var i = 1; i < data1.list.length; i++) {
                                ColNameData.push(data1.list[i]["ColmCols"]);
                            }
                            for (var i = 0; i < data1.data.length; i++) {
                                DateData.push(data1.data[i]["HDate"]);
                            }
                            option = data1;
                            set_Line();
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //折线图
            function set_Line() {
                //#region【折线图】
                //平均值
                var chartDom = document.getElementById('HeatTreatmentTemperatureCurveChart');
                var myChart = echarts.init(chartDom);
                var option_Data;
                var Data_series = [];
                for (var i = 0; i < ColNameData.length; i++) {
                    var optionData = [];//值数据
                    for (var j = 0; j < DateData.length; j++) {
                        optionData.push(option.data[j][ColNameData[i]]);
                    }
                    Data_series.push({
                        name: ColNameData[i],
                        type: 'line',
                        //stack: 'Total',  //表示折线堆叠
                        data: optionData
                    })
                }
                option_Data = {
                    title: {
                        text: '热处理温度曲线图',
                        top: '3%',
                        left: 'center'
                    },
                    legend: {
                        data: ColNameData
                    },
                    grid: {
                        top:"13%",
                        x: '3%', //相当于距离左边效果:padding-left
                        //y: '5%',  //相当于距离上边效果:padding-top
                        //bottom: '5%',
                        containLabel: true
                    },
                    xAxis: {
                        type: 'category',
                        data: DateData,
                        axisLabel: {
                            //interval: 0 // è®¾ç½®ä¸º0以显示所有坐标点
                        }
                    },
                    yAxis: {
                        type: 'value',
                        min: 0,
                        max:1000
                    },
                    series: Data_series
                };
                option_Data && myChart.setOption(option_Data);
            //#endregion
            }
            //快速过滤
            function get_FastQuery() {
                var HEquipFileNo = $("#HEquipFileNo").val();
                sWhere = HEquipFileNo;
                get_Display(sWhere);
                //调用接口后清空sWhere缓存
                sWhere = "";
            }
            //重置过滤条件
            function set_ClearQuery() {
                $("#HEquipFileNo").val("0");
                form.render()
                sWhere = "";
            }
            //#endregion
        });
</script>