zrg
2024-06-25 745eeb18102abbdf4df3dd923e674cc80a3cffd6
生产质量月汇报单(斯莫尔)
3个文件已修改
1个文件已添加
549 ■■■■■ 已修改文件
WebTM/WebTM.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/异常反馈单/Sc_MESExecptFeedBackBillType.html 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/生产报表/Sc_QualityReportBillMonth.html 537 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -380,6 +380,7 @@
    <Content Include="views\生产管理\异常反馈单\OA_ErrMsgBackSignBill_BrushCard.html" />
    <Content Include="views\生产管理\异常反馈单\Sc_MESExecptFeedBackBillType.html" />
    <Content Include="views\生产管理\报工台工序\开工\Sc_SwipeCardStart.html" />
    <Content Include="views\生产管理\生产报表\Sc_QualityReportBillMonth.html" />
    <Content Include="views\生产管理\生产报表\Sc_QualityReportBillDay.html" />
    <Content Include="views\生产管理\生产计划平台\JIT_DayPlanPlatForm_BCP.html" />
    <Content Include="views\系统管理\会计期间\Xt_AccountPeriodAdd.html" />
WebTM/WebTM.csproj.user
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <NameOfLastUsedPublishProfile>D:\网站发布\后端代码\MES-WEB-TM\MESWMS-LayUI\WebTM\Properties\PublishProfiles\JFTM.pubxml</NameOfLastUsedPublishProfile>
    <NameOfLastUsedPublishProfile>D:\智云迈思\MES\MES-WEB-LayUI\WebTM\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <ProjectView>ProjectFiles</ProjectView>
    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
    <UseIISExpress>true</UseIISExpress>
WebTM/views/Éú²ú¹ÜÀí/Òì³£·´À¡µ¥/Sc_MESExecptFeedBackBillType.html
@@ -199,14 +199,7 @@
            //退出
            form.on('submit(Exit)', function (data) {
                if (linterid == undefined) {
                    //关闭页签
                    Pub_Close(2);
                }
                else {
                    //关闭页签
                    Pub_Close(1);
                }
                Pub_Close(1);
            });
            document.querySelectorAll('input[name="faultType"]').forEach(function (radio) {
WebTM/views/Éú²ú¹ÜÀí/Éú²ú±¨±í/Sc_QualityReportBillMonth.html
New file
@@ -0,0 +1,537 @@
<!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/PubCustom.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src='../../../layuiadmin/lib/extend/echarts.min.js'></script>
    <style type="text/css">
        input.layui-input.layui-unselect {
            padding-right: 0;
        }
    </style>
</head>
<body>
    <div class="layui-fluid" style="width:100%;height:100%;">
        <div class="layui-col-md12" style="width:100%;height:100%;">
            <div class="layui-card" style="padding: 1px;width:100%;height:100%;">
                <div class="layui-card-body" style="padding: 1px;width:100%;height:100%;">
                    <form class="layui-form" action="" lay-filter="component-form-group" style="width:100%;height:100%;">
                        <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; width: 85px;">
                                        <select name="HYear" id="HYear" lay-verify="HYear">
                                            <!--动态渲染年份-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">工作中心</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 120px;">
                                        <select name="HWorkCenter" id="HWorkCenter" lay-verify="HWorkCenter">
                                            <option style="color:blue;" value="109">注塑区域</option>
                                            <option style="color:blue;" value="110">后处理区域</option>
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">物料名称</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input" id="HName" style="width:190px;">
                                    </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" style="padding: 0px; margin-left: 6%;">
                                </div>
                            </div>
                        </div>
                        <div>
                            <div id="histogram" style="width:99.5%;height:calc(68vh);margin-top:10px;">
                            </div>
                            <div style="width:99%;height:calc(30vh);">
                                <table class="" id="mainTable" lay-filter="mainTable"></table>
                            </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-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>
                        </script>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], 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
            //查询条件
            var sWhere = "";
            var option = [];
            var HModName = "Sc_QualityReportBillMonth";
            var HDeptID = 0;
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region ã€æŸ±çŠ¶å›¾ã€‘
            function set_Graphics() {
                var chartDom = document.getElementById('histogram');
                var myChart = echarts.init(chartDom);
                var option_ZZT;
                //柱状图绑定数据
                var H_X = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];//X轴标题
                var HProcSumNum = [];//生产总数量
                var HQualifiedNum = [];//合格总数量
                var HFirstPassRate = [];//直通率
                var HTitle = "";//图形标题
                if (option.data.length > 0) {
                    var HMaterName = option.data[0].物料名称
                    for (let i = 0; i < option.data.length; i++) {
                        if (option.data[i].物料名称 === HMaterName) {
                            HProcSumNum.push(option.data[i].注塑数量);
                            var qualifiedRateString = option.data[i].注塑良率; // "5.00%"
                            var qualifiedRate = parseFloat(qualifiedRateString.replace('%', '')); // ç§»é™¤ç™¾åˆ†å·å¹¶è½¬æ¢ä¸ºæ•°å­—
                            HQualifiedNum.push(qualifiedRate);
                            // å¤„理全检良率
                            var firstPassRateString = option.data[i].全检良率; // "5.00%"
                            var firstPassRate = parseFloat(firstPassRateString.replace('%', '')); // ç§»é™¤ç™¾åˆ†å·å¹¶è½¬æ¢ä¸ºæ•°å­—
                            HFirstPassRate.push(firstPassRate);
                        }
                    }
                    //for (let i = 1; i <= 12; i++) {
                    //    HProcSumNum.push(option.data[0][i + "月"]);
                    //    HQualifiedNum.push(option.data[1][i + "月"]);
                    //    HFirstPassRate.push(option.data[3][i + "月"].replace('%', ''));
                    //}
                }
                switch ($("#HWorkCenter").val()) {
                    case '109':
                        HTitle = '注塑区域趋势图';
                        break;
                    case '110':
                        HTitle = '后处理区域趋势图';
                        break;
                }
                option_ZZT = {
                    title: {
                        text: HTitle,
                        left: 'center'
                    },
                    grid: {
                        x: '5%', //相当于距离左边效果:padding-left
                        //y: '5%',  //相当于距离上边效果:padding-top
                        bottom: '5%',
                        containLabel: true
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'cross',
                            crossStyle: {
                                color: '#999'
                            }
                        }
                    },
                    toolbox: {
                        feature: {
                            dataView: { show: true, readOnly: false },
                            magicType: { show: true, type: ['line', 'bar'] },
                            restore: { show: true },
                            saveAsImage: { show: true }
                        },
                        x: 'right',
                        orient: "vertical",//工具栏icon的布局朝向‘horizontal’'vertical'
                    },
                    legend: {
                        data: ['注塑数量', '注塑良率', '全检良率'],
                        top: 'bottom'
                    },
                    xAxis: [
                        {
                            type: 'category',
                            data: H_X,
                            axisPointer: {
                                type: 'shadow'
                            }
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value',
                            name: '生产数量',
                            min: 0,
                            max: 200000,
                            interval: 10000,
                            axisLabel: {
                                formatter: '{value}'
                            }
                        },
                        {
                            type: 'value',
                            name: '趋势率%',
                            min: 0,
                            max: 100,
                            interval: 10,
                            axisLabel: {
                                formatter: '{value} ' + '%'
                            }
                        }
                    ],
                    series: [
                        {
                            name: '注塑数量',
                            type: 'bar',
                            tooltip: {
                                valueFormatter: function (value) {
                                    return value;
                                }
                            },
                            data: HProcSumNum
                        },
                        {
                            name: '注塑良率',
                            type: 'line',
                            yAxisIndex: 1,
                            tooltip: {
                                valueFormatter: function (value) {
                                    return value;
                                }
                            },
                            data: HQualifiedNum
                        },
                        {
                            name: '全检良率',
                            type: 'line',
                            yAxisIndex: 1,
                            tooltip: {
                                valueFormatter: function (value) {
                                    return value + ' ';
                                }
                            },
                            data: HFirstPassRate
                        }
                    ]
                };
                option_ZZT && myChart.setOption(option_ZZT);
            }
            //#endregion
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //退出
                    case 'btn-exit': Pub_Close(2);
                        break;
                    //隐藏列设置
                    case 'HideColumn':
                        get_HideColumn();
                        break;
                };
            });
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //退出按钮
            form.on('submit(btn-exit)', function (data) {
                Pub_Close(2);
            });
            //列设置按钮
            form.on('submit(HideColumn)', function (data) {
                get_HideColumn();
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            //初始化界面
            function set_ClearBill() {
                Year();
                //初始化表格
                set_InitGrid();
                //加载数据到网格
                get_FastQuery();
                //加载柱状图
                set_Graphics();
            }
            //å¹´
            function Year() {
                var yyyy = new Date().getFullYear();
                var YearOption = "";
                for (var i = 0; i <= 10; i++) {
                    YearOption += '<option  style="color:blue;" value="' + (yyyy - 5 + i) + '">' + (yyyy - 5 + i) + '</option>';
                }
                $("#HYear").append(YearOption);
                $("#HYear").val(yyyy)
                form.render('select');
            }
            //初始化表格
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , height: 'full-490'
                    , totalRow: true
                    , page: true
                    , cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 20000]
                }
            }
            //加载网格
            function get_Display(sWhere) {
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/Sc_QualityReportBill/getSc_QualityReportBillMonth',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sWhere ,"user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        var col = [];
                        if (data1.count == 1) {
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '汇总' });
                            //判断是否是纯英文
                            var patrn = new RegExp("[\u4E00-\u9FA5]+");
                            for (var i = 0; i < data.length; i++) {
                                if (!patrn.test(data[i].name)) {
                                    col.push({ field: data[i].name, title: data[i].name, hide: true }); //隐藏列
                                }
                                else {
                                    switch (data[i].Type) {
                                        case 'DateTime':
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 120 });
                                            break;
                                        default:
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
                                    }
                                }
                            }
                            //if (data1.data.length>0) {
                            //    for (let i = 1; i <= 12; i++) {
                            //        if (data1.data[0][i + "月"] != 0) {
                            //            data1.data[3][i + "月"] = (data1.data[3][i + "月"]).toFixed(2) + '%'
                            //        }
                            //        else {
                            //            data1.data[3][i + "月"] = (0.00).toFixed(2) + '%'
                            //        }
                            //    }
                            //    data1.data[3].合计 = (data1.data[3].合计).toFixed(2) + '%'
                            //}
                            option.cols = [col];
                            option.data = data1.data;
                            table.render(option);
                            layer.close(wait);
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //快速过滤
            function get_FastQuery() {
                var HYear = $("#HYear").val(); //年份
                var HWorkCenter = $("#HWorkCenter").val() != null ? '': $("#HWorkCenter").val(); //工作中心
                var HName = $("#HName").val();//物料名称
                sWhere = {
                    HYear: HYear
                    , HWorkCenter: HWorkCenter
                    , HName: HName
                }
                get_Display(JSON.stringify(sWhere));
                //调用接口后清空sWhere缓存
                sWhere = "";
                //加载柱状图
                set_Graphics();
            }
            //重置过滤条件
            function set_ClearQuery() {
                sWhere = " ";
                get_Display(JSON.stringify(sWhere));
            }
            //隐藏列设置
            function get_HideColumn() {
                var colName = "";
                for (var i = 1; i < option.cols[0].length - 1; i++) {
                    colName += option.cols[0][i]["title"] + ",";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ['../../基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn();
                        //更新表格缓存的数据
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //显示列数据
            function DisPlay_HideColumn() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            var titleData = [];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option.cols[0][i + 1]["style"] = "font-size:100%";
                                }
                                //设置列宽
                                if (dataCols[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //显示列
                                if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
                                    option.cols[0][i + 1]["hide"] = false;
                                }
                                //字体所在位置(å·¦ å±…中 å³)
                                switch (dataCols[2]) {
                                    case "L":
                                        option.cols[0][i + 1]["align"] = "left";
                                        break;
                                    case "M":
                                        option.cols[0][i + 1]["align"] = "center";
                                        break;
                                    case "R":
                                        option.cols[0][i + 1]["align"] = "right";
                                        break;
                                }
                            }
                            //取消冻结列
                            for (var i = 1; i < option.cols[0].length - 1; i++) {
                                if (option.cols[0][i]["fixed"] != null) {
                                    option.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            //冻结列
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option);
                        } else {
                            table.render(option);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
        });
    </script>
</body>
</html>