- 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
357 lines
11 KiB
Plaintext
357 lines
11 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>
|
|
<!-- 주석처리 시 드릴다운 작동 안됨,주석해제 후 init에 챠트 라이브러리 주석 처리 시 드릴다운 작동 -->
|
|
<!--
|
|
<script src="https://code.highcharts.com/highcharts.js"></script>
|
|
<script src="https://code.highcharts.com/modules/data.js"></script>
|
|
<script src="https://code.highcharts.com/modules/drilldown.js"></script>
|
|
-->
|
|
<script>
|
|
$(document).ready(function(){
|
|
|
|
fn_changeChart("","");
|
|
|
|
fn_setProductTypeList();
|
|
|
|
$(".devMasterRadio").click(function(){
|
|
$("#projectObjId").val("");
|
|
|
|
var devMasterObjId = $(this).val();
|
|
var productObjId = "";
|
|
fn_changeChart(productObjId,devMasterObjId);
|
|
});
|
|
|
|
$("#searchProject").click(function(){
|
|
var devMasterObjId = "";
|
|
var productObjId = $("#projectObjId").val();
|
|
fn_changeChart(productObjId,devMasterObjId);
|
|
});
|
|
|
|
$("input[type=radio]").eq(0).trigger("click");
|
|
});
|
|
</script>
|
|
<script>
|
|
|
|
//제품의 변경또는 개발마스터의 선택에 따라 파이차트를 변경한다.
|
|
function fn_changeChart(productObjId,devMasterObjId){
|
|
$.ajax({
|
|
url:"/dashboard/getDevMasterRatingDistributePie.do",
|
|
type:"POST",
|
|
data:{"productObjId":productObjId,"devMasterObjId":devMasterObjId},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
fn_drawChart(data);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//파이차트를 그려준다.
|
|
function fn_drawChart(data){
|
|
var aSumRatio = data.A_SUM_RATIO;
|
|
var bSumRatio = data.B_SUM_RATIO;
|
|
var cSumRatio = data.C_SUM_RATIO;
|
|
|
|
var aUQSumRatio = data.A_UQ_SUM_RATIO;
|
|
var aCOSumRatio = data.A_CO_SUM_RATIO;
|
|
var bUQSumRatio = data.B_UQ_SUM_RATIO;
|
|
var bCOSumRatio = data.B_CO_SUM_RATIO;
|
|
var cUQSumRatio = data.C_UQ_SUM_RATIO;
|
|
var cCOSumRatio = data.C_CO_SUM_RATIO;
|
|
|
|
if(0 == aSumRatio && 0 == bSumRatio && 0 == cSumRatio){
|
|
var noData = "<div id=\"chart1MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#container").html(noData);
|
|
}else{
|
|
$('#container').highcharts({
|
|
colors: ['#cc7b38', '#aabad7', '#b6a6ca'],
|
|
chart: {
|
|
type: 'pie'
|
|
},
|
|
title: {
|
|
text: '단품별 금형등급 분포현황'
|
|
},
|
|
plotOptions: {
|
|
series: {
|
|
dataLabels: {
|
|
enabled: true,
|
|
format: '{point.name}: {point.y:.1f}%'
|
|
}
|
|
}
|
|
},
|
|
|
|
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": [
|
|
{
|
|
"name": "A등급",
|
|
"y": Number(aSumRatio),
|
|
"drilldown": "A"
|
|
},
|
|
{
|
|
"name": "B등급",
|
|
"y": Number(bSumRatio),
|
|
"drilldown": "B"
|
|
},
|
|
{
|
|
"name": "C등급",
|
|
"y": Number(cSumRatio),
|
|
"drilldown": "C"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"drilldown": {
|
|
"series": [
|
|
{
|
|
"name": "A등급",
|
|
"id": "A",
|
|
"data": [
|
|
[
|
|
"U/Q",
|
|
Number(aUQSumRatio)
|
|
],
|
|
[
|
|
"C/O",
|
|
Number(aCOSumRatio)
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"name": "B등급",
|
|
"id": "B",
|
|
"data": [
|
|
[
|
|
"U/Q",
|
|
Number(bUQSumRatio)
|
|
],
|
|
[
|
|
"C/O",
|
|
Number(bCOSumRatio)
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"name": "C등급",
|
|
"id": "C",
|
|
"data": [
|
|
[
|
|
"U/Q",
|
|
Number(cUQSumRatio)
|
|
],
|
|
[
|
|
"C/O",
|
|
Number(cCOSumRatio)
|
|
]
|
|
]
|
|
}
|
|
]
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//개발마스터 상세
|
|
function fn_openDevMasterConnectPartListPopUp(objId){
|
|
window.open("/devInfoMng/devMaster/devMasterConnectPartListDetailPopUp.do?objId="+objId+"&type=view","openDevMasterPopUp","width=1500, height=710");
|
|
}
|
|
|
|
//제품 목록 조회
|
|
function fn_setProductTypeList(){
|
|
$.ajax({
|
|
url:"/dashboard/getDevMasterProductList.do",
|
|
type:"POST",
|
|
dataType:"json",
|
|
success:function(data){
|
|
var appendCode = "";
|
|
appendCode += "<option value=''>All</option>";
|
|
$.each(data, function(i){
|
|
appendCode += "<option value='"+data[i].OBJID+"'>"+data[i].PRODUCT_NAME+"</option>";
|
|
});
|
|
|
|
$("#projectObjId").children().remove();
|
|
$("#projectObjId").append(appendCode);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body id="" class="backcolor">
|
|
<form name="form1" id="form1" method="post">
|
|
<div style="min-width:1600px;">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>제품별 금형등급 분포현황</span>
|
|
</h2>
|
|
</div>
|
|
<div class="contents_page_basic_margin">
|
|
<div class="fourblock" style="border:0; width:65%;">
|
|
<div class="plm_table_wrap">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<colgroup>
|
|
<col width="2%">
|
|
<col width="5%">
|
|
<col width="8%">
|
|
<col width="8%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="8%">
|
|
<col width="8%">
|
|
<col width="8%">
|
|
</colgroup>
|
|
<tr class="plm_thead">
|
|
<td></td>
|
|
<td title="No">No</td>
|
|
<td title="고객사">고객사</td>
|
|
<td title="차종">차종</td>
|
|
<td title="제품군">제품군</td>
|
|
<td title="제품">제품</td>
|
|
<td title="품번">품번</td>
|
|
<td title="작성자">작성자</td>
|
|
<td title="등록일">등록일</td>
|
|
<td title="Part List">Part List</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:300px;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="2%">
|
|
<col width="5%">
|
|
<col width="8%">
|
|
<col width="8%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="10%">
|
|
<col width="8%">
|
|
<col width="8%">
|
|
<col width="8%">
|
|
</colgroup>
|
|
<c:choose>
|
|
<c:when test="${empty devMasterList}">
|
|
<tr style="text-align:center;">
|
|
<td align="center" colspan="9">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${devMasterList}" varStatus="varStatus">
|
|
<tr>
|
|
<td><input type="radio" value="${item.OBJID}" name="targetRadio" class="devMasterRadio"></td>
|
|
<td>${item.RNUM}</td>
|
|
<td title="${item.OEM_NAME}">${item.OEM_NAME}</td>
|
|
<td title="${item.CAR_CODE}">${item.CAR_CODE}</td>
|
|
<td title="${item.PRODUCT_GROUP_NAME}">${item.PRODUCT_GROUP_NAME}</td>
|
|
<td title="${item.PRODUCT_NAME}">${item.PRODUCT_NAME}</td>
|
|
<td title="${item.ASSAY_PART_NO}">${item.ASSAY_PART_NO}</td>
|
|
<td title="${item.DEPT_NAME} ${item.USER_NAME}">${item.DEPT_NAME} ${item.USER_NAME}</td>
|
|
<td title="${item.REGDATE_TITLE}">${item.REGDATE_TITLE}</td>
|
|
<td><a href="#" class="file_icon" onclick="fn_openDevMasterConnectPartListPopUp('${item.OBJID}');"></a></td>
|
|
</tr>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="fourblock" style="width:30%; height:330px; margin-bottom:50px; overflow:hidden;">
|
|
<div class="fourblock_search">
|
|
<table>
|
|
<tr>
|
|
<td rowspan="2"> 검색조건 </td>
|
|
<td><label for="" class="orangeTitleDot" style="font-weight:300; font-size:13px;">제품군</label></td>
|
|
<td><select name="projectObjId" id="projectObjId"></select></td>
|
|
<td><input type="button" value="조회" id="searchProject" class="btnSearch blue_btn" style="float:none;"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div id="container" class="main_chart1" style="height:280px;"></div>
|
|
</div>
|
|
<div class="plm_table_wrap" style="clear:both;">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table">
|
|
<tr class="plm_thead">
|
|
<td rowspan="3" title="제품">제품</td>
|
|
<td colspan="12" title="단품 금형등급 분포 현황표">단품 금형등급 분포 현황표</td>
|
|
</tr>
|
|
<tr class="plm_sub_thead">
|
|
<td colspan="3" title="A급">A급</td>
|
|
<td colspan="3" title="B급">B급</td>
|
|
<td colspan="3" title="C급">C급</td>
|
|
<td colspan="3" title="소계">소계</td>
|
|
</tr>
|
|
<tr>
|
|
<td title="U/Q">U/Q</td>
|
|
<td title="C/O">C/O</td>
|
|
<td title="계">계</td>
|
|
<td title="U/Q">U/Q</td>
|
|
<td title="C/O">C/O</td>
|
|
<td title="계">계</td>
|
|
<td title="U/Q">U/Q</td>
|
|
<td title="C/O">C/O</td>
|
|
<td title="계">계</td>
|
|
<td title="U/Q">U/Q</td>
|
|
<td title="C/O">C/O</td>
|
|
<td title="계">계</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:320px;">
|
|
<table class="plm_table">
|
|
<c:choose>
|
|
<c:when test="${empty gridList}">
|
|
<tr style="text-align:center;">
|
|
<td align="center" colspan="13">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<c:forEach var="item" items="${gridList}" varStatus="varStatus">
|
|
<tr>
|
|
<td title="${item.PRODUCT_NAME}">${item.PRODUCT_NAME}</td>
|
|
<td title="${item.A_UQ_CNT}">${item.A_UQ_CNT}</td>
|
|
<td title="${item.A_CO_CNT}">${item.A_CO_CNT}</td>
|
|
<td title="${item.A_TOTAL_CNT}">${item.A_TOTAL_CNT}</td>
|
|
<td title="${item.B_UQ_CNT}">${item.B_UQ_CNT}</td>
|
|
<td title="${item.B_CO_CNT}">${item.B_CO_CNT}</td>
|
|
<td title="${item.B_TOTAL_CNT}">${item.B_TOTAL_CNT}</td>
|
|
<td title="${item.C_UQ_CNT}">${item.C_UQ_CNT}</td>
|
|
<td title="${item.C_CO_CNT}">${item.C_CO_CNT}</td>
|
|
<td title="${item.C_TOTAL_CNT}">${item.C_TOTAL_CNT}</td>
|
|
<td title="${item.PRODUCT_TOTAL_UQ_CNT}">${item.PRODUCT_TOTAL_UQ_CNT}</td>
|
|
<td title="${item.PRODUCT_TOTAL_CO_CNT}">${item.PRODUCT_TOTAL_CO_CNT}</td>
|
|
<td title="${item.PRODUCT_TOTAL_CNT}">${item.PRODUCT_TOTAL_CNT}</td>
|
|
</tr>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |