385 lines
13 KiB
Plaintext
385 lines
13 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_setChart1Data();
|
|
fn_setChart2Data();
|
|
|
|
fnc_datepick();
|
|
|
|
$(".btnSearch").click(function(){
|
|
fn_setChart2Data();
|
|
});
|
|
|
|
//수주활동 연도별 PopUp
|
|
$(".btnProjectYearDetail").click(function(){
|
|
var year = fnc_checkNull($(this).attr("data-YEAR"));
|
|
var region = fnc_checkNull($(this).attr("data-REGION"));
|
|
var bidding = fnc_checkNull($(this).attr("data-BIDDING"));
|
|
var status = fnc_checkNull($(this).attr("data-STATUS"));
|
|
var params = "?search_submit_yearly="+year+"&search_region="+region+"&search_bidding="+bidding+"&search_status="+status;
|
|
|
|
window.open("/projectConcept/getProjectConceptProductList.do"+params,"projectFormPopUp","width=1700, height=800");
|
|
});
|
|
|
|
//수주활동 제품별 PopUp
|
|
$(document).on("click", ".btnProjectProductDetail", function(e){
|
|
//var product = fnc_checkNull($(this).attr("data-PRODUCT"));
|
|
var prodGroupObjId = fnc_checkNull($(this).attr("data-PRODUCT_GROUP"));
|
|
var submitFromDate = fnc_checkNull($("#search_fromDate").val());
|
|
var submitToDate = fnc_checkNull($("#search_toDate").val());
|
|
var bidding = fnc_checkNull($(this).attr("data-BIDDING"));
|
|
var params = "?search_productGroup="+prodGroupObjId+"&search_fromDate="+submitFromDate+"&search_toDate="+submitToDate+"&search_bidding="+bidding;
|
|
window.open("/projectConcept/getProjectConceptProductList.do"+params,"projectFormPopUp","width=1700, height=800");
|
|
});
|
|
});
|
|
</script>
|
|
<script>
|
|
//수주활동 연도별 PopUp
|
|
function fn_openProjectYearList(obj){
|
|
var seriesName = obj.series.name;
|
|
var year = fnc_checkNullDefaultValue(obj.category);
|
|
var bidding = "";
|
|
var region = "";
|
|
var status = "";
|
|
if(seriesName == '수주(국내)'){
|
|
region = "D";
|
|
bidding = "Y";
|
|
status = "complete";
|
|
} else if(seriesName == "수주(해외)"){
|
|
region = "F";
|
|
bidding = "Y";
|
|
status = "complete";
|
|
} else if(seriesName == "비수주"){
|
|
bidding = "N";
|
|
status="complete";
|
|
} else{
|
|
status="create";
|
|
}
|
|
|
|
var params = "?search_submit_yearly="+year+"&search_region="+region+"&search_bidding="+bidding+"&search_status="+status;
|
|
window.open("/projectConcept/getProjectConceptProductList.do"+params,"projectFormPopUp","width=1700, height=800");
|
|
}
|
|
|
|
//수주활동 제품별 PopUp
|
|
function fn_openProjectProductList(obj){
|
|
var prodGroupObjId = obj.options.prodGroupObjId;
|
|
var bidding = "Y";
|
|
var submitFromDate = fnc_checkNull($("#search_fromDate").val());
|
|
var submitToDate = fnc_checkNull($("#search_toDate").val());
|
|
|
|
var params = "?search_productGroup="+prodGroupObjId+"&search_fromDate="+submitFromDate+"&search_toDate="+submitToDate+"&search_bidding="+bidding;
|
|
window.open("/projectConcept/getProjectConceptProductList.do"+params,"projectFormPopUp","width=1700, height=800");
|
|
}
|
|
|
|
//좌측 Grid
|
|
function fn_setChart1Data(){
|
|
$.ajax({
|
|
url:"/dashboard/projectConceptStatus_chart1.do",
|
|
type:"POST",
|
|
data:{},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//set grid
|
|
$("#leftTbody").children().remove();
|
|
var appendHtml = "";
|
|
$.each(data, function(i){
|
|
var submit_year_title = fnc_checkNullDefaultValue(data[i].ESTIMATE_SUBMIT_YEAR, 'ETC');
|
|
var submit_year = fnc_checkNullDefaultValue(data[i].ESTIMATE_SUBMIT_YEAR);
|
|
|
|
appendHtml += "<tr>";
|
|
appendHtml += "<td>"+submit_year_title+"</td>";
|
|
appendHtml += "<td><a href='#' class='btnProjectYearDetail' data-YEAR='"+submit_year+"'>"+data[i].ALL_CNT+"</a></td>";
|
|
appendHtml += "<td><a href='#' class='btnProjectYearDetail' data-YEAR='"+submit_year+"' data-BIDDING = 'Y' data-REGION='D'>"+data[i].D_OK_CNT+"</a></td>";
|
|
appendHtml += "<td><a href='#' class='btnProjectYearDetail' data-YEAR='"+submit_year+"' data-BIDDING = 'Y' data-REGION='F'>"+data[i].F_OK_CNT+"</a></td>";
|
|
appendHtml += "<td><a href='#' class='btnProjectYearDetail' data-YEAR='"+submit_year+"' data-STATUS='create'>"+data[i].ONGOING_CNT+"</a></td>";
|
|
appendHtml += "<td><a href='#' class='btnProjectYearDetail' data-YEAR='"+submit_year+"' data-BIDDING = 'N' data-STATUS='complete'>"+data[i].NG_CNT+"</a></td>";
|
|
appendHtml += "</tr>";
|
|
});
|
|
$("#leftTbody").append(appendHtml);
|
|
|
|
//set chart
|
|
setChart1("chart1", data);
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//좌측 Chart
|
|
function setChart1(divId, resultList){
|
|
var name = [];
|
|
var allCnt = [];
|
|
var dOkCnt = [];
|
|
var fOkCnt = [];
|
|
var ongoingCnt = [];
|
|
var ngCnt = [];
|
|
|
|
$.each(resultList , function(i){
|
|
name[i] = fnc_checkNullDefaultValue(resultList[i].ESTIMATE_SUBMIT_YEAR, 'ETC');
|
|
allCnt[i] = Number(fnc_checkNullDefaultValue(resultList[i].ALL_CNT, 0));
|
|
dOkCnt[i] = Number(fnc_checkNullDefaultValue(resultList[i].D_OK_CNT, 0));
|
|
fOkCnt[i] = Number(fnc_checkNullDefaultValue(resultList[i].F_OK_CNT, 0));
|
|
ongoingCnt[i] = Number(fnc_checkNullDefaultValue(resultList[i].ONGOING_CNT, 0));
|
|
ngCnt[i] = Number(fnc_checkNullDefaultValue(resultList[i].NG_CNT, 0));
|
|
});
|
|
//Swal.fire("name : "+name+", allCnt : "+allCnt+", completeCnt : "+completeCnt);
|
|
$('#'+divId).highcharts({
|
|
colors: ['#e8ce62', '#79ad86', '#d3d3d3','#dba474'],
|
|
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:dOkCnt
|
|
}, {
|
|
name: '수주(해외)'
|
|
, data:fOkCnt
|
|
}, {
|
|
name: '진행중'
|
|
, data:ongoingCnt
|
|
}, {
|
|
name: '비수주'
|
|
, data:ngCnt
|
|
}
|
|
],
|
|
plotOptions:{
|
|
column : {
|
|
stacking : 'normal'
|
|
, dataLabels : {
|
|
enabled : true
|
|
}
|
|
}
|
|
, series:{
|
|
cursor:'pointer',
|
|
point:{
|
|
events:{
|
|
click:function(){
|
|
console.log(this);
|
|
fn_openProjectYearList(this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
//우측 Grid
|
|
function fn_setChart2Data(){
|
|
$.ajax({
|
|
url:"/dashboard/projectConceptStatus_chart2.do",
|
|
type:"POST",
|
|
data:$("#form1").serialize(),
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
//set grid
|
|
$("#rightTbody").children().remove();
|
|
var appendHtml = "";
|
|
var okCnt = 0;
|
|
$.each(data, function(i){
|
|
var prodGroupObjId = fnc_checkNullDefaultValue(data[i].PROD_GROUP_OBJID);
|
|
|
|
appendHtml += "<tr>";
|
|
appendHtml += "<td>"+data[i].PROD_GROUP_NAME+"</td>";
|
|
appendHtml += "<td><a href='#' class='btnProjectProductDetail' data-PRODUCT_GROUP='"+prodGroupObjId+"' data-BIDDING='Y'>"+data[i].OK_CNT+"</a></td>";
|
|
appendHtml += "</tr>";
|
|
okCnt += Number(fnc_checkNullDefaultValue(data[i].OK_CNT, 0));
|
|
});
|
|
|
|
if(okCnt == 0){
|
|
var noData = "<div id=\"chart1MessageArea\" style=\"width:100%;height:50%;padding-top:10%;text-align:center;\">조회된 정보가 없습니다.</div>";
|
|
$("#chart2").html(noData);
|
|
$("#rightTbody").html(noData);
|
|
}else{
|
|
$("#rightTbody").append(appendHtml);
|
|
//set chart
|
|
setChart2("chart2", data);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
}
|
|
});
|
|
}
|
|
|
|
//우측 Chart
|
|
function setChart2(divId, resultList){
|
|
var name = [];
|
|
var prodGroupObjId = [];
|
|
var cnt = [];
|
|
var seriesArr = [];
|
|
|
|
$.each(resultList , function(i){
|
|
name[i] = resultList[i].PROD_GROUP_NAME;
|
|
prodGroupObjId[i] = Number(fnc_checkNullDefaultValue(resultList[i].PROD_GROUP_OBJID,0));
|
|
cnt[i] = Number(fnc_checkNullDefaultValue(resultList[i].OK_CNT, 0));
|
|
//Swal.fire("name["+i+"] : "+name[i]+", cnt["+i+"] : "+cnt[i]);
|
|
|
|
seriesArr.push({
|
|
name:name[i],
|
|
y:cnt[i],
|
|
prodGroupObjId:prodGroupObjId[i]
|
|
});
|
|
});
|
|
//Swal.fire(seriesArr[0].name);
|
|
//Swal.fire("name : "+name+", allCnt : "+allCnt+", completeCnt : "+completeCnt);
|
|
$('#'+divId).highcharts({
|
|
colors: ['#558ed5', '#ff6d6d', '#bed0f6','#90ff7d', '#b6a6ca', '#bfbfbf','#cc7b38', '#383838', '#00cc99','#9bbb59', '#40e1f2', '#6155f9','#9c4f30', '#aabad7', '#d9aaa9'],
|
|
chart: {
|
|
type : 'pie'
|
|
},
|
|
title: {
|
|
text: ''
|
|
},
|
|
plotOptions:{
|
|
series: {
|
|
dataLabels: {
|
|
enabled: true,
|
|
format: '{point.name}: {point.y}건'
|
|
}
|
|
}, series:{
|
|
cursor:'pointer',
|
|
point:{
|
|
events:{
|
|
click:function(){
|
|
console.log(this);
|
|
fn_openProjectProductList(this);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"series": [
|
|
{
|
|
name: '건수'
|
|
, 'data' : seriesArr
|
|
}
|
|
]
|
|
});
|
|
}
|
|
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<div class="plm_menu_name">
|
|
<h2>
|
|
<span>수주활동 상세현황</span>
|
|
</h2>
|
|
</div>
|
|
<div class="contents_page_basic_margin" style="overflow:hidden;">
|
|
<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%;">
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td title="년도">년도</td>
|
|
<td title="전체입찰">전체입찰</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:300px;">
|
|
<table class="plm_table">
|
|
<tbody id="leftTbody">
|
|
<tr>
|
|
<td colspan="6" align="center">조회된 정보가 없습니다.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div style="width:35%; 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="chart1" style="width:100%; height:240px; margin: 40px auto 0;"></div>
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon" style="border-top: 1px solid #d4d4d4; margin-top:30px;">
|
|
<table>
|
|
<tr>
|
|
<td><lable for="" class="orangeTitleDot" style="font-weight:300; font-size:13px;">기간</lable></td>
|
|
<td><input type="text" name="search_fromDate" id="search_fromDate" value="${param.search_fromDate}" style="width:100px;"> ~ <input type="text" name="search_toDate" id="search_toDate" value="${param.search_toDate}" style="width:100px;"></td>
|
|
<td><input type="button" value="조회" class="btnSearch blue_btn" style="float:none;"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="contents_page_basic_margin" style="overflow:hidden;">
|
|
<div class="title_div" style="margin-top:20px;">제품별 수주확정 현황</div>
|
|
<div class="plm_table_wrap"style="width:40%; float:left; margin: 0;">
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table" style="width:100%;">
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td title="제품군">제품군</td>
|
|
<td title="수주확정건수">수주확정건수</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="width:100%; height:300px;">
|
|
<table class="plm_table">
|
|
<tbody id="rightTbody">
|
|
<tr>
|
|
<td colspan="2" align="center">조회된 정보가 없습니다.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div style="width:35%; 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="chart2" style="width:80%; height:240px; margin: 40px auto 0;"></div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |