ERP-node/WebContent/WEB-INF/view/dashboard/DashboardProblemMngStatus.jsp

552 lines
18 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*" %>
<%@include file= "/init.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<script>
$(document).ready(function(){
fn_setOEMList();
fn_setCarTypeList();
fn_setProblemStatusStackColumn("");
fn_setProblemStatusRollUpList("");
fn_getCarProblemStepPieChart("");
fn_getCarProblemStepList("");
$("#searchOem").click(function(){
var oemObjId = $("#oemObjId").val();
fn_setProblemStatusStackColumn(oemObjId);
fn_setProblemStatusRollUpList(oemObjId);
});
$("#searchCar").click(function(){
var carObjId = $("#carObjId").val();
fn_getCarProblemStepPieChart(carObjId);
fn_getCarProblemStepList(carObjId);
});
//문제점 차종별 팝업
$(document).on("click", ".btnProblemList", function(e){
var oemObjId = fnc_checkNullDefaultValue($("#oemObjId").val(),"");
var carObjId = fnc_checkNullDefaultValue($(this).attr("data-CAR_OBJID"),"");
var status = fnc_checkNullDefaultValue($(this).attr("data-STATUS"),"");
if(oemObjId == "" || oemObjId == null){
oemObjId = $(this).attr("data-OEM_OBJID");
}
var params = "?search_oemObjId="+oemObjId+"&search_carObjId="+carObjId+"&search_status="+status;
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
});
//문제점 단계별 팝업
$(document).on("click", ".btnProblemStepList", function(e){
var carObjId = fnc_checkNullDefaultValue($("#carObjId").val(),"");
var oemObjId = fnc_checkNullDefaultValue($("#carObjId").find("option:selected").attr("data-OEM_OBJID"),"");
var step1 = fnc_checkNullDefaultValue($(this).attr("data-STEP1"),"");
var step2 = fnc_checkNullDefaultValue($(this).attr("data-STEP2"),"");
var status = fnc_checkNullDefaultValue($(this).attr("data-STATUS"),"");
var params = "?step1="+step1+"&step2="+step2+"&search_status="+status+"&search_carObjId="+carObjId+"&search_oemObjId="+oemObjId;
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
});
});
</script>
<script>
//문제점 차종별 팝업
function fn_openProblemList(obj){
var carObjId = fnc_checkNullDefaultValue(obj.series.userOptions.carObjId[obj.index],"");
var oemObjId = fnc_checkNullDefaultValue(obj.series.userOptions.oemObjId[obj.index],"");
var name = fnc_checkNullDefaultValue(obj.series.name,"");
if(name == "조치"){
var status = "complete";
}else{
var status = "create";
}
var params = "?search_carObjId="+carObjId+"&search_oemObjId="+oemObjId+"&search_status="+status;
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
}
//문제점 단계별 팝업
function fn_openProblemStepList(obj){
var carObjId = fnc_checkNullDefaultValue($("#carObjId").val(),"");
var oemObjId = fnc_checkNullDefaultValue($("#carObjId").find("option:selected").attr("data-OEM_OBJID"),"");
var step1 = fnc_checkNullDefaultValue(obj.series.userOptions.step1,"");
var step2 = fnc_checkNullDefaultValue(obj.series.userOptions.name,"");
var name = fnc_checkNullDefaultValue(obj.name);
if(name == "조치"){
var status = "complete";
}else{
var status = "create";
}
var params = "?search_carObjId="+carObjId+"&search_oemObjId="+oemObjId+"&step1="+step1+"&step2="+step2+"&search_status="+status;
window.open("/dashboard/problemListPopUp.do"+params, "", "width=1700, height=585");
}
//고객사에 따른 문제점의 정보를 가져온다.
function fn_setProblemStatusStackColumn(oemObjId){
$.ajax({
url:"/dashboard/getProblemStatusStackColumn.do",
type:"POST",
data:{"oemObjId":oemObjId},
dataType:"json",
async:false,
success:function(data){
var name = [];
var oemObjId = [];
var carObjId = [];
var allCnt = [];
var completeCnt = [];
var ongoingCnt = [];
var sum = 0;
$.each(data , function(i){
name[i] = data[i].CAR_CODE;
carObjId[i] = Number(fnc_checkNullDefaultValue(data[i].CAR_OBJID, 0));
oemObjId[i] = Number(fnc_checkNullDefaultValue(data[i].OEM_OBJID, 0));
allCnt[i] = Number(fnc_checkNullDefaultValue(data[i].TOTAL_PROBLEM_CNT, 0));
completeCnt[i] = Number(fnc_checkNullDefaultValue(data[i].COMPLETE_CNT, 0));
ongoingCnt[i] = Number(fnc_checkNullDefaultValue(data[i].NOT_COMPLETE_CNT, 0));
sum += allCnt[i] + completeCnt[i] + ongoingCnt[i];
});
if(sum == 0){
var noData = "<div id=\"chart1MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
$("#stackColomnChart").html(noData);
} else {
$("#stackColomnChart").highcharts({
colors: ['#ff6d6d','#558ed5'],
chart: {
zoomType: 'xy'
, type : 'column'
},
title: {
text: ''
},
xAxis: [{
categories: name
}],
yAxis: [{ // Primary yAxis
min : 0
, labels: {
format: '{value}'
}
, stackLabels: {
enabled : true
}
, title : ''
}],
tooltip: {
headerFormat: '<b>{point.x}</b><br/>',
pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}',
useHTML: true
},
legend: {
align: 'right',
verticalAlign: 'top',
floating: true,
y:15
},
series: [
/* {
name: '전체'
, data: allCnt
}, */
{
name: '미결'
, data : ongoingCnt
, oemObjId : oemObjId
, carObjId : carObjId
},
{
name: '조치'
, data : completeCnt
, oemObjId : oemObjId
, carObjId : carObjId
}
],
plotOptions:{
column : {
stacking : 'normal'
, dataLabels : {
enabled : true
}
}
, series:{
cursor:'pointer',
point:{
events:{
click:function(){
console.log(this);
fn_openProblemList(this);
}
}
}
}
}
});
}
},
error: function(jqxhr, status, error){
}
});
}
function fn_setProblemStatusRollUpList(oemObjId){
var appendText = "";
$("#oemProblemList").empty();
$.ajax({
url:"/dashboard/getProblemStatusRollUpList.do",
type:"POST",
data:{"oemObjId":oemObjId},
dataType:"json",
async:false,
success:function(data){
$.each(data , function(i){
var carCode = fnc_checkNull(data[i].CAR_CODE);
var carObjId = fnc_checkNull(data[i].CAR_OBJID);
var oemObjId = fnc_checkNull(data[i].OEM_OBJID);
var totalCnt = fnc_checkNull(data[i].SUM_TOTAL_PROBLEM_CNT);
var completeCnt = fnc_checkNull(data[i].SUM_COMPLETE_CNT);
var notCompleteCnt = fnc_checkNull(data[i].SUM_NOT_COMPLETE_CNT);
var completeRatio = fnc_checkNull(data[i].COMPLETE_RATIO);
if("" == carObjId && "" != totalCnt){
appendText+="<tr style='background:#CDDEEA;'>";
appendText+=" <td>계</td>";
appendText+=" <td title='"+totalCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS=''>"+totalCnt+"</a></td>";
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
appendText+=" <td title='"+completeRatio+"'>"+completeRatio+"</td>";
appendText+="</tr>";
}else{
appendText+="<tr>";
appendText+=" <td title='"+carCode+"'>"+carCode+"</td>";
appendText+=" <td title='"+totalCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS=''>"+totalCnt+"</a></td>";
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemList' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
appendText+=" <td title='"+completeRatio+"'>"+completeRatio+"</td>";
appendText+="</tr>";
}
});
if(0 == data.length){
appendText+="<tr>";
appendText+=" <td colspan='5'>조회된 내용이 없습니다.</td>";
appendText+="</tr>";
}
$("#oemProblemList").append(appendText);
},
error: function(jqxhr, status, error){
}
});
}
//문제점 관리현황 고객사별 차종 step2 Pie chart
function fn_getCarProblemStepPieChart(carObjId){
var stepArr = [];
var stepDrillArr = [];
$.ajax({
url:"/dashboard/getProblemStepCarPieChart.do",
type:"POST",
data:{"carObjId":carObjId},
dataType:"json",
async:false,
success:function(data){
if(0 == data.length || null == data){
var noData = "<div id=\"chart1MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
$("#drillDownPieChart").html(noData);
}else{
$.each(data , function(i){
stepArr.push(
{
"name": fnc_checkNull(data[i].STEP2),
"y": Number(data[i].STEP2_PROBLEM_RATIO),
"drilldown": fnc_checkNull(data[i].STEP2),
step1:fnc_checkNull(data[i].STEP1)
}
);
stepDrillArr.push(
{
"name": fnc_checkNull(data[i].STEP2),
"id": fnc_checkNull(data[i].STEP2),
"data": [["조치",Number(data[i].COMPLETE_RATIO)],["미결",Number(data[i].NOT_COMPLETE_RATIO)]],
step1:fnc_checkNull(data[i].STEP1)
}
);
});
$('#drillDownPieChart').highcharts({
colors: ['#558ed5', '#ff6d6d', '#bed0f6','#90ff7d', '#b6a6ca', '#bfbfbf','#cc7b38', '#383838', '#00cc99','#9bbb59', '#40e1f2', '#6155f9','#9c4f30', '#aabad7', '#d9aaa9'],
chart: {
type: 'pie'
},
title: {
text: ''
},
tooltip: {
headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.1f}%</b> of total<br/>'
},
"series": [
{
"name": "단계",
"colorByPoint": true,
"data":stepArr
}
],
"drilldown": {"series": stepDrillArr},
plotOptions: {
pie: {
dataLabels: {
enabled: true,
format: '{point.name}: {point.y:.1f}%'
},
cursor:'pointer',
point:{
events:{
click:function(){
if(this.name != null){
console.log(this);
fn_openProblemStepList(this);
}
}
}
}
}, series:{
}
}
});
}
},
error: function(jqxhr, status, error){
}
});
}
//문제점 관리현황 고객사별 차종 step2 List
function fn_getCarProblemStepList(carObjId){
var appendText = "";
$("#carProblemStepList").empty();
$.ajax({
url:"/dashboard/getCarProblemStepRollUpList.do",
type:"POST",
data:{"carObjId":carObjId},
dataType:"json",
async:false,
success:function(data){
$.each(data , function(i){
var step1Name = fnc_checkNull(data[i].STEP1);
var stepName = fnc_checkNull(data[i].STEP2);
var problemCnt = fnc_checkNull(data[i].TOTAL_PROBLEM_CNT);
var completeCnt = fnc_checkNull(data[i].COMPLETE_CNT);
var notCompleteCnt = fnc_checkNull(data[i].NOT_COMPLETE_CNT);
if("" == stepName){
appendText+="<tr style='background:#CDDEEA;'>";
appendText+=" <td>계</td>";
appendText+=" <td title='"+problemCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS=''>"+problemCnt+"</a></td>";
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
appendText+="</tr>";
}else{
appendText+="<tr>";
appendText+=" <td title='"+stepName+"'>"+stepName+"</td>";
appendText+=" <td title='"+problemCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS=''>"+problemCnt+"</a></td>";
appendText+=" <td title='"+completeCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='complete'>"+completeCnt+"</a></td>";
appendText+=" <td title='"+notCompleteCnt+"'><a href='#' class='btnProblemStepList' data-STEP1='"+step1Name+"' data-STEP2='"+stepName+"' data-STATUS='create'>"+notCompleteCnt+"</a></td>";
appendText+="</tr>";
}
});
if(0 == data.length){
appendText+="<tr>";
appendText+=" <td colspan='4'>조회된 내용이 없습니다.</td>";
appendText+="</tr>";
}
$("#carProblemStepList").append(appendText);
},
error: function(jqxhr, status, error){
}
});
}
//car 목록 조회
function fn_setCarTypeList(){
$.ajax({
url:"/common/getCarTypeList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
success:function(data){
var appendCode = "";
var oemObjId = "";
appendCode += "<option value=''>전체</option>";
$.each(data, function(i){
oemObjId = fnc_checkNull(data[i].OEM_OBJID);
appendCode += "<option value='"+data[i].OBJID+"' data-OEM_OBJID='"+oemObjId+"'>"+data[i].CAR_CODE+"("+data[i].CAR_NAME+")</option>";
});
$("#carObjId").children().remove();
$("#carObjId").append(appendCode);
},
error: function(jqxhr, status, error){
}
});
}
//oem 목록 조회
function fn_setOEMList(){
$.ajax({
url:"/common/getOEMList.do",
type:"POST",
data:{"isJson":true},
dataType:"json",
success:function(data){
var appendCode = "";
appendCode += "<option value=''>전체</option>";
$.each(data, function(i){
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].OEM_NAME+"("+data[i].OEM_CODE+")</option>";
});
$("#oemObjId").children().remove();
$("#oemObjId").append(appendCode);
},
error: function(jqxhr, status, error){
}
});
}
</script>
</head>
<body>
<form name="form1" action="" method="post">
<div style="min-width:1600px;">
<div class="plm_menu_name">
<h2>
<span>문제관리 상세현황</span>
</h2>
</div>
<div id="plmSearchZon">
<table>
<tr>
<td><lable for="" class="orangeTitleDot" style="font-weight:300; font-size:13px;">고객사</lable></td>
<td>
<select id="oemObjId" name="oemObjId" style="width:100px;"></select>
</td>
<td><input type="button" value="조회" id="searchOem" class="btnSearch blue_btn" style="float:none;"></td>
</tr>
</table>
</div>
<div class="contents_page_basic_margin" style="overflow:hidden;">
<div class="plm_table_wrap" style="float:left; width:40%; margin: 30px 0;">
<div style="overflow-y:scroll;">
<table class="plm_table" style="width:100%;">
<colgroup>
<col width="*">
<col width="*">
<col width="*">
<col width="*">
<col width="*">
</colgroup>
<thead class="plm_thead">
<tr>
<td></td>
<td title="발생건수">발생건수</td>
<td title="조치건수">조치건수</td>
<td title="미결건수">미결건수</td>
<td title="조치율(%)">조치율(%)</td>
</tr>
</thead>
</table>
</div>
<div class="plm_scroll_table" style="width:100%; height:280px;">
<table class="plm_table" id="oemProblemList">
<colgroup>
<col width="*">
<col width="*">
<col width="*">
<col width="*">
<col width="*">
</colgroup>
</table>
</div>
</div>
<div style="width:35%; float:left; margin:30px 0 0 40px;">
<div class="plm_thead" style="width:100%; height:26px; text-align:center; line-height:26px; font-size:13px;">차종별 문제점 진행현황</div>
<div id="stackColomnChart" style="width:90%; height:260px; margin: 40px auto 0;"></div>
</div>
</div>
<div id="plmSearchZon" style="border-top: 1px solid #d4d4d4; margin-top:0px;">
<table>
<tr>
<td><lable for="" class="orangeTitleDot" style="font-weight:300; font-size:13px;">차종</lable></td>
<td>
<select id="carObjId" name="carObjId" style="width:180px;"></select>
</td>
<td>
<input type="button" value="조회" id="searchCar" name="searchCar" class="btnSearch blue_btn" style="float:none;">
</td>
</tr>
</table>
</div>
<div class="contents_page_basic_margin" style="overflow:hidden;">
<div class="plm_table_wrap" style="width:40%; float:left; margin: 30px 0 0 0;">
<div style="overflow-y:scroll;">
<table class="plm_table" style="width:100%;">
<colgroup>
<col width="*">
<col width="*">
<col width="*">
<col width="*">
</colgroup>
<thead class="plm_thead">
<tr>
<td></td>
<td title="발생건수">발생건수</td>
<td title="조치건수">조치건수</td>
<td title="미결건수">미결건수</td>
</tr>
</thead>
</table>
</div>
<div class="plm_scroll_table" style="width:100%; height:280px;">
<table class="plm_table" id="carProblemStepList">
<colgroup>
<col width="*">
<col width="*">
<col width="*">
<col width="*">
</colgroup>
</table>
</div>
</div>
<div style="width:35%; float:left; margin:30px 0 0 40px;">
<div class="plm_thead" style="width:100%; height:26px; text-align:center; line-height:26px; font-size:13px;">단계별 문제점현황</div>
<div id="drillDownPieChart" style="width:60%; height:300px; margin: 0 auto;"></div>
</div>
</div>
</div>
</form>
</body>
</html>