- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
644 lines
23 KiB
Plaintext
644 lines
23 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();
|
|
|
|
var oemObjId = ${protoTestBaseParamMap.OEM_OBJID};
|
|
var carObjId = ${protoTestBaseParamMap.CAR_OBJID};
|
|
var prodGroupObjId = ${protoTestBaseParamMap.PRODUCT_GROUP_OBJID};
|
|
var oemObjId2 = ${protoStockBaseParamMap.OEM_OBJID};
|
|
var carObjId2 = ${protoStockBaseParamMap.CAR_OBJID};
|
|
var prodGroupObjId2 = ${protoStockBaseParamMap.PRODUCT_GROUP_OBJID};
|
|
|
|
fn_setCarTypeList("carObjId1",oemObjId);
|
|
fn_setCarTypeList("carObjId2",oemObjId2);
|
|
|
|
fn_getProtoTestTypeCompleteRatioPie(oemObjId, carObjId,prodGroupObjId,"");
|
|
fn_getProtoTestProductCompleteRatioList(oemObjId,carObjId,prodGroupObjId,"");
|
|
fn_getProtoStockProductReceiveRatioList(oemObjId2,carObjId2,prodGroupObjId2);
|
|
fn_getProtoStockTotalReceiveRatioPie(oemObjId2,carObjId2,prodGroupObjId2);
|
|
|
|
$("#oemObjId1").trigger("change");
|
|
$("#oemObjId2").trigger("change");
|
|
|
|
$("#oemObjId1").change(function(){
|
|
fn_setCarTypeList("carObjId1",$(this).val());
|
|
});
|
|
|
|
$("#oemObjId2").change(function(){
|
|
fn_setCarTypeList("carObjId2",$(this).val());
|
|
});
|
|
});
|
|
</script>
|
|
<script>
|
|
//시작품 검사 전체 합격률
|
|
function fn_getProtoTestTypeCompleteRatioPie(oemObjId,carObjId,productGroupObjId,userName){
|
|
$.ajax({
|
|
url:"/dashboard/getProtoTestTypeCompleteRatioPie.do",
|
|
type:"POST",
|
|
data:{"oemObjId":oemObjId,"carObjId":carObjId,"productGroupObjId":productGroupObjId,"userName":userName},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
if(0 == fnc_checkNullDefaultValue(data.FRAME_COMPLETE_AVG,0) && 0 == fnc_checkNullDefaultValue(data.FRAME_FAIL_AVG,0)){
|
|
var noData = "<div style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#protoTestTypeFrameCompleteRatioPie").html(noData);
|
|
}else{
|
|
$('#protoTestTypeFrameCompleteRatioPie').highcharts({
|
|
colors: ['#558ed5', '#ff6d6d'],
|
|
chart: {
|
|
plotBackgroundColor: null,
|
|
plotBorderWidth: null,
|
|
plotShadow: false,
|
|
type: 'pie'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
tooltip: {
|
|
pointFormat: '{series.name}</br>{point.percentage:.1f}%</b>'
|
|
},
|
|
plotOptions: {
|
|
pie: {
|
|
allowPointSelect: true,
|
|
cursor: 'pointer',
|
|
dataLabels: {
|
|
enabled: true,
|
|
format: '<b>{point.name}</b>: {point.percentage:.1f} %',
|
|
style: {
|
|
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
|
|
}
|
|
}, point:{
|
|
events:{
|
|
click:function(){
|
|
console.log(this);
|
|
fn_openProtoTestResultPopUp(this,this.resultType);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
series: [{
|
|
name: '비율',
|
|
colorByPoint: true,
|
|
oemObjId:oemObjId,
|
|
carObjId:carObjId,
|
|
productGroupObjId:productGroupObjId,
|
|
data: [{
|
|
name: '합격',
|
|
y: Number(data.FRAME_COMPLETE_AVG),
|
|
resultType:"frame_pass"
|
|
}, {
|
|
name: '불합격',
|
|
y: Number(data.FRAME_FAIL_AVG),
|
|
resultType:"frame_fail"
|
|
}]
|
|
}]
|
|
});
|
|
}
|
|
if(0 == fnc_checkNullDefaultValue(data.WELD_COMPLETE_AVG,0) && 0 == fnc_checkNullDefaultValue(data.WELD_FAIL_AVG,0)){
|
|
var noData = "<div style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#protoTestTypeWeldCompleteRatioPie").html(noData);
|
|
}else{
|
|
$('#protoTestTypeWeldCompleteRatioPie').highcharts({
|
|
colors: ['#558ed5', '#ff6d6d'],
|
|
chart: {
|
|
plotBackgroundColor: null,
|
|
plotBorderWidth: null,
|
|
plotShadow: false,
|
|
type: 'pie'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
tooltip: {
|
|
pointFormat: '{series.name}</br>{point.y} %</b>'
|
|
},
|
|
plotOptions: {
|
|
pie: {
|
|
allowPointSelect: true,
|
|
cursor: 'pointer',
|
|
dataLabels: {
|
|
enabled: true,
|
|
format: '<b>{point.name}</b>: {point.y} %',
|
|
style: {
|
|
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
|
|
}
|
|
}, point:{
|
|
events:{
|
|
click:function(){
|
|
console.log(this);
|
|
fn_openProtoTestResultPopUp(this,this.resultType);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
series: [{
|
|
oemObjId:oemObjId,
|
|
carObjId:carObjId,
|
|
productGroupObjId:productGroupObjId,
|
|
name: '비율',
|
|
colorByPoint: true,
|
|
data: [{
|
|
name: '합격',
|
|
y: Number(data.WELD_COMPLETE_AVG),
|
|
resultType:"weld_pass"
|
|
}, {
|
|
name: '불합격',
|
|
y: Number(data.WELD_FAIL_AVG),
|
|
resultType:"weld_fail"
|
|
}]
|
|
}]
|
|
});
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
//시작품 검사 고객사,차종,제품별 합격률
|
|
function fn_getProtoTestProductCompleteRatioList(oemObjId,carObjId,productGroupObjId,userName){
|
|
|
|
$("#protoTestProductCompleteRatioList").empty();
|
|
|
|
$.ajax({
|
|
url:"/dashboard/getProtoTestProductCompleteRatioList.do",
|
|
type:"POST",
|
|
data:{"oemObjId":oemObjId,"carObjId":carObjId,"productGroupObjId":productGroupObjId,"userName":userName},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
|
|
var appendText = "";
|
|
|
|
$.each(data , function(i){
|
|
var oemName = fnc_checkNull(data[i].OEM_NAME);
|
|
var carCode = fnc_checkNull(data[i].CAR_CODE);
|
|
var productName = fnc_checkNull(data[i].PRODUCT_GROUP_NAME);
|
|
var maxWeldRound = fnc_checkNull(data[i].MAX_WELD_ROUND);
|
|
var weldRatio = fnc_checkNull(data[i].WELD_AVG);
|
|
var maxFrameRound = fnc_checkNull(data[i].MAX_FRAME_ROUND);
|
|
var frameRatio = fnc_checkNull(data[i].FRAME_AVG);
|
|
var oemObjId = fnc_checkNull(data[i].OEM_OBJID);
|
|
var carObjId = fnc_checkNull(data[i].CAR_OBJID);
|
|
var prodGroupObjId = fnc_checkNull(data[i].PROD_GROUP_OBJID);
|
|
|
|
appendText+="<tr>";
|
|
appendText+=" <td title='"+oemName+"'>"+oemName+"</td>";
|
|
appendText+=" <td title='"+carCode+"'>"+carCode+"</td>";
|
|
appendText+=" <td title='"+productName+"'>"+productName+"</td>";
|
|
appendText+=" <td title='"+maxWeldRound+"'>"+maxWeldRound+"</td>";
|
|
appendText+=" <td title='"+weldRatio+"'><a href='#' onclick=\"fn_openProtoTestResultPopUp(this,'weld');\" data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-PROD_GROUP_OBJID='"+prodGroupObjId+"'>"+weldRatio+"</a></td>";
|
|
appendText+=" <td title='"+maxFrameRound+"'>"+maxFrameRound+"</td>";
|
|
appendText+=" <td title='"+frameRatio+"'><a href='#' onclick=\"fn_openProtoTestResultPopUp(this,'frame');\" data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-PROD_GROUP_OBJID='"+prodGroupObjId+"'>"+frameRatio+"</a></td>";
|
|
appendText+="</tr>";
|
|
});
|
|
|
|
if(0 == data.length){
|
|
appendText+="<tr>";
|
|
appendText+=" <td colspan='7'>조회된 내용이 없습니다.</td>";
|
|
appendText+="</tr>";
|
|
}
|
|
$("#protoTestProductCompleteRatioList").append(appendText);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//시작제품검사결과 PopUp
|
|
function fn_openProtoTestResultPopUp(obj,type){
|
|
var oemObjId = fnc_checkNull($(obj).attr("data-OEM_OBJID"));
|
|
var carObjId = fnc_checkNull($(obj).attr("data-CAR_OBJID"));
|
|
var prodGroupObjId = fnc_checkNull($(obj).attr("data-PROD_GROUP_OBJID"));
|
|
var userName = fnc_checkNull($("#userName").val());
|
|
|
|
if(oemObjId == ""){
|
|
oemObjId = obj.series.options.oemObjId;
|
|
carObjId = obj.series.options.carObjId;
|
|
prodGroupObjId = obj.series.options.productGroupObjId;
|
|
}
|
|
|
|
var param = "?search_oem="+oemObjId;
|
|
param+= "&search_carType="+carObjId;
|
|
param+= "&search_productGroup="+prodGroupObjId
|
|
param+= "&search_writer="+userName;
|
|
|
|
window.open("/protoDevMng/protoTestMngList.do"+param,"","width=1600, height=670");
|
|
}
|
|
//시작제품입고현황 PopUp
|
|
function fn_openProtoStockResultPopUp(obj,type){
|
|
var oemObjId = fnc_checkNull($(obj).attr("data-OEM_OBJID"));
|
|
var carObjId = fnc_checkNull($(obj).attr("data-CAR_OBJID"));
|
|
var prodGroupObjId = fnc_checkNull($(obj).attr("data-PROD_GROUP_OBJID"));
|
|
|
|
if(oemObjId == ""){
|
|
oemObjId = obj.series.options.oemObjId;
|
|
carObjId = obj.series.options.carObjId;
|
|
prodGroupObjId = obj.series.options.productGroupObjId;
|
|
}
|
|
|
|
var param = "?search_oem="+oemObjId;
|
|
param+= "&search_carType="+carObjId;
|
|
param+= "&search_productGroup="+prodGroupObjId
|
|
window.open("/protoDevMng/protoStockMngList.do"+param,"","width=1600, height=670");
|
|
}
|
|
|
|
|
|
//시작품 입고현황 전체 입고율
|
|
function fn_getProtoStockTotalReceiveRatioPie(oemObjId,carObjId,productGroupObjId){
|
|
$.ajax({
|
|
url:"/dashboard/getProtoStockTotalReceiveRatioPie.do",
|
|
type:"POST",
|
|
data:{"oemObjId":oemObjId,"carObjId":carObjId,"productGroupObjId":productGroupObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var stock_ratio = Number(fnc_checkNull(data.STOCK_RATIO));
|
|
var un_stock_ratio = Number(fnc_checkNull(data.UN_STOCK_RATIO));
|
|
if(0 == stock_ratio && 0 == un_stock_ratio){
|
|
var noData = "<div style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#protoStockTotalReceiveRatioPie").html(noData);
|
|
}else{
|
|
$('#protoStockTotalReceiveRatioPie').highcharts({
|
|
colors: ['#7cb5ec', '#ff6d6d'],
|
|
chart: {
|
|
plotBackgroundColor: null,
|
|
plotBorderWidth: null,
|
|
plotShadow: false,
|
|
type: 'pie'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
tooltip: {
|
|
pointFormat: '{series.name}</br>{point.y}%</b>'
|
|
},
|
|
plotOptions: {
|
|
pie: {
|
|
allowPointSelect: true,
|
|
cursor: 'pointer',
|
|
dataLabels: {
|
|
enabled: true,
|
|
format: '<b>{point.name}</b>: {point.y} %',
|
|
style: {
|
|
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
|
|
}
|
|
}, point:{
|
|
events:{
|
|
click:function(){
|
|
console.log(this);
|
|
fn_openProtoStockResultPopUp(this,this.resultType);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
series: [{
|
|
oemObjId:oemObjId,
|
|
carObjId:carObjId,
|
|
productGroupObjId:productGroupObjId,
|
|
name: '비율',
|
|
colorByPoint: true,
|
|
data: [{
|
|
name: '입고',
|
|
y: Number(data.STOCK_RATIO),
|
|
}, {
|
|
name: '입고대기',
|
|
y: Number(data.READY_STOCK_RATIO),
|
|
}, {
|
|
name: '미입고',
|
|
y: Number(data.UN_STOCK_RATIO),
|
|
}]
|
|
}]
|
|
});
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
//시작품 입고현황 고객사,차종,제품별 입고율
|
|
function fn_getProtoStockProductReceiveRatioList(oemObjId,carObjId,productGroupObjId){
|
|
$("#protoStockProductReceiveRatioList").empty();
|
|
$.ajax({
|
|
url:"/dashboard/getProtoStockProductReceiveRatioList.do",
|
|
type:"POST",
|
|
data:{"oemObjId":oemObjId,"carObjId":carObjId,"productGroupObjId":productGroupObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
var appendText = "";
|
|
|
|
$.each(data , function(i){
|
|
var oemName = fnc_checkNull(data[i].OEM_NAME);
|
|
var carCode = fnc_checkNull(data[i].CAR_CODE);
|
|
var prodGroupName = fnc_checkNull(data[i].PRODUCT_GROUP_NAME);
|
|
var prodGroupObjId = fnc_checkNull(data[i].PROD_GROUP_OBJID);
|
|
var totalReqCount = fnc_checkNull(data[i].SUM_TOTAL_REQUIRED);
|
|
var receiveCount = fnc_checkNull(data[i].SUM_RECEIVE_COUNT);
|
|
var readyReceiveCount = fnc_checkNull(data[i].SUM_READY_RECEIVE_COUNT);
|
|
var delayReceiveCount = fnc_checkNull(data[i].SUM_DELAY_RECEIVE_COUNT);
|
|
var stockRatio = fnc_checkNull(data[i].STOCK_RATIO);
|
|
|
|
appendText+="<tr>";
|
|
appendText+=" <td title='"+oemName+"'>"+oemName+"</td>";
|
|
appendText+=" <td title='"+carCode+"'>"+carCode+"</td>";
|
|
appendText+=" <td title='"+prodGroupName+"'><a href='#' onclick='fn_openProtoStockResultPopUp(this);' data-OEM_OBJID='"+oemObjId+"' data-CAR_OBJID='"+carObjId+"' data-PROD_GROUP_OBJID='"+prodGroupObjId+"'>"+prodGroupName+"</a></td>";
|
|
appendText+=" <td title='"+totalReqCount+"'>"+totalReqCount+"</td>";
|
|
appendText+=" <td title='"+receiveCount+"'>"+receiveCount+"</td>";
|
|
appendText+=" <td title='"+readyReceiveCount+"'>"+readyReceiveCount+"</td>";
|
|
appendText+=" <td title='"+delayReceiveCount+"'>"+delayReceiveCount+"</td>";
|
|
appendText+=" <td title='"+stockRatio+"'>"+stockRatio+"</td>";
|
|
appendText+="</tr>";
|
|
});
|
|
|
|
if(0 == data.length){
|
|
appendText+="<tr>";
|
|
appendText+=" <td colspan='8'>조회된 내용이 없습니다.</td>";
|
|
appendText+="</tr>";
|
|
}
|
|
$("#protoStockProductReceiveRatioList").append(appendText);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//oem 목록 조회
|
|
function fn_setOEMList(){
|
|
$.ajax({
|
|
url:"/common/getOEMList.do",
|
|
type:"POST",
|
|
data:{"isJson":true},
|
|
dataType:"json",
|
|
async:false,
|
|
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>";
|
|
});
|
|
|
|
$("#oemObjId1").children().remove();
|
|
$("#oemObjId1").append(appendCode);
|
|
|
|
$("#oemObjId2").children().remove();
|
|
$("#oemObjId2").append(appendCode);
|
|
|
|
var paramValue = "${empty param.oemObjId1?protoTestBaseParamMap.OEM_OBJID:param.oemObjId1}";
|
|
var paramValue2 = "${empty param.oemObjId2?protoStockBaseParamMap.OEM_OBJID:param.oemObjId2}";
|
|
if(paramValue != ""){
|
|
$("#oemObjId1 > option[value="+paramValue+"]").attr("selected", "true");
|
|
}
|
|
if(paramValue2 != ""){
|
|
$("#oemObjId2 > option[value="+paramValue2+"]").attr("selected", "true");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
//car 목록 조회
|
|
function fn_setCarTypeList(target,oemObjId){
|
|
$.ajax({
|
|
url:"/common/getCarTypeList.do",
|
|
type:"POST",
|
|
data:{"isJson":true, "search_oemObjId":oemObjId},
|
|
dataType:"json",
|
|
success:function(data){
|
|
var appendCode = "";
|
|
appendCode += "<option value=''>전체</option>";
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].CAR_CODE+"("+data[i].CAR_NAME+")</option>";
|
|
});
|
|
$("#"+target).children().remove();
|
|
$("#"+target).append(appendCode);
|
|
|
|
var paramValue = "${empty param.carObjId1?protoTestBaseParamMap.CAR_OBJID:param.carObjId1}";
|
|
var paramValue2 = "${empty param.carObjId2?protoStockBaseParamMap.CAR_OBJID:param.carObjId2}";
|
|
if(paramValue != ""){
|
|
$("#carObjId1 > option[value="+paramValue+"]").attr("selected", "true");
|
|
}
|
|
if(paramValue2 != ""){
|
|
$("#carObjId2 > option[value="+paramValue2+"]").attr("selected", "true");
|
|
}
|
|
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//제품군 목록 조회
|
|
function fn_setProductGroupList(){
|
|
$.ajax({
|
|
url:"/common/getProductGroupList.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].PRODUCT_GROUP_NAME+"</option>";
|
|
});
|
|
|
|
$("#productGroupObjId").children().remove();
|
|
$("#productGroupObjId").append(appendCode);
|
|
$("#productGroupObjId2").children().remove();
|
|
$("#productGroupObjId2").append(appendCode);
|
|
|
|
var paramValue = "${empty param.productGroupObjId?protoTestBaseParamMap.PRODUCT_GROUP_OBJID:param.productGroupObjId}";
|
|
var paramValue2 = "${empty param.productGroupObjId2?protoStockBaseParamMap.PRODUCT_GROUP_OBJID:param.productGroupObjId2}";
|
|
if(paramValue != ""){
|
|
$("#productGroupObjId > option[value="+paramValue+"]").attr("selected", "true");
|
|
}
|
|
if(paramValue2 != ""){
|
|
$("#productGroupObjId2 > option[value="+paramValue2+"]").attr("selected", "true");
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
function fn_searchProductTest(){
|
|
var oemObjId = $("#oemObjId1").val();
|
|
var carObjId = $("#carObjId1").val();
|
|
var productGroupObjId = $("#productGroupObjId").val();
|
|
var userName = $("#userName").val();
|
|
|
|
fn_getProtoTestTypeCompleteRatioPie(oemObjId,carObjId,productGroupObjId,userName);
|
|
fn_getProtoTestProductCompleteRatioList(oemObjId,carObjId,productGroupObjId,userName);
|
|
}
|
|
|
|
function fn_searchProtoStock(){
|
|
var oemObjId = $("#oemObjId2").val();
|
|
var carObjId = $("#carObjId2").val();
|
|
var productGroupObjId = $("#productGroupObjId2").val();
|
|
fn_getProtoStockTotalReceiveRatioPie(oemObjId,carObjId,productGroupObjId);
|
|
fn_getProtoStockProductReceiveRatioList(oemObjId,carObjId,productGroupObjId);
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<div style="">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>시작개발관리</span>
|
|
</h2>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table>
|
|
<tr>
|
|
<td><label for="" class="orangeTitleDot" style="font-size:13px;">고객사</label></td>
|
|
<td><select name="oemObjId1" id="oemObjId1" style="width:100px;"></select></td>
|
|
<td><lable for="" class="orangeTitleDot" style="font-size:13px;">차종</lable></td>
|
|
<td><select id="carObjId1" name="carObjId1" style="width:180px;"></select></td>
|
|
<td><lable for="" class="orangeTitleDot" style="font-size:13px;">제품군</lable></td>
|
|
<td><select id="productGroupObjId" name="productGroupObjId" style="width:100px;"></select></td>
|
|
<td><lable for="" class="orangeTitleDot" style="font-size:13px;">등록자</lable></td>
|
|
<td><input type="text" name="userName" id="userName"></td>
|
|
<td><input type="button" value="조회" class="btnSearch blue_btn" style="float:none;" onclick="fn_searchProductTest();"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin">
|
|
<div class="title_div" style="margin-top:20px;">시작제품검사결과 관리지표</div>
|
|
<div class="plm_table_wrap" style="float:left; width:40%; margin: 0;">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<colgroup>
|
|
<col width="13%">
|
|
<col width="14%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2">고객사</td>
|
|
<td rowspan="2">차종</td>
|
|
<td rowspan="2">제품군</td>
|
|
<td colspan="2">용접검사</td>
|
|
<td colspan="2">골격검사</td>
|
|
</tr>
|
|
<tr class="plm_sub_thead">
|
|
<td>차수</td>
|
|
<td>합격률(%)</td>
|
|
<td>차수</td>
|
|
<td>합격률(%)</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:250px;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="13%">
|
|
<col width="14%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
</colgroup>
|
|
<tbody id="protoTestProductCompleteRatioList"></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div style="width:25%; float:left; margin:0 0 0 40px;">
|
|
<div class="plm_thead" style="width:100%; height:26px; text-align:center; line-height:26px; font-size:13px;">시작품 용접검사 합격률</div>
|
|
<div id="protoTestTypeWeldCompleteRatioPie" style="height:230px;"></div>
|
|
</div>
|
|
<div style="width:25%; float:left; margin:0 0 0 40px;">
|
|
<div class="plm_thead" style="width:100%; height:26px; text-align:center; line-height:26px; font-size:13px;">시작품 골격검사 합격률</div>
|
|
<div id="protoTestTypeFrameCompleteRatioPie" style="height:230px;"></div>
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon" style="clear:both; border-top: 1px solid #d4d4d4; margin-top:30px;">
|
|
<table>
|
|
<tr>
|
|
<td><label for="" class="orangeTitleDot" style="font-size:13px;">고객사</label></td>
|
|
<td><select name="oemObjId2" id="oemObjId2" style="width:100px;"></select></td>
|
|
<td><lable for="" class="orangeTitleDot" style="font-size:13px;">차종</lable></td>
|
|
<td><select id="carObjId2" name="carObjId2" style="width:180px;"></select></td>
|
|
<td><lable for="" class="orangeTitleDot" style="font-size:13px;">제품군</lable></td>
|
|
<td><select id="productGroupObjId2" name="productGroupObjId2" style="width:100px;"></select></td>
|
|
<td><input type="button" value="조회" class="btnSearch blue_btn" style="float:none;" onclick="fn_searchProtoStock();"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin">
|
|
<div class="title_div" style="margin-top:20px;">시작제품 입고현황 관리</div>
|
|
<div class="plm_table_wrap" style="float:left; width:40%; margin: 0;">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<colgroup>
|
|
<col width="15%">
|
|
<col width="15%">
|
|
<col width="*">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2">고객사</td>
|
|
<td rowspan="2">차종</td>
|
|
<td rowspan="2">제품군</td>
|
|
<td colspan="5">입고현황</td>
|
|
</tr>
|
|
<tr class="plm_sub_thead">
|
|
<td>총소요</td>
|
|
<td>입고수량</td>
|
|
<td>입고대기</td>
|
|
<td>입고지연</td>
|
|
<td>납입률(%)</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:250px;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="15%">
|
|
<col width="15%">
|
|
<col width="*">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
<col width="11%">
|
|
</colgroup>
|
|
<tbody id="protoStockProductReceiveRatioList"></tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div style="width:25%; float:left; margin:0 0 0 40px;">
|
|
<div class="plm_thead" style="width:100%; height:26px; text-align:center; line-height:26px; font-size:13px;">시작품 입고율</div>
|
|
<div id="protoStockTotalReceiveRatioPie" style="height:230px; margin:0;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |