812 lines
28 KiB
Plaintext
812 lines
28 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_setProductGroupList();
|
|
|
|
fn_setCarTypeList($("#search_oemObjId").val());
|
|
|
|
//고객사별 차종 목록 조회
|
|
$("#search_oemObjId").change(function(){
|
|
var oemObjId = $(this).val();
|
|
fn_setCarTypeList(oemObjId);
|
|
});
|
|
|
|
$(".btnSearch").click(function(){
|
|
|
|
if($("#search_oemObjId").val() == ""){
|
|
Swal.fire("선택된 고객사가 없습니다.");
|
|
return false;
|
|
}
|
|
|
|
if($("#search_carObjId").val() == ""){
|
|
Swal.fire("선택된 차종이 없습니다.");
|
|
return false;
|
|
}
|
|
|
|
if($("#search_productGroupObjId").val() == ""){
|
|
Swal.fire("선택된 제품군이 없습니다.");
|
|
return false;
|
|
}
|
|
|
|
getDesignCheckListApplyChartInfo();
|
|
getDesignCheckListApplyListInfo();
|
|
fn_dfmeaStepRPNStatus();
|
|
fn_getDFMEARPNStatusInfo();
|
|
});
|
|
|
|
$(document).on("click", ".btnOpenCheckList", function(e){
|
|
fn_openCheckListPopUp()
|
|
});
|
|
|
|
$(document).on("click", ".dfmeaListLink", function(e){
|
|
fn_openDFMEAListPopUp();
|
|
});
|
|
|
|
getDesignCheckListApplyChartInfo();
|
|
getDesignCheckListApplyListInfo();
|
|
fn_dfmeaStepRPNStatus();
|
|
fn_getDFMEARPNStatusInfo();
|
|
|
|
});
|
|
</script>
|
|
<script>
|
|
|
|
function fn_openDFMEAListPopUp(){
|
|
var oemObjId = fnc_checkNullDefaultValue($("#search_carObjId").find("option:selected").attr("data-OEM_OBJID"),"");
|
|
var carObjId = fnc_checkNullDefaultValue($("#search_carObjId").val(),"");
|
|
var prodGroupObjId = fnc_checkNullDefaultValue($("#search_productGroupObjId").val(),"");
|
|
var params ="?actionType=extra";
|
|
if(oemObjId != null) params += "&search_oem="+oemObjId;
|
|
if(carObjId != null) params += "&search_carType="+carObjId;
|
|
if(prodGroupObjId != null) params += "&search_productGroup="+prodGroupObjId;
|
|
|
|
window.open("/productDevMng/dfmea/dfmeaBaseInfoList.do"+params,"","width=1600, height=800");
|
|
}
|
|
|
|
function fn_openCheckListPopUp(){
|
|
var oemObjId = fnc_checkNullDefaultValue($("#search_carObjId").find("option:selected").attr("data-OEM_OBJID"),"");
|
|
var carObjId = fnc_checkNullDefaultValue($("#search_carObjId").val(),"");
|
|
var prodGroupObjId = fnc_checkNullDefaultValue($("#search_productGroupObjId").val(),"");
|
|
var params ="?actionType=extra";
|
|
if(oemObjId != null) params += "&search_oem="+oemObjId;
|
|
if(carObjId != null) params += "&search_carType="+carObjId;
|
|
if(prodGroupObjId != null) params += "&search_productGroup="+prodGroupObjId;
|
|
|
|
window.open("/productDevMng/designCheckList/checkListBaseInfoList.do"+params,"","width=1600, height=800");
|
|
}
|
|
|
|
//oem 목록 조회
|
|
function fn_setOEMList(){
|
|
$.ajax({
|
|
url:"/common/getOEMList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var appendCode = "";
|
|
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].OEM_NAME+"("+data[i].OEM_CODE+")</option>";
|
|
});
|
|
|
|
$("#search_oemObjId").append(appendCode);
|
|
|
|
var paramValue = "${empty param.search_oemObjId?baseCarParamMap.OEM_OBJID:param.search_oemObjId}";
|
|
if(paramValue != ""){
|
|
$("#search_oemObjId > option[value="+paramValue+"]").attr("selected", "true");
|
|
$("#search_oemObjId").trigger("change");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//car 목록 조회
|
|
function fn_setCarTypeList(oemObjId){
|
|
if(oemObjId !=""){
|
|
$.ajax({
|
|
url:"/common/getCarTypeList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "search_oemObjId":oemObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var appendCode = "";
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].OBJID+"' data-OEM_OBJID='"+data[i].OEM_OBJID+"'>"+data[i].CAR_CODE+"("+data[i].CAR_NAME+")</option>";
|
|
});
|
|
$("#search_carObjId").children().remove();
|
|
$("#search_carObjId").append(appendCode);
|
|
|
|
var paramValue = "${empty param.search_carObjId?baseCarParamMap.CAR_OBJID:param.search_carObjId}";
|
|
if(paramValue != ""){
|
|
$("#search_carObjId > option[value="+paramValue+"]").attr("selected", "true");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}else{
|
|
$("#search_carObjId").children().remove();
|
|
$("#search_carObjId").append("<option value=''>선택</option>");
|
|
}
|
|
}
|
|
|
|
//제품군 목록 조회
|
|
function fn_setProductGroupList(){
|
|
$.ajax({
|
|
url:"/common/getProductGroupList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var appendCode = "";
|
|
//var prodGroupObjId = "";
|
|
$.each(data, function(i){
|
|
/* prodGroupObjId = fnc_checkNull(data[i].PRODUCT_GROUP_OBJID);
|
|
appendCode += "<option value='"+data[i].OBJID+"' data-PROD_GROUP_OBJID='"+prodGroupObjId+"'>"+data[i].PRODUCT_NAME+"("+data[i].PRODUCT_CODE+")</option>"; */
|
|
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].PRODUCT_GROUP_NAME+"</option>";
|
|
});
|
|
$("#search_productGroupObjId").children().remove();
|
|
$("#search_productGroupObjId").append(appendCode);
|
|
|
|
var paramValue = "${empty param.search_productGroupObjId?baseCarParamMap.PRODUCT_GROUP_OBJID:param.search_productGroupObjId}";
|
|
if(paramValue != ""){
|
|
$("#search_productGroupObjId > option[value="+paramValue+"]").attr("selected", "true");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//설계 체크리스트 적용 관련 정보를 가져온다(chart).
|
|
function getDesignCheckListApplyChartInfo(){
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getDesignCheckListApplyChartInfo.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
Chart1("chart1", data);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//DFMEA 의 목록 정보를 가져온다.
|
|
function fn_getDFMEARPNStatusInfo(){
|
|
|
|
$("#dfmeaInfo").empty();
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getDFMERPNStatusInfo.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
|
|
var appendText =" <tr>";
|
|
appendText+=" <td>L1</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L1_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L1_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.L1_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L1_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L1_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L1_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>L2</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L2_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L2_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.L2_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L2_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L2_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L2_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>L3</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L3_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L3_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.L3_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L3_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L3_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L3_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>L4</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L4_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L4_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.L4_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L4_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.L4_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.L4_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>INSTL</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.INSTL_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.INSTL_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.INSTL_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.INSTL_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.INSTL_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.INSTL_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>S/B</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.SB_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.SB_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.SB_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.SB_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.SB_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.SB_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>P1</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.P1_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.P1_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.P1_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.P1_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.P1_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.P1_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>P2</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.P2_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.P2_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.P2_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.P2_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.P2_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.P2_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>M</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.M_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.M_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.M_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.M_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.M_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.M_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
appendText+=" <tr>";
|
|
appendText+=" <td>SOP</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.SOP_HIGH_SCORE,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.SOP_RATIO,0)+"</td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.TOTAL_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='blue'>"+fnc_checkNullDefaultValue(data.SOP_IMPROV_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.SOP_KEEP_CNT,0)+"</td>";
|
|
appendText+=" <td><a href='#' class='dfmeaListLink'><font color='red'>"+fnc_checkNullDefaultValue(data.SOP_WORSE_CNT,0)+"</font></a></td>";
|
|
appendText+=" <td>"+fnc_checkNullDefaultValue(data.SOP_EMPTY_CNT,0)+"</td>";
|
|
appendText+=" </tr>";
|
|
|
|
$("#dfmeaInfo").append(appendText);
|
|
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
//설계 체크리스트 적용 관련 정보를 가져온다(list).
|
|
function getDesignCheckListApplyListInfo(){
|
|
|
|
$("#list1").empty();
|
|
$("#list2").empty();
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getDesignCheckListApplyListInfo.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var appenText = "";
|
|
var appenText1 = "";
|
|
var testType = "";
|
|
if(data != null && data.length > 0){
|
|
for(var i=0;i<data.length;i++){
|
|
|
|
if(i == 0){
|
|
appenText1+=" <td>계</td>";
|
|
appenText1+=" <td><a href='#' class='btnOpenCheckList' data-TYPE='"+testType+"'>"+data[i].RATIO+"</a></td>";
|
|
appenText1+=" <td>"+data[i].APPLY_CNT+"</td>";
|
|
appenText1+=" <td>"+data[i].REVIEW_CNT+"</td>";
|
|
appenText1+=" <td>"+data[i].UNAPPLY_CNT+"</td>";
|
|
appenText1+=" <td><fmt:formatNumber value='"+data[i].TOTAL_CNT+"' pattern='#,###'/>"+data[i].TOTAL_CNT+"</td>";
|
|
}else{
|
|
appenText+="<tr>";
|
|
appenText+=" <td>"+data[i].GUBUN.substring(2)+"</td>";
|
|
testType = data[i].GUBUN.substring(2);
|
|
appenText+=" <td><a href='#' class='btnOpenCheckList' data-TYPE='"+testType+"'>"+data[i].RATIO+"</a></td>";
|
|
appenText+=" <td>"+data[i].APPLY_CNT+"</td>";
|
|
appenText+=" <td>"+data[i].REVIEW_CNT+"</td>";
|
|
appenText+=" <td>"+data[i].UNAPPLY_CNT+"</td>";
|
|
appenText+=" <td><fmt:formatNumber value='"+data[i].TOTAL_CNT+"' pattern='#,###'/>"+data[i].TOTAL_CNT+"</td>";
|
|
appenText+="</tr>";
|
|
}
|
|
}
|
|
}else{
|
|
appenText+="<tr>";
|
|
appenText+=" <td colspan='6'>조회된 데이터가 없습니다.</td>";
|
|
appenText+="</tr>";
|
|
}
|
|
|
|
$("#list1").append(appenText1);
|
|
$("#list2").append(appenText);
|
|
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//설계단계별 체크리스트 현황
|
|
function Chart1(divId, resultMap){
|
|
|
|
if(fnc_checkNull(resultMap.L1_APPLY_CNT) != "" || fnc_checkNull(resultMap.L2_APPLY_CNT) != "" || fnc_checkNull(resultMap.L3_APPLY_CNT) != "" || fnc_checkNull(resultMap.L1_APPLY_CNT) != "" || fnc_checkNull(resultMap.INSTL_APPLY_CNT) != ""){
|
|
$('#'+divId).highcharts({
|
|
chart: {
|
|
zoomType: 'xy'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
subtitle: {
|
|
text: ''
|
|
},
|
|
xAxis: [{
|
|
categories: ['L1', 'L2', 'L3' ,'L4' ,'INSTL'],
|
|
crosshair: true
|
|
}],
|
|
yAxis: [{ // Primary yAxis
|
|
labels: {
|
|
format: '{value} %',
|
|
style: {
|
|
color: Highcharts.getOptions().colors[1]
|
|
}
|
|
},
|
|
title: {
|
|
text: '',
|
|
style: {
|
|
color: Highcharts.getOptions().colors[1]
|
|
}
|
|
}
|
|
}, { // Secondary yAxis
|
|
title: {
|
|
text: '',
|
|
style: {
|
|
color: Highcharts.getOptions().colors[0]
|
|
}
|
|
},
|
|
labels: {
|
|
format: '{value} 건',
|
|
style: {
|
|
color: Highcharts.getOptions().colors[0]
|
|
}
|
|
},
|
|
opposite: true,
|
|
tickInterval:5
|
|
}],
|
|
tooltip: {
|
|
shared: true
|
|
},
|
|
plotOptions: {
|
|
series: {
|
|
cursor: 'pointer',
|
|
point: {
|
|
events: {
|
|
click: function () {
|
|
if(this.y != null){
|
|
fn_openCheckListPopUp();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
legend: {
|
|
layout: 'vertical',
|
|
align: 'left',
|
|
x: 470,
|
|
verticalAlign: 'top',
|
|
y: 0,
|
|
floating: true,
|
|
backgroundColor:'#FFFFFF'
|
|
},
|
|
series: [{
|
|
name: '적용건수',
|
|
type: 'column',
|
|
yAxis: 1,
|
|
data: [
|
|
Number(fnc_checkNullDefaultValue(resultMap.L1_APPLY_CNT, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.L2_APPLY_CNT, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.L3_APPLY_CNT, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.L4_APPLY_CNT, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.INSTL_APPLY_CNT, 0))
|
|
],
|
|
tooltip: {
|
|
valueSuffix: '건'
|
|
}
|
|
|
|
}, {
|
|
name: '반영률',
|
|
type: 'spline',
|
|
data: [
|
|
Number(fnc_checkNullDefaultValue(resultMap.L1_APPLY_RATIO, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.L2_APPLY_RATIO, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.L3_APPLY_RATIO, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.L4_APPLY_RATIO, 0)),
|
|
Number(fnc_checkNullDefaultValue(resultMap.INSTL_APPLY_RATIO, 0))
|
|
],
|
|
color: '#ff6d6d',
|
|
tooltip: {
|
|
valueSuffix: '%'
|
|
}
|
|
}]
|
|
});
|
|
}else{
|
|
var noData = "<div id=\"chart3MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#"+divId).html(noData);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//chart3
|
|
function fn_dfmeaStepRPNStatus(){
|
|
var oemObjId = "";
|
|
var carObjId = "";
|
|
var step1RPNChartList = [];
|
|
var step2RPNChartList = [];
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getDFMEAStep1RPNStatus.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//set chart data
|
|
step1RPNChartList = data;
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getDFMEAStep2RPNStatus.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//set chart data
|
|
|
|
step2RPNChartList = data;
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
/*
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
*/
|
|
//$("#chart3").text(jqxhr.responseText);
|
|
}
|
|
});
|
|
|
|
if(step1RPNChartList == "" && step2RPNChartList == ""){
|
|
var noData = "<div id=\"chart3MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#chart2").html(noData);
|
|
}else{
|
|
setDFMEAStepRPNStatusChart("chart2", step1RPNChartList, step2RPNChartList);
|
|
}
|
|
|
|
}
|
|
|
|
function setDFMEAStepRPNStatusChart(areaId,step1RPNChartList,step2RPNChartList){
|
|
|
|
var step1Arr = [];
|
|
var step1ArrUnder50 = [];
|
|
var step1Arr50_79 = [];
|
|
var step1Arr80_99 = [];
|
|
var step1Arr100_150 = [];
|
|
var step1Arr150Over = [];
|
|
|
|
var step2Arr = [];
|
|
|
|
$.each(step1RPNChartList , function(i){
|
|
|
|
var step1Name = fnc_checkNull(step1RPNChartList[i].STEP1);
|
|
var step1Code = fnc_checkNull(step1RPNChartList[i].STEP1_CODE);
|
|
|
|
step1ArrUnder50.push({
|
|
name: step1Name,
|
|
y: Number(fnc_checkNullDefaultValue(step1RPNChartList[i].RANGE_50_UNDER_CNT,0)),
|
|
drilldown: step1Code+"_under50",
|
|
color:"#7171ff"
|
|
});
|
|
step1Arr50_79.push({
|
|
name: step1Name,
|
|
y: Number(fnc_checkNullDefaultValue(step1RPNChartList[i].RANGE_50_70_CNT,0)),
|
|
drilldown: step1Code+"_50_70",
|
|
color:"#bdbdff"
|
|
});
|
|
step1Arr80_99.push({
|
|
name: step1Name,
|
|
y: Number(fnc_checkNullDefaultValue(step1RPNChartList[i].RANGE_80_99_CNT,0)),
|
|
drilldown: step1Code+"_80_99",
|
|
color:"#dbdbdb"
|
|
});
|
|
step1Arr100_150.push({
|
|
name: step1Name,
|
|
y: Number(fnc_checkNullDefaultValue(step1RPNChartList[i].RANGE_100_150_CNT,0)),
|
|
drilldown: step1Code+"_100_150",
|
|
color:"#ffb9b9"
|
|
});
|
|
step1Arr150Over.push({
|
|
name: step1Name,
|
|
y: Number(fnc_checkNullDefaultValue(step1RPNChartList[i].RANGE_150_OVER_CNT,0)),
|
|
drilldown: step1Code+"_over_150",
|
|
color:"#ff6d6d"
|
|
});
|
|
|
|
var step2ArrUnder50 = [];
|
|
var step2Arr50_79 = [];
|
|
var step2Arr80_99 = [];
|
|
var step2Arr100_150 = [];
|
|
var step2Arr150Over = [];
|
|
|
|
$.each(step2RPNChartList , function(j){
|
|
var step2ParentCode = fnc_checkNull(step2RPNChartList[j].STEP1_CODE);
|
|
var step2Name = fnc_checkNull(step2RPNChartList[j].STEP2);
|
|
|
|
if(step1Code == step2ParentCode){
|
|
step2ArrUnder50.push(
|
|
[step2Name,Number(fnc_checkNullDefaultValue(step2RPNChartList[j].RANGE_50_UNDER_CNT,0))]
|
|
);
|
|
step2Arr50_79.push(
|
|
[step2Name,Number(fnc_checkNullDefaultValue(step2RPNChartList[j].RANGE_50_70_CNT,0))]
|
|
);
|
|
step2Arr80_99.push(
|
|
[step2Name,Number(fnc_checkNullDefaultValue(step2RPNChartList[j].RANGE_80_99_CNT,0))]
|
|
);
|
|
step2Arr100_150.push(
|
|
[step2Name,Number(fnc_checkNullDefaultValue(step2RPNChartList[j].RANGE_100_150_CNT,0))]
|
|
);
|
|
step2Arr150Over.push(
|
|
[step2Name,Number(fnc_checkNullDefaultValue(step2RPNChartList[j].RANGE_150_OVER_CNT,0))]
|
|
);
|
|
}
|
|
|
|
step2Arr.push({
|
|
id:step1Code+"_under50",
|
|
name:"50미만",
|
|
data: step2ArrUnder50
|
|
},{
|
|
id:step1Code+"_50_70",
|
|
name:"50~70",
|
|
data: step2Arr50_79
|
|
},{
|
|
id:step1Code+"_80_99",
|
|
name:"80~99",
|
|
data: step2Arr80_99
|
|
},{
|
|
id:step1Code+"_100_150",
|
|
name:"100~150",
|
|
data: step2Arr100_150
|
|
},{
|
|
id:step1Code+"_over_150",
|
|
name:"150이상",
|
|
data: step2Arr150Over
|
|
});
|
|
|
|
});
|
|
});
|
|
|
|
step1Arr.push({
|
|
name: '50미만',
|
|
data: step1ArrUnder50,
|
|
color:"#7171ff"
|
|
},{
|
|
name: '50~79',
|
|
data: step1Arr50_79,
|
|
color:"#bdbdff"
|
|
},{
|
|
name: '80~99',
|
|
data: step1Arr80_99,
|
|
color:"#dbdbdb"
|
|
},{
|
|
name: '100~150',
|
|
data: step1Arr100_150,
|
|
color:"#ffb9b9"
|
|
},{
|
|
name: '150초과',
|
|
data: step1Arr150Over,
|
|
color:"#ff6d6d"
|
|
});
|
|
|
|
|
|
// Create the chart
|
|
$("#"+areaId).highcharts({
|
|
chart: {
|
|
type: 'column'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
subtitle: {
|
|
text: ''
|
|
},
|
|
xAxis: {
|
|
type: 'category'
|
|
},yAxis: {
|
|
labels: {
|
|
format: '{value} 건',
|
|
style: {
|
|
color: Highcharts.getOptions().colors[1]
|
|
}
|
|
},
|
|
title: {
|
|
text: '',
|
|
style: {
|
|
color: Highcharts.getOptions().colors[1]
|
|
}
|
|
},
|
|
tickInterval:1
|
|
},
|
|
plotOptions: {
|
|
series: {
|
|
stacking: 'normal',
|
|
borderWidth: 0,
|
|
dataLabels: {
|
|
enabled: true
|
|
},
|
|
cursor: 'pointer',
|
|
point: {
|
|
events: {
|
|
click: function () {
|
|
console.log(this);
|
|
if(this.y != null){
|
|
fn_openDFMEAListPopUp();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
series: step1Arr,
|
|
drilldown: {
|
|
series: step2Arr
|
|
}
|
|
});
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<div style="min-width:1500px;">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>설계품질 관리 현황</span>
|
|
</h2>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table class="short_search">
|
|
<tr>
|
|
<td><label for="">고객사</label></td>
|
|
<td>
|
|
<select name="search_oemObjId" id="search_oemObjId">
|
|
<option value="">선택</option>
|
|
</select>
|
|
</td>
|
|
<td><label for="">차종</label></td>
|
|
<td>
|
|
<select name="search_carObjId" id="search_carObjId">
|
|
</select>
|
|
</td>
|
|
<td><label for="">제품군</label></td>
|
|
<td>
|
|
<select name="search_productGroupObjId" id="search_productGroupObjId" style="width:250px;">
|
|
</select>
|
|
</td>
|
|
<td>
|
|
<input type="button" value="조회" class="btnSearch blue_btn" style="float:none;">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin">
|
|
<div class="fourblock" style="margin: 40px 0 30px 0;">
|
|
<div class="title_div" style="margin-top:-20px;line-height: 13px;">설계 체크리스트 적용현황</div>
|
|
<div id="chart1" style="width:80%; height:300px; margin: 30px auto 0;"></div>
|
|
</div>
|
|
<div class="fourblock" style="margin-bottom:30px; margin-top:40px; margin-right: 5%;">
|
|
<div class="title_div" style="margin-top:-20px;line-height: 13px;">DFMEA RPN 관리현황</div>
|
|
<div id="chart2" style="width:80%; height:300px; margin: 30px auto 0;"></div>
|
|
</div>
|
|
<div class="fourblock" style="border:0;">
|
|
<div class="plm_table_wrap">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td></td>
|
|
<td>반영율(%)</td>
|
|
<td>적용(●)</td>
|
|
<td>검토(◐)</td>
|
|
<td>미적용(X)</td>
|
|
<td>(소계)</td>
|
|
</tr>
|
|
<tr id="list1" class="plm_sub_thead">
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:263px;">
|
|
<table class="plm_table">
|
|
<tbody id="list2" class="hover_tr"></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="fourblock" style="border:0; margin-right: 5%;">
|
|
<div class="plm_table_wrap">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2">단계</td>
|
|
<td rowspan="2">고RPN건수</br>(100RPN이상)</td>
|
|
<td rowspan="2">개선율(%)</td>
|
|
<td rowspan="2">전체건수</td>
|
|
<td colspan="3">변경건수</td>
|
|
<td rowspan="2">미등록건수</td>
|
|
</tr>
|
|
<tr class="plm_sub_thead">
|
|
<td>개선</td>
|
|
<td>유지</td>
|
|
<td>악화</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:261px;">
|
|
<table class="plm_table">
|
|
<tbody id="dfmeaInfo" class="hover_tr"></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |