YL
2021-05-19 e621183861a4140182d36840bdf69f17efd1e519
生产计划看板、缺料看板前端逻辑
5个文件已修改
948 ■■■■■ 已修改文件
HDCall.html 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDHouse.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLackMats.html 412 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDLine.html 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDPrctPlan.html 392 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDCall.html
@@ -114,7 +114,46 @@
            border: none;
            height: 450px;
        }
        #cList0 {
            height: 450px;
            width: 3%;
            /* border: 1px solid #00c6ff; */
            float: left;
        }
        
        #cList1 {
            float: left;
        }
        #cList1 li {
            float: left;
            height: 450px;
            color: #00c6ff;
            font-size: 20px;
            /*文字居中*/
            text-align: center;
            /*display: flex;*/
        }
        #cList1 li span {
            /*文字居中*/
            display: inline-block;
            height: 100%;
            /*文字居中*/
            /*文字竖排*/
            writing-mode: vertical-lr;
            /*从左向右 从右向左是 writing-mode: vertical-rl;*/
            writing-mode: tb-lr;
            /*IE浏览器的从左向右 从右向左是 writing-mode: tb-rl;*/
        }
        #cList2 {
            height: 450px;
            width: 97%;
            /* border: 1px solid #00c6ff; */
            float: left;
        }
        
        table tr td {
            text-align: center;
@@ -237,6 +276,9 @@
        }
    </style>
    <script type="text/javascript">
        var CallHouseCode='01';//叫料看板仓库编码
        var interval;//计时器
        var interval1;//计时器
        var interval2;//计时器
@@ -303,11 +345,15 @@
                dataType: "JSON",
                async: false,//使用同步的方式,true为异步方式
                type: "Get",
                data:{"CallHouseCode":CallHouseCode},
                success: function (data) {
                    TLProgress=parseFloat((data.data[2][1].qty / data.data[2][0].qty) * 100).toFixed(2);
                    TLProgress=parseFloat((data.data[1][1].qty / data.data[1][0].qty) * 100).toFixed(2);
                    if(isNaN(TLProgress)){
                        TLProgress=0;
                    }
                    //今日配送率
                    $.each(data.data[0], function (index, val) {
                        CallData.push(val.FNAME);
                        CallData.push(val.hour);
                        CallPSQty.push(parseFloat(val.HSendQTY).toFixed(2));
                        CAllQty.push(parseFloat(val.HQty).toFixed(2));
                    });
@@ -507,8 +553,12 @@
                { field: 'HNUMBER', title: '物料编码', align: "left" },
                { field: 'HNAME', title: '物料名称', align: "left" },
                { field: 'HMODEL', title: '规格型号', align: "left" },
                { field: 'HQTY', title: '叫料数量', align: "left" },
                { field: 'HLEFT', title: '已配送数量', align: "left" },
                { field: 'HQTY', title: '叫料数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'HLEFT', title: '已配送数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                // { field: 'ShipListKuqty', title: '当前库存', align: "left" },
                { field: 'HSTATUS', title: '状态', align: "left",formatter: function (value, row, index) {                   
                    return "未完成";
@@ -540,6 +590,7 @@
        function queryParams(params) {
            num += 1;
            var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                CallHouseCode:CallHouseCode,
                limit: params.limit,   //页面大小
                offset: num,  //页码
            };
@@ -576,13 +627,28 @@
                { field: 'KNUMBER', title: '物料编码', align: "left" },
                { field: 'KNAME', title: '物料名称', align: "left" },
                { field: 'KMODEL', title: '物料规格', align: "left" },
                { field: 'KQTY', title: '库存数量', align: "left" },
                { field: 'KZYQTY', title: '占用数量', align: "left" },
                { field: 'KKYQTY', title: '剩余可用数量', align: "left" },
                { field: 'KZTQTY', title: '采购在途数量', align: "left" },
                { field: 'KGQTY', title: '安全库存', align: "left" },
                { field: 'KXQTY', title: '需求量', align: "left" },
                { field: 'KDQTY', title: '本日需求', align: "left" }
                { field: 'KQTY', title: '库存数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'KZYQTY', title: '占用数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'KKYQTY', title: '剩余可用数量', align: "left" , formatter: function (value, row, index) {
                    var res = 100 * row.KQTY -row.KZYQTY;
                    return parseFloat(res).toFixed(2);
                }},
                { field: 'KZTQTY', title: '采购在途数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'KGQTY', title: '安全库存', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'KXQTY', title: '需求量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'KDQTY', title: '本日需求', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }}
                ],
                onClickRow: function (row, $element) {
                    
@@ -603,6 +669,7 @@
        function queryParams1(params) {
            num1 += 1;
            var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                CallHouseCode:CallHouseCode,
                limit: params.limit,   //页面大小
                offset: num1,  //页码
            };
@@ -627,15 +694,28 @@
    </div>
    <div class="col-sm-8">
        <div class="col-sm-12">
            <table id="tb_order" class="table-condensed table-responsive tb_order" data-filter-control="true"></table>
        </div>
            <div id="cList0">
                <ul id="cList1">
                    <li><span>未配送清单</span></li>
                </ul>
            </div>
            <div id="cList2">
                <table id="tb_order" class="table-condensed table-responsive tb_order" data-filter-control="true"></table>
            </div>
        </div>
    </div>
    <div class="col-sm-4">
        <div id="mychart1"></div>
    </div>
    <div class="col-sm-8">
        <table id="tb_order1" class="table-condensed table-responsive tb_order1" data-filter-control="true"></table>
        <div id="cList0">
            <ul id="cList1">
                <li><span>库存状态</span></li>
            </ul>
        </div>
        <div id="cList2">
            <table id="tb_order1" class="table-condensed table-responsive tb_order" data-filter-control="true"></table>
        </div>
    </div>
    <div class="col-sm-4">
        <div id="mychart2"></div>
HDHouse.html
@@ -259,6 +259,12 @@
        }
    </style>
    <script type="text/javascript">
        //配置参数
        var HouseCode='509'//仓库看板仓库编码
        var interva0;//计时器
        var interva1;//计时器
        $(document).ready(function () {
@@ -303,6 +309,7 @@
                dataType: "JSON",
                async: false,//使用同步的方式,true为异步方式
                type: "Get",
                data:{"HouseCode":HouseCode},
                success: function (data) { 
                    $("#stockqty").html(data.data[0].FQTY);
                    $("#todayinqty").html(data.data[1].FQTY);
@@ -322,6 +329,7 @@
                dataType: "JSON",
                async: false,//使用同步的方式,true为异步方式
                type: "Get",
                data:{"HouseCode":HouseCode},
                success: function (data) { 
                    console.info(data);
                    $(".hd").html("");
HDLackMats.html
@@ -117,9 +117,11 @@
        
        #cList li {
            margin: 20px 0px;
            text-align:center;
            font-size: 14px;
            text-align:left;
            font-size: 18px;
            margin-left: 25%;
        }
        #cList1 {
            float: left;
        }
@@ -227,7 +229,18 @@
        }
    </style>
    <script type="text/javascript">
        //参数配置
        var  HouseCode='509'; //仓库编码
        
        var interval;//计时器
        var interval1;//计时器
        var num = 0;
        var LackMastProgress=[];     //缺料率数据数组
        var BadProgress=[];          //来料不良率数据数组
        var ToDayDt=[];              //今日不良对比时间数组
        var GoodQty=[];              //今日不良对比合格数数组
        var BadQty=[];               //今日不良对比不良数数组
        $(document).ready(function () {
            // 创建两个变量,一个数组中的月和日的名称
            var monthNames = ["1 月", "2 月", "3 月", "4 月", "5 月", "6 月", "7 月", "8 月", "9 月", "10 月", "11 月", "12 月"];
@@ -258,6 +271,19 @@
            
            Chart(mychart1,mychart2,mychart3);
            DataTable();
            // 定时器
            interval = setInterval(function () {
                num = 0;
                LackMastProgress=[];     //缺料率数据数组
                BadProgress=[];          //来料不良率数据数组
                ToDayDt=[];              //今日不良对比时间数组
                GoodQty=[];              //今日不良对比合格数数组
                BadQty=[];               //今日不良对比不良数数组
                Chart(mychart1, mychart2, mychart3, mychart4, mychart5);
            }, 20000);
            interval1=setInterval(function () {
                $("#tb_order").bootstrapTable('refresh');
            }, 10000);
            //根据窗口的大小变动图表 --- 重点
            window.onresize = function () {
                myChart1.resize();
@@ -267,12 +293,66 @@
        })
        
        function Chart(mychart1,mychart2,mychart3){
            $.ajax({
                url: "http://localhost:53860/api/loaddata/LackMatsData",
                dataType: "JSON",
                async: false,//使用同步的方式,true为异步方式
                type: "Get",
                data:{"HouseCode":HouseCode},
                success: function (data) {
                    //订单信息
                    switch (data.data[0][0].Statu) {
                        case '1':
                        $("#Stus").html("计划");
                        break;
                        case '2':
                        $("#Stus").html("计划确认");
                        break;
                        case '3':
                        $("#Stus").html("下达");
                        break;
                        case '4':
                        $("#Stus").html("开工");
                        break;
                        case '5':
                        $("#Stus").html("完工");
                        break;
                        case '6':
                        $("#Stus").html("结案");
                        break;
                        case '7':
                        $("#Stus").html("结算");
                        default:
                    }
                    $("#OrderQty").html(parseFloat(data.data[0][0].ZQty).toFixed(0));
                    $("#NetQty").html(parseFloat(data.data[0][0].EmptQty).toFixed(0));
                    $("#SumQty").html(parseFloat(data.data[0][0].ZKQty).toFixed(0));
                    $("#MatsQty").html(parseFloat(data.data[0][0].LackMastQty).toFixed(0));
                    $("#WayQty").html(parseFloat(data.data[0][0].PuchQty).toFixed(0));
                    $("#NoOrderQty").html(parseFloat(data.data[0][0].NoOrderQty).toFixed(0));
                    //缺料率
                    LackMastProgress.push(data.data[1][0].LackMastProgress);
                    //来料不良率
                    BadProgress.push(data.data[2][0].BadProgress);
                    //今日不良对比
                    $.each(data.data[3], function (index, val) {
                        ToDayDt.push(val.hour.substring(5));
                        GoodQty.push(parseFloat(val.GoodQty).toFixed(0));
                        BadQty.push(parseFloat(val.BadQty).toFixed(0));
                    });
                },
                error: function (data) {
                }
            })
            const colorList = ['#47A2FF', '#ff9900']
            option1 = {
                title: [
                {
                    text: '',
                    subtext: '60%',
                    subtext: LackMastProgress+'%',
                    textStyle: {
                        fontSize: 16,
                        color: '#999',
@@ -326,8 +406,8 @@
                        borderColor: '#000000'
                    },
                    data: [
                    { name: '', value: 60 },
                    { name: '', value: 40 }
                    { name: '', value: LackMastProgress },
                    { name: '', value: 100-LackMastProgress }
                    ],
                }
                ]
@@ -337,7 +417,7 @@
                title: [
                {
                    text: '',
                    subtext: '60%',
                    subtext: BadProgress+'%',
                    textStyle: {
                        fontSize: 16,
                        color: '#999',
@@ -391,8 +471,8 @@
                        borderColor: '#000000'
                    },
                    data: [
                    { name: '', value: 60 },
                    { name: '', value: 40 }
                    { name: '', value: BadProgress },
                    { name: '', value: 100-BadProgress }
                    ],
                }
                ]
@@ -432,7 +512,7 @@
                xAxis: [
                {
                    type: 'category',
                    data:['05-11','05-12','05-13','205-14','05-15','05-16'],
                    data:ToDayDt,
                    axisTick: {
                        alignWithLabel: true
                    },
@@ -481,13 +561,13 @@
                    name: '合格数',
                    type: 'bar',
                    barWidth: 15,
                    data: [100,100,100,100,100,100]
                    data: GoodQty
                },
                {
                    name: '不良数',
                    type: 'bar',
                    barWidth: 15,
                    data: [50,50,50,50,50,50]
                    data: BadQty
                }
                ]
            };
@@ -499,272 +579,10 @@
        }
        
        function DataTable() {
            var dataJson=[
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            },
            {
                "PARTNUMBER": "2110800001",
                "PARTNAME": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "PARTSPEC": "Q5-JZ/ZIGBEE板/成品板[V1.0.1]",
                "MATSQTY": "0.0000000000",
                "HOUSEQTY": "0.0000000000",
                "OCCUPQTY": "0.0000000000",
                "AVAILQTY": "0.0000000000",
                "PUCHQTY": "0.0000000000",
                "SAFEQTY": "0.0000000000",
                "NEEDQTY": "0.0000000000",
                "DAYQTY": "0.0000000000"
            }
            ]
            
            $('#tb_order').bootstrapTable({
                //url: 'http://localhost:12298/api/loaddata/LineTableData',
                data: dataJson,
                url: 'http://localhost:53860/api/loaddata/LackMatsTableData',
                //data: dataJson,
                method: 'get',                      //请求方式(*)
                dataType: "json",
                queryParams :queryParams,
@@ -776,8 +594,8 @@
                search: false,   //是否启用搜索框
                sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
                pageNumber: 1,                       //初始化加载第一页,默认第一页
                pageSize: 10,                       //每页的记录行数(*)
                pageList: [10],                     //可供选择的每页的行数(*)
                pageSize: 20,                       //每页的记录行数(*)
                pageList: [20],                     //可供选择的每页的行数(*)
                strictSearch: false,                //设置为 true启用 全匹配搜索,否则为模糊搜索
                clickToSelect: true,                //是否启用点击选中行
                singleSelect: true,                  //设置True 将禁止多选
@@ -786,8 +604,8 @@
                detailView: false,                   //是否显示父子表
                
                columns: [
                { field: 'PARTNUMBER', title: '物料编码', align: "left" },
                { field: 'PARTNAME', title: '物料名称', align: "left", cellStyle: function (value, row, index) {
                { field: 'PartNumber', title: '物料编码', align: "left" },
                { field: 'PartName', title: '物料名称', align: "left", cellStyle: function (value, row, index) {
                    return {
                        css: {
                            "min-width": "100px",
@@ -798,7 +616,7 @@
                        }
                    }
                }},
                { field: 'PARTSPEC', title: '规格型号', align: "left", cellStyle: function (value, row, index) {
                { field: 'PartSpec', title: '规格型号', align: "left", cellStyle: function (value, row, index) {
                    return {
                        css: {
                            "min-width": "100px",
@@ -809,28 +627,29 @@
                        }
                    }
                }},
                { field: 'MATSQTY', title: '缺料数量', align: "left" , formatter: function (value, row, index) {
                { field: 'LackMastQty', title: '缺料数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'HOUSEQTY', title: '库存数量', align: "left", formatter: function (value, row, index) {
                { field: 'KQty', title: '库存数量', align: "left", formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                } },
                { field: 'OCCUPQTY', title: '占用数量', align: "left", formatter: function (value, row, index) {
                { field: 'EmpQty', title: '占用数量', align: "left", formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                } },
                { field: 'AVAILQTY', title: '剩余可用数量', align: "left" , formatter: function (value, row, index) {
                    var res = row.KQty -row.EmpQty;
                    return parseFloat(res).toFixed(2);
                }},
                { field: 'PuchQty', title: '采购在途数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'PUCHQTY', title: '采购在途数量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'SAFEQTY', title: '安全库存', align: "left", formatter: function (value, row, index) {
                { field: 'SafeQty', title: '安全库存', align: "left", formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                } },
                { field: 'NEEDQTY', title: '需求量', align: "left" , formatter: function (value, row, index) {
                { field: 'SupQty', title: '需求量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }},
                { field: 'DAYQTY', title: '本日求量', align: "left" , formatter: function (value, row, index) {
                { field: 'ToDaySupQty', title: '本日求量', align: "left" , formatter: function (value, row, index) {
                    return parseFloat(value).toFixed(2);
                }}
                ],
@@ -841,7 +660,7 @@
                    
                },
                onLoadSuccess: function (row) {
                    var num_total = (row.total)/ 10
                    var num_total = (row.total)/ 20
                    if (num >= num_total) {
                        num = 0
                    }
@@ -854,6 +673,7 @@
        function queryParams(params) {
            num += 1;
            var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                HouseCode:HouseCode,
                limit: params.limit,   //页面大小
                offset: num,  //页码
            };
@@ -881,13 +701,13 @@
    <div class="col-sm-4 right">
        <div class="col-sm-6 right">
            <ul id="cList">
                <li>状态:<span id="Stus">执行中</span></li>
                <li>总订单:<span id="OrderQty">1000</span></li>
                <li>净需求:<span id="NetQty">500</span></li>
                <li>总库存:<span id="SumQty">1200</span></li>
                <li>状态:<span id="Stus"></span></li>
                <li>总订单:<span id="OrderQty">0</span></li>
                <li>净需求:<span id="NetQty">0</span></li>
                <li>总库存:<span id="SumQty">0</span></li>
                <li>缺料量:<span id="MatsQty">0</span></li>
                <li>在途:<span id="WayQty">100</span></li>
                <li>未下单:<span id="NoOrderQty">200</span></li>
                <li>在途:<span id="WayQty">0</span></li>
                <li>未下单:<span id="NoOrderQty">0</span></li>
            </ul>
        </div>
        <div class="col-sm-6 right">
HDLine.html
@@ -264,6 +264,12 @@
        }
    </style>
    <script type="text/javascript">
        //配置参数
        var LineCode='509'//流水线编码
        var LineCodeList='509'+','+'510'+','+'511'+','+'512'+','+'513'+','+'514';//流水线看板今日全部流水线编码:产线1、产线2、产线3、产线4、产线5、产线6
        var interval;//计时器
        var interval1;//计时器
        var num = 0;
@@ -335,10 +341,11 @@
        
        function Chart(mychart1, mychart2, mychart3, mychart4, mychart5) {
            $.ajax({
                url: "http://localhost:12298/api/loaddata/LineData",
                url: "http://localhost:53860/api/loaddata/LineData",
                dataType: "JSON",
                async: false,//使用同步的方式,true为异步方式
                type: "Get",
                data:{"LineCode":LineCode,"LineCodeList":LineCodeList},
                success: function (data) {
                    
                    $.each(data.data[0], function (index, val) {
@@ -822,25 +829,25 @@
                    field: 'FSTATUS', title: '状态', align: "left", width: 100, formatter: function (value, row, index) {
                        switch (value) {
                            case '1':
                            return "计划";
                            "计划";
                            break;
                            case '2':
                            return "计划确认";
                            "计划确认";
                            break;
                            case '3':
                            return "下达";
                            "下达";
                            break;
                            case '4':
                            return "开工";
                            "开工";
                            break;
                            case '5':
                            return "完工";
                            "完工";
                            break;
                            case '6':
                            return "结案";
                            "结案";
                            break;
                            case '7':
                            return "结算";
                            "结算";
                            default:
                            
                        }
@@ -874,6 +881,7 @@
        function queryParams(params) {
            num += 1;
            var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
                LineCode:LineCode,
                limit: params.limit,   //页面大小
                offset: num,  //页码
            };
@@ -904,7 +912,7 @@
            <ul id="cList">
                <li>本线状态:<span id="LineStus"></span></li>
                <li>总订单:<span id="OrderQty">0</span></li>
                <li>已入库:<span id="OrderInQty">0</span></li>
                <li>已完工:<span id="OrderInQty">0</span></li>
                <li>返工数:<span id="FGQty">0</span></li>
                <li>翻包率:<span id="FBprogress">0%</span></li>
                <li>当前订单:<span id="OrderWork"></span></li>
HDPrctPlan.html
@@ -80,7 +80,15 @@
        
        .top{
            /* border: 1px solid #00c6ff; */
            height: 300px;
            height: 900px;
        }
        .left{
            /* border: 1px solid #00c6ff; */
            height: 300px;
        }
        .ctn{
            /* border: 1px solid #00c6ff; */
            height: 450px;
        }
        .bottom{
            /* border: 1px solid #00c6ff; */
@@ -97,7 +105,9 @@
        .col-sm-2,
        .col-sm-3,
        .col-sm-4,
        .col-sm-5,
        .col-sm-6,
        .col-sm-7,
        .col-sm-8 {
            position: relative;
            min-height: 1px;
@@ -107,24 +117,20 @@
        
        
        #mychart1,
        #mychart2,
        #mychart3{
            width: 100%;
            border: none;
            height: 300px;
        }
        #mychart4,
        #mychart5{
        #mychart5
        {
            width: 100%;
            border: none;
            height: 300px;
        }
        #mychart6,
        #mychart7{
        #mychart2,#mychart3,
        #mychart6,#mychart7{
            width: 100%;
            border: none;
            height: 600px;
            height: 450px;
        }
        #cList {
            margin: 20% auto;
            color: #00c6ff;
@@ -162,7 +168,25 @@
        }
    </style>
    <script type="text/javascript">
        //参数配置
        var HouseCode='509';
        
        var interval;           //计时器
        var ReworkProgress=0;   //返工率
        var EndProgress=0;      //总完工率
        var WkShop=[];          //车间产量对比车间数组
        var TaskQty=[];          //车间产量对比任务数数组
        var EndQty=[];          //车间产量对比完成数数组
        var FDte=[];            //返工趋势时间数组
        var FQty=[];            //返工趋势值数组
        var CHour=[];           //成品仓库吞吐量时间数组
        var COrderQty=[];       //成品仓库吞吐量任务数数组
        var CInQty=[];          //成品仓库吞吐量入库数数组
        var XSHour=[];           //产销比分析时间数组
        var XSOrderQty=[];       //产销比分析任务数数组
        var XSInQty=[];          //产销比分析入库数数组
        var ZDte=[];             //生产总效率趋势时间数组
        var ZQty=[];             //生产总效率趋势值数组
        $(document).ready(function () {
            // 创建两个变量,一个数组中的月和日的名称
            var monthNames = ["1 月", "2 月", "3 月", "4 月", "5 月", "6 月", "7 月", "8 月", "9 月", "10 月", "11 月", "12 月"];
@@ -195,6 +219,25 @@
            var mychart6 = echarts.init(document.getElementById('mychart6'));
            var mychart7 = echarts.init(document.getElementById('mychart7'));
            Chart(mychart1,mychart2,mychart3,mychart4,mychart5,mychart6,mychart7);
            // 定时器
            interval = setInterval(function () {
                ReworkProgress=0;   //返工率
                EndProgress=0;      //总完工率
                WkShop=[];          //车间产量对比车间数组
                TaskQty=[];          //车间产量对比任务数数组
                EndQty=[];          //车间产量对比完成数数组
                FDte=[];            //返工趋势时间数组
                FQty=[];            //返工趋势值数组
                CHour=[];           //成品仓库吞吐量时间数组
                COrderQty=[];       //成品仓库吞吐量任务数数组
                CInQty=[];          //成品仓库吞吐量入库数数组
                XSHour=[];           //产销比分析时间数组
                XSOrderQty=[];       //产销比分析任务数数组
                XSInQty=[];          //产销比分析入库数数组
                ZDte=[];             //生产总效率趋势时间数组
                ZQty=[];             //生产总效率趋势值数组
                Chart(mychart1,mychart2,mychart3,mychart4,mychart5,mychart6,mychart7);
            }, 30000);
            //根据窗口的大小变动图表 --- 重点
            window.onresize = function () {
                myChart1.resize();
@@ -206,12 +249,68 @@
        })
        
        function Chart(mychart1,mychart2,mychart3,mychart4,mychart5,mychart6,mychart7){
            $.ajax({
                url: "http://localhost:53860/api/loaddata/PrctPlan",
                dataType: "JSON",
                async: false,//使用同步的方式,true为异步方式
                type: "Get",
                data:{"HouseCode":HouseCode},
                success: function (data) {
                    //返工率
                    ReworkProgress=data.data[0][0].ReworkProgress;
                    //订单量
                    $("#OrderQty").html(data.data[1][0].OrderQty);
                    //产量
                    $("#ProductQty").html(data.data[1][0].PrctQty);
                    //总完工率
                    EndProgress=data.data[2][0].EndProgress;
                    //车间产量对比
                    $.each(data.data[3], function (index, val) {
                        WkShop.push(val.WkShop);
                        TaskQty.push(parseFloat(val.TaskQty).toFixed(0));
                        EndQty.push(parseFloat(val.EndQty).toFixed(0));
                    });
                    //返工趋势
                    $.each(data.data[4], function (index, val) {
                        FDte.push(val.Dte);
                        FQty.push(parseFloat(val.Qty).toFixed(0));
                    });
                    //成品仓库吞吐量
                    $.each(data.data[5], function (index, val) {
                        CHour.push(val.hour.substring(5));
                        COrderQty.push(parseFloat(val.OrderQty).toFixed(0));
                        CInQty.push(parseFloat(val.InQty).toFixed(0));
                    });
                    //产销比分析
                    $.each(data.data[6], function (index, val) {
                        XSHour.push(val.hour.substring(5));
                        XSOrderQty.push(parseFloat(val.XSOrderQty).toFixed(0));
                        XSInQty.push(parseFloat(val.InQty).toFixed(0));
                    });
                    //生产总效率趋势图
                    $.each(data.data[7], function (index, val) {
                        ZDte.push(val.Dte);
                        ZQty.push(parseFloat(val.Qty).toFixed(0));
                    });
                },
                error: function (data) {
                }
            })
            const colorList = ['#47A2FF', '#ff9900']
            option1 = {
                title: [
                {
                    text: '',
                    subtext: '60%',
                    subtext: ReworkProgress+'%',
                    textStyle: {
                        fontSize: 16,
                        color: '#999',
@@ -264,76 +363,142 @@
                        borderColor: '#000000'
                    },
                    data: [
                    { name: '', value: 60 },
                    { name: '', value: 40 }
                    { name: '', value: ReworkProgress },
                    { name: '', value: 100-ReworkProgress }
                    ],
                }
                ]
            };
            
            var highlight = '#00c6ff';
            var demoData = [
            { name: '总完工率', value: EndProgress, unit: '%', pos: ['50%', '60%'], range: [0, 100] },
            ];
            option2 = {
                title: [
                {
                    text: '',
                    subtext: '30%',
                    textStyle: {
                        fontSize: 16,
                        color: '#999',
                        lineHeight: 20
                    },
                    subtextStyle: {
                        fontSize: 28,
                        color: '#00c6ff'
                    },
                    textAlign: 'center',
                    left: '50%',
                    top: '50%'
                },
                {
                    show: true,
                    text: '总完工率',
                    textStyle: {
                        color: '#00c6ff',
                        fontSize: '16',
                    },
                    textAlign: 'center',
                    left: '50%',
                    top: '5%'
                }
                ],
                tooltip: {
                    trigger: 'item',
                },
                legend: {
                    type: 'scroll',
                    icon: 'pin',
                    show: false
                },
                color: colorList,
                series: [
                {
                    name: '占比',
                    type: 'pie',
                    radius: [50, 80],
                    center: ['50%', '50%'],
                    center: ['50%', '60%'],
                    avoidLabelOverlap: false,
                    label: {
                        show: false
                    },
                    labelLine: {
                        show: false
                    },
                    itemStyle: {
                        borderWidth: 3,
                        borderColor: '#000000'
                    },
                    data: [
                    { name: '', value: 30 },
                    { name: '', value: 100-30 }
                    ],
                }
                ]
                series: (function() {
                    var result = [];
                    demoData.forEach(function(item) {
                        result.push(
                        // 外围刻度
                        {
                            type: 'gauge',
                            radius: '80%',  // 1行3个
                            center:['50%','60%'],  //边距
                            splitNumber: item.splitNum || 10,
                            min: item.range[0],
                            max: item.range[1],
                            startAngle: 180,
                            endAngle: 0,
                            axisLine: {
                                show: true,
                                lineStyle: {
                                    width: 2,
                                    shadowBlur: 0,
                                    color: [
                                    [1, highlight]
                                    ]
                                }
                            },
                            axisTick: {
                                show: true,
                                lineStyle: {
                                    color: highlight,
                                    width: 1
                                },
                                length: -5,
                                splitNumber: 10
                            },
                            splitLine: {
                                show: true,
                                length: -14,
                                lineStyle: {
                                    color: highlight,
                                }
                            },
                            axisLabel: {
                                distance: -20,
                                textStyle: {
                                    color: highlight,
                                    fontSize: '14',
                                    fontWeight: 'bold'
                                }
                            },
                            pointer: {
                                show: 0
                            },
                            detail: {
                                show: 0
                            }
                        },
                        // 内侧指针、数值显示
                        {
                            name: item.name,
                            type: 'gauge',
                            center: item.pos,
                            radius: '70%',
                            center:['50%','60%'],  //边距
                            startAngle: 180,
                            endAngle: 0,
                            min: item.range[0],
                            max: item.range[1],
                            axisLine: {
                                show: true,
                                lineStyle: {
                                    width: 16,
                                    color: [
                                    [1, 'rgba(255,255,255,.1)']
                                    ]
                                }
                            },
                            axisTick: {
                                show: 0,
                            },
                            splitLine: {
                                show: 0,
                            },
                            axisLabel: {
                                show: 0
                            },
                            pointer: {
                                show: true,
                                length: '105%'
                            },
                            detail: {
                                show: true,
                                offsetCenter: [0, '50%'],
                                textStyle: {
                                    fontSize: 20,
                                    color: '#00c6ff'
                                },
                                formatter: [
                                '{value} ' + (item.unit || ''),
                                '{name|' + item.name + '}'
                                ].join('\n'),
                                rich: {
                                    name: {
                                        fontSize: 20,
                                        lineHeight: 30,
                                        color: '#00c6ff'
                                    }
                                }
                            },
                            itemStyle: {
                                normal: {
                                    color: highlight,
                                }
                            },
                            data: [{
                                value: item.value
                            }]
                        }
                        );
                    });
                    return result;
                })()
            };
            
            option3 = {
@@ -360,7 +525,7 @@
                },
                xAxis:  {
                    type: 'value',
                    max: 1000,
                    //max: 1000,
                    axisTick: {
                        alignWithLabel: true
                    },
@@ -385,7 +550,7 @@
                },
                yAxis: {
                    type: 'category',
                    data: ['车间1','车间2','车间3','车间4','车间5','车间6','车间7'],
                    data: WkShop,
                    axisLine: {
                        show: true,
                        lineStyle: {
@@ -430,7 +595,7 @@
                        }
                    },
                    z:  10,
                    data: [320, 302, 301, 334, 390, 330, 320]
                    data: TaskQty
                },
                {
                    name: '完成数',
@@ -456,7 +621,7 @@
                        }
                    },
                    z: 5,
                    data: [120, 132, 101, 134, 90, 230, 210]
                    data: EndQty
                }
                ]
            };
@@ -475,7 +640,7 @@
                xAxis: {
                    type: 'category',
                    boundaryGap: false,
                    data: ['8点','9点','10点','11点','12点','13点','14点','15点','16点','17点','18点'],   //时间点数据
                    data: FDte,   //时间点数据
                    axisLine: {
                        show: true,
                        lineStyle: {
@@ -544,7 +709,7 @@
                series: [
                {
                    name: '小时产能',
                    data: [50,80,90,110,130,115,120,109,105,135,125],  //时间点值
                    data: FQty,  //时间点值
                    type: 'line',
                    smooth: true,
                    itemStyle: {
@@ -599,7 +764,7 @@
                xAxis: [
                {
                    type: 'category',
                    data:['05-11','05-12','05-13','205-14','05-15','05-16'],
                    data:CHour,
                    axisTick: {
                        alignWithLabel: true
                    },
@@ -648,13 +813,13 @@
                    name: '订单数',
                    type: 'bar',
                    barWidth: 15,
                    data: [100,100,100,100,100,100]
                    data: COrderQty
                },
                {
                    name: '入库数',
                    type: 'bar',
                    barWidth: 15,
                    data: [50,50,50,50,50,50]
                    data: CInQty
                }
                ]
            };
@@ -693,7 +858,7 @@
                xAxis: [
                {
                    type: 'category',
                    data:['05-11','05-12','05-13','205-14','05-15','05-16'],
                    data:XSHour,
                    axisTick: {
                        alignWithLabel: true
                    },
@@ -742,13 +907,13 @@
                    name: '销售订单数',
                    type: 'bar',
                    barWidth: 15,
                    data: [100,100,100,100,100,100]
                    data: XSOrderQty
                },
                {
                    name: '入库数',
                    type: 'bar',
                    barWidth: 15,
                    data: [50,50,50,50,50,50]
                    data: XSInQty
                }
                ]
            };
@@ -767,7 +932,7 @@
                xAxis: {
                    type: 'category',
                    boundaryGap: false,
                    data: ['8点','9点','10点','11点','12点','13点','14点','15点','16点','17点','18点'],   //时间点数据
                    data: ZDte,   //时间点数据
                    axisLine: {
                        show: true,
                        lineStyle: {
@@ -839,7 +1004,7 @@
                series: [
                {
                    name: '小时产能',
                    data: [50,80,90,110,130,115,120,109,105,135,125],  //时间点值
                    data: ZQty,  //时间点值
                    type: 'line',
                    smooth: true,
                    itemStyle: {
@@ -885,11 +1050,46 @@
        </ul>
        
    </div>
    <div  class="col-sm-8 top">
        <div class="col-sm-6 top">
    <div  class="col-sm-4 top">
        <div class="col-sm-12 left">
            <div id="mychart1"></div>
        </div>
        <div class="col-sm-3 top">
        <div class="col-sm-12 left">
            <div id="mychart4"></div>
        </div>
        <div class="col-sm-12 left">
            <div id="mychart5"></div>
        </div>
    </div>
    <div  class="col-sm-4 ctn">
        <div class="col-sm-3 ctn">
            <ul id="cList">
                <li style="font-size:24px;">订单量</li>
                <li style="font-size:24px;"><span id="OrderQty"></span></li>
                <li style="font-size:24px;">产量</li>
                <li style="font-size:24px;"><span id="ProductQty"></span></li>
            </ul>
        </div>
        <div class="col-sm-9 ctn">
            <div id="mychart2"></div>
        </div>
        <div class="col-sm-12 ctn">
            <div id="mychart6"></div>
        </div>
    </div>
    <div  class="col-sm-4 top">
        <div class="col-sm-12 ctn">
            <div id="mychart3"></div>
        </div>
        <div class="col-sm-12 ctn">
            <div id="mychart7"></div>
        </div>
    </div>
    <!-- <div  class="col-sm-8 top">
        <div class="col-sm-5 top">
            <div id="mychart1"></div>
        </div>
        <div class="col-sm-2 top">
            <ul id="cList">
                <li style="font-size:24px;">订单量</li>
                <li style="font-size:24px;"><span id="OrderQty">10000</span></li>
@@ -897,7 +1097,7 @@
                <li style="font-size:24px;"><span id="ProductQty">8000</span></li>
            </ul>
        </div>
        <div class="col-sm-3 top">
        <div class="col-sm-5 top">
            <div id="mychart2"></div>
        </div>
    </div>
@@ -906,7 +1106,7 @@
    </div>
    
    <div class="col-sm-8 bottom">
        <div class="col-sm-6 bottom_left">
        <div class="col-sm-5 bottom_left">
            <div class="col-sm-12 bottom_left">
                <div id="mychart4"></div>
            </div>
@@ -920,7 +1120,7 @@
    </div>
    <div class="col-sm-4 bottom">
        <div id="mychart7"></div>
    </div>
    </div> -->
</body>
</html>