php+echarts实现数据可视化实例

效果:

 代码:

php






    
    
    
    
    
    
    电子看板



    

生产任务看板

工序待生产工时统计
生产总数
良品数量/生产总数
/
  • 不良数量:
  • 良品率:
近半年良品、不良率总计
  • 良品率:
  • 不良率:
全部良品、不良比率
  • 良品率:
  • 不良率:
站别良品、不良率
员工良品、不良比率
近半年良率、不良率
0) { ?>
月份 良品数量 不良数量 良品率 (%) 不良率 (%)
$value) { $goodnum1[] = $value['total_transaction_quantity']; $badnum1[] = $value['total_bad_quantity']; $arr_good_quantity1[] = $value['good_rate']; $arr_bad_quantity1[] = $value['bad_rate']; $arrvendor1[] = $value['operation_code']; } } else { $goodnum1[] = 0; $badnum1[] = 0; $arr_good_quantity1[] = 0; $arr_bad_quantity1[] = 0; $arrvendor1[] = 0; } echo ""; //计算机半年内的总良品和不良 $sql2 = "SELECT SUM(IFNULL(transaction_quantity, 0)) AS total_transaction_quantity, SUM(IFNULL(bad_quantity, 0)) AS total_bad_quantity, CASE WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0 ELSE ROUND((SUM(IFNULL(transaction_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2) END AS good_rate, CASE WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0 ELSE ROUND((SUM(IFNULL(bad_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2) END AS bad_rate, DATE(DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d'), INTERVAL 6 MONTH)) AS six_months_ago FROM wip_transactions WHERE transaction_date >= UNIX_TIMESTAMP(DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d'), INTERVAL 6 MONTH)) AND transaction_date <= UNIX_TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-%d')); "; $result2 = DB_query($sql2, $db); if ($array2 = mysqli_fetch_assoc($result2)) { $good_rate2 = $array2['good_rate']; $bad_rate2 = $array2['bad_rate']; $six_months_ago2 = $array2['six_months_ago']; } else { $good_rate2 = 0; $bad_rate2 = 0; $six_months_ago2 = 0; } $array2 = array( (object)array('value' => $good_rate2, 'name' => '良品率'), (object)array('value' => $bad_rate2, 'name' => '不良率') ); echo ""; //计算总的良品和不良 $sql3 = "SELECT SUM( IFNULL( transaction_quantity, 0 ) ) AS total_transaction_quantity, SUM( IFNULL( bad_quantity, 0 ) ) AS total_bad_quantity, CASE WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0 ELSE ROUND((SUM(IFNULL(transaction_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2) END AS good_rate, CASE WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0 ELSE ROUND((SUM(IFNULL(bad_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2) END AS bad_rate FROM wip_transactions"; $result3 = DB_query($sql3, $db); if ($array3 = mysqli_fetch_assoc($result3)) { $good_rate3 = $array3['good_rate']; $bad_rate3 = $array3['bad_rate']; $goodnum3 = $array3['total_transaction_quantity']; $badnum3 = $array3['total_bad_quantity']; } else { $good_rate3 = 0; $bad_rate3 = 0; $goodnum3 = 0; $badnum3 = 0; } $array3 = array( (object)array('value' => $good_rate3, 'name' => '良品率'), (object)array('value' => $bad_rate3, 'name' => '不良率') ); echo ""; //计算总的良品和不良 $sql4 = "SELECT wt.employee_num, he.employee_name, SUM(IFNULL(wt.transaction_quantity, 0)) AS total_transaction_quantity, SUM(IFNULL(wt.bad_quantity, 0)) AS total_bad_quantity, CASE WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0 ELSE ROUND((SUM(IFNULL(transaction_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2) END AS good_rate, CASE WHEN (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0))) = 0 THEN 0 ELSE ROUND((SUM(IFNULL(bad_quantity, 0)) / (SUM(IFNULL(transaction_quantity, 0)) + SUM(IFNULL(bad_quantity, 0)))*100), 2) END AS bad_rate FROM wip_transactions wt, hr_employees he WHERE wt.employee_num = he.employee_num GROUP BY wt.employee_num ORDER BY bad_rate desc "; $result4 = DB_query($sql4, $db); while ($array4 = mysqli_fetch_assoc($result4)) { $arrays4[] = $array4; } if (is_array($arrays4)) { foreach ($arrays4 as $key => $value) { $good_rate4[] = $value['good_rate']; $bad_rate4[] = $value['bad_rate']; $goodnum4[] = $value['total_transaction_quantity']; $badnum4[] = $value['total_bad_quantity']; $employee_name[] = $value['employee_name']; } } else { $good_rate4[] = 0; $bad_rate4[] = 0; $goodnum4[] = 0; $badnum4[] = 0; $employee_name[] = 0; } echo ""; //员工工时 $sql6 = "SELECT wt.employee_num,he.employee_name, SUM((end_date - begin_date) / 3600) AS total_hours, SUM((end_date - begin_date) / (3600 * 24)) AS total_days, SUM((end_date - begin_date) / (3600 * 24 * 365)) AS total_years FROM wip_transactions wt, hr_employees he WHERE wt.employee_num = he.employee_num GROUP BY wt.employee_num"; $result6 = DB_query($sql6, $db); while ($array6 = mysqli_fetch_assoc($result6)) { $arrays6[] = $array6; } if (is_array($arrays6)) { foreach ($arrays6 as $key => $value) { $total_hours6[] = $value['total_hours']; $total_days6[] = $value['total_days']; $total_years6[] = $value['total_years']; $employee_name6[] = $value['employee_name']; } } else { $total_hours6[] = 0; $total_days6[] = 0; $total_years6[] = 0; $employee_name6[] = 0; } echo ""; // 待生产工时统计 $sql7 = "SELECT a.operation_code,operation_name,sum(begin_quantity*standard_time) as paipei,sum(a.output_quantity*standard_time) wancheng,sum((begin_quantity-a.output_quantity)*standard_time) wait from wip_operation_plan a,bom_parameters b,wip_jobs_all c where a.operation_code=b.operation_code and begin_quantity>a.output_quantity and standard_time>0 and a.wip_entity_name=c.wip_entity_name GROUP BY a.operation_code,operation_name order by a.operation_code desc"; $result7 = DB_query($sql7, $db); while ($array7 = mysqli_fetch_assoc($result7)) { $arrays7[] = $array7; } if (is_array($arrays7)) { foreach ($arrays7 as $key => $value) { $arramount7[] = $value['wait']; $arrvendor7[] = $value['operation_name']; } } else { $arramount7[] = 0; $arrvendor7[] = 0; } echo "";

css

body {
    background: linear-gradient(25deg, #0f2249, #182e5a 20%, #0f2249 40%, #182e5a 60%, #0f2249 80%, #182e5a 100%);
    padding: 0px;
    margin: 0px;
}

ul {
    padding: 0px;
    margin: 0px;
}

.head {
    /* height: 40px; */
    background: url(../../images/head_bg.png) no-repeat center center;
    background-size: 100% 100%;
    position: relative;
    margin-bottom: 20px;
    border: 1px solid rgb(255, 255, 255, 0);
}

.head h1 {
    color: #bde4ff;
    text-align: center;
    font-size: 25px;
    /* line-height: 40px; */
    letter-spacing: .06rem;
}

.head h1 img {
    width: 1.5rem;
    display: inline-block;
    vertical-align: middle;
    margin-right: .2rem
}

.all_title {
    background: linear-gradient(to top, #56c3ec, #b2f3f5);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-align: center;
    letter-spacing: 2px;
    font-family: '微软雅黑';
    font-weight: bold;
    /* font-size: 32px; */
}


.kanban_all {
    /* border: 1px solid black; */
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.kanban_all_position {
    /* border: 1px solid red; */
    width: 98%;
    display: flex;
    flex-wrap: wrap;
}

.kanban_item {
    /* border: 1px solid red; */
    width: calc(50% - 2%);
    margin: 0 1% 1% 1%;
}

.kanban_line {
    height: 280px;
    border: 1px solid #3486da;
    background: rgba(0, 70, 190, .1);
    padding: .15rem;
    position: relative;
    margin-bottom: .25rem;
    z-index: 10;
    /* width: calc(50% - 3%); */
    margin: 0 1% 1% 1%;
}


.kanban_line:before,
.kanban_line:after {
    position: absolute;
    /* width: .15rem;
    height: .15rem; */
    content: "";
    border-top: 3px solid #3486da;
    top: -2px;
}

.kanban_line:before,
.kanban_line:after,


.kanban_title {
    height: 20px;
    padding: 1%;
    font-family: '华文细黑';
    font-weight: bold;
    background: linear-gradient(to right, rgba(48, 82, 174, 1), rgba(48, 82, 174, 0));
    color: #fff;
    font-size: 14px;
}

.kanban_content {
    height: 220px;
    padding: 1%;
    display: flex;
    justify-content: center;
    /* border: 1px solid red; */
}

.kanban_content table {
    width: 100%;
    /* border: 1px solid red; */
}

.kanban_content_left {
    /* border: 1px solid red; */
    width: 65%;
}

.kanban_content_right {
    width: 35%;
    /* border: 1px solid green; */
}

.kanban_content_right li {
    margin-top: 15%;
    font-family: '微软雅黑';
}

.kanban_content table td {
    width: 100%;
    /* 或者您可以根据需求设置其他百分比值,例如33.33% */
}

.kanban_line_double {
    /* border: 1px solid blue; */
    display: flex;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.kanban_line_double .left {
    /* border: 1px solid red; */
    width: 48%;
    height: 100%;
}

.kanban_line_double .left .kanban_title {
    padding: 2%;
}

.kanban_line_double .middle {
    background: none;
    width: 3%;
}

.kanban_line_double .right {
    /* border: 1px solid black; */
    width: 48%;
    height: 100%;
}

.kanban_line_double .right .kanban_title {
    padding: 2%;
}

/* 表格 */
.table {
    text-align: center;
    /* border: 1px solid black; */
    border-collapse: collapse;
}

.table tr th {
    width: 20%;
    /* border: 1px solid black; */
    color: #c0dcf0;
    font-weight: bold;
}

.table tr td {
    width: 20%;
    text-align: center;
    padding-top: 1%;
    color: #8faade;
}

.quantity_show {
    width: 100%;
    font-size: 20px;
    letter-spacing: 2px;
    font-family: '微软雅黑';
    text-align: center;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
}

.quantity_show_position {
    width: 100%;
}

.quantity_show div {
    padding: 1%;
    color: white;

}

.quantity_show .quantity_line2 {
    color: white;
    font-size: 30px;
}

.quantity_show .quantity_line3 ul {
    display: flex;
    /* border: 1px solid red; */
    justify-content: center;
    /* 水平居中 */
    align-items: center;
    /* 垂直居中 */
}

.quantity_show .quantity_line3 ul li {
    margin: 0 5%;
    /* border: 1px solid black; */
    list-style: none;
}

.quantity_show .quantity_line3 ul li:nth-child(1):before {
    content: "";
    display: inline-block;
    width: 12px;
    /* 设置图标宽度 */
    height: 12px;
    /* 设置图标高度 */
    background-color: red;
    border-radius: 50%;
    /* 设置图标背景颜色 */
    margin-right: 5px;
    /* 调整图标与文本之间的间距 */
}

.quantity_show .quantity_line3 ul li:nth-child(2):before {
    content: "";
    display: inline-block;
    width: 12px;
    /* 设置图标宽度 */
    height: 12px;
    /* 设置图标高度 */
    background-color: green;
    border-radius: 50%;
    /* 设置图标背景颜色 */
    margin-right: 5px;
    /* 调整图标与文本之间的间距 */
}

.quantity_show .quantity_line3 span {
    color: #fff;
}

echarts下载参照官网:快速上手 - Handbook - Apache ECharts

你可能感兴趣的:(php,信息可视化)