455 lines
21 KiB
Plaintext
455 lines
21 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
|
|
<%@ 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>
|
|
<c:set var="totalCount" value="${empty TOTAL_COUNT?0:TOTAL_COUNT}" />
|
|
<c:set var="maxPage" value="${empty MAX_PAGE_SIZE?1:MAX_PAGE_SIZE}" />
|
|
<c:set var="nPage" value="${empty param.page?1:param.page}" />
|
|
<c:set var="pageIndex" value="${(nPage-1)/10}" />
|
|
<c:set var="nextPage" value="${empty NEXT_PAGE?1:NEXT_PAGE}" />
|
|
<c:set var="prevPage" value="${empty PREV_PAGE?1:PREV_PAGE}" />
|
|
<c:set var="now" value="<%=new java.util.Date() %>"/>
|
|
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
|
|
|
|
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
|
|
<script type="text/javascript">
|
|
google.charts.load('current', {'packages':['corechart']});
|
|
|
|
google.charts.setOnLoadCallback(drawChart1);
|
|
google.charts.setOnLoadCallback(drawChart3);
|
|
//google.charts.load('current', {'packages':['bar']});
|
|
google.charts.load('current', {'packages':['corechart']});
|
|
google.charts.setOnLoadCallback(drawChart2);
|
|
|
|
function drawChart1() {
|
|
|
|
var data = google.visualization.arrayToDataTable([
|
|
['Task', 'Hours per Day'],
|
|
|
|
<c:forEach var="item" items="${LIST}" varStatus="status">
|
|
<c:choose>
|
|
<c:when test="${empty item.YEAR_MONTH }">
|
|
<c:if test="${!empty moldKindCdList}">
|
|
<c:forEach var="obj2" items="${moldKindCdList}" varStatus="status">
|
|
<c:set var="contract_cnt_month" value="CONTRACT_CNT_MONTH_${obj2.CODE}" />
|
|
['${obj2.NAME}',${item[contract_cnt_month]}],
|
|
</c:forEach>
|
|
</c:if>
|
|
</c:when>
|
|
</c:choose>
|
|
</c:forEach>
|
|
]);
|
|
|
|
var options = {
|
|
title: '■ 제품별현황',
|
|
fontSize: 16,
|
|
is3D: true,
|
|
chartArea: {left:20,top:80,width:'80%',height:'75%'},
|
|
legend: {position: 'right', textStyle: {color: 'black', fontSize: 10}},
|
|
};
|
|
|
|
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
|
|
|
|
chart.draw(data, options);
|
|
}
|
|
|
|
function drawChart2() {
|
|
|
|
// eslint-disable-next-line
|
|
var data = google.visualization.arrayToDataTable([
|
|
['Year', '영업목표(억원)', '수주금액(억원)', '달성율(%)'],
|
|
['${yearGoalInfoMap2.YEAR}', ${yearGoalInfoMap2.PRICE}, ${yearGoalInfoMap2.CONTRACT_COST_YEAR}, ${yearGoalInfoMap2.GOAL_RATE}],
|
|
['${yearGoalInfoMap1.YEAR}', ${yearGoalInfoMap1.PRICE}, ${yearGoalInfoMap1.CONTRACT_COST_YEAR}, ${yearGoalInfoMap1.GOAL_RATE}],
|
|
['${yearGoalInfoMap.YEAR}', ${yearGoalInfoMap.PRICE}, ${yearGoalInfoMap.CONTRACT_COST_YEAR}, ${yearGoalInfoMap.GOAL_RATE}]
|
|
]);
|
|
|
|
var options = {
|
|
title: '■ 년도별 영업현황' //{ position: 'top', title:'영업현황'}
|
|
,fontSize: 14
|
|
,legend: {position: 'right', textStyle: {color: 'black', fontSize: 9}}
|
|
,seriesType: 'bars'
|
|
,series: {2: {type: 'line'}}
|
|
,chartArea: {left:40,top:40,width:'55%',height:'75%'}
|
|
};
|
|
|
|
var chart = new google.visualization.ComboChart(document.getElementById('chartDiv1'));
|
|
chart.draw(data, options);
|
|
/* var chart = new google.charts.Bar(document.getElementById('chartDiv1'));
|
|
chart.draw(data, google.charts.Bar.convertOptions(options)); */
|
|
}
|
|
|
|
function drawChart3() {
|
|
|
|
var data = google.visualization.arrayToDataTable([
|
|
['Supply', 'CNT'],
|
|
|
|
<c:forEach var="item" items="${LISTSUPPLY}" varStatus="status">
|
|
['${item.SUPPLY_NAME}',${item.TOTAL_SUPPLY_UNIT_CNT}],
|
|
</c:forEach>
|
|
]);
|
|
|
|
var options = {
|
|
title: '■ 고객사별현황',
|
|
fontSize: 16,
|
|
is3D: true,
|
|
chartArea: {left:10,top:80,width:'80%',height:'75%'},
|
|
legend: {position: 'right', textStyle: {color: 'black', fontSize: 10}},
|
|
};
|
|
|
|
var chart = new google.visualization.PieChart(document.getElementById('piechart2'));
|
|
|
|
chart.draw(data, options);
|
|
}
|
|
</script>
|
|
|
|
<script>
|
|
$(document).ready(function(){
|
|
$("._table1").scroll(function () {
|
|
$("._table2").scrollLeft($("._table1").scrollLeft());
|
|
});
|
|
$("._table2").scroll(function () {
|
|
$("._table1").scrollLeft($("._table2").scrollLeft());
|
|
});
|
|
|
|
$('.select2').select2();
|
|
|
|
$("#btnSearch").click(function(){
|
|
fn_search();
|
|
});
|
|
|
|
//영업목표 등록 팝업
|
|
$("#btnRegist").click(function(){
|
|
fn_yearGoalPopUp("");
|
|
});
|
|
|
|
//엔터 조회
|
|
$("input").keyup(function(e){
|
|
if(e.keyCode == 13){
|
|
$("#page").val("1");
|
|
fn_search();
|
|
}
|
|
});
|
|
|
|
$("#Year").val("${sysYear}");
|
|
});
|
|
|
|
function fn_search(){
|
|
document.form1.action = "/contractMgmt/contractDashBoard.do";
|
|
document.form1.submit();
|
|
}
|
|
|
|
function fn_openTargetList(productCategory,product,targetType,dateType,searchYear,searchMonth){
|
|
var hiddenForm = document.hiddenForm;
|
|
var url = "";
|
|
|
|
if("contract" == targetType){
|
|
url = "/contractMgmt/contractList.do";
|
|
|
|
hiddenForm.Year.value = searchYear;
|
|
hiddenForm.contract_month.value = searchMonth;
|
|
//hiddenForm.contract_start_date.value = startDate;
|
|
//hiddenForm.contract_end_date.value = endDate;
|
|
}else{
|
|
url = "/releaseMgmt/releaseMgmtList.do";
|
|
|
|
hiddenForm.Year.value = searchYear;
|
|
//hiddenForm.release_start_date.value = startDate;
|
|
//hiddenForm.release_end_date.value = endDate;
|
|
}
|
|
|
|
window.open(url,"openTargetList","width=1800, height=700, menubars=no, scrollbars=yes, resizable=yes");
|
|
|
|
hiddenForm.target = "openTargetList";
|
|
hiddenForm.PRODUCT_CATEGORY.value = productCategory;
|
|
hiddenForm.product.value = product;
|
|
hiddenForm.action = url;
|
|
hiddenForm.submit();
|
|
}
|
|
|
|
function fn_yearGoalPopUp(objId){
|
|
var params = "?actionType=regist&YEAR_GOAL_OBJID="+objId+"&Year="+$("#Year").val();
|
|
var url = "/contractMgmt/yearGoalFormPopUp.do"+params;
|
|
//window.open(url, "", "width=550, height=300");
|
|
|
|
var target = "yearGoalPricePopUp";
|
|
var popup_width = 550;
|
|
var popup_height = 300;
|
|
//var url = "/project/projectMgmtProductPopUp.do"+params;
|
|
fn_centerPopup(popup_width, popup_height, url, target);
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<form name="hiddenForm" id="hiddenForm" action="" method="post">
|
|
<input type="hidden" name="PRODUCT_CATEGORY" id="PRODUCT_CATEGORY">
|
|
<input type="hidden" name="product" id="product">
|
|
<input type="hidden" name="RESULT_TYPE" id="RESULT_TYPE">
|
|
<input type="hidden" name="SEARCH_YEAR" id="SEARCH_YEAR">
|
|
<input type="hidden" name="Year" id="Year">
|
|
<input type="hidden" name="SEARCH_START_DATE" id="SEARCH_START_DATE">
|
|
<input type="hidden" name="contract_start_date" id="contract_start_date">
|
|
<input type="hidden" name="SEARCH_END_DATE" id="SEARCH_END_DATE">
|
|
<input type="hidden" name="contract_end_date" id="contract_end_date">
|
|
<input type="hidden" name="release_start_date" id="release_start_date">
|
|
<input type="hidden" name="release_end_date" id="release_end_date">
|
|
<input type="hidden" name="contract_month" id="contract_month" value="${param.contract_month}">
|
|
</form>
|
|
<form name="form1" id="form1" action="" method="post">
|
|
<input type="hidden" name="actionType" value="" />
|
|
<div class="min_part_enroll">
|
|
<div class="content-box">
|
|
<div class="content-box-s">
|
|
<div class="plm_menu_name_gdnsi">
|
|
<h2>
|
|
<span>영업관리_계약현황</span>
|
|
</h2>
|
|
<div class="btnArea">
|
|
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
|
|
<input type="button" value="영업목표등록" class="plm_btns" id="btnRegist" name="btnRegist">
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table>
|
|
<tr>
|
|
|
|
<td><label for="Year">년도</label></td>
|
|
<td>
|
|
<select name="Year" id="Year" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
<c:forEach begin="${sysYear-4}" end="${sysYear}" var="req_year">
|
|
<option value="${req_year}" ${(param.Year eq req_year) or (empty param.Year and req_year eq sysYear) ? 'selected':'' }>${req_year}</option>
|
|
</c:forEach>
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="category_cd">구분</label></td>
|
|
<td>
|
|
<select name="category_cd" id="category_cd" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.category_cd}
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="customer_objid">고객사</label></td>
|
|
<td>
|
|
<select name="customer_objid" id="customer_objid" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.customer_cd}
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="product">제품구분</label></td>
|
|
<td>
|
|
<select name="product" id="product" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.product_cd}
|
|
</select>
|
|
</td>
|
|
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<!-- <div class="btn_wrap">
|
|
<div class="plm_btn_wrap">
|
|
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
|
|
<input type="button" value="영업목표등록" class="plm_btns" id="btnRegist" name="btnRegist">
|
|
</div>
|
|
</div> -->
|
|
|
|
<section class="contents_page_basic_margin">
|
|
<div style="display: flex; ">
|
|
<div class="contents_page_basic_margin" style="width:40%; float:left; ">
|
|
<c:set var="total_price" value="0"/>
|
|
<font size="3px"> ■ 계약현황<!-- (억원) --> <span id="total_price"></span></font>
|
|
<!-- <div class="btn_wrap">
|
|
<div class="plm_btn_wrap">
|
|
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
|
|
</div>
|
|
</div> -->
|
|
<div style="overflow-y:scroll;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<c:if test="${!empty moldKindCdList}">
|
|
<c:forEach var="info" items="${moldKindCdList}" varStatus="status">
|
|
<col width="*">
|
|
</c:forEach>
|
|
</c:if>
|
|
<col width="25%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2" colspan="" style="font-size:13px;"></td>
|
|
<td colspan="${fn:length(moldKindCdList)+1}" style="font-size:13px;">수주확정 건수</td>
|
|
<td rowspan="2" class="plm_thead" style="font-size:13px;">출고</td>
|
|
</tr>
|
|
<tr>
|
|
<c:if test="${!empty moldKindCdList}">
|
|
<c:forEach var="info" items="${moldKindCdList}" varStatus="status">
|
|
<td colspan="" class="plm_thead" style="font-size:13px;">${info.NAME}</td>
|
|
</c:forEach>
|
|
</c:if>
|
|
<td colspan="" class="plm_thead" style="font-size:13px;">매출액</td>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
<div class="plm_scroll_table" style="height:500px;">
|
|
<table class="plm_table">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<c:if test="${!empty moldKindCdList}">
|
|
<c:forEach var="info" items="${moldKindCdList}" varStatus="status">
|
|
<col width="*">
|
|
</c:forEach>
|
|
</c:if>
|
|
<col width="25%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tbody>
|
|
<c:choose>
|
|
<c:when test="${!empty LIST}">
|
|
<c:forEach var="item" items="${LIST}" varStatus="status">
|
|
<c:choose>
|
|
<c:when test="${empty item.YEAR_MONTH }">
|
|
<tr style="background-color:#fbead9;">
|
|
<td class="plm_thead" style="font-size:13px;" colspan="">계</td>
|
|
|
|
<c:if test="${!empty moldKindCdList}">
|
|
<c:forEach var="obj2" items="${moldKindCdList}" varStatus="status">
|
|
<c:set var="contract_cnt_month" value="CONTRACT_CNT_MONTH_${obj2.CODE}" />
|
|
<c:set var="total_price" value="${total_price+item[contract_cost_month]}"/>
|
|
<td class="align_c" style="font-size:13px;" colspan="1">
|
|
<a href="#" onclick="javascript:fn_openTargetList('${item.PRODUCT_GROUP}','${obj2.CODE}','contract','year','${item.TARGET_YEAR}','');"><fmt:formatNumber value="${item[contract_cnt_month]}"/></a>
|
|
</td>
|
|
</c:forEach>
|
|
<td class="align_r10"><fmt:formatNumber value="${item[contract_cost_year]}" pattern="#,###.##"/></td>
|
|
<td><fmt:formatNumber value="${item[release_cnt_year]}"/></td>
|
|
</c:if>
|
|
</tr>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<tr>
|
|
<td class="plm_thead" style="font-size:13px;">${item.MM}월</td>
|
|
<c:if test="${!empty moldKindCdList}">
|
|
<c:forEach var="month" items="${moldKindCdList}" varStatus="status">
|
|
<c:set var="contract_cnt_month" value="CONTRACT_CNT_MONTH_${month.CODE}" />
|
|
<c:set var="contract_cost_year" value="CONTRACT_COST_YEAR_ORG" />
|
|
<c:set var="release_cnt_year" value="RELEASE_CNT_YEAR" />
|
|
<td style="font-size:13px;">
|
|
<a href="#" onclick="javascript:fn_openTargetList('${month.PRODUCT_GROUP}','${month.CODE}','contract','month','${item.TARGET_YEAR}','${item.YEAR_MONTH}');"><fmt:formatNumber value="${item[contract_cnt_month]}"/></a>
|
|
</td>
|
|
</c:forEach>
|
|
<td class="align_r10"><fmt:formatNumber value="${item[contract_cost_year]}"/></td>
|
|
<td><fmt:formatNumber value="${item[release_cnt_year]}"/></td>
|
|
</c:if>
|
|
</tr>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</c:forEach>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<tr>
|
|
<td colspan="9" align="center">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="in_table_scroll_wrap _table2" style="height:730px;width:30%;float:center;">
|
|
<div class="plm_scroll_table" style="height:250px; background-color:#fff;">
|
|
<font size="3px" style="margin-left:30px;"> ■ 영업목표 </font>
|
|
<!-- <div class="btn_wrap">
|
|
<div class="plm_btn_wrap">
|
|
<input type="button" value="영업목표등록" class="plm_btns" id="btnRegist" name="btnRegist">
|
|
</div>
|
|
</div> -->
|
|
<table class="plm_table" style="width:400px; margin-left:30px;">
|
|
<colgroup>
|
|
<col width="">
|
|
<col width="">
|
|
<col width="">
|
|
<col width="">
|
|
<col width="">
|
|
</colgroup>
|
|
<thead>
|
|
<tr class="plm_thead">
|
|
<td rowspan="2">년도</td>
|
|
<td rowspan="2">영업목표 </br> (억원)</td>
|
|
<td colspan="3">현황</td>
|
|
</tr>
|
|
<tr>
|
|
<td>계약건수</td>
|
|
<td>계약금액</td>
|
|
<td>달성율</td>
|
|
</tr>
|
|
</thead>
|
|
<%-- <c:choose>
|
|
<c:when test="${!empty LIST}">
|
|
<c:forEach var="row" items="${LIST}" varStatus="status">
|
|
<tr>
|
|
<td title="${info.CONTRACT_NO}"><a href="#" onclick="javascript:fn_projectConceptDetail('${info.OBJID}')">${row.M03_PRICE}</a></td><!-- 계약번호 -->
|
|
<td title="${info.CATEGORY_NAME}">${row.M03_CM}</td><!-- 지역 -->
|
|
<td title="${info.AREA_NAME}">${row.M03_RM}</td><!-- 지역 -->
|
|
<td title="${info.CUSTOMER_NAME}">${row.M01_PRICE}</td><!-- 고객명 -->
|
|
<td title="${info.PRODUCT_NAME}"">${row.M01_PRICE}</td><!-- 사업자등록번호 -->
|
|
</tr>
|
|
</c:forEach>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<tr>
|
|
<td colspan="5" align="center">조회된 데이터가 없습니다.</td>
|
|
</tr>
|
|
</c:otherwise>
|
|
</c:choose> --%>
|
|
<tr>
|
|
<td title="">${yearGoalInfoMap.YEAR}</td><!-- 년도 -->
|
|
<td title=""><fmt:formatNumber value="${yearGoalInfoMap.PRICE}"/></td><!-- 영업목표 -->
|
|
<td title="">${yearGoalInfoMap.CONTRACT_CNT_YEAR}</td><!-- 계약건수 -->
|
|
<td title=""><fmt:formatNumber value="${yearGoalInfoMap.CONTRACT_COST_YEAR}" pattern="#,###.##" /></td><!-- 계약금액 -->
|
|
<td title=""><a href="#" onclick="javascript:fn_openTargetList('','','contract','year','${yearGoalInfoMap.YEAR}','');"><fmt:formatNumber value="${yearGoalInfoMap.GOAL_RATE}" pattern="#,###.#" />%</a></td><!-- 달성율 -->
|
|
</tr>
|
|
<tr>
|
|
<td title="">${yearGoalInfoMap1.YEAR}</td><!-- 년도 -->
|
|
<td title="">${yearGoalInfoMap1.PRICE}</td><!-- 영업목표 -->
|
|
<td title="">${yearGoalInfoMap1.CONTRACT_CNT_YEAR}</td><!-- 계약건수 -->
|
|
<td title=""><fmt:formatNumber value="${yearGoalInfoMap1.CONTRACT_COST_YEAR}" pattern="#,###.##" /></td><!-- 계약금액 -->
|
|
<td title=""><a href="#" onclick="javascript:fn_openTargetList('','','contract','year','${yearGoalInfoMap1.YEAR}','');"><fmt:formatNumber value="${yearGoalInfoMap1.GOAL_RATE}" pattern="#,###.#" />%</a></td><!-- 달성율 -->
|
|
</tr>
|
|
<tr>
|
|
<td title="">${yearGoalInfoMap2.YEAR}</td><!-- 년도 -->
|
|
<td title="">${yearGoalInfoMap2.PRICE}</td><!-- 영업목표 -->
|
|
<td title="">${yearGoalInfoMap2.CONTRACT_CNT_YEAR}</td><!-- 계약건수 -->
|
|
<td title=""><fmt:formatNumber value="${yearGoalInfoMap2.CONTRACT_COST_YEAR}" pattern="#,###.##" /></td><!-- 계약금액 -->
|
|
<td title=""><a href="#" onclick="javascript:fn_openTargetList('','','contract','year','${yearGoalInfoMap2.YEAR}','');"><fmt:formatNumber value="${yearGoalInfoMap2.GOAL_RATE}" pattern="#,###.#" />%</a></td><!-- 달성율 -->
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div id="piechart" style="height:390px; width:97%; overflow:hidden;margin-left:15px;"></div>
|
|
</div>
|
|
|
|
|
|
<div class="in_table_scroll_wrap _table2" style="clear: both; box-sizing: border-box; width:30%; height:730px; float:right;">
|
|
<div id="chartDiv1" style="height:250px; overflow:hidden;"></div>
|
|
<div id="piechart2" style="height:390px; width:97%; overflow:hidden;margin-left:15px;"></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |